{"id":13518970,"url":"https://github.com/Rarst/release-belt","last_synced_at":"2025-03-31T11:31:00.766Z","repository":{"id":23823047,"uuid":"27199907","full_name":"Rarst/release-belt","owner":"Rarst","description":"Composer repository implementation for ZIPs.","archived":false,"fork":false,"pushed_at":"2022-07-20T13:49:13.000Z","size":271,"stargazers_count":173,"open_issues_count":1,"forks_count":16,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-26T02:04:38.612Z","etag":null,"topics":["composer","repository"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/Rarst.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-26T22:58:27.000Z","updated_at":"2025-01-23T17:52:54.000Z","dependencies_parsed_at":"2022-07-27T04:17:27.420Z","dependency_job_id":null,"html_url":"https://github.com/Rarst/release-belt","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rarst%2Frelease-belt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rarst%2Frelease-belt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rarst%2Frelease-belt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rarst%2Frelease-belt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rarst","download_url":"https://codeload.github.com/Rarst/release-belt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246461565,"owners_count":20781349,"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":["composer","repository"],"created_at":"2024-08-01T05:01:51.454Z","updated_at":"2025-03-31T11:31:00.272Z","avatar_url":"https://github.com/Rarst.png","language":"PHP","funding_links":[],"categories":["PHP","Packagist-compatible repositories"],"sub_categories":["Repman"],"readme":"# Release Belt — Composer repo for ZIPs\n[![Tests Status](https://github.com/rarst/release-belt/actions/workflows/tests.yml/badge.svg)](https://github.com/Rarst/release-belt/actions/workflows/tests.yml)\n[![Latest Stable Version](https://poser.pugx.org/rarst/release-belt/version)](https://packagist.org/packages/rarst/release-belt)\n[![PHP from Packagist](https://img.shields.io/packagist/php-v/rarst/release-belt.svg)](https://packagist.org/packages/rarst/release-belt)\n[![PDS Skeleton](https://img.shields.io/badge/pds-skeleton-blue.svg?style=flat-square)](https://github.com/php-pds/skeleton)\n\nRelease Belt is a Composer repository, which serves to quickly integrate third–party non–Composer releases into Composer workflow. Once Release Belt is installed and you upload your zip files with their respective version number, Release Belt does the rest.\n\nGiven the following folder tree:\n\n```\nreleases/wordpress-plugin/rarst/plugin.1.0.zip\n```\n\nIt will serve the following Composer repository at `/packages.json` automagically:\n\n```json\n{\n    \"packages\": {\n        \"rarst/plugin\": {\n            \"1.0\": {\n                \"name\": \"rarst/plugin\",\n                \"version\": \"1.0\",\n                \"dist\": {\n                    \"url\": \"http://example.com/rarst/plugin.1.0.zip\",\n                    \"type\": \"zip\"\n                },\n                \"type\": \"wordpress-plugin\",\n                \"require\": {\n                    \"composer/installers\": \"^1.5\"\n                }\n            }\n        }\n    }\n}\n```\n\n## Installation\n\n### 1. Install the project\n\nRelease Belt is a `project` type Composer package. It is recommended to use Git checkout to keep up with updates more easily.\n\nThere is a helper Composer script provided that tries to fetch latest stable version and performs Composer install. \n\n#### Install\n\n```bash\ngit clone https://github.com/Rarst/release-belt\ncd release-belt\ncomposer belt-update\n```\n\n#### Update\n\n```bash\ncomposer belt-update\n```\n\n### 2. Place release ZIPs into `releases/` directory\n\nThe directory structure should be: `releases/[type]/[vendor name]/[release zip file]`.\n\nA `[type]` could be:\n- a [native Composer type](https://getcomposer.org/doc/04-schema.md#type) (e.g. `library` for the default);\n- any type [`composer/installers` supports](https://github.com/composer/installers) (e.g. `wordpress-plugin`);\n- or completely arbitrary.\n\n### 3. Configure a web server\n\nThe `public/` directory should be used as web root and `index.php` in it as the file to handle requests.\n\nPlease refer to [web server configuration](https://www.slimframework.com/docs/v4/start/web-servers.html) in Slim documentation and/or your web hosting’s resources for setup specifics.\n\nVisit home page and `/packages.json` in a web browser to check if it is working.\n\n## Use\n\nOnce Release Belt is installed you can add the repository to the `composer.json` of your projects.\n\nRelease Belt home page will automatically generate some `composer.json` boilerplate for you to use.\n\n### Configuration\n\nYou can configure Release Belt by creating a `config/config.php` file, which returns an array of options to override.\n\nSee [`config/configExample.php`](config/configExample.php) for the annotated example.\n\n#### Authentication \u0026 permissions\n\nRelease Belt implements HTTP authentication to password protect your repository and control access to specific packages. You can configure it via `users` configuration option.\n\nThere is a `bin/encodePassword.php` command line helper included for hashing passwords:\n\n```bash\n\u003ephp bin/encodePassword.php foo\n$2y$10$3i9/lVd8UOFIJ6PAMFt8gu3/r5g0qeCJvoSlLCsvMTythye19F77a\n```\n\nIf authentication is enabled, Release Belt home page will automatically generate `auth.json` boilerplate for you to use.\n\n## F.A.Q.\n\n### Why not Packagist/Satis?\n\nComposer infrastructure is awesome, but it expects vendors that are willing to play nice with it.\n\nRelease Belt is a solution for unwilling vendors and it was faster and easier to build a dedicated solution from scratch. \n\n### Why not artifacts?\n\nComposer artifacts require `composer.json` in them. This is for releases that don't even have that.\n\n### But is it web scale?\n\nNo.\n\n# License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRarst%2Frelease-belt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRarst%2Frelease-belt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRarst%2Frelease-belt/lists"}