name: Update star history chart on: schedule: # Daily at 03:00 UTC. - cron: "0 3 * * *" workflow_dispatch: {} permissions: contents: write concurrency: group: star-history cancel-in-progress: false jobs: update-chart: # Avoid running this upstream-only maintenance task in forks. if: github.repository == 'bojieli/ai-agent-book' runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install matplotlib run: pip install matplotlib - name: Generate star history chart run: python scripts/gen_star_history.py env: # STAR_HISTORY_TOKEN(细粒度 PAT)如存在则优先,否则用内置 GITHUB_TOKEN, # 读取公开仓库的 stargazers 时间戳不需要额外权限。 GITHUB_TOKEN: ${{ secrets.STAR_HISTORY_TOKEN || secrets.GITHUB_TOKEN }} - name: Commit updated charts run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" # 星标历史数据文件必须一起提交:下次运行据此增量拉取新增星标, # 而不是重新遍历全部 stargazer。 git add assets/star-history-*.png scripts/star-history-data.json git diff --cached --quiet && exit 0 git commit -m "Update star history chart [skip ci]" git push