name: Update contributors on: push: branches: [main] schedule: # GitHub's contributors API is cached and lags a merge by up to ~24h, so a # weekly pass catches anyone the push-triggered run was too early to see. - cron: '17 4 * * 1' workflow_dispatch: # Only one run at a time; a burst of merges must not race on README.md. concurrency: group: update-contributors cancel-in-progress: false jobs: update: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Regenerate the contributor wall env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: python3 tools/update-contributors.py - name: Commit if it changed run: | git config user.name "mukul975" git config user.email "mukuljangra5@gmail.com" git add README.md if git diff --staged --quiet; then echo "No new contributors." exit 0 fi git commit -m "chore: update contributor wall" # Another workflow (update-index) may have pushed while this ran. git pull --rebase --autostash origin main git push