Prior Art / Alternatives
If Kodiak doesn't suit your current needs, there are plenty of implementations of pull request (PR) automation and efficent branch updating and merging.
Name | Auto Merging | Auto Update Branches | Update Branches Efficiently | Works With Branch Protection | Works with Forks | Simple Configuration | Open Source | Hosted SaaS | Works with GitHub | On-prem possible? | Project alive? | Free for public and personal repositories | Language |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kodiak | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Python |
CommitQueue | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | 🤷 | ✅ | ❌ | Python |
Bors | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | Python |
Shipit | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | Ruby |
Homu | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | Python |
mergebot | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | Go |
Gullintanni | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | Elixir |
EggTimer | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | JavaScript |
Popuko | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | Go |
Bors-ng | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | Elixir |
Marge-bot | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | Python |
Bulldozer | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | Go |
Change Anubis | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | JavaScript |
Mergify | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | Python |
Ranger | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | 🤷 |
Autorebase | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | TypeScript |
Auto Merge | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | JavaScript |
Merge when green | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | 🤷 | 🤷 | ❌ | ❌ | JavaScript |
gerrit-queue | ✅ | 🤷 | 🤷 | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | 🤷 | ❌ | ❌ | Go |
GitHub's auto-merge | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | 🤷 |
MergeQueue | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | 🤷 |
Trunk Merge | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | 🤷 | ✅ | ❌ | 🤷 |
Explanations
Auto Merging
- automatically merges PR once up to date with master and all required statuses and checks pass
Auto Update Branches
- ensures branches are automatically updated to the latest version of master
Update Branches Efficiently
- an improvement upon Auto Update Branches where branches are only updated when necessary, as opposed to updating all branches any time their target branch (usually master) updates
Works With Branch Protection
- PR mergeability is determined by GitHub Branch Protection settings and app configuration
- doesn't require changing continuous integration (CI) tools
- doesn't create separate test branches for merging that would circumvent the GitHub PR workflow
Works with Forks
- will update and merge pull requests made from repositories forks. This is a necessary for an open source project to accept changes from external contributors.
Simple Configuration
- configuration has sane defaults and requires minimal effort from the user. Kodiak's configuration is a simple TOML file with only one required configuration option.
# .kodiak.toml
version = 1
Open Source
- documentation and resources necessary to self host the application are publically available.
Hosted SaaS
- a publically hosted version of the application is available for users to install.
Free for public and personal repositories
- hosted version is free for all public repositories and Personal repositories. Kodiak only charges for use with private Organization repositories.
Resources
- For a list of Kodiak's features see the "Features" page.
- Check out the "Recipes" page for configuration examples.