Broken Links Report #36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Broken Links Report | |
| on: | |
| schedule: | |
| - cron: "0 2 * * 6" | |
| workflow_dispatch: | |
| concurrency: | |
| group: broken-links-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| check-links: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| permissions: | |
| contents: read | |
| issues: write | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 | |
| with: | |
| go-version-file: go.mod | |
| - name: Build | |
| run: go build -o awesome-docker ./cmd/awesome-docker | |
| - name: Run Link Check | |
| id: link_check | |
| run: ./awesome-docker ci broken-links --issue-file broken_links_issue.md --github-output "$GITHUB_OUTPUT" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Create/Update Issue for Broken Links | |
| if: steps.link_check.outputs.has_errors == 'true' | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # ratchet:actions/github-script@v9.0.0 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| const issueBody = fs.readFileSync('broken_links_issue.md', 'utf8'); | |
| const issues = await github.rest.issues.listForRepo({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| state: 'open', | |
| labels: 'broken-links', | |
| per_page: 1 | |
| }); | |
| if (issues.data.length > 0) { | |
| await github.rest.issues.update({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issues.data[0].number, | |
| body: issueBody | |
| }); | |
| } else { | |
| await github.rest.issues.create({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| title: 'Broken Links Detected', | |
| body: issueBody, | |
| labels: ['broken-links', 'bug'] | |
| }); | |
| } | |
| - name: Close Issue if No Errors | |
| if: steps.link_check.outputs.has_errors == 'false' | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # ratchet:actions/github-script@v9.0.0 | |
| with: | |
| script: | | |
| const issues = await github.rest.issues.listForRepo({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| state: 'open', | |
| labels: 'broken-links', | |
| per_page: 1 | |
| }); | |
| if (issues.data.length > 0) { | |
| await github.rest.issues.update({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issues.data[0].number, | |
| state: 'closed', | |
| state_reason: 'completed' | |
| }); | |
| } |