piotrpress / github-composer
This Composer plugin adds support for using GitHub Workflow Artifacts as Composer Repositories.
Installs: 73
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:composer-plugin
Requires
- php: >=7.4
- composer-plugin-api: ^2.0
- guzzlehttp/guzzle: ^7.0
- piotrpress/streamer: ^1.0
Requires (Dev)
- composer/composer: ^2.0
This package is auto-updated.
Last update: 2024-12-20 17:00:55 UTC
README
This Composer plugin adds support for using GitHub Workflow Artifacts as Composer Repositories.
It also provides GitHub Workflows to build and update the Composer repository based on packages from GitHub repositories.
Example composer.json
{ "repositories": [ { "type": "composer", "url": "github.artifacts://PiotrPress/packages" } ] }
Installation
- Add the plugin as a global composer requirement:
$ composer global require piotrpress/github-composer
- Allow the plugin execution:
$ composer config -g allow-plugins.piotrpress/github-composer true
Authentication
Add GitHub API authentication credentials:
$ composer config --global http-basic.github.com x-oauth-basic <token>
NOTE: using --global
option is recommended to keep credentials outside of project's files.
Arguments:
token
- the token must have permissions to get repository content and list artifacts for a repository
Workflows
This plugin also comes with two Reusable Workflows designed to build and update the packages.json artifact based on packages from GitHub repositories belonging to the provided owner.
Build
Add a .github/workflows/build.yml
file with the content below to the GitHub repository where the artifact containing the list of packages should be kept.
name: Build packages.json on: workflow_dispatch: repository_dispatch: types: [ Update packages.json ] jobs: build: uses: piotrpress/github-composer/.github/workflows/build.yml@master secrets: token: ${{ secrets.token }} with: owner: ${{ vars.owner }}
NOTE: by using the workflow_dispatch
event, this workflow can also be triggered manually.
Workflow secrets and variables:
secrets.token
- required:false
, the token must have permissions to get repository contentvars.owner
- required:false
, default:github.repository_owner
Update
Add a .github/workflows/update.yml
file with the content below to the GitHub repository, which is configured to trigger an update to the package list after every push.
name: Update packages.json on: workflow_dispatch: push: jobs: update: uses: piotrpress/github-composer/.github/workflows/update.yml@master secrets: token: ${{ secrets.token }} with: owner: ${{ vars.owner }} repository: ${{ vars.repository }}
NOTE: by using the workflow_dispatch
event, this workflow can also be triggered manually.
Workflow secrets and variables:
secrets.token
- required:true
, the token must have permissions to create a repository dispatch eventvars.owner
- required:false
, default:github.repository_owner
vars.repository
- required:true
Requirements
- PHP >=
7.4
version. - Composer ^
2.0
version.