|
10 | 10 | permissions: |
11 | 11 | contents: read |
12 | 12 | issues: write |
| 13 | + security-events: read |
13 | 14 |
|
14 | 15 | jobs: |
15 | 16 | Weekly_info_for_docs_team: |
|
78 | 79 | | jq -r '.searches | to_entries[] | "- [ ] \(.value.search)", " failures this week: \(.value.count)"' \ |
79 | 80 | >> feedback.md |
80 | 81 |
|
| 82 | + - name: Collect Dependabot alerts for docs |
| 83 | + run: | |
| 84 | + set -eo pipefail # Ensure the script fails on any command error |
| 85 | + manual_dependabot_url="https://github.com/${GITHUB_REPOSITORY}/security/dependabot?q=is%3Aopen+sort%3Anewest+docs" |
| 86 | + echo " " >> feedback.md |
| 87 | + echo "## Open Dependabot alerts for docs" >> feedback.md |
| 88 | + echo "Manual view: ${manual_dependabot_url}" >> feedback.md |
| 89 | + echo " " >> feedback.md |
| 90 | +
|
| 91 | + dependabot_api="https://api.github.com/repos/${GITHUB_REPOSITORY}/dependabot/alerts?state=open&per_page=100" |
| 92 | + alerts_json="$(curl --silent --show-error --location \ |
| 93 | + -H "Accept: application/vnd.github+json" \ |
| 94 | + -H "Authorization: Bearer $GITHUB_TOKEN" \ |
| 95 | + -H "X-GitHub-Api-Version: 2022-11-28" \ |
| 96 | + "${dependabot_api}")" |
| 97 | +
|
| 98 | + if ! jq -e 'type == "array"' >/dev/null <<<"${alerts_json}"; then |
| 99 | + echo "- Could not fetch Dependabot alerts via API with the current token/permissions." >> feedback.md |
| 100 | + echo "- Check manually: ${manual_dependabot_url}" >> feedback.md |
| 101 | + jq -r '"- API response: " + (.message // "unexpected response")' <<<"${alerts_json}" >> feedback.md |
| 102 | + exit 0 |
| 103 | + fi |
| 104 | +
|
| 105 | + docs_alert_count="$(jq '[.[] | select((.dependency.manifest_path // "") | test("(^|/)docs(/|$)"))] | length' <<<"${alerts_json}")" |
| 106 | +
|
| 107 | + if [[ "${docs_alert_count}" -eq 0 ]]; then |
| 108 | + echo "- No open Dependabot alerts found for docs manifests." >> feedback.md |
| 109 | + else |
| 110 | + jq -r '.[] |
| 111 | + | select((.dependency.manifest_path // "") | test("(^|/)docs(/|$)")) |
| 112 | + | "- [ ] [\(.security_advisory.summary)](\(.html_url))", |
| 113 | + " package: \(.dependency.package.name)", |
| 114 | + " ecosystem: \(.dependency.package.ecosystem)", |
| 115 | + " manifest: \(.dependency.manifest_path // \"n/a\")", |
| 116 | + " severity: \(.security_advisory.severity)", |
| 117 | + " state: \(.state)", |
| 118 | + " "' <<<"${alerts_json}" >> feedback.md |
| 119 | + fi |
| 120 | +
|
81 | 121 | - name: Create issue from file |
82 | 122 | if: always() |
83 | 123 | id: weekly-feedback-report |
|
0 commit comments