Skip to content

Commit

Permalink
resolve conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
riteshghorse committed Jun 14, 2022
2 parents 9766453 + 7bf822a commit ac6fc70
Show file tree
Hide file tree
Showing 158 changed files with 4,003 additions and 1,194 deletions.
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

- [ ] [**Choose reviewer(s)**](https://beam.apache.org/contribute/#make-your-change) and mention them in a comment (`R: @username`).
- [ ] Add a link to the appropriate issue in your description, if applicable. This will automatically link the pull request to the issue.
- [ ] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).

Expand Down
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,18 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "daily"
ignore:
# Ignore gcp dependencies
- dependency-name: "com.google.api:gax*"
- dependency-name: "com.google.cloud.bigdataoss:*"
- dependency-name: "com.google.cloud:*"
- dependency-name: "com.google.code.gson:*"
- dependency-name: "com.google.oauth-client:*"
- dependency-name: "io.grpc:grpc-*"
- dependency-name: "com.google.guava:*"
- dependency-name: "com.google.protobuf:*"
- dependency-name: "com.google.cloud.datastore:datastore-v1-proto-client"
- dependency-name: "com.google.api.grpc:proto-google-cloud-*"
- dependency-name: "com.google.api.grpc:grpc-*"
- dependency-name: "com.google.http-client:*"
- dependency-name: "com.google.apis:google-api-services-*"
6 changes: 4 additions & 2 deletions .test-infra/jenkins/PhraseTriggeringPostCommitBuilder.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ class PhraseTriggeringPostCommitBuilder extends PostcommitJobBuilder {
githubUiHint,
scope,
jobDefinition = {}) {
new PostcommitJobBuilder(scope, jobDefinition).defineGhprbTriggeredJob(
nameBase + "_PR", triggerPhrase, githubUiHint, false)

// [Issue#21824] Disable trigger
// new PostcommitJobBuilder(scope, jobDefinition).defineGhprbTriggeredJob(
// nameBase + "_PR", triggerPhrase, githubUiHint, false)
}
}
12 changes: 11 additions & 1 deletion .test-infra/jenkins/PostcommitJobBuilder.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class PostcommitJobBuilder {
* Set the job details.
*
* @param nameBase Job name for the postcommit job, a _PR suffix added if the trigger is set.
* @param triggerPhrase Phrase to trigger jobs, empty to not have a trigger.
* @param triggerPhrase Phrase to trigger jobs, [Issue#21824] IGNORED.
* @param githubUiHint Short description in the github UI.
* @param scope Delegate for the job.
* @param jobDefinition Closure for the job.
Expand All @@ -51,6 +51,16 @@ class PostcommitJobBuilder {
jobDefinition = {}) {
PostcommitJobBuilder jb = new PostcommitJobBuilder(scope, jobDefinition)
jb.defineAutoPostCommitJob(nameBase)
}

static void postCommitJobWithTrigger(nameBase,
triggerPhrase,
githubUiHint,
scope,
jobDefinition = {}) {
PostcommitJobBuilder jb = new PostcommitJobBuilder(scope, jobDefinition)
jb.defineAutoPostCommitJob(nameBase)

if (triggerPhrase) {
jb.defineGhprbTriggeredJob(nameBase + "_PR", triggerPhrase, githubUiHint, false)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ private void createPostCommitJob(jobConfig) {
job(jobConfig.name) {
description(jobConfig.description)
common.setTopLevelMainJobProperties(delegate)
common.enablePhraseTriggeringFromPullRequest(delegate, jobConfig.title, jobConfig.triggerPhrase)
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(delegate, jobConfig.title, jobConfig.triggerPhrase)
common.setAutoJob(delegate, 'H H/6 * * *')
publishers {
archiveJunit('**/build/test-results/**/*.xml')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,8 @@ private void createGCSFileBasedIOITTestJob(testJob) {
job(testJob.name) {
description(testJob.description)
common.setTopLevelMainJobProperties(delegate)
common.enablePhraseTriggeringFromPullRequest(delegate, testJob.githubTitle, testJob.githubTriggerPhrase)
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(delegate, testJob.githubTitle, testJob.githubTriggerPhrase)
common.setAutoJob(delegate, 'H H/6 * * *')
InfluxDBCredentialsHelper.useCredentials(delegate)
additionalPipelineArgs = [
Expand Down Expand Up @@ -339,7 +340,8 @@ private void createHDFSFileBasedIOITTestJob(testJob) {
job(testJob.name) {
description(testJob.description)
common.setTopLevelMainJobProperties(delegate)
common.enablePhraseTriggeringFromPullRequest(delegate, testJob.githubTitle, testJob.githubTriggerPhrase)
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(delegate, testJob.githubTitle, testJob.githubTriggerPhrase)
common.setAutoJob(delegate, 'H H/6 * * *')
InfluxDBCredentialsHelper.useCredentials(delegate)
additionalPipelineArgs = [
Expand Down
9 changes: 5 additions & 4 deletions .test-infra/jenkins/job_PerformanceTests_HadoopFormat.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ String jobName = "beam_PerformanceTests_HadoopFormat"
job(jobName) {
common.setTopLevelMainJobProperties(delegate)
common.setAutoJob(delegate, 'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Java HadoopFormatIO Performance Test',
'Run Java HadoopFormatIO Performance Test')
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Java HadoopFormatIO Performance Test',
// 'Run Java HadoopFormatIO Performance Test')
InfluxDBCredentialsHelper.useCredentials(delegate)

String namespace = common.getKubernetesNamespace(jobName)
Expand Down
9 changes: 5 additions & 4 deletions .test-infra/jenkins/job_PerformanceTests_InfluxDBIO_IT.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,11 @@ String jobName = "beam_PerformanceTests_InfluxDbIO_IT"
job(jobName) {
common.setTopLevelMainJobProperties(delegate)
common.setAutoJob(delegate,'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Java InfluxDbIO Performance Test',
'Run Java InfluxDbIO Performance Test')
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Java InfluxDbIO Performance Test',
// 'Run Java InfluxDbIO Performance Test')

String namespace = common.getKubernetesNamespace(jobName)
String kubeconfigPath = common.getKubeconfigLocationForNamespace(namespace)
Expand Down
9 changes: 5 additions & 4 deletions .test-infra/jenkins/job_PerformanceTests_JDBC.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ String jobName = "beam_PerformanceTests_JDBC"
job(jobName) {
common.setTopLevelMainJobProperties(delegate)
common.setAutoJob(delegate, 'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Java JdbcIO Performance Test',
'Run Java JdbcIO Performance Test')
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Java JdbcIO Performance Test',
// 'Run Java JdbcIO Performance Test')
InfluxDBCredentialsHelper.useCredentials(delegate)

String namespace = common.getKubernetesNamespace(jobName)
Expand Down
8 changes: 4 additions & 4 deletions .test-infra/jenkins/job_PerformanceTests_KafkaIO_IT.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ job(jobName) {
common.setTopLevelMainJobProperties(delegate)
// TODO(BEAM-9482): Re-enable once fixed.
// common.setAutoJob(delegate, 'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Java KafkaIO Performance Test',
'Run Java KafkaIO Performance Test')
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Java KafkaIO Performance Test',
// 'Run Java KafkaIO Performance Test')
InfluxDBCredentialsHelper.useCredentials(delegate)

String namespace = common.getKubernetesNamespace(jobName)
Expand Down
9 changes: 5 additions & 4 deletions .test-infra/jenkins/job_PerformanceTests_MongoDBIO_IT.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ String jobName = "beam_PerformanceTests_MongoDBIO_IT"
job(jobName) {
common.setTopLevelMainJobProperties(delegate)
common.setAutoJob(delegate,'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Java MongoDBIO Performance Test',
'Run Java MongoDBIO Performance Test')
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Java MongoDBIO Performance Test',
// 'Run Java MongoDBIO Performance Test')
InfluxDBCredentialsHelper.useCredentials(delegate)

String namespace = common.getKubernetesNamespace(jobName)
Expand Down
11 changes: 6 additions & 5 deletions .test-infra/jenkins/job_PerformanceTests_Python.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,13 @@ private void createPythonPerformanceTestJob(Map testConfig) {
// Run job in postcommit, don't trigger every push.
commonJobProperties.setAutoJob(delegate, 'H H/6 * * *')

// [Issue#21824] Disable trigger
// Allows triggering this build against pull requests.
commonJobProperties.enablePhraseTriggeringFromPullRequest(
delegate,
testConfig.jobDescription,
testConfig.jobTriggerPhrase,
)
// commonJobProperties.enablePhraseTriggeringFromPullRequest(
// delegate,
// testConfig.jobDescription,
// testConfig.jobTriggerPhrase,
// )

publishers {
archiveJunit('**/pytest*.xml')
Expand Down
3 changes: 2 additions & 1 deletion .test-infra/jenkins/job_PerformanceTests_SQLIO_Java.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ private void createPostCommitJob(jobConfig) {
job(jobConfig.name) {
description(jobConfig.description)
common.setTopLevelMainJobProperties(delegate)
common.enablePhraseTriggeringFromPullRequest(delegate, jobConfig.title, jobConfig.triggerPhrase)
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(delegate, jobConfig.title, jobConfig.triggerPhrase)
common.setAutoJob(delegate, 'H H/6 * * *')
publishers {
archiveJunit('**/build/test-results/**/*.xml')
Expand Down
2 changes: 1 addition & 1 deletion .test-infra/jenkins/job_PostCommit_Go.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import PostcommitJobBuilder

// This is the Go postcommit which runs a gradle build, and the current set
// of postcommit tests.
PostcommitJobBuilder.postCommitJob('beam_PostCommit_Go', 'Run Go PostCommit',
PostcommitJobBuilder.postCommitJobWithTrigger('beam_PostCommit_Go', 'Run Go PostCommit',
'./gradlew :goPostCommit', this) {
description('Runs Go PostCommit tests against master.')
previousNames(/beam_PostCommit_Go_GradleBuild/)
Expand Down
2 changes: 1 addition & 1 deletion .test-infra/jenkins/job_PostCommit_Java.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import PostcommitJobBuilder

// This job runs the Java postcommit tests, including the suite of integration
// tests.
PostcommitJobBuilder.postCommitJob('beam_PostCommit_Java', 'Run Java PostCommit',
PostcommitJobBuilder.postCommitJobWithTrigger('beam_PostCommit_Java', 'Run Java PostCommit',
'Java SDK Post Commit Tests', this) {

description('Runs PostCommit tests on the Java SDK.')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import PostcommitJobBuilder

// This job runs the suite of ValidatesRunner tests against the Dataflow
// runner.
PostcommitJobBuilder.postCommitJob('beam_PostCommit_Java_ValidatesRunner_Dataflow',
PostcommitJobBuilder.postCommitJobWithTrigger('beam_PostCommit_Java_ValidatesRunner_Dataflow',
'Run Dataflow ValidatesRunner', 'Google Cloud Dataflow Runner ValidatesRunner Tests (streaming/batch auto)', this) {

description('Runs the ValidatesRunner suite on the Dataflow runner.')
Expand Down
2 changes: 1 addition & 1 deletion .test-infra/jenkins/job_PostCommit_Python.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import static PythonTestProperties.ALL_SUPPORTED_VERSIONS
// This job defines the Python postcommit tests.
ALL_SUPPORTED_VERSIONS.each { pythonVersion ->
def versionSuffix = pythonVersion.replace('.', '')
PostcommitJobBuilder.postCommitJob("beam_PostCommit_Python${versionSuffix}",
PostcommitJobBuilder.postCommitJobWithTrigger("beam_PostCommit_Python${versionSuffix}",
"Run Python ${pythonVersion} PostCommit",
"Python${versionSuffix}_PC(\"Run Python ${pythonVersion} PostCommit\")", this) {
description('Runs Python postcommit tests using Python ${pythonVersion}.')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,11 @@ String jobName = "beam_python_mongoio_load_test"
job(jobName) {
common.setTopLevelMainJobProperties(delegate)
common.setAutoJob(delegate, 'H H/6 * * *')
common.enablePhraseTriggeringFromPullRequest(
delegate,
'Python MongoDBIO Load Test',
'Run Python MongoDBIO Load Test')
// [Issue#21824] Disable trigger
// common.enablePhraseTriggeringFromPullRequest(
// delegate,
// 'Python MongoDBIO Load Test',
// 'Run Python MongoDBIO Load Test')

String namespace = common.getKubernetesNamespace(jobName)
String kubeconfigPath = common.getKubeconfigLocationForNamespace(namespace)
Expand Down
3 changes: 1 addition & 2 deletions .test-infra/metrics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ This folder contains resources required to deploy the Beam metrics stack.

There are two types of metrics in Beam:
* Community metrics. The stack includes:
* Python scripts for ingesting data from sources (Jenkins, JIRA,
GitHub)
* Python scripts for ingesting data from sources (Jenkins and GitHub)
* Postgres analytics database

* Test Results, i.e. metrics published by tests (IO Performance tests, Load tests and Nexmark tests). Beam uses InfluxDB time series database to store test metrics.
Expand Down
1 change: 0 additions & 1 deletion .test-infra/metrics/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ task deploy {
args '-c', "kubectl set image deployment/beamgrafana \
beamgrafana=gcr.io/apache-beam-testing/beamgrafana:${project.lastCommitId} \
beammetricssyncjenkins=gcr.io/apache-beam-testing/beammetricssyncjenkins:${project.lastCommitId} \
beammetricssyncjira=gcr.io/apache-beam-testing/beammetricssyncjira:${project.lastCommitId} \
beammetricssyncgithub=gcr.io/apache-beam-testing/beammetricssyncgithub:${project.lastCommitId}"
}
} else {
Expand Down
2 changes: 0 additions & 2 deletions .test-infra/metrics/build_and_publish_containers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,12 @@ echo
echo ===========Building containers==========
docker build -t gcr.io/${PROJECT_ID}/beamgrafana:$CONTAINER_VERSION_NAME ./grafana
docker build -t gcr.io/${PROJECT_ID}/beammetricssyncjenkins:$CONTAINER_VERSION_NAME ./sync/jenkins
docker build -t gcr.io/${PROJECT_ID}/beammetricssyncjira:$CONTAINER_VERSION_NAME ./sync/jira
docker build -t gcr.io/${PROJECT_ID}/beammetricssyncgithub:$CONTAINER_VERSION_NAME ./sync/github

if [ "$DO_PUSH" = true ]; then
echo
echo ===========Publishing containers==========
docker push gcr.io/${PROJECT_ID}/beamgrafana:$CONTAINER_VERSION_NAME
docker push gcr.io/${PROJECT_ID}/beammetricssyncjenkins:$CONTAINER_VERSION_NAME
docker push gcr.io/${PROJECT_ID}/beammetricssyncjira:$CONTAINER_VERSION_NAME
docker push gcr.io/${PROJECT_ID}/beammetricssyncgithub:$CONTAINER_VERSION_NAME
fi
12 changes: 0 additions & 12 deletions .test-infra/metrics/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,18 +98,6 @@ services:
- DB_DBNAME=beam_metrics
- DB_DBUSERNAME=admin
- DB_DBPWD=<PGPasswordHere>
syncjira:
image: syncjira
container_name: beamsyncjira
build:
context: ./sync/jira
dockerfile: Dockerfile
environment:
- DB_HOST=beampostgresql
- DB_PORT=5432
- DB_DBNAME=beam_metrics
- DB_DBUSERNAME=admin
- DB_DBPWD=<PGPasswordHere>
volumes:
beam-postgresql-data:
beam-grafana-libdata:
Expand Down
16 changes: 8 additions & 8 deletions .test-infra/metrics/grafana/dashboards/post-commit_tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"id": 11,
"links": [],
"options": {
"content": "This dashboard tracks Post-commit test reliability over-time.\n\n* [Post-commit test policies](https://beam.apache.org/contribute/postcommits-policies/)\n* [Existing test failure issues](https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20test-failures%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC)\n* [File a new test failure issue](https://s.apache.org/beam-test-failure)",
"content": "This dashboard tracks Post-commit test reliability over-time.\n\n* [Post-commit test policies](https://beam.apache.org/contribute/postcommits-policies/)\n* [Existing test failure issues](https://github.com/apache/beam/issues?q=is%3Aopen+is%3Aissue+label%3Atest-failures)\n* [File a new test failure issue](https://github.com/apache/beam/issues/new/choose)",
"mode": "markdown"
},
"pluginVersion": "8.1.2",
Expand Down Expand Up @@ -691,14 +691,14 @@
},
{
"datasource": "BeamPSQL",
"description": "Tracks the count of test failure JIRA issues currently open.",
"description": "Tracks the count of test failure GitHub issues currently open.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "# of JIRA issues",
"axisLabel": "# of GitHub issues",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
Expand Down Expand Up @@ -786,8 +786,8 @@
"links": [
{
"targetBlank": true,
"title": "Jira tickets",
"url": "https://issues.apache.org/jira/issues/?jql=project%20%3D%20BEAM%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20test-failures%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC"
"title": "GitHub issues",
"url": "https://github.com/apache/beam/issues?q=is%3Aopen+is%3Aissue+label%3Atest-failures"
}
],
"options": {
Expand All @@ -808,7 +808,7 @@
"hide": false,
"metricColumn": "none",
"rawQuery": true,
"rawSql": "with days as (select date_trunc('day', dd) as day from generate_series( $__timeFrom()::timestamp, $__timeTo()::timestamp, '1 day'::interval) as dd),\n knowndays as (SELECT days.day, count(*) as total_open\n FROM jira_issues, days\n WHERE jira_issues.created < days.day AND (jira_issues.resolutiondate > days.day OR jira_issues.resolutiondate is null)\n GROUP BY days.day\n ORDER BY days.day)\nselect days.day as time, greatest(knowndays.total_open, 0) as total_open\nfrom days left outer join knowndays\non days.day = knowndays.day",
"rawSql": "with days as (select date_trunc('day', dd) as day from generate_series( $__timeFrom()::timestamp, $__timeTo()::timestamp, '1 day'::interval) as dd),\n knowndays as (SELECT days.day, count(*) as total_open\n FROM gh_issues, days\n WHERE gh_issues.created_ts < days.day AND (gh_issues.closed_ts > days.day OR gh_issues.closed_ts is null)\n GROUP BY days.day\n ORDER BY days.day)\nselect days.day as time, greatest(knowndays.total_open, 0) as total_open\nfrom days left outer join knowndays\non days.day = knowndays.day",
"refId": "A",
"select": [
[
Expand All @@ -835,7 +835,7 @@
"hide": false,
"metricColumn": "none",
"rawQuery": true,
"rawSql": "with days as (select date_trunc('day', dd) as day from generate_series( $__timeFrom()::timestamp, $__timeTo()::timestamp, '1 day'::interval) as dd),\n knowndays as (SELECT days.day, count(*) as currently_failing\n FROM jira_issues, days\n WHERE jira_issues.created < days.day AND (jira_issues.resolutiondate > days.day OR jira_issues.resolutiondate is null) AND (jira_issues.labels LIKE '%currently-failing%')\n GROUP BY days.day\n ORDER BY days.day)\nselect days.day as time, greatest(knowndays.currently_failing, 0) as currently_failing\nfrom days left outer join knowndays\non days.day = knowndays.day",
"rawSql": "with days as (select date_trunc('day', dd) as day from generate_series( $__timeFrom()::timestamp, $__timeTo()::timestamp, '1 day'::interval) as dd),\n knowndays as (SELECT days.day, count(*) as currently_failing\n FROM gh_issues, days\n WHERE gh_issues.created_ts < days.day AND (gh_issues.closed_ts > days.day OR gh_issues.closed_ts is null) AND (gh_issues.labels @> ARRAY['currently-failing'])\n GROUP BY days.day\n ORDER BY days.day)\nselect days.day as time, greatest(knowndays.currently_failing, 0) as currently_failing\nfrom days left outer join knowndays\non days.day = knowndays.day",
"refId": "D",
"select": [
[
Expand All @@ -859,7 +859,7 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Test Failure JIRA issues",
"title": "Test Failure GitHub issues",
"type": "timeseries"
}
],
Expand Down
Loading

0 comments on commit ac6fc70

Please sign in to comment.