Using polyrepo's to manage projects ?
This can introduce a number challenges one of which is maintaining consistency across multiple repositories, for files like shared configurations without introducing git submodules or mono repositories which requires a more complex deployment configuration.
For example adding a github action or maintaing a consistent pull request template accross your organization.
github-deploy
makes maintaining such configurations as easy as a single command.
Alias : gh-deploy
pip install github-deploy
A Personal Access Token which can be created using this guide
The required scopes are repo
and workflow
gh-deploy upload --org [org] --token [PAT_TOKEN] --dest [LOCATION TO UPLOAD FILE] --source [SOURCE FILE LOCATION]
Example:
gh-deploy upload --org tj-actions --token [PAT_TOKEN] --dest '.github/workflows/auto-approve.yml' --source auto-approve.yml
NOTE:
auto-approve.yml
is located on your local system.
gh-deploy delete --org [org] --token [PAT_TOKEN] --dest [LOCATION TO DELETE]
Example:
gh-deploy delete --org tj-actions --token [PAT_TOKEN] --dest '.github/auto-approve.yml'
gh-deploy --help
Usage: gh-deploy [OPTIONS] COMMAND [ARGS]...
Deploy changes to multiple github repositories using a single command.
Options:
--help Show this message and exit.
Commands:
delete Delete a file in all repositories owned by an organization/user.
upload Upload a file to all repositories owned by an organization/user.
gh-deploy upload --help
Usage: gh-deploy upload [OPTIONS]
Upload a file to all repositories owned by an organization/user.
Options:
--org TEXT The github organization.
--token TEXT Personal Access token with read and write
access to org.
--source PATH Source file.
--dest TEXT Destination path.
--overwrite / --no-overwrite Overwrite existing files.
--private / --no-private Upload files to private repositories.
--help Show this message and exit.
gh-deploy delete --help
Usage: gh-deploy delete [OPTIONS]
Delete a file in all repositories owned by an organization/user.
Options:
--org TEXT The github organization.
--token TEXT Personal Access token with read and write access to org.
--dest TEXT Destination path to delete.
--help Show this message and exit.