# They use Mergify: Cabal (Haskell)

**URL:** <https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359>\
**Category:** Show and Tell\
**Created:** [November 25, 2022, 3:01pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359 "2022-11-25T15:01:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![artem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/artem/32/56_2.png) [@artem](https://discourse.haskell.org/u/artem)\
**Post date:** [November 25, 2022, 3:01pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/1 "2022-11-25T15:01:09Z")

</div>

Here’s a little interview we did with the Mergify bot team to discuss how Cabal maintainers employ the merge bot on our GitHub repository:

> **[They use Mergify: Cabal (Haskell)](https://blog.mergify.com/they-use-mergify-cabal-haskell/)**
>
> Every day, major projects use Mergify to automate their GitHub workflow. Whether they have a core team of 3 or 50 people, the one thing they all have in common is that the project leads are willing to let their developers focus on what’s really...

tldr; several kinds of mundane tasks like rebases and backports become extremely easy because they require very little human intervention, so you are welcome to try it out too. In the text, we also mention a more sophisticated workflow implemented with the bot; namely, an automatic delay before the merge after all conditions are cleared – we use the delay to make sure most stakeholders had a chance to weigh in.

If you’re curious, [our Mergify config is here](https://github.com/haskell/cabal/blob/master/.github/mergify.yml).

---

<div class="post-metadata">

**Author:** ![Mikolaj](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mikolaj/32/1041_2.png) [@Mikolaj](https://discourse.haskell.org/u/Mikolaj)\
**Post date:** [November 25, 2022, 3:10pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/2 "2022-11-25T15:10:18Z")

</div>

They (we) use Mergify and you can use it too! It’s trivial to set up, good enough, free. I don’t think there are any particular Haskell-specific caveats. I’d venture, the first time you don’t have to manually rebase somebody else’s PR already pays back for the whole setup effort.

---

<div class="post-metadata">

**Author:** ![nomeata](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/nomeata/32/1188_2.png) [@nomeata](https://discourse.haskell.org/u/nomeata)\
**Post date:** [November 25, 2022, 3:32pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/3 "2022-11-25T15:32:57Z")

</div>

Also made good use of mergify to auto-approve and auto-merge dependency bumps, for example. They have a friendly and responsive team.

---

<div class="post-metadata">

**Author:** ![artem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/artem/32/56_2.png) [@artem](https://discourse.haskell.org/u/artem)\
**Post date:** [November 25, 2022, 5:15pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/4 "2022-11-25T17:15:19Z")

</div>

Indeed, their team is amazing: I asked a couple of random questions on their issue tracker, and they were fast to reply and incredibly helpful.

@nomeata could you share a link to your config doing auto-approves/merges? We haven’t gotten there yet, and I’m curious.

---

<div class="post-metadata">

**Author:** ![nomeata](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/nomeata/32/1188_2.png) [@nomeata](https://discourse.haskell.org/u/nomeata)\
**Post date:** [November 25, 2022, 6:31pm UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/5 "2022-11-25T18:31:57Z")

</div>

Sure, check out the Auto-Approve rules in

> <https://github.com/dfinity/motoko/blob/master/.mergify.yml>

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [November 28, 2022, 2:14am UTC](https://discourse.haskell.org/t/they-use-mergify-cabal-haskell/5359/6 "2022-11-28T02:14:36Z")

</div>

What has always bothered me with these merge bots is that you can’t sensibly maintain good GPG signed main branch.

1. if there’s a rebase involved, the human GPG signatures are dropped
2. if there is a merge commit involved, you get a machine signature at best
3. machine signatures don’t convey a lot of trust and defeat the purpose of GPG signing

The only way to keep them is a fast forward merge, which is unlikely to work in most cases.
