GitHub repository choices
Connect a GitHub repository (read-only) and the test pyramid counts the tests in the JUnit reports your GitHub Actions runs save as artifacts. The app reads reports, not source code. Anyone who can see the team’s board can save repositories for it.
Where to find it
Section titled “Where to find it”Open the Team and admin tools menu (gear) and choose Team settings, or open Test pyramid settings with the sliders button of the Test pyramid section. Then expand Test sources and layer rules.
In guided setup, the Test pyramid step has its own repository choice; see Guided setup.
Choose a repository
Section titled “Choose a repository”- Select Load GitHub choices. The first time, choose Sign in with GitHub and sign in with the QA Metrics App. If loading fails, retry or use Sign in again with GitHub to renew the same connection. After returning from sign-in, select Load GitHub choices again.
- Choose an account where the App is installed, then a repository. Use Next accounts and Next repositories for more. Suspended installations, missing Actions read access and unavailable repositories cannot be selected.
- Select Save repository choice. The app checks current Jira and GitHub access again. If a choice moved or someone else changed it, reload before saving.
The step shows the repository’s default branch; reports always come from that branch.
Saved repositories
Section titled “Saved repositories”Load saved repositories lists this team’s choices under Saved repository choices. Names come from the current GitHub choices; a repository without a verified name keeps its numeric ID so it can still be disconnected.
Disconnect repository removes this team’s choice. It stays available when your GitHub sign-in has expired. It does not uninstall the shared GitHub App or change other teams’ choices, and saved sprint snapshots stay unchanged. Reconnecting checks access again.
Only identifiers and connection state are stored with the team. Repository names, source code and GitHub tokens are not stored with the choice; the GitHub sign-in itself is managed by Forge. Saving a choice creates no historical result.
Collect reports
Section titled “Collect reports”Each saved repository has Collect GitHub reports. Collect recent runs finds completed runs on the default branch created in the last 30 days and processes their reports in the background; Refresh collection status shows the progress.
Collection saves up to 999 run records. Saved reports are shown separately for each run, including failed runs with reports. These reports feed the test pyramid.
Automatic collection is set in Administration under Automatic report collection; choose Load collection schedule first: GitHub collection interval is Every 6 hours by default and can be Every 12 hours, Every 24 hours or Paused. The setting applies to all teams on the Jira site.
Automatic collection visits up to five repositories per hour and includes only runs from the last 30 days on the default branch. Manual collection has the same 30-day window.
Inspect a report sample
Section titled “Inspect a report sample”Inspect report checks the connection on one saved repository; Refresh report status reads its saved result, also after reloading the page. The check does not fill sprint metrics.
The sample takes the most recent successful run on the default branch from the last 30 days. More than 100 candidate runs, or more than 3 archives in the run, gives an explicit limit message. Each archive must be at most 2 MiB and contain valid JUnit XML. Background collection has its own limits: up to 16 archives per run, at most 2 MiB together.
Expired, changed or unsupported reports are shown as unavailable, never as zero tests. The result shows tests and summed test duration per layer for each archive; archives may contain overlapping tests. Report contents and test names are not saved.
Test layer rules
Section titled “Test layer rules”Expand Test layer rules and choose Load layer rules. Each saved source then offers Mixed: apply layer rules or Whole repository is one layer; a whole-source choice overrides the rules. Remove saved choice returns a source to Mixed.
Each rule puts tests into Unit, Integration, API, E2E or Outside the pyramid. It matches a File path, Suite name, Artifact name or Workflow ID with Equals, Contains, Ends with or Directory segment, case-sensitive or not.
Directory segment matches a whole folder name, excluding the filename. Suite rules inspect all named enclosing suites. Tests that match no rule, or rules for different layers, stay Unclassified. Rules do not read source code.
Use suggested rules fills the draft with folder and suite name conventions; it does not save them. Add layer rule adds a row (up to 32), and Clear draft rules empties the draft. Nothing applies until Save layer rules.
Set up GitHub test reports helps with the first rules. Publish JUnit reports shows the upload step to add to your workflow. After a collection, pick a repository and choose Load observed report groups, then a group and a layer, and Add observed group to draft.
After saving, reports collected with suite detail follow the new rules on the next read; older reports need collecting again. Old rule versions stay stored, so changing rules does not rewrite what earlier results meant.