Beschreibe den Fehler
Beim Ausführen von auto in einer CI-Umgebung, zB Github Actions, schlägt auto shipit
fehl, wenn der Master Branch Protection aktiviert ist. Gibt es eine Möglichkeit, dieses Problem zu beheben, ohne den Verzweigungsschutz zu deaktivieren, möglicherweise durch das Einrichten von Berechtigungen auf eine bestimmte Weise?
Fortpflanzen
Die Verwendung des folgenden Github Action-Workflows und das Festlegen von master als geschützter Branch führt zu einem fehlgeschlagenen Push-Versuch mit dieser Fehlermeldung:
Error: Running command 'git' with args [push, --follow-tags, --set-upstream, origin, master] failed
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: At least 1 approving review is required by reviewers with write access.
Github Action-Workflow
name: Release
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout<strong i="15">@v1</strong>
- name: Prepare repository
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git checkout ${GITHUB_REF:11} --
git remote rm origin
git remote add origin "https://x-access-token:[email protected]/<owner>/<repository>"
git fetch origin --tags
git branch --set-upstream-to origin/${GITHUB_REF:11} ${GITHUB_REF:11}
- name: Use Node.js 12.x
uses: actions/setup-node<strong i="16">@v1</strong>
with:
node-version: 12.x
- name: Cache node modules
uses: actions/cache<strong i="17">@v1</strong>
with:
path: node_modules
key: yarn-deps-${{ hashFiles('yarn.lock') }}
restore-keys: |
yarn-deps-${{ hashFiles('yarn.lock') }}
- name: Create Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
yarn install --frozen-lockfile
yarn build
yarn auto shipit
secrets.GITHUB_TOKEN
hat keinen Schreibzugriff auf Ihr Repository. Sie müssen ein Token von einem Benutzer mit Schreibzugriff erstellen.
Ich denke, das ist das Problem. Wenn dies funktioniert, kommentieren Sie bitte zurück und ich werde eine Notiz zu den Dokumenten hinzufügen. (Oder wenn du eine PR machen willst, werde ich sie zusammenführen)
Leider hat dies das Problem nicht gelöst. Es scheint, als ob das GITHUB_TOKEN
automatisch erstellt wird und die richtigen Berechtigungen haben sollte. Aber ich habe es mit einem benutzerdefinierten Token versucht, was auch nicht funktioniert hat.
Ich bin mir immer noch ziemlich sicher, dass Ihr Token etwas mehr Berechtigungen benötigt. Um dies zu überprüfen habe ich folgendes gemacht:
Aktivieren Sie den Verzweigungsschutz für auto-config-hipstersmoothie
und wechseln Sie zu GITHUB_TOKEN
.
Ergebnis: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451642081?check_suite_focus=true
Ich habe den gleichen Fehler wie du.
Nachdem ich zurück zum GH_TOKEN
ich es eingerichtet (erstellt von einem Benutzer mit write
Zugriff und dem Token repo
Zugriff).
Ergebnis: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/actions/runs/40930001
Veröffentlichung erfolgreich ✅
Ich denke, ich muss klarer machen, welche Berechtigungen das Token in den Dokumenten erteilen soll 😅
Schalten Sie den Branch-Schutz für auto-config-hipstersmoothie ein und wechseln Sie zu GITHUB_TOKEN.
Wenn Sie sagen, Zweigschutz aktivieren – was beinhaltet das? Ist Allow force pushes
deaktiviert?
BEARBEITEN: Der zweite Link sollte wahrscheinlich dieser sein: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451645892?check_suite_focus=true
Der zweite Link sollte wahrscheinlich dieser sein
jup, tut mir leid!
Erzwingen von Pushs zulassen deaktiviert
auto erzwingt keinen Push, daher sollte dies kein Problem sein. Hier ist, was ich konfiguriert habe
@bbrinx Gibt es dazu ein Update? Wird wohl bald ohne reproduzierbares Beispiel geschlossen
@hipstersmoothie Ich habe ein Token mit allen Berechtigungen hinzugefügt und es hat funktioniert! Anscheinend habe ich beim ersten Versuch nicht die richtigen Berechtigungen festgelegt. Vielen Dank!
Fantastisch!
Hilfreichster Kommentar
@hipstersmoothie Ich habe ein Token mit allen Berechtigungen hinzugefügt und es hat funktioniert! Anscheinend habe ich beim ersten Versuch nicht die richtigen Berechtigungen festgelegt. Vielen Dank!