如何让 github actions 工作流程使用机器人名称将生成的文档推送到同一组织中的其他存储库

Rik*_*d N 3 git github github-pages github-actions

我正在github上开发一个python包。在 github 的一个组织下,我有两个存储库myorg/packagemyorg/documentation. 该package存储库包含 python 包和构建 sphinx 文档的方法,并documentation包含通过 github 页面发布的生成的静态 html。

我现在正在设置一个 github 操作工作流程来构建文档,并通过将发布标签推送到存储库来将package其推送到触发,但我在推送到存储库时遇到了问题。documentationpackagedocumentation

理想情况下,我希望将提交标记为由机器人进行,并且我希望所有拥有两个存储库推送权限的人都能够运行工作流程。

这是我当前的工作流程:

name: Deploy

on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
          path: package
    - uses: actions/checkout@v2
      with:
        repository: myorg/documentation
        path: documentation
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install tox tox-gh-actions
    - name: Build documentation
      run: |
        cd package
        tox -e apidoc
        tox -e docs
    - name: Publish documentation
      run: |
        cp -RT package/dist/docs/ documentation/latest/
        cd documentation
        git config --local user.name "github-actions[bot]"
        git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
        git add -A
        git commit -m "Documentation update"
        git push
Run Code Online (Sandbox Code Playgroud)

在最终命令上运行此命令失败:

remote: Permission to pharmpy/pharmpy.github.io.git denied to github-actions[bot].
fatal: unable to access 'https://github.com/pharmpy/pharmpy.github.io/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)

我不太确定机器人的名称和电子邮件。一些谷歌搜索给人的印象是,这属于一些可以使用的标准机器人。

我怎样才能让它发挥作用?

Rik*_*d N 5

所以我找到了一个解决方案:

  1. 创建具有存储库访问权限的个人访问令牌
  2. 添加此个人令牌作为 github actions 秘密(我将其命名为PUSH_TOKEN
  3. 在结帐和推送时使用此令牌

这是工作流程的修改后的工作版本:

name: Deploy

on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
          path: package
    - uses: actions/checkout@v2
      with:
        repository: myorg/documentation
        path: documentation
        token: ${{secrets.PUSH_TOKEN}}
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install tox tox-gh-actions
    - name: Build documentation
      run: |
        cd package
        tox -e apidoc
        tox -e docs
    - name: Publish documentation
      run: |
        cp -RT package/dist/docs/ documentation/latest/
        cd documentation
        git config --local user.name "github-actions[bot]"
        git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
        git add -A
        git commit -m "Documentation update"
        git push https://$USERNAME:$REPO_KEY@github.com/myorg/documentation.git
      env:
        REPO_KEY: ${{secrets.PUSH_TOKEN}}
        USERNAME: github-actions[bot]
Run Code Online (Sandbox Code Playgroud)