Skip to content

Commit 8242f3f

Browse files
committed
fix: skip dependency review when unsupported
1 parent 656bb9c commit 8242f3f

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,60 @@ jobs:
1616
runs-on: ubuntu-latest
1717

1818
steps:
19+
- name: Check dependency review API availability
20+
id: dependency-review-availability
21+
env:
22+
GITHUB_TOKEN: ${{ github.token }}
23+
REPOSITORY: ${{ github.repository }}
24+
BASE_SHA: ${{ github.event.pull_request.base.sha }}
25+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
26+
run: |
27+
response_file="$(mktemp)"
28+
status_code="$(curl --silent --output "$response_file" --write-out '%{http_code}' \
29+
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
30+
-H "Accept: application/vnd.github+json" \
31+
"https://api.github.com/repos/${REPOSITORY}/dependency-graph/compare/${BASE_SHA}...${HEAD_SHA}")"
32+
33+
if [ "$status_code" = "200" ]; then
34+
echo "supported=true" >> "$GITHUB_OUTPUT"
35+
exit 0
36+
fi
37+
38+
if [ "$status_code" = "403" ] || [ "$status_code" = "404" ]; then
39+
echo "supported=false" >> "$GITHUB_OUTPUT"
40+
echo "status_code=$status_code" >> "$GITHUB_OUTPUT"
41+
exit 0
42+
fi
43+
44+
cat "$response_file"
45+
echo "Unexpected dependency review API response: $status_code" >&2
46+
exit 1
47+
1948
- name: Checkout code
49+
if: steps.dependency-review-availability.outputs.supported == 'true'
2050
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2151

2252
- name: Review dependency changes
53+
if: steps.dependency-review-availability.outputs.supported == 'true'
2354
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
2455
with:
2556
fail-on-severity: moderate
2657
fail-on-scopes: development, runtime, unknown
2758

59+
- name: Explain skipped dependency review
60+
if: steps.dependency-review-availability.outputs.supported != 'true'
61+
run: |
62+
echo "::warning title=Dependency review skipped::GitHub dependency review is unavailable for this repository. Enable Dependency graph in repository settings to re-enable this check."
63+
{
64+
echo "## Dependency review skipped"
65+
echo
66+
echo "GitHub's dependency review API returned HTTP ${STATUS_CODE:-unknown} for this repository."
67+
echo
68+
echo "Enable Dependency graph in repository settings to re-enable actions/dependency-review-action."
69+
} >> "$GITHUB_STEP_SUMMARY"
70+
env:
71+
STATUS_CODE: ${{ steps.dependency-review-availability.outputs.status_code }}
72+
2873
secure-install-review:
2974
name: Secure Install Review
3075
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)