--- # yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json name: "Lychee" on: workflow_dispatch: push: branches: ["main"] paths: [".github/workflows/lychee.yaml"] schedule: - cron: "0 0 * * *" env: WORKFLOW_ISSUE_TITLE: "Link Checker Dashboard 🔗" jobs: lychee: name: Lychee runs-on: ubuntu-latest steps: - name: Generate Token uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2 id: app-token with: app-id: "${{ secrets.BOT_APP_ID }}" private-key: "${{ secrets.BOT_APP_PRIVATE_KEY }}" - name: Checkout Default Branch uses: actions/checkout@v4 with: token: "${{ steps.app-token.outputs.token }}" - name: Scan For Broken Links uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2 env: GITHUB_TOKEN: "${{ steps.app-token.outputs.token }}" with: args: --verbose --no-progress --exclude-mail './**/*.md' output: /tmp/results.md - name: Find Link Checker Issue id: find-issue shell: bash env: GH_TOKEN: "${{ steps.app-token.outputs.token }}" run: | issue_number=$( \ gh issue list \ --search "in:title ${{ env.WORKFLOW_ISSUE_TITLE }}" \ --state open \ --json number \ | jq --raw-output '.[0].number' \ ) echo "issue-number=${issue_number}" >> $GITHUB_OUTPUT echo "${issue_number}" - name: Create or Update Issue uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5 with: token: "${{ steps.app-token.outputs.token }}" title: "${{ env.WORKFLOW_ISSUE_TITLE }}" issue-number: "${{ steps.find-issue.outputs.issue-number || '' }}" content-filepath: /tmp/results.md