playbook/antigravity-awesome-skills/.github/workflows/star-history.yml

72 lines
2.1 KiB
YAML

name: Update Star History Chart
on:
workflow_dispatch:
schedule:
# Daily at 06:00 UTC
- cron: "0 6 * * *"
permissions:
contents: write
jobs:
update-star-history:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install SVG renderer
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y librsvg2-bin
- name: Fetch latest chart (SVG) and render PNG
run: |
set -euo pipefail
mkdir -p assets
curl -fsSL \
"https://api.star-history.com/svg?repos=sickn33/antigravity-awesome-skills&type=date&legend=top-left" \
-o /tmp/star-history.svg
rsvg-convert /tmp/star-history.svg -o assets/star-history.png
- name: Refresh README chart cache busters
run: |
set -euo pipefail
cache_bust="$(date -u +%Y%m%d%H%M)"
python3 - <<'PY' "$cache_bust"
import re
import sys
from pathlib import Path
cache_bust = sys.argv[1]
readme_path = Path("README.md")
readme = readme_path.read_text()
def refresh_url(match):
url = match.group(0)
url = re.sub(r"([?&])cache_bust=\d+", "", url)
separator = "&" if "?" in url else "?"
return f"{url}{separator}cache_bust={cache_bust}"
updated = re.sub(
r"https://api\.star-history\.com/(?:svg|chart)\?[^\"<\s]+",
refresh_url,
readme,
)
readme_path.write_text(updated)
PY
- name: Commit and push if changed
run: |
set -euo pipefail
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add README.md assets/star-history.png
if git diff --cached --quiet; then
echo "No changes in star history assets"
exit 0
fi
git commit -m "chore: update star history chart"
git push