Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robandpdx/request-repo-create
Automate repo creation in a target org using a GitHub Actions workflow.
https://github.com/robandpdx/request-repo-create
Last synced: about 2 months ago
JSON representation
Automate repo creation in a target org using a GitHub Actions workflow.
- Host: GitHub
- URL: https://github.com/robandpdx/request-repo-create
- Owner: robandpdx
- License: mit
- Created: 2023-03-02T19:20:29.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-20T20:32:41.000Z (7 months ago)
- Last Synced: 2024-11-04T11:11:55.417Z (2 months ago)
- Size: 34.2 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# request-repo-create
This repo is used to automate repo creation in a target org using a GitHub Actions workflow.## Background
As a GitHub Enterprise Admin, you have certian standards for all repos in a target org. These standards may include:
- repo naming standard
- standard LICENSE file
- standard template files (CODEOWNERS, workflows, etc)
- access via team permissionsYou simply don't want developer running naked in the streets, creating repos all willy-nilly!!
## Solution
Disable repo creating for all users in the target org. Users requesting a new repo will open an issue in this repo, triggering a GitHub actions workflow that will create a new repo. Upon successul repo creation, the issue will be closed.## Prerequisites
- Teams defined in the target org.
- GitHub actions runners available for this repo.## Configuration
You need to define the following secrets in this repo:
`ADMIN_TOKEN` - This needs to have write access to the org where the new repos will be created.You need to define the following repository varaibles in this repo:
`ORG` - The org where where the new repos will be created.
`ADMIN_TEAM` - The team in the target org that has admin access to the new repo.
`REGEX` - (Optional) A regular expression which the repo names must adhere to. If the repo name does not match this regex, the workflow will fail and a comment will be added to the issue. If this is not defined, no naming restrictions will be applied.
`TEMPLATE` - (Optional) The name of a template repo to create the new repos from.
`VISIBILITY` - The visibility of the new repo. Can be `private`, `public`, or `internal`. If this is not defined, the new repo will be private.Customise the [issue template](.github/ISSUE_TEMPLATE/request_repo.yml), editing the teams field as needed. If you are implementing a naming standard for new repos, you should probably detail the standard in the issue template as well.