GitHub Repository kickstarter
repooster
is coming from "repo" + "booster", and this application will intend to speeding up your GitHub repository setup with single commands.
For boosting up the scaffolding repository setup to developement, repooster
will do sequencially:
- Precheck of initial commit
- GitHub Operations (updating repository setting)
- Slack Operations (creating notification channel for repository)
- File Operations (editing README.md or any other templated files and pushing to remote)
- GitHub Operations (raising PR for initialization)
Please note that above features are based on the repository, which have been created from specific GitHub template, so if you would like to customize more, you could add features to the repository template as well as repooster
With using go-github
, repooster
will do the following configurations:
- Workflow Permissions
main
branch protections- Disabling
Discussions
,Projects
, andWiki
tabs - Creating initial PR once after complete all File operations below
With using go-git
, repooster
will do:
- Create branch called
feature/init
with checkout - Replace placeholder texts in templated files
- Stage all changes to working tree and create commit object
- Push the commit to remote repository
For fetching updates on your new repository, Slack notification integrated with GitHub repository is one of the best way.
By interacting with Slack Web APIs, repooster
will do:
- create new dedicated channel for your repo by
conversations.create
endpoint - set link of your GitHub repository as channel topics by
conversations.setTopic
endpoint
Also please note that you have to set SLACK_USER_TOKEN
beforehand.
As Slack APIs can handle several types of its tokens, but repooster
will expect to use OAuth User Token in general.
As this repository will invoke and update configurations of GitHub repository, we need to set GitHub Token, which has permissions of:
Read
for CommitsRead and write
for Administration
While GitHub has several types of token, we generally expect to use Fine-grained Token.
For generating fine-grained tokens, please refer the official documents for futher information.
TBA
Since repooster
application has been built on top of CLI driven, the CLI has been available with the several form-factors:
- Single Binary
- Container images, stored in GitHub Container Registry
As the repooster
has been developed with Go, which can easily build artifacts for several platforms, we have uploaded various binaries for general platforms.
You can download the binary from GitHub Releases of this repo, and currently we are supporting the following platforms:
darwin/arm64
darwin/amd64
linux/arm64
linux/amd64
windows/amd64
After downloading the binary, you can easily start using of it, once you exported GitHub tokens (described below).
% export TOKEN='...'
% export SLACK_USER_TOKEN='...'
% repooster hwakabh/repooster
As we are using ko
for building containerized Go application with OCI format, the container images has been also available from GitHub Packages.
Same as binaries, you can start using CLI after downloading image onto your environment.
% export TOKEN='...'
% export SLACK_USER_TOKEN='...'
% docker image pull ghcr.io/hwakabh/repooster:main
% docker run -e TOKEN=$TOKEN -e SLACK_USER_TOKEN=$SLACK_USER_TOKEN ghcr.io/hwakabh/repooster:latest hwakabh/repooster
For building application on your local environment, please source this repository and run general go build processes like:
% git clone git@github.com:hwakabh/repooster.git
% cd repooster
% go build .
In case you need to build OCI image on your local environment, please install ko
first, and run:
% ko version
0.17.1
# Build locally
% ko build -L .
2025/04/30 02:40:16 Using base cgr.dev/chainguard/static:latest@sha256:2e3db1641bb4fe4e85d2210f4aadb79252e90d5fa745f53a3ffed6a1aab4f73b for github.com/hwakabh/repooster
2025/04/30 02:40:17 Building github.com/hwakabh/repooster for linux/amd64
2025/04/30 02:40:18 Loading ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a
2025/04/30 02:40:19 Loaded ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a
2025/04/30 02:40:19 Adding tag latest
2025/04/30 02:40:19 Added tag latest
ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a
% docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8 210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a 9c7460230cb9 4 weeks ago 6.23MB
ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8 latest 9c7460230cb9 4 weeks ago 6.23MB
Please note that currently we do not have any customized configurations with ko, so the default base image is cgr.dev/chainguard/static
, which is generally minimal distroless image, and it does not have any shells.
If you would like to use shells for debugging purpose, please note that you need to override the base image with using KO_DEFAULTBASEIMAGE
variables with ko build
command in your local development.
Please refer ko
official documents for more details.
For contribuing this project if you would like, please check the docs first.
We are always welcome for any contributions.