CLI utility to automate routine work with new projects.
Part of the @kira bots family.
kira-setup does not create a repository. It configures an existing GitLab
project so new repositories start with the same engineering standards.
- Configures GitLab project defaults for a stricter merge flow
- Requires passing pipelines before merge
- Requires all discussions to be resolved before merge
- Sets fast-forward only merge strategy
- Configures merge request approval rules
- Protects the
masterbranch and release tags matchingv* - Enforces push rules for branch names and commit messages
- Prevents secret pushes and enables member checks
- Creates a standard label set for triage and workflow
- Configures container registry cleanup policy
Requirements:
- Python 3.11+
- An existing GitLab project
- A GitLab access token with permission to manage project settings
pip install kira-setupRun the CLI against an existing project:
kira-setup group-or-user/project-name --token YOUR_ACCESS_TOKENFor self-hosted GitLab:
kira-setup group-or-user/project-name \
--token YOUR_ACCESS_TOKEN \
--domain gitlab.example.comTo skip specific setup steps, repeat --skip with the stable step name:
kira-setup group-or-user/project-name \
--token YOUR_ACCESS_TOKEN \
--skip labels \
--skip protect-tagsAvailable --skip values:
starconfigurepush-rulesapproval-ruleslabelsprotect-branchesprotect-tagscleanup-policy
We use this CLI to make repository setup repeatable across projects.
Instead of applying the same GitLab rules manually every time, kira-setup
brings a new repository to the expected baseline in a single command.
kira: the full bots familykira-stale: stale issue and pull request automationkira-release: automated semantic releases