Опишите ошибку
При запуске auto в среде CI, например, в Github Actions, auto shipit
завершится ошибкой, если включена защита основной ветки. Есть ли способ, возможно, путем настройки разрешений определенным образом решить эту проблему, не отключая защиту веток?
Воспроизводить
Использование следующего рабочего процесса Github Action и установка master в качестве защищенной ветви приведет к неудачной попытке push с этим сообщением об ошибке:
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
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
самом деле не имеет доступа на запись к вашему репо. Вам необходимо создать токен от пользователя с правом записи.
Думаю, проблема в этом. Если это сработает, прокомментируйте, и я добавлю примечание к документам. (Или если хотите сделать пиар, сливаю)
К сожалению, это не решило проблему. Похоже, что GITHUB_TOKEN
создается автоматически и должен иметь необходимые разрешения. Но я попробовал это с помощью специального токена, который тоже не сработал.
Я все еще уверен, что вашему токену нужно немного больше разрешений. Чтобы проверить это, я сделал следующее:
Включите защиту веток для auto-config-hipstersmoothie
и переключитесь на GITHUB_TOKEN
.
Результат: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451642081?check_suite_focus=true
У меня та же ошибка, что и у вас.
После переключения обратно на GH_TOKEN
я настроил write
и предоставлением токену repo
доступа).
Результат: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/actions/runs/40930001
Релиз успешен ✅
Думаю, мне нужно пояснить, какие разрешения давать токену в документации 😅
Включите защиту веток для auto-config-hipstersmoothie и переключитесь на GITHUB_TOKEN.
Когда вы говорите включить защиту ветки - что это включает? Allow force pushes
отключено?
РЕДАКТИРОВАТЬ: вторая ссылка, вероятно, должна быть такой: https://github.com/hipstersmoothie/auto-config-hipstersmoothie/runs/451645892?check_suite_focus=true
Вторая ссылка, вероятно, должна быть такой
ага, извините!
Разрешить принудительное нажатие отключено
auto не принудительно нажимает, так что это не должно быть проблемой. Вот что я настроил
@bbrinx Есть поводу ? Вероятно, скоро закроется без воспроизводимого примера
@hipstersmoothie Я добавил токен со всеми разрешениями, и он
Потрясающие!
Самый полезный комментарий
@hipstersmoothie Я добавил токен со всеми разрешениями, и он