Après l'installation, commentez simplement /rebase
pour déclencher l'action :
Pour configurer l'action, ajoutez simplement les lignes suivantes à votre fichier de workflow .github/workflows/rebase.yml
:
name : Automatic Rebase
on :
issue_comment :
types : [created]
jobs :
rebase :
name : Rebase
runs-on : ubuntu-latest
if : >-
github.event.issue.pull_request != '' &&
(
contains(github.event.comment.body, '/rebase') ||
contains(github.event.comment.body, '/autosquash')
)
steps :
- name : Checkout the latest code
uses : actions/checkout@v3
with :
token : ${{ secrets.GITHUB_TOKEN }}
fetch-depth : 0 # otherwise, you will fail to push refs to dest repo
- name : Automatic Rebase
uses : cirrus-actions/[email protected]
with :
autosquash : ${{ contains(github.event.comment.body, '/autosquash') || contains(github.event.comment.body, '/rebase-autosquash') }}
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
REMARQUE : Pour garantir que les actions GitHub sont automatiquement réexécutées après une action de rebase réussie, utilisez un jeton d'accès personnel pour
actions/checkout@v2
etcirrus-actions/[email protected]
. Voir la discussion suivante pour plus de détails.
Exemple
...
- name : Checkout the latest code
uses : actions/checkout@v3
with :
token : ${{ secrets.PAT_TOKEN }}
fetch-depth : 0 # otherwise, you will fail to push refs to dest repo
- name : Automatic Rebase
uses : cirrus-actions/[email protected]
env :
GITHUB_TOKEN : ${{ secrets.PAT_TOKEN }}
Vous pouvez également éventuellement spécifier le numéro PR de la branche à rebaser, si l'action que vous exécutez ne fait pas directement référence à une pull request spécifique :
- name : Automatic Rebase
uses : cirrus-actions/[email protected]
env :
GITHUB_TOKEN : ${{ secrets.PAT_TOKEN }}
PR_NUMBER : 1245
Il est possible d'utiliser le champ author_association
d'un commentaire pour restreindre qui peut appeler l'action et ignorer le rebase pour les autres. Ajoutez simplement l'expression suivante à l'instruction if
dans votre fichier de workflow : github.event.comment.author_association == 'MEMBER'
. Voir la documentation pour une liste de toutes les valeurs disponibles de author_association
.
GitHub peut également éventuellement rejeter automatiquement une révision existante après le rebase, vous devrez donc la réapprouver, ce qui déclenchera le flux de travail de test. Configurez-le dans votre référentiel Paramètres > Branches > Règles de protection des branches > Exiger des révisions de demandes d'extraction avant la fusion > Rejeter les approbations de demandes d'extraction obsolètes lorsque de nouveaux commits sont poussés .