{"id":20533539,"url":"https://github.com/joeychilson/pinned","last_synced_at":"2026-04-24T22:32:00.549Z","repository":{"id":151693745,"uuid":"624295255","full_name":"joeychilson/pinned","owner":"joeychilson","description":"A simple REST API service that serves pinned repositories for users and organizations.","archived":false,"fork":false,"pushed_at":"2023-04-06T07:06:58.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-01T05:02:02.693Z","etag":null,"topics":["api","github","go","golang","pinned"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joeychilson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-06T06:48:17.000Z","updated_at":"2024-02-19T09:24:55.000Z","dependencies_parsed_at":"2023-06-04T04:45:15.470Z","dependency_job_id":null,"html_url":"https://github.com/joeychilson/pinned","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joeychilson/pinned","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeychilson%2Fpinned","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeychilson%2Fpinned/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeychilson%2Fpinned/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeychilson%2Fpinned/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joeychilson","download_url":"https://codeload.github.com/joeychilson/pinned/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeychilson%2Fpinned/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32243173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","github","go","golang","pinned"],"created_at":"2024-11-16T00:22:07.425Z","updated_at":"2026-04-24T22:32:00.535Z","avatar_url":"https://github.com/joeychilson.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pinned REST API Service\n\nThis is a simple REST API service that serves pinned repositories for users and organizations on GitHub. The service is built using the Go and utilizes the GitHub GraphQL API to retrieve pinned repositories for a given user. It useful for showing pinned repositories on your website or blog.\n\n## Usage\n\nBefore using this service, you will need a personal access token from GitHub. You can create a new token by following the instructions [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).\n\nYou need scopes `public_repo` and `read:org` to use this service.\n\nOnce you have a token, set it as an environment variable:\n\n```bash\nexport GITHUB_TOKEN=your_personal_access_token\n```\n\n- `/user/:username` - Returns a JSON response containing the pinned repositories for the specified GitHub user.\n- `/org/:orgname` - Returns a JSON response containing the pinned repositories for the specified GitHub organization.\n\nFor example\n\n```bash\ncurl http://localhost:8080/user/joeychilson\n\ncurl http://localhost:8080/org/microsoft\n```\n\nThis will return a JSON response containing the pinned repositories for the specified user or organization.\n\n```json\n[\n  {\n    \"name\": \"vscode\",\n    \"description\": \"Visual Studio Code\",\n    \"url\": \"https://github.com/microsoft/vscode\",\n    \"fork_count\": 25261,\n    \"stargazer_count\": 144595,\n    \"language\": \"TypeScript\",\n    \"updated_at\": \"2023-04-06T06:47:49Z\",\n    \"created_at\": \"2015-09-03T20:23:38Z\"\n  }\n]\n```\n\n## Rate Limiting\n\nThe service includes rate limiting functionality to prevent abuse of the GitHub API. If the rate limit has been reached, the service will return a 429 Too Many Requests response with a Retry-After header indicating when the rate limit will reset.\n\nYou can view the current rate limit status by checking the headers in the response. The following headers are included:\n\n- `X-RateLimit-Limit` - The maximum number of requests you're permitted to make per hour.\n- `X-RateLimit-Remaining` - The number of requests remaining in the current rate limit window.\n- `X-RateLimit-Reset` - The time at which the current rate limit window resets in UTC epoch seconds.\n\nGitHub's graphql rate limit is 5000 points per hour. This service uses 1 point per request, so it should be able to handle 1.3 requests per second without hitting the rate limiter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeychilson%2Fpinned","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoeychilson%2Fpinned","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeychilson%2Fpinned/lists"}