{"id":28994132,"url":"https://github.com/quipper/test-report-observability-action","last_synced_at":"2026-05-25T00:11:00.743Z","repository":{"id":218336200,"uuid":"746167599","full_name":"quipper/test-report-observability-action","owner":"quipper","description":"Action for observability of test reports","archived":false,"fork":false,"pushed_at":"2026-04-26T15:22:19.000Z","size":71808,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-26T17:17:15.451Z","etag":null,"topics":["datadog","github-actions","junit-xml-reports"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quipper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-21T09:11:41.000Z","updated_at":"2026-04-26T15:21:14.000Z","dependencies_parsed_at":"2024-05-20T21:30:58.459Z","dependency_job_id":"337fbbcb-3eb4-49e4-ac77-1128713d2ebf","html_url":"https://github.com/quipper/test-report-observability-action","commit_stats":null,"previous_names":["int128/datadog-test-report-action","quipper/datadog-test-report-action"],"tags_count":110,"template":false,"template_full_name":"int128/typescript-action","purl":"pkg:github/quipper/test-report-observability-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quipper%2Ftest-report-observability-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quipper%2Ftest-report-observability-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quipper%2Ftest-report-observability-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quipper%2Ftest-report-observability-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quipper","download_url":"https://codeload.github.com/quipper/test-report-observability-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quipper%2Ftest-report-observability-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datadog","github-actions","junit-xml-reports"],"created_at":"2025-06-25T03:44:35.918Z","updated_at":"2026-04-26T21:01:10.409Z","avatar_url":"https://github.com/quipper.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# test-report-observability-action [![ts](https://github.com/quipper/test-report-observability-action/actions/workflows/ts.yaml/badge.svg)](https://github.com/quipper/test-report-observability-action/actions/workflows/ts.yaml)\n\nThis is an action for the observability of test reports.\nIt supports the JUnit XML format.\n\n## Getting Started\n\nTo parse the test reports,\n\n```yaml\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - run: pnpm test\n      - uses: quipper/test-report-observability-action@v0\n        with:\n          junit-xml-path: '**/junit.xml'\n```\n\nThis action sends the metrics on `push`, `schedule`, or `workflow_run` events by default.\nYou can set `enable-metrics` input to change the condition.\n\n## Metrics\n\nAll metrics have the following tags:\n\n- `repository_owner`\n- `repository_name`\n- `workflow_name`\n\n### `testreport.testcase.success_count` (count)\n\nThis metric represents the number of succeeded test cases.\nIt has the following tags:\n\n- `testcase_name`\n- `testcase_file`\n- `testcase_owner`\n\nThis actions sends **only failed test cases by default**.\nYou can set `send-test-case-success` to send all test cases.\n:warning: It may increase the custom metrics cost.\n\n```yaml\n- uses: quipper/test-report-observability-action@v0\n  with:\n    junit-xml-path: '**/junit.xml'\n    send-test-case-success: true\n```\n\n### `testreport.testcase.failure_count` (count)\n\nThis metric represents the number of failed test cases.\nIt has the following tags:\n\n- `testcase_name`\n- `testcase_file`\n- `testcase_owner`\n\n### `testreport.testcase.duration` (distribution)\n\nThis metric represents the duration of test cases in seconds.\nIt has the following tags:\n\n- `testcase_name`\n- `testcase_conclusion` (`success` or `failure`)\n- `testcase_file`\n- `testcase_owner`\n\nThis action sends test cases **slower than 1 second by default**.\nYou can set `filter-test-case-slower-than` to send all test cases.\n:warning: It may increase the custom metrics cost.\n\n```yaml\n- uses: quipper/test-report-observability-action@v0\n  with:\n    junit-xml-path: '**/junit.xml'\n    filter-test-case-slower-than: 0\n```\n\n### `testreport.testfile.duration` (distribution)\n\nThis metric represents the duration of test files in seconds.\nIt has the following tags:\n\n- `testfile_name`\n- `testfile_owner`\n\nThis action sends test files **slower than 1 second by default**.\nYou can set `filter-test-file-slower-than` to send all test files.\n:warning: It may increase the custom metrics cost.\n\n```yaml\n- uses: quipper/test-report-observability-action@v0\n  with:\n    junit-xml-path: '**/junit.xml'\n    filter-test-file-slower-than: 0\n```\n\n## Tags\n\n### Owner tags\n\nIf the repository has a [CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location) file,\nthis action adds the following tags to the metrics:\n\n- `testcase_owner`\n- `testfile_owner`\n\nIf the test report contains a relative path to the test case file,\nyou can set `test-case-base-directory` to resolve the path.\n\n```yaml\n- uses: quipper/test-report-observability-action@v0\n  with:\n    junit-xml-path: microservice/junit.xml\n    test-case-base-directory: microservice\n```\n\n## Specification\n\n### Inputs\n\n| Name                           | Default        | Description                                              |\n| ------------------------------ | -------------- | -------------------------------------------------------- |\n| `junit-xml-path`               | (required)     | Glob pattern to the JUnit XML file(s)                    |\n| `metric-name-prefix`           | `testreport`   | Prefix of the name of metrics                            |\n| `filter-test-file-slower-than` | 1              | Filter test files slower than the threshold (in seconds) |\n| `filter-test-case-slower-than` | 1              | Filter test cases slower than the threshold (in seconds) |\n| `enable-metrics`               | \u003csup\u003e\\*1\u003c/sup\u003e | If false, do not send the metrics to Datadog             |\n| `send-test-case-success`       | false          | Send succeeded test cases                                |\n| `send-test-case-failure`       | true           | Send failed test cases                                   |\n| `test-case-base-directory`     | -              | Base directory to resolve the test case file path        |\n| `datadog-api-key`              | -              | Datadog API key                                          |\n| `datadog-site`                 | -              | Datadog site                                             |\n| `datadog-tags`                 | -              | Datadog tags                                             |\n\n\u003csup\u003e\\*1\u003c/sup\u003e See [action.yaml](action.yaml) for the default value.\n\n### Outputs\n\nNone.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquipper%2Ftest-report-observability-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquipper%2Ftest-report-observability-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquipper%2Ftest-report-observability-action/lists"}