Skip to content

ci: remove broken links and add ecosystem link validator#6421

Merged
mcollina merged 11 commits intomainfrom
fix/ecosystem-broken-links
Mar 1, 2026
Merged

ci: remove broken links and add ecosystem link validator#6421
mcollina merged 11 commits intomainfrom
fix/ecosystem-broken-links

Conversation

@mcollina
Copy link
Member

Summary

  • Remove 24 community plugins with inaccessible GitHub repositories (404 or abandoned accounts)
  • Update 5 URLs that were redirecting (301) to new locations
  • Add validation script (scripts/validate-ecosystem-links.js) to check all GitHub links
  • Add weekly GitHub Action (.github/workflows/validate-ecosystem-links.yml) to automatically detect broken links

Removed plugins

Abandoned accounts (as reported in security advisory):

  • @fastify-userland/request-id, @fastify-userland/typeorm-query-runner, @fastify-userland/workflows
  • fastify-http-client (kenuyx)
  • fastify-knexjs, fastify-knexjs-mock, fastify-mongo-memory (chapuletta)
  • fastify-objectionjs (jarcodallo)
  • fastify-slonik (Unbuttun)

Additional broken links found by validation:

  • fastify-autocrud, fastify-file-upload, fastify-firebase, fastify-firebase-auth
  • fastify-nats, fastify-orientdb, fastify-socket.io, fastify-sse-v2
  • fastify-tokenize, fastify-twitch-ebs-tools, fastify-vite (community), typeorm-fastify-plugin

Updated redirects

Old URL New URL
zeit/next.js vercel/next.js
clerkinc/javascript clerk/javascript
nucleode/arecibo ducktors/arecibo
squaremo/amqp.node amqp-node/amqplib
Dev-Manny/fastify-appwrite maniecodes/fastify-appwrite

Test plan

  • Run node scripts/validate-ecosystem-links.js with GITHUB_TOKEN - all 320 links pass
  • Verify GitHub Action runs successfully on schedule

- Remove 24 plugins with inaccessible GitHub repositories
- Update 5 URLs that were redirecting to new locations
- Add validation script (scripts/validate-ecosystem-links.js)
- Add weekly GitHub Action to detect broken links

Removed plugins (404/abandoned):
- @fastify-userland/request-id, typeorm-query-runner, workflows
- fastify-http-client, fastify-knexjs, fastify-knexjs-mock
- fastify-mongo-memory, fastify-objectionjs, fastify-slonik
- fastify-autocrud, fastify-file-upload, fastify-firebase
- fastify-firebase-auth, fastify-nats, fastify-orientdb
- fastify-socket.io, fastify-sse-v2, fastify-tokenize
- fastify-twitch-ebs-tools, fastify-vite, typeorm-fastify-plugin

Updated redirects:
- zeit/next.js -> vercel/next.js
- clerkinc/javascript -> clerk/javascript
- nucleode/arecibo -> ducktors/arecibo
- squaremo/amqp.node -> amqp-node/amqplib
- Dev-Manny/fastify-appwrite -> maniecodes/fastify-appwrite
@github-actions github-actions bot added documentation Improvements or additions to documentation github actions Github actions related labels Dec 23, 2025
Copy link
Member

@jean-michelet jean-michelet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GG!

Should we write some unit tests?

Copy link
Member

@gurgunday gurgunday left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Fdawgs Fdawgs changed the title fix: remove broken links and add ecosystem link validator ci: remove broken links and add ecosystem link validator Dec 28, 2025
mcollina and others added 3 commits December 28, 2025 12:01
Co-authored-by: Frazer Smith <frazer.dev@icloud.com>
Signed-off-by: Matteo Collina <matteo.collina@gmail.com>
Co-authored-by: Frazer Smith <frazer.dev@icloud.com>
Signed-off-by: Matteo Collina <matteo.collina@gmail.com>
- Refactor script to use fetch instead of https module for testability
- Export functions for testing while maintaining CLI functionality
- Add comprehensive tests using undici MockAgent for HTTP mocking
- Test extractGitHubLinks with various markdown patterns
- Test checkGitHubRepo for 200, 404, and error scenarios

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jean-michelet
Copy link
Member

Need better code coverage.

Copy link
Member

@jean-michelet jean-michelet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the heavy use of monkey patching points to a lack of abstraction in the API, but it is acceptable for a simple CI job.

@mcollina
Copy link
Member Author

Addressed the latest review feedback in 26b5e700:

  • updated .github/workflows/validate-ecosystem-links.yml to actions/checkout@v6 and actions/setup-node@v6
  • hardened checkGitHubRepo() by validating owner/repo format before any request
  • URL-encoded owner/repo path segments for outbound GitHub API requests
  • added a unit test for invalid owner/repo input
  • re-ran the coverage gate (npm run coverage:ci-check-coverage) with 100% coverage across statements/branches/functions/lines

I also resolved the review threads that were actionable from this side.

@mcollina
Copy link
Member Author

@Fdawgs ptal

@mcollina mcollina merged commit 2590592 into main Mar 1, 2026
39 checks passed
@mcollina mcollina deleted the fix/ecosystem-broken-links branch March 1, 2026 21:31
@mcollina mcollina mentioned this pull request Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation github actions Github actions related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants