{"id":20444113,"url":"https://github.com/tknerr/circleci-redirector","last_synced_at":"2025-10-27T10:44:29.592Z","repository":{"id":145615286,"uuid":"49099042","full_name":"tknerr/circleci-redirector","owner":"tknerr","description":"Extends the CircleCI REST API with bookmarkable URLs for latest build and build artifacts","archived":false,"fork":false,"pushed_at":"2016-01-11T08:14:56.000Z","size":58,"stargazers_count":10,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T23:53:49.899Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://circleci-tkn.rhcloud.com/","language":"Ruby","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/tknerr.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}},"created_at":"2016-01-05T23:28:34.000Z","updated_at":"2019-09-22T09:42:11.000Z","dependencies_parsed_at":"2023-04-18T02:34:59.846Z","dependency_job_id":null,"html_url":"https://github.com/tknerr/circleci-redirector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tknerr/circleci-redirector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fcircleci-redirector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fcircleci-redirector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fcircleci-redirector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fcircleci-redirector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tknerr","download_url":"https://codeload.github.com/tknerr/circleci-redirector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tknerr%2Fcircleci-redirector/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260468772,"owners_count":23013974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-15T09:51:18.871Z","updated_at":"2025-10-27T10:44:29.526Z","avatar_url":"https://github.com/tknerr.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# CircleCI Redirector\n\nExtends the [CircleCI REST API](https://circleci.com/docs/api) with deterministic / bookmarkable URLs for:\n\n * latest build on a specific branch\n * build artifact download links\n\nThe circleci-redirector acts as a drop-in replacement for all GET requests to the CircleCI REST API. It adds a few new URL patterns (see below), but still supports the old ones.\n\nNote that every request is responded with a HTTP 302 redirect to a specific build on CircleCI, so whenever you use this API ensure that your HTTP client follows redirects.\n\n## Public Instance\n\nA public instance of circleci-redirector is running here:\n\n * [https://circleci-tkn.rhcloud.com/](https://circleci-tkn.rhcloud.com/)\n\nIt is being auto-deployed whenever something is committed to `master`. Feel free to use it as-is, or fork this repo and deploy it on your own if you want more control.\n\n## URL Patterns\n\n### New API Endpoints\n\nGet redirected to the latest build on a specific branch:\n\n * `GET /api/v1/project/\u003cuser\u003e/\u003cproject\u003e/tree/\u003cbranch\u003e/latest`\n\nGet redirected to the test results for the latest build on a specific branch:\n\n * `GET /api/v1/project/\u003cuser\u003e/\u003cproject\u003e/tree/\u003cbranch\u003e/latest/tests`\n\nGet redirected to the list of build artifacts for the latest build on a specific branch:\n\n * `GET /api/v1/project/\u003cuser\u003e/\u003cproject\u003e/tree/\u003cbranch\u003e/latest/artifacts`\n\nGet redirected to the download link of a specific build artifact:\n\n * `GET /api/v1/project/\u003cuser\u003e/\u003cproject\u003e/tree/\u003cbranch\u003e/latest/artifacts/\u003cartifact\u003e`\n\n### Existing API Endpoints\n\nEvery other GET request to `/api/v1/*` which does not match the above patterns is being HTTP 302 redirected to the [CircleCI REST API](https://circleci.com/docs/api) as-is, which means you can use it as a drop-in replacement if you want.\n\nPOST and DELETE requests are currently not forwarded or redirected.\n\n## Request Parameters / Authentication Tokens\n\nAll request parameters are preserved when redirecting to the CircleCI API, which also includes the authentication tokens (`circle-token=1234...`) which the [CircleCI REST API](https://circleci.com/docs/api) uses.\n\n\nWhenever you need to transmit sensitive data such as authentication tokens, please:\n\n * use https only\n * consider using per-project auth tokens with limited access\n * consider running your own circleci-redirector\n\n## Development\n\nInstall the gem dependencies:\n\n    $ bundle install\n\nBring up the sinatra webapp in development mode (with automatic reloading):\n\n    $ rackup\n\nAccess the webapp in your browser, hack and reload:\n\n * [http://localhost:9292](http://localhost:9292)\n\n\n## Contributing\n\n 1. Fork it\n 1. Create your feature branch (git checkout -b my-new-feature)\n 1. Commit your changes (git commit -am 'Add some feature')\n 1. Make sure specs are passing (rake spec)\n 1. Push to the branch (git push origin my-new-feature)\n 1. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftknerr%2Fcircleci-redirector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftknerr%2Fcircleci-redirector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftknerr%2Fcircleci-redirector/lists"}