diff --git a/.github/workflows/update-badges.yml b/.github/workflows/update-badges.yml new file mode 100644 index 0000000..6f80eea --- /dev/null +++ b/.github/workflows/update-badges.yml @@ -0,0 +1,44 @@ +name: Update Badges + +on: + push: + branches: [main] + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +permissions: + contents: write + +jobs: + update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Fetch repo stats + id: api + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + mkdir -p badges + + REPO=$(gh repo view --json stargazerCount,forkCount,latestRelease --jq '.') + + STARS=$(echo "$REPO" | jq -r '.stargazerCount') + FORKS=$(echo "$REPO" | jq -r '.forkCount') + RELEASE=$(echo "$REPO" | jq -r '.latestRelease.tagName // "N/A"') + + echo '{"schemaVersion":1,"label":"release","message":"'"$RELEASE"'","color":"76bad9"}' > badges/release.json + echo '{"schemaVersion":1,"label":"stars","message":"'"$STARS"'","color":"76bad9"}' > badges/stars.json + echo '{"schemaVersion":1,"label":"forks","message":"'"$FORKS"'","color":"76bad9"}' > badges/forks.json + + - name: Deploy to gh-pages + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: badges + destination_dir: badges + commit_message: "Sync badges" + user_name: "github-actions[bot]" + user_email: "github-actions[bot]@users.noreply.github.com" diff --git a/README.md b/README.md index 2a01ef0..d9e1e4b 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@