mirror of
https://github.com/OpenClaudia/openclaudia-skills.git
synced 2026-09-19 08:06:49 +08:00
tools: add update-star-chart.sh to regenerate the README star chart
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
# Regenerate assets/star-history.png from the repo's own star data.
|
||||
# Needs a gh login with admin/collab access to the repo (GitHub restricted
|
||||
# the stargazers API to admins/collaborators in June 2026), plus matplotlib.
|
||||
set -e
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
gh api -H "Accept: application/vnd.github.star+json" --paginate \
|
||||
"repos/OpenClaudia/openclaudia-skills/stargazers?per_page=100" \
|
||||
--jq '.[].starred_at' > /tmp/openclaudia-stars.txt
|
||||
|
||||
python3 - <<'EOF'
|
||||
import matplotlib
|
||||
matplotlib.use('Agg')
|
||||
import matplotlib.pyplot as plt
|
||||
from datetime import datetime
|
||||
|
||||
dates = sorted(datetime.strptime(l.strip(), '%Y-%m-%dT%H:%M:%SZ')
|
||||
for l in open('/tmp/openclaudia-stars.txt'))
|
||||
fig, ax = plt.subplots(figsize=(8, 4.5), dpi=150)
|
||||
ax.plot(dates, range(1, len(dates) + 1), color='#2f81f7', linewidth=2)
|
||||
ax.fill_between(dates, range(1, len(dates) + 1), alpha=0.1, color='#2f81f7')
|
||||
ax.set_title('OpenClaudia/openclaudia-skills — Star History', fontsize=12)
|
||||
ax.set_ylabel('GitHub Stars')
|
||||
ax.grid(alpha=0.3)
|
||||
fig.autofmt_xdate()
|
||||
fig.tight_layout()
|
||||
fig.savefig('assets/star-history.png')
|
||||
print(f'{len(dates)} stars')
|
||||
EOF
|
||||
|
||||
sed -i '' -E "s/<sub>Updated [0-9]{4}-[0-9]{2}-[0-9]{2}\./<sub>Updated $(date +%F)./" README.md
|
||||
rm -f /tmp/openclaudia-stars.txt
|
||||
Reference in New Issue
Block a user