Это может быть глупый вопрос, но вот я после двух дней головокружительного удара ?
В настоящее время я работаю над заданием GitHub Actions, это было бы в какой-то момент git push
в защищенную ветвь (master
, на самом деле). Однако, как только он перейдет к этому шагу, задание завершится с ошибкой « У вас нет прав на pu sh»:
код ошибки GH006
В моей ситуации, когда это произошло впервые, это означало, что работник (CLI, bash
) вообще не авторизован. Итак, я пошел, чтобы войти в нее в отдельной учетной записи GitHub, - и вот где я застрял на пару дней.
Итак, как мне войти в учетную запись GitHub через CLI?
Вещи, которые я пробовал:
Нажатие на мастеринг вручную
Это работает без ошибок, так как авторизация в порядке, - но это очевидно не автоматизированный, вот что мне нужно.
Пара деталей:
- Я использовал Windows 10, в то время как задание настроено для запуска на
"ubuntu-18.04"
; - Я удалил все логины, связанные с GitHub, из Windows Диспетчер учетных данных перед выполнением
git push
и снова настроил их через диалоговое окно GitHub Login.
Вручную отправка под несанкционированными учетными данными завершается неудачно, как и ожидалось.
git remote set-url origin "https://$username:$token@github.com/my/repo"
Это, похоже, не дало никакого эффекта. Я пытался как установить URL-адрес существующих удаленных, так и удалить удаленные, чем добавление, с разными URL-адресами, - кажется, что оба подхода работают (не работают) одинаково.
Ни одна из приведенных ниже конфигураций не работала:
steps:
- run: git remote set-url origin "https://$username:$token@github.com/my/repo"
- run: git push origin master
steps:
- run: git remote remove origin
- run: git remote add origin "https://$username:$token@github.com/my/repo"
- run: git fetch origin --all # with and without this step
- run: git push origin master
Это , предложенное в документах , и оно успешно выполняется, но вход в систему не сохраняется до git push
- даже если толчок происходит на том же шаге. Я подозреваю, что может быть решение, связанное с cook ie, но я не уверен, как они работают в среде без браузера. Кроме того, я считаю, что этот API предназначен для различных целей.
Обе эти конфигурации не удалось:
steps:
# separate processes
- run: curl -u "$username:$token" https://api.github.com/user
- run: git push origin master
steps:
# same process
- run: |
curl -u "$username:$token" https://api.github.com/user
git push origin master