{"id":18804164,"url":"https://github.com/sbrunner/applications-download","last_synced_at":"2025-08-30T20:08:35.432Z","repository":{"id":261390468,"uuid":"884123636","full_name":"sbrunner/applications-download","owner":"sbrunner","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-26T03:52:23.000Z","size":427,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-26T05:36:39.399Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbrunner.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-06T07:24:36.000Z","updated_at":"2025-08-26T03:52:27.000Z","dependencies_parsed_at":"2024-12-21T19:30:37.840Z","dependency_job_id":"9ffb1854-ae3d-4284-a591-07c7b5cf0fc2","html_url":"https://github.com/sbrunner/applications-download","commit_stats":null,"previous_names":["sbrunner/application-download","sbrunner/applications-download"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/sbrunner/applications-download","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbrunner%2Fapplications-download","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbrunner%2Fapplications-download/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbrunner%2Fapplications-download/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbrunner%2Fapplications-download/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbrunner","download_url":"https://codeload.github.com/sbrunner/applications-download/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbrunner%2Fapplications-download/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272900157,"owners_count":25012033,"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-08-30T02:00:09.474Z","response_time":77,"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":[],"created_at":"2024-11-07T22:38:20.923Z","updated_at":"2025-08-30T20:08:35.416Z","avatar_url":"https://github.com/sbrunner.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Applications Download\n\nThis tool can be used to maintain a version file (eventually also an application file) for a given application.\n\nThe version file is a YAML file that contains the version number of the application.\nThe version file respect the schema describe in application.md and provided in applications_download/application-schema.json.\n\nThe application file is also a YAML file that contains how to download and install the application.\nThis is a simple key value file with the application as key and the version as value.\n\n## Install\n\n```bash\npip install applications-download\n```\n\n## Usage\n\n```bash\napplications-download --help\n```\n\n## Applications configuration\n\nIn case some executables or applications from GitHub releases or any other URLs are required on the CI host\nand are not handled by any dependency manager, we provide a set of tools to install them and manage upgrades\nthrough Renovate.\n\nCreate an application file (e.-g. `applications.yaml`) with:\n\n```yaml\n# yaml-language-server: $schema=https://raw.githubusercontent.com/sbrunner/applications-download/refs/heads/\u003cversion\u003e/applications_download/applications-schema.json\n\n# Application from GitHub release\n\u003corganization\u003e/\u003cproject\u003e:\n  get-file-name: \u003cfile name present in the release\u003e\n  to-file-name: \u003cThe file name you want to create in ~/.local/bin\u003e\n  finish-command: # The command you want to run after the file is downloaded\n    - - chmod # To be executable (usually required)\n      - +x\n      - \u003cto-file-name\u003e\n    - - \u003cto-file-name\u003e # Print the version of the application\n      - --version\n# Application from GitHub release in a tar file (or tar.gz)\n\u003corganization\u003e/\u003cproject\u003e:\n  get-file-name: \u003cfile name present in the release\u003e\n  type: tar\n  tar-file-name: \u003cThe file name available in the tar file\u003e\n  to-file-name: \u003cThe file name you want to create in ~/.local/bin\u003e\n  finish-command: [...] # The command you want to run after the file is downloaded\n# Application from an URL\n\u003capplication reference name\u003e:\n  url-pattern: \u003cThe URL used to download the application\u003e\n  to-file-name: \u003cThe file name you want to create in ~/.local/bin\u003e\n  finish-command: [...] # The command you want to run after the file is downloaded\n```\n\nIn the attributes `url-pattern`, `get-file-name` you can use the following variables:\n\n- `{version}`: The version of the application present in the version file.\n- `{version_quote}`: The URL encoded version.\n- `{short_version}`: The version without the `v` prefix.\n\nThe `applications-versions.yaml` file is a map of applications and their versions.\n\nAdd in your Renovate configuration:\n\n```json5\n  regexManagers: [\n    {\n      fileMatch: ['^applications-versions.yaml$'],\n      matchStrings: [\n        '(?\u003cdepName\u003e[^\\\\s]+): (?\u003ccurrentValue\u003e[^\\\\s]+) # (?\u003cdatasource\u003e[^\\\\s]+)',\n      ],\n    },\n  ],\n```\n\nNow you need to call `c2cciutils-download-applications --applications-file=applications.yaml --versions-file=applications-version.yaml`\nto install required applications on CI host before using them (an already installed application is installed only if needed).\n\n## Contributing\n\nInstall the pre-commit hooks:\n\n```bash\npip install pre-commit\npre-commit install --allow-missing-config\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbrunner%2Fapplications-download","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbrunner%2Fapplications-download","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbrunner%2Fapplications-download/lists"}