gh-run-failure
<general_guidelines>
- Assume the
ghtool is installed and configured. - Avoid printing full logs; focus on the failing step.
- For large logs, prefer downloading artifacts.
- If a test case failed, specify which test and how to run it locally. </general_guidelines>
List recent runs
Inspect a single run
Show only failed jobs or steps
View failed jobs/steps output
To focus on a specific job, first list them: gh run view "$RUN_ID" --json jobs --jq '.jobs[] | "(.databaseId)\t(.name)\t(.conclusion)"'
Then fetch that job's log: JOB_ID=987654321 gh run view "$RUN_ID" --job "$JOB_ID" --log
List artifacts from a run
Download a specific artifact
After downloading, search locally for errors: rg -n "error|fail|exception" /tmp/github-run-"$RUN_ID"
Compare failed and latest successful run
Get latest successful run ID:
BRANCH=main
OK=$(gh run list --branch "$BRANCH" --limit 50 --json databaseId,conclusion
--jq '.[] | select(.conclusion=="success") | .databaseId' | head -n1)
echo "$OK"
Diff their SHAs: FAIL_SHA=$(gh run view "$RUN_ID" --json headSha --jq .headSha) OK_SHA=$(gh run view "$OK" --json headSha --jq .headSha) gh api repos/:owner/:repo/compare/"$OK_SHA"..."$FAIL_SHA" --jq '.commits[].commit.message' | sed 's/^/- /'