Skip to content

Repository files navigation

Kira Setup Bot

wemake.services kira-family Build Status wemake-python-styleguide Dependencies Status

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.

Features

  • 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 master branch and release tags matching v*
  • 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

Installation

Requirements:

  • Python 3.11+
  • An existing GitLab project
  • A GitLab access token with permission to manage project settings
pip install kira-setup

Quick Start

Run the CLI against an existing project:

kira-setup group-or-user/project-name --token YOUR_ACCESS_TOKEN

For self-hosted GitLab:

kira-setup group-or-user/project-name \
  --token YOUR_ACCESS_TOKEN \
  --domain gitlab.example.com

To 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-tags

Available --skip values:

  • star
  • configure
  • push-rules
  • approval-rules
  • labels
  • protect-branches
  • protect-tags
  • cleanup-policy

Why Use It

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.

Related Projects

Releases

Sponsor this project

Packages

Used by

Contributors

Languages