Jordan Petridis created an issue #464:
Hi,
Couple days ago we where discussing using a merge-bot to automate various things in from the workflow of Shell maintainers. The main features the bot provides is automating the merge and rebase of multiple MRs without human interaction (assuming MRs are approved), and annotating the commits with a link to the MR they were part of.
Over on gitlab.freedesktop.org we have already deployed it for about a year and the bot has been working fine so far for both GStreamer and Mesa.
Gitlab EE offers a similar functionality in the form of Merge Trains, but we are not sure if and when it will make it over to EE. Given that a third-party bot existed before they implemented the functionality themselves its luckily they will move it to Gitlab Core at some point to simplify the setup for everyone. Already asked about it in this issue
Anyhow back to the bot. The project is hosted here and seems kubernetes friendly. I 've been maintaining the GStreamer bot and wouldn't mind volunteering to help with this one either, though I've never used kube before, just docker.
What we will need to set it up:
- An account for the bot to use that has merge permissions in
gnome-shell
andmutter
- An ssh key associated with the account
- A token of the account with
api
andread_user
permissions
Here is an example config for the bot
# Adds the url of the MR to the commit msg
add-part-of: true
# These require gitlab admin privs and we don't really need them
add-reviewers: false
impersonate-approvers: false
add-tested: false
batch: false
# Can make it so it only looks for the stable branches and main later
# branch-regexp: .*
ci-timeout: 180min
git-timeout: 120s
gitlab-url: 'https://gitlab.gnome.org'
project-regexp: "gnome-shell|mutter"
auth-token-file: '/configuration/secrets/marge-bot.token'
# auth-token: ''
ssh-key-file: '/configuration/secrets/marge-bot-ssh-key'
# ssh-key: |
# -----BEGIN OPENSSH PRIVATE KEY-----
# HELLO WORLD
cc @jadahl