{"id":28320715,"url":"https://github.com/hwakabh/repooster","last_synced_at":"2026-02-28T08:36:41.009Z","repository":{"id":291805588,"uuid":"950009182","full_name":"hwakabh/repooster","owner":"hwakabh","description":"GitHub Repository kickstarter","archived":false,"fork":false,"pushed_at":"2026-02-24T00:43:24.000Z","size":213,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T07:40:27.603Z","etag":null,"topics":["github","go","ko"],"latest_commit_sha":null,"homepage":"","language":"Go","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/hwakabh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-17T13:42:47.000Z","updated_at":"2026-02-24T00:43:26.000Z","dependencies_parsed_at":"2025-05-06T16:57:23.987Z","dependency_job_id":"f879f655-05fb-4ba4-8706-f165cc196cd9","html_url":"https://github.com/hwakabh/repooster","commit_stats":null,"previous_names":["hwakabh/repooster"],"tags_count":26,"template":false,"template_full_name":"hwakabh/.github","purl":"pkg:github/hwakabh/repooster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Frepooster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Frepooster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Frepooster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Frepooster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hwakabh","download_url":"https://codeload.github.com/hwakabh/repooster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Frepooster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["github","go","ko"],"created_at":"2025-05-25T11:12:08.071Z","updated_at":"2026-02-28T08:36:40.997Z","avatar_url":"https://github.com/hwakabh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# repooster\nGitHub Repository kickstarter \\\n`repooster` is coming from \"repo\" + \"booster\", and this application will intend to speeding up your GitHub repository setup with single commands.\n\n\n\u003c!-- *** --\u003e\n## Features\nFor boosting up the scaffolding repository setup to developement, `repooster` will do sequencially:\n1. Precheck of initial commit\n2. GitHub Operations (updating repository setting)\n3. Slack Operations (creating notification channel for repository)\n4. File Operations (editing README.md or any other templated files and pushing to remote)\n5. GitHub Operations (raising PR for initialization)\n\nPlease note that above features are based on the repository, which have been created from [specific GitHub template](https://github.com/hwakabh/.github), so if you would like to customize more, you could add features to the repository template as well as `repooster`\n\n### GitHub Operations\nWith using [`go-github`](https://github.com/google/go-github), `repooster` will do the following configurations:\n\n- [Workflow Permissions](https://docs.github.com/en/enterprise-cloud@latest/rest/actions/permissions?apiVersion=2022-11-28#set-default-workflow-permissions-for-a-repository)\n- [`main` branch protections](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection)\n- [Disabling `Discussions`, `Projects`, and `Wiki` tabs](https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#update-a-repository)\n- [Creating initial PR](https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#create-a-pull-request) once after complete all File operations below\n\n### File Operations\nWith using [`go-git`](https://github.com/go-git/go-git), `repooster` will do:\n1. Create branch called `feature/init` with checkout\n2. Replace placeholder texts in templated files\n3. Stage all changes to working tree and create commit object\n4. Push the commit to remote repository\n\n### Slack Operations\nFor fetching updates on your new repository, Slack notification integrated with GitHub repository is one of the best way. \\\nBy interacting with [Slack Web APIs](https://api.slack.com/methods), `repooster` will do:\n- create new dedicated channel for your repo by [`conversations.create` endpoint](https://api.slack.com/methods/conversations.create)\n- set link of your GitHub repository as channel topics by [`conversations.setTopic` endpoint](https://api.slack.com/methods/conversations.setTopic)\n\nAlso please note that you have to set `SLACK_USER_TOKEN` beforehand. \\\nAs Slack APIs can handle [several types of its tokens](https://api.slack.com/concepts/token-types), but `repooster` will expect to use OAuth User Token in general.\n\n\n\u003c!-- *** --\u003e\n## Configurations\n\n### `TOKEN`\nAs this repository will invoke and update configurations of GitHub repository, we need to set GitHub Token, which has permissions of:\n- `Read` for Commits\n- `Read and write` for Administration\n\nWhile GitHub has several types of token, we generally expect to use Fine-grained Token. \\\nFor generating fine-grained tokens, please refer [the official documents](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) for futher information.\n\n### `SLACK_USERTOKEN`\nTBA\n\n\n\u003c!-- *** --\u003e\n## Distributions\nSince `repooster` application has been built on top of CLI driven, the CLI has been available with the several form-factors:\n- Single Binary\n- Container images, stored in [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry)\n\n### Single Binary\nAs the `repooster` has been developed with Go, which can easily build artifacts for several platforms, we have uploaded various binaries for general platforms. \\\nYou can download the binary from [GitHub Releases](https://github.com/hwakabh/repooster/releases) of this repo, and currently we are supporting the following platforms:\n- `darwin/arm64`\n- `darwin/amd64`\n- `linux/arm64`\n- `linux/amd64`\n- `windows/amd64`\n\nAfter downloading the binary, you can easily start using of it, once you exported GitHub tokens (described below).\n\n```shell\n% export TOKEN='...'\n% export SLACK_USER_TOKEN='...'\n% repooster hwakabh/repooster\n```\n\n### Container image\nAs we are using [`ko`](https://ko.build) for building containerized Go application with OCI format, the container images has been also available from [GitHub Packages](https://github.com/hwakabh/repooster/pkgs/container/repooster). \\\nSame as binaries, you can start using CLI after downloading image onto your environment.\n\n```shell\n% export TOKEN='...'\n% export SLACK_USER_TOKEN='...'\n% docker image pull ghcr.io/hwakabh/repooster:main\n% docker run -e TOKEN=$TOKEN -e SLACK_USER_TOKEN=$SLACK_USER_TOKEN ghcr.io/hwakabh/repooster:latest hwakabh/repooster\n```\n\n\u003c!-- *** --\u003e\n## Local Setup\nFor building application on your local environment, please source this repository and run general go build processes like:\n\n```shell\n% git clone git@github.com:hwakabh/repooster.git\n% cd repooster\n\n% go build .\n```\n\nIn case you need to build OCI image on your local environment, please install `ko` first, and run:\n\n```shell\n% ko version\n0.17.1\n\n# Build locally\n% ko build -L .\n2025/04/30 02:40:16 Using base cgr.dev/chainguard/static:latest@sha256:2e3db1641bb4fe4e85d2210f4aadb79252e90d5fa745f53a3ffed6a1aab4f73b for github.com/hwakabh/repooster\n2025/04/30 02:40:17 Building github.com/hwakabh/repooster for linux/amd64\n2025/04/30 02:40:18 Loading ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a\n2025/04/30 02:40:19 Loaded ko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a\n2025/04/30 02:40:19 Adding tag latest\n2025/04/30 02:40:19 Added tag latest\nko.local/repooster-ee3247f55ae92694152f961e9a3e01e8:210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a\n\n% docker image ls\nREPOSITORY                                            TAG                                                                IMAGE ID       CREATED         SIZE\nko.local/repooster-ee3247f55ae92694152f961e9a3e01e8   210a86a0fd8c178b47b0826f1e3c8593913560c62bfff222d6f56b2f4c58d94a   9c7460230cb9   4 weeks ago     6.23MB\nko.local/repooster-ee3247f55ae92694152f961e9a3e01e8   latest                                                             9c7460230cb9   4 weeks ago     6.23MB\n```\n\nPlease note that currently we do not have any customized configurations with ko, so the default base image is [`cgr.dev/chainguard/static`](https://images.chainguard.dev/directory/image/static/versions), which is generally minimal distroless image, and it does not have any shells. \\\nIf 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. \\\nPlease refer [`ko` official documents](https://ko.build/configuration/) for more details.\n\nFor contribuing this project if you would like, please check [the docs](./CONTRIBUTING.md) first. \\\nWe are always welcome for any contributions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwakabh%2Frepooster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhwakabh%2Frepooster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwakabh%2Frepooster/lists"}