{"id":17160236,"url":"https://github.com/obfusk/fdroid-release-redirector","last_synced_at":"2025-10-30T23:48:21.803Z","repository":{"id":145667071,"uuid":"584602609","full_name":"obfusk/fdroid-release-redirector","owner":"obfusk","description":"fdroid-release-redirector - redirector for code forges that don't have stable URLs for release assets","archived":false,"fork":false,"pushed_at":"2023-12-16T17:54:47.000Z","size":47,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-10T15:45:07.307Z","etag":null,"topics":["assets","codeberg","f-droid","gitlab","notabug","redirector"],"latest_commit_sha":null,"homepage":"https://fdroid-release-redirector.herokuapp.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/obfusk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.AGPLv3","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,"zenodo":null}},"created_at":"2023-01-03T03:09:53.000Z","updated_at":"2024-03-31T01:00:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"57391af4-812c-4bd6-a1d7-3d0d779c35a8","html_url":"https://github.com/obfusk/fdroid-release-redirector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/obfusk/fdroid-release-redirector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Ffdroid-release-redirector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Ffdroid-release-redirector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Ffdroid-release-redirector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Ffdroid-release-redirector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obfusk","download_url":"https://codeload.github.com/obfusk/fdroid-release-redirector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Ffdroid-release-redirector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281902521,"owners_count":26581164,"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","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["assets","codeberg","f-droid","gitlab","notabug","redirector"],"created_at":"2024-10-14T22:24:09.880Z","updated_at":"2025-10-30T23:48:21.767Z","avatar_url":"https://github.com/obfusk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- SPDX-FileCopyrightText: 2023 FC Stegerman \u003cflx@obfusk.net\u003e --\u003e\n\u003c!-- SPDX-License-Identifier: AGPL-3.0-or-later --\u003e\n\n[![CI](https://github.com/obfusk/fdroid-release-redirector/workflows/CI/badge.svg)](https://github.com/obfusk/fdroid-release-redirector/actions?query=workflow%3ACI)\n[![AGPLv3+](https://img.shields.io/badge/license-AGPLv3+-blue.svg)](https://www.gnu.org/licenses/agpl-3.0.html)\n\n# fdroid-release-redirector\n\nRedirector for code forges that don't have stable URLs for release\nassets (by default).\n\n## Example\n\n```sh\n$ SERVER=https://fdroid-release-redirector.herokuapp.com\n$ NAMESPACE=some-user PROJECT=some-project RELEASE=v1.0\n$ curl -sI $SERVER/gitlab/$NAMESPACE/$PROJECT/$RELEASE/release.apk | grep ^Location:\nLocation: https://example.com/some.apk\n```\n\n## F-Droid reproducible builds\n\nWhen using `Binaries:` for F-Droid reproducible builds, you can use something\nlike this in the `metadata/your.app.id.yml`:\n\n```yaml\nBinaries: https://fdroid-release-redirector.herokuapp.com/gitlab/yourusername/yourapp/v%v/app-release.apk\n```\n\nNB: replace forge (`gitlab`), username (`yourusername`), repository (`yourapp`),\ntag format, and filename (`app-release.apk`) with appropriate values.\n\n## Supported forges\n\n### Codeberg\n\nNB: it turns out that Codeberg already has stable URLs, even though the download\npage uses non-stable ones:\n`https://codeberg.org/\u003cnamespace\u003e/\u003cproject\u003e/releases/download/\u003ctag\u003e/\u003cfilename\u003e`.\n\nAPI: `/codeberg/\u003cnamespace\u003e/\u003cproject\u003e/\u003crelease-tag\u003e/\u003cfilename\u003e`\n\n`filename` must match the `name` of one of the assets.\n\n### GitLab\n\nAPI: `/gitlab/\u003cnamespace\u003e/\u003cproject\u003e/\u003crelease\u003e/\u003cfilename\u003e`\n\n`filename` must match the filename of one of the asset links or a file upload in\nthe release description.\n\n### NotABug\n\nAPI: `/notabug/\u003cnamespace\u003e/\u003cproject\u003e/\u003crelease\u003e/\u003cfilename\u003e`\n\n`filename` must match the filename of one of the downloads.\n\nNB: there does not seem to be a JSON API for releases like for the other forges,\nso the project's releases HTML page is scraped (which could break if the HTML\nchanges); pagination is currently not supported (so the release is only found if\nit is on the first page).\n\n## Unsupported forges\n\n* GitHub (no need, since release assets already have stable URLs)\n\n## License\n\n[![AGPLv3+](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html)\n\n\u003c!-- vim: set tw=70 sw=2 sts=2 et fdm=marker : --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobfusk%2Ffdroid-release-redirector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobfusk%2Ffdroid-release-redirector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobfusk%2Ffdroid-release-redirector/lists"}