name: links

on:
  push:
    branches: [main]
    paths:
      - '**/*.md'
      - '.github/workflows/links.yml'
      - '.lycheeignore'
  pull_request:
    paths:
      - '**/*.md'
      - '.github/workflows/links.yml'
      - '.lycheeignore'
  schedule:
    # Weekly, Monday 07:13 UTC — catches external link rot.
    - cron: '13 7 * * 1'

permissions:
  contents: read
  issues: write

jobs:
  links:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run lychee link checker
        id: lychee
        uses: lycheeverse/lychee-action@v2
        with:
          args: >-
            --no-progress
            --cache
            --max-cache-age 1d
            --exclude-path node_modules
            --exclude-path .git
            './**/*.md'
          fail: true
          token: ${{ secrets.GITHUB_TOKEN }}
