hermes-agent/.github/workflows
Teknium 5e9d7a7661
fix(skills-hub): stop shipping a degenerate index when GitHub taps collapse (#42347)
The Skills Hub lost every api.github.com-backed source — the OpenAI,
Anthropic, HuggingFace, NVIDIA, gstack, Claude Marketplace and Well-Known
tabs all vanished — while ClawHub/skills.sh/LobeHub/browse.sh survived. A
GitHub API rate limit during the docs-deploy crawl zeroed all three
api.github.com sources (github / claude-marketplace / well-known) at once.

Two compounding bugs let the broken index reach the live site:

1. build_skills_index.py wrote the output file BEFORE the health check, so
   even when the github floor (30) tripped and the script exited 2, the
   degenerate file was already on disk. deploy-site.yml then swallowed the
   exit code with `|| echo non-fatal` and extract-skills.py read the partial
   index. Fix: run the health check first, write the file only when healthy,
   exit without writing on failure. Removed the non-fatal swallow in
   deploy-site.yml so a collapse fails the deploy and the last good site
   stays live (Pages serves the previous build).

2. The build-time GitHub listing path returned [] on a 403 rate-limit without
   retrying or flagging it, so a rate-limited crawl looked identical to an
   empty source. Fix: a shared _github_get() helper on GitHubSource with
   retry/backoff (honors Retry-After / X-RateLimit-Reset on 403/429, backs
   off on 5xx + transport errors) and flags is_rate_limited. Routed
   _list_skills_in_repo and _fetch_file_content through it; gave
   ClaudeMarketplaceSource a persistent GitHubSource + is_rate_limited so the
   builder can name the rate limit as the cause instead of '0 results'.

Added tests/scripts/test_build_skills_index_health.py pinning both contracts:
a degenerate crawl exits non-zero and writes no file; a healthy crawl writes
the index with github/claude-marketplace/well-known all present.
2026-06-08 15:21:28 -07:00
..
build-windows-installer.yml add a github action to build& sign a windows installer 2026-05-31 22:09:44 -04:00
contributor-check.yml ci: ensure required checks always report status 2026-05-29 09:17:01 -07:00
deploy-site.yml fix(skills-hub): stop shipping a degenerate index when GitHub taps collapse (#42347) 2026-06-08 15:21:28 -07:00
docker-lint.yml ci(docker): add hadolint + shellcheck for container build inputs 2026-05-24 18:05:14 -07:00
docker-publish.yml fix(windows): rip out unused submodule support in installer & docker & docs 2026-06-03 03:01:37 -07:00
docs-site-checks.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
history-check.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
lint.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
nix-lockfile-fix.yml fix(nix): cold npm builds + fix-lockfiles real-build verification + auto-fix workflow (#41867) 2026-06-08 12:41:37 +05:30
nix.yml ci(nix): fold package+devShell builds into flake check 2026-06-02 19:14:18 -04:00
osv-scanner.yml fix(node/nix): consolidate workspace lockfile + update all consumers 2026-06-02 20:28:18 -04:00
skills-index-freshness.yml feat(skills-hub): health checks, freshness badge, and a watchdog cron (#32345) 2026-05-25 23:10:45 -07:00
skills-index.yml fix(skills-hub): show every catalog source on /docs/skills (skills.sh, ClawHub, browse.sh, OpenAI, …) (#32336) 2026-05-25 18:34:54 -07:00
supply-chain-audit.yml ci: harden supply-chain gate jobs against changes-job failure 2026-05-29 09:17:01 -07:00
tests.yml fix(packaging): ship locales/ i18n catalogs in wheel, sdist, and Nix (#38383) 2026-06-03 12:00:27 -07:00
upload_to_pypi.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
uv-lockfile-check.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00