Auto: Auto Shipit com Filial Protegida

Criado em 11 fev. 2020  ·  8Comentários  ·  Fonte: intuit/auto

Descreva o bug
Ao executar automaticamente em um ambiente de CI, por exemplo, Ações do Github, auto shipit falhará quando a proteção do branch master for ativada. Existe alguma maneira, talvez configurando permissões de uma determinada maneira, de superar esse problema sem desabilitar a proteção do branch?

Reproduzir

Usar o seguinte fluxo de trabalho Github Action e definir master como um branch protegido resultará em uma tentativa de push falhada com esta mensagem de erro:

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. 

Fluxo de trabalho do Github Action

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
  • Versão 9.6.0
bug

Comentários muito úteis

@hipstersmoothie Eu adicionei um token com todas as permissões e funcionou! Parece que não configurei as permissões corretas na primeira vez que tentei. Obrigado!

Todos 8 comentários

secrets.GITHUB_TOKEN não tem acesso de gravação ao seu repo. Você precisa criar um token de um usuário com acesso de gravação.

Acho que esse é o problema. Se funcionar, por favor, comente e adicionarei uma nota aos documentos. (Ou se você quiser fazer uma RP, eu irei mesclá-la)

Infelizmente, isso não resolveu o problema. Parece que GITHUB_TOKEN é criado automaticamente e deve ter as permissões corretas. Mas tentei com um token personalizado que também não funcionou.

Ainda tenho certeza de que seu token precisa de um pouco mais de permissões. Para verificar isso, fiz o seguinte:

Ative a proteção de filial para auto-config-hipstersmoothie e mude para GITHUB_TOKEN .

Resultado: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451642081?check_suite_focus=true

Recebi o mesmo erro que você.

Depois de voltar para o GH_TOKEN eu configurei (criado a partir de um usuário com write acesso e dando ao token repo acesso).

Resultado: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/actions/runs/40930001

Lançamento bem-sucedido ✅

Acho que preciso deixar mais claro quais permissões dar ao token na documentação 😅

Ative a proteção de branch para auto-config-hipstersmoothie e mude para GITHUB_TOKEN.

Quando você diz para ativar a proteção de ramificação, o que isso inclui? Allow force pushes desativado?

EDIT: O segundo link provavelmente deve ser este: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451645892?check_suite_focus=true

O segundo link provavelmente deve ser este

sim, desculpe!

Permitir empurrões de força desativado

automático não força push, então isso não deve ser um problema. Aqui está o que eu configurei

Screen Shot 2020-02-19 at 12 55 57 AM

@bbrinx Alguma atualização sobre isso? Provavelmente fechará em breve sem um exemplo reproduzível

@hipstersmoothie Eu adicionei um token com todas as permissões e funcionou! Parece que não configurei as permissões corretas na primeira vez que tentei. Obrigado!

Incrível!

Esta página foi útil?
0 / 5 - 0 avaliações