name: refresh-contributors-wall on: # Daily refresh keeps the contributors wall CDN cache moving even when # contributor data changes outside pull request merges. schedule: - cron: '0 1 * * *' # Manual trigger: Use when you need to force-refresh the contributors wall # outside the daily schedule (e.g., after a bulk contributor update or # after fixing the cache_bust pattern in README files). workflow_dispatch: permissions: contents: write pull-requests: write concurrency: group: refresh-contributors-wall cancel-in-progress: true jobs: refresh: name: Refresh contributors wall cache bust runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6.0.2 - name: Refresh cache bust date run: | DATE="$(date -u +%F)" MATCHES="$(perl -0ne '$count += () = /cache_bust=\d{4}-\d{2}-\d{2}/g; END { print $count + 0 }' README*.md)" if [ "$MATCHES" -eq 0 ]; then echo "Warning: No cache_bust patterns found. README format may have changed." exit 1 fi perl -0pi -e "s/cache_bust=\d{4}-\d{2}-\d{2}/cache_bust=$DATE/g" README*.md - name: Create refresh pull request uses: peter-evans/create-pull-request@v8 with: # Auth mirrors the metrics workflow: prefer a repository token that can # create pull requests, with GITHUB_TOKEN as a fallback for repos where # Actions-created PRs are allowed. token: ${{ secrets.METRICS_TOKEN || secrets.GITHUB_TOKEN }} add-paths: 'README*.md' branch: automation/refresh-contributors-wall delete-branch: true commit-message: 'docs(readme): refresh contributors wall' title: 'docs(readme): refresh contributors wall' body: | Refreshes the contributors wall cache bust date in README files. Generated by the scheduled `refresh-contributors-wall` workflow.