Auto: Kapal Otomatis dengan Cabang Terlindungi

Dibuat pada 11 Feb 2020  ·  8Komentar  ·  Sumber: intuit/auto

Jelaskan bugnya
Saat menjalankan otomatis di lingkungan CI, misalnya Github Actions, auto shipit akan gagal saat perlindungan cabang master diaktifkan. Apakah ada cara, mungkin dengan mengatur izin dengan cara tertentu, untuk mengatasi masalah ini tanpa menonaktifkan perlindungan cabang?

Untuk Mereproduksi

Menggunakan alur kerja Github Action berikut dan mengatur master sebagai cabang yang dilindungi akan mengakibatkan upaya push yang gagal dengan pesan kesalahan ini:

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. 

Alur kerja 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
  • Versi 9.6.0
bug

Komentar yang paling membantu

@hipstersmoothie Saya menambahkan token dengan semua izin dan berhasil! Sepertinya saya tidak mengatur izin yang benar saat pertama kali mencoba. Terima kasih!

Semua 8 komentar

secrets.GITHUB_TOKEN sebenarnya tidak memiliki akses tulis ke repo Anda. Anda perlu membuat token dari pengguna dengan akses tulis.

Saya pikir ini adalah masalah. Jika ini berhasil, silakan beri komentar kembali dan saya akan menambahkan catatan ke dokumen. (Atau jika Anda ingin membuat PR saya akan menggabungkannya)

Sayangnya ini tidak menyelesaikan masalah. Sepertinya GITHUB_TOKEN dibuat secara otomatis dan harus memiliki izin yang tepat. Tetapi saya mencobanya dengan token khusus yang juga tidak berfungsi.

Saya masih cukup yakin bahwa token Anda membutuhkan lebih banyak izin. Untuk memeriksa ini, saya melakukan hal berikut:

Aktifkan perlindungan cabang untuk auto-config-hipstersmoothie dan alihkan ke GITHUB_TOKEN .

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

Saya mendapat kesalahan yang sama seperti yang Anda lakukan.

Setelah beralih kembali ke GH_TOKEN saya atur (dibuat dari pengguna dengan akses write dan memberikan token akses repo ).

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

Rilis sukses

Saya pikir saya perlu memperjelas izin apa untuk memberikan token di dokumen

Aktifkan perlindungan cabang untuk auto-config-hipstersmoothie dan beralih ke GITHUB_TOKEN.

Saat Anda mengatakan aktifkan perlindungan cabang - apa saja yang termasuk di dalamnya? Apakah Allow force pushes dinonaktifkan?

EDIT: Tautan kedua mungkin harus ini: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451645892?check_suite_focus=true

Tautan kedua mungkin seharusnya ini

yup, maaf!

Izinkan dorongan paksa dinonaktifkan

otomatis tidak memaksa Push jadi ini seharusnya tidak menjadi masalah. Inilah yang telah saya konfigurasikan

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

@bbrinx Adakah pembaruan tentang ini? Mungkin akan segera ditutup tanpa contoh yang dapat direproduksi

@hipstersmoothie Saya menambahkan token dengan semua izin dan berhasil! Sepertinya saya tidak mengatur izin yang benar saat pertama kali mencoba. Terima kasih!

Luar biasa!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat