-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Gérer une merge queue #447
base: main
Are you sure you want to change the base?
Conversation
Une fois l'application déployée, elle sera accessible à cette adresse https://bot-pr447.review.pix.fr |
835f0e0
to
c3d13d5
Compare
c3d13d5
to
4fb3d85
Compare
73ad3f6
to
d57b0f3
Compare
c6bc8bc
to
e6c47c2
Compare
c170e4c
to
2c0f3ae
Compare
3394516
to
8496a89
Compare
8496a89
to
fa77b98
Compare
0dc612c
to
6aaa368
Compare
Une fois l'application déployée, elle sera accessible à cette adresse https://bot-pr447.review.pix.fr |
6aaa368
to
66831d2
Compare
840d87f
to
63fac1e
Compare
Co-authored-by: Yannick François <[email protected]> Co-authored-by: Guillaume Lagorce <[email protected]>
Co-authored-by: Yannick François <[email protected]> Co-authored-by: Guillaume Lagorce <[email protected]>
Co-authored-by: Yannick François <[email protected]>
Co-authored-by: Yannick François <[email protected]> Co-authored-by: Vincent Hardouin <[email protected]> Co-authored-by: Clément Latzarus <[email protected]> Co-authored-by: Diane Cordier <[email protected]>
Co-authored-by: Clément Latzarus <[email protected]> Co-authored-by: Yannick François <[email protected]> Co-authored-by: Vincent Hardouin <[email protected]> Co-authored-by: Guillaume Lagorce <[email protected]>
Co-Authored-By: GUL <[email protected]> Co-Authored-By: Vincent Hardouin <[email protected]> Co-Authored-By: Clement Latzarus <[email protected]> Co-Authored-By: Diane Cordier <[email protected]>
1f587df
to
e2c9fb9
Compare
e2c9fb9
to
e7f06fd
Compare
import { knex } from '../../db/knex-database-connection.js'; | ||
|
||
async function save({ number, repositoryName }) { | ||
return knex('pull_requests').insert({ number, repositoryName }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dès que ce code est MEP, l'action sera disponible pour tous les repos de Pix, il nous faut donc un mécanisme pour avoir le temps de supprimer l'action du repo et accepter le repo. Pour cela, on peut ajouter une variable permettant de whitelister les repositories que nous supportons pour pouvoir faire la MEP tranquillement.
On peut même prévoir un système de blacklist ?
573ea19
to
807e421
Compare
🦄 Problème
Actuellement, notre action de merge automatique ne gère pas une merge queue ce qui engendre un problème de coût de ressource. Tout d'abord, lorsque le label
ready-to-merge
est apposé sur plusieurs PR en même temps, l'action va rebase toutes les PRs, ce qui va engendrer des coûts de CI, puis quand la première est mergée les N-1 PR vont à nouveau se rebase et déclencher de nouveau les CI.De plus, un autre problème est que l'action doit être installée sur tous les repos.
🤖 Proposition
Nous proposons de mettre en place notre action dans un unique repo et que cette dernière ait une merge queue.
Pour la partie unique repo, en effet l'action sous-jacente que nous utilisons pour rebase et merger est capable d'être unique et être en charge de plusieurs repo (cf: la doc) :
Pour la création de la merge queue, c'est pour ça que nous nous retrouvons ici, nous souhaitons déléguer cette tâche à Pix Bot. Pour faire cela, il a été nécessaire de faire en sorte d'avoir un stockage persistant, comme sur les autres projets de Pix, nous sommes partis sur une base Postgresql, avec knex comme connecteur.
☑️ TODO
🌈 Remarques
Procédure pour passer par ce mécanisme sur un repo
Variable à ajouter dans Pix Actions
💯 Pour tester