Невозможно зафиксировать и отменить изменения, сделанные действием github (недопустимый пользователь) - PullRequest
3 голосов
/ 06 октября 2019

У меня есть следующий шаг в конце моего рабочего процесса действия. Он запускается, когда код передается мастеру, идея состоит в том, чтобы отправить все файлы, измененные действием github, обратно на мастер после завершения этого действия.

    - name: Commit and push changes
      run: |
        git config --global user.name 'myGithubUserName'
        git config --global user.email 'myEmail@gmail.com'
        git add -A
        git commit -m "Increased build number [skip ci]"
        git push -u origin HEAD

Однако я продолжаю получать следующую ошибку, хотя я настраиваю пользователяи электронная почта.

неустранимо: не удалось прочитать имя пользователя для 'https://github.com': Устройство не настроено

[ошибка] Процесс завершен с кодом выхода 128.

Обратите внимание, что он работает на macOS-latest и использует git, который поставляется вместе с ним.

1 Ответ

3 голосов
/ 06 октября 2019

Проблема в том, что действие actions/checkout@v1 оставляет репозиторий git в отключенном состоянии HEAD. См. Эту проблему для получения более подробной информации: https://github.com/actions/checkout/issues/6

Обходное решение, которое я успешно использовал, заключается в настройке пульта следующим образом:

git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/username/repository

Вам также может потребоваться оформить заказ. Вы можете извлечь имя ветви из GITHUB_REF:

git checkout "${GITHUB_REF:11}"

Вот полный пример для демонстрации.

name: Push commit example
on: push
jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: Create report file
        run: date +%s > report.txt
      - name: Commit report
        run: |
          git config --global user.name 'Your Name'
          git config --global user.email 'your-username@users.noreply.github.com'
          git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY
          git checkout "${GITHUB_REF:11}"
          git commit -am "Automated report"
          git push

Кстати, я написал действие GitHub, которое можетпомочь вам достичь того, что вы хотите сделать. Он будет принимать любые изменения, сделанные локально во время рабочего процесса, фиксировать их в новой ветке и вызывать запрос на извлечение. https://github.com/peter-evans/create-pull-request

Также см. Этот связанный вопрос и ответ. Нажимаем на начало действия GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...