A Ruby serverless application that fetches public repositories along with their language data from GitHub users, deployed on Vercel.
- GitHub App Authentication: Uses JWT tokens for secure GitHub API access
- Repository Data: Fetches comprehensive repository information including:
- Name and description
- Programming languages with byte counts
- Fork and star counts
- Creation and update dates
- RESTful API: Clean JSON endpoints for easy integration
- Error Handling: Comprehensive error handling for API limits and failures
- Vercel Ready: Configured for serverless deployment on Vercel
- Edge Caching: Optimized response caching using
stale-while-revalidatefor fast, up-to-date responses
curl https://github-project-fetch.vercel.app/api/projects?username=octocatFetches all public repositories and their language information for a given GitHub username. Example: octocat
Response Example:
{
"username": "octocat",
"projects_count": 8,
"projects": [
{
"name": "linguist",
"description": "Language Savant. If your repository's language is being reported incorrectly, send us a pull request!",
"languages": {
"Ruby": 204865,
"Shell": 910
},
"forks_count": 219,
"stargazers_count": 576,
"html_url": "https://github.com/octocat/linguist",
"created_at": "2016-08-02 17:35:14 UTC",
"updated_at": "2025-08-03 07:36:00 UTC"
}
...curl https://github-project-fetch.vercel.app/apiReturns API information and available endpoints.
curl https://github-project-fetch.vercel.app/api/healthReturns the health status of the GitHub API connection.
📝 Note: This documentation is for developers who have forked this repository. If you're looking to use the API directly, go back up here.
- Development Guide - Setup, testing, and architecture details
- Deployment Guide - Installation and deployment instructions
- CI/CD Documentation - Continuous integration and deployment workflows
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
Built with 🪄 by Joe Sharp
