Skip to content

Latest commit

 

History

History
214 lines (152 loc) · 5.95 KB

File metadata and controls

214 lines (152 loc) · 5.95 KB

Link Checking Implementation Summary

What Was Done

This implementation provides a comprehensive link checking infrastructure for the Awesome-OSINT-For-Everything repository to help maintain the health of 1,479+ links across the README.md file.

Changes Made

1. Fixed package.json Syntax ✅

  • Corrected invalid JSON syntax (unquoted values, comments)
  • Added markdown-link-check as a dependency
  • Added new npm scripts for link checking

2. Created Link Checking Infrastructure ✅

Files Added:

  • .gitignore: Excludes node_modules and generated files from git
  • LINK_CHECK_REPORT.md: Comprehensive documentation about link checking
  • CONTRIBUTING.md: Guidelines for contributors including link checking process
  • scripts/check-links.sh: Automated script for link analysis and reporting

Files Modified:

  • package.json: Added link-check scripts and dependencies

3. GitHub Actions Integration ✅

The repository already has a GitHub Actions workflow (. github/workflows/md-link-check.yml) that:

  • Runs automatically on every push
  • Checks all markdown files for broken links
  • Uses industry-standard link checking tools

How to Use

For Maintainers

Check Links Locally

# 1. Install dependencies (first time only)
npm install

# 2. Quick link check
npm run link-check

# 3. Detailed link check with report
npm run link-check-report

Review Results

After running the link checker:

  1. Check the console output for summary
  2. Review link-check-results.txt for detailed results
  3. Check link-check-summary.md for formatted summary

Monitor GitHub Actions

  1. Go to the Actions tab in the repository
  2. Check the latest "Check Markdown links" workflow
  3. Review any failures and broken links reported

For Contributors

When submitting PRs:

# 1. Make your changes to README.md

# 2. Install dependencies
npm install

# 3. Run link check
npm run link-check

# 4. Fix any broken links before submitting PR

Understanding Link Check Results

Status Symbols

  • (Green checkmark) = Link is working
  • (Red X) = Link is broken or unreachable

Common Status Codes

  • 200: Success - Link is working
  • 301/302: Redirect - Usually fine, but may need updating
  • 403: Forbidden - May be bot protection or authentication required
  • 404: Not Found - Link is definitely broken
  • 429: Too Many Requests - Rate limited
  • 0: Connection failed - Network or DNS issue

Important Notes

⚠️ False Positives: Some working links may appear broken due to:

  • Bot detection (Cloudflare, etc.)
  • Rate limiting from too many requests
  • Geographic restrictions
  • Temporary server downtime

Always manually verify in a browser before removing links!

Link Statistics

  • Total Links: ~1,479 links in README.md
  • Categories: 70+ OSINT tool categories
  • Update Frequency: Should be checked monthly

Maintenance Workflow

Monthly Maintenance (Recommended)

  1. Run comprehensive check:

    npm run link-check-report
  2. Review broken links:

    • Open link-check-summary.md
    • Identify broken links
  3. Verify manually:

    • Test each broken link in browser
    • Check if service moved or shut down
    • Search for alternatives
  4. Update README.md:

    • Replace dead links with working alternatives
    • Remove permanently dead services
    • Update descriptions if needed
  5. Document changes:

    • Note what was changed in commit message
    • Create issue if major service disappeared

GitHub Actions Monitoring

The automated workflow runs on every push:

  1. Check the Actions tab after each push
  2. Review any failures
  3. Fix broken links before merging PRs

Troubleshooting

Link Check Fails Due to Network

If running in restricted environments:

  • Link checking may show all links as broken (Status: 0)
  • This is due to firewall/internet restrictions
  • Rely on GitHub Actions results instead

Too Many Rate Limit Errors (429)

If you see many 429 errors:

  • Wait a few minutes between checks
  • The script includes user-agent headers to reduce this
  • GitHub Actions has better success rate

Script Permission Denied

If check-links.sh won't run:

chmod +x scripts/check-links.sh

Next Steps

Immediate Actions

  1. Review the GitHub Actions tab for current link status
  2. Check if any critical broken links need immediate fixing
  3. Share CONTRIBUTING.md with potential contributors

Future Enhancements

Consider adding:

  1. Scheduled checks: Weekly automated checks via GitHub Actions cron
  2. Issue automation: Auto-create issues for broken links
  3. PR comments: Auto-comment on PRs with broken link notifications
  4. Status badge: Add link health badge to README
  5. Link grouping: Categorize broken links by section for easier fixing

Documentation

All documentation is available in the repository:

  • LINK_CHECK_REPORT.md: Detailed link checking guide
  • CONTRIBUTING.md: Contribution guidelines
  • README.md: Main project documentation
  • markdown-link-check-config.json: Link checker configuration
  • .github/workflows/md-link-check.yml: GitHub Actions workflow

Support

For questions or issues:

  1. Read the documentation files
  2. Check existing GitHub issues
  3. Create a new issue with details
  4. Tag maintainers if urgent

Summary

The link checking infrastructure is now in place and ready to use. The repository has:

✅ Automated link checking via GitHub Actions ✅ Local link checking capability ✅ Detailed documentation and guides ✅ Scripts for analysis and reporting ✅ Contribution guidelines ✅ Proper .gitignore setup

The infrastructure is ready for use. The next step is regular monitoring and maintenance of the 1,479+ links to keep this OSINT resource collection up-to-date and valuable for the community.


Created: 2026-02-11 Purpose: Link checking implementation for Awesome-OSINT-For-Everything Status: ✅ Complete and ready to use