{"id":15012799,"url":"https://github.com/Metaswitch/apt-transport-blob","last_synced_at":"2025-10-19T14:31:20.143Z","repository":{"id":226001524,"uuid":"766877506","full_name":"Metaswitch/apt-transport-blob","owner":"Metaswitch","description":"apt-transport-blob is a transport for apt that allows users to access an apt repository on Azure Blob Storage","archived":false,"fork":false,"pushed_at":"2025-01-09T00:02:11.000Z","size":375,"stargazers_count":6,"open_issues_count":4,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-15T13:14:46.662Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/Metaswitch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-04T09:48:38.000Z","updated_at":"2025-01-09T13:59:43.000Z","dependencies_parsed_at":"2024-05-02T14:28:10.122Z","dependency_job_id":"4ae3b304-0043-4679-b915-9ff33a07dd80","html_url":"https://github.com/Metaswitch/apt-transport-blob","commit_stats":{"total_commits":39,"total_committers":4,"mean_commits":9.75,"dds":"0.41025641025641024","last_synced_commit":"124b7f3ead263061062c396f89b73965ad2e21a7"},"previous_names":["microsoft/apt-transport-blob","metaswitch/apt-transport-blob"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Metaswitch%2Fapt-transport-blob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Metaswitch%2Fapt-transport-blob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Metaswitch%2Fapt-transport-blob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Metaswitch%2Fapt-transport-blob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Metaswitch","download_url":"https://codeload.github.com/Metaswitch/apt-transport-blob/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237143791,"owners_count":19262275,"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-09-24T19:43:14.269Z","updated_at":"2025-10-19T14:31:20.132Z","avatar_url":"https://github.com/Metaswitch.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# apt-transport-blob\n\nA transport which allows installation of Debian packages from Azure Blob Storage.\n\nImplements the APT method interface as documented [here](http://www.fifi.org/doc/libapt-pkg-doc/method.html/ch2.html).\n\n## Building\n\n### Executable\n\nTo build the `blob` executable, use `cargo`:\n\n```bash\ncargo build --release\n```\n\nThis creates the `blob` executable in your standard Cargo output directory,\nusually `target/release`.\n\n### Debian package\n\nTo create a Debian package, use `cargo deb`:\n\n```bash\n$ cargo deb\n    Finished release [optimized] target(s) in 0.43s\n/code/apt-transport-blob/target/debian/apt-transport-blob_\u003cversion\u003e_amd64.deb\n```\n\nThis creates a Debian package in `target/debian`. It contains the `blob`\nexecutable which installs to `/usr/lib/apt/methods/blob`.\n\n## Usage\n\nTo use this tool, it needs to be installed in `/usr/lib/apt/methods` as `blob`.\nThis allows apt to resolve data sources with the `blob://` prefix.\n\n## Authentication\n\nThis tool allows several forms of authentication. The user must ensure that\nthe credential they use is authorised to access the blob container with\nthe `Storage Blob Data Reader` role.\n\nCredentials are prioritised as follows:\n\n- Storage bearer token: a bearer token created with the `storage.azure.com`\n  scope set as the environment variable `AZURE_STORAGE_BEARER_TOKEN`.\n\n  This bearer token can be obtained programmatically in Azure CLI by running\n  ```bash\n  az account get-access-token --output tsv --query accessToken --resource https://storage.azure.com\n  ```\n\n- Environment variables: allows authentication via the mechanisms described in\n  [environment_credentials.rs](https://github.com/Azure/azure-sdk-for-rust/blob/main/sdk/identity/src/token_credentials/environment_credentials.rs#L19) - i.e. setting the\n  environment variables:\n  - `AZURE_TENANT_ID`: The Azure Active Directory tenant/directory ID\n  - `AZURE_CLIENT_ID`: The client/application ID of an App Registration in the tenant.\n  - `AZURE_CLIENT_SECRET`: A client secret that was generated for the App Registration.\n  - or `AZURE_FEDERATED_TOKEN_FILE`: Path to an federated token file.\n\n- Azure CLI credentials: allows authentication via Azure CLI. Log in with\n  ```bash\n  az login\n  ```\n\n- Managed Identity: can be used with Azure VMs, App Service and Azure Functions\n  applications.\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMetaswitch%2Fapt-transport-blob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMetaswitch%2Fapt-transport-blob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMetaswitch%2Fapt-transport-blob/lists"}