我正在github上开发一个python包。在 github 的一个组织下我有两个存储库myorg/package
and myorg/documentation
. The package
repo 包含 python 包以及构建 sphinx 文档和documentation
包含通过 github 页面发布的生成的静态 html。
我现在正在设置 github actions 工作流程来构建文档package
并将其推至documentation
通过将发布标签推送到package
回购协议,但我在推送时遇到问题documentation
repo.
理想情况下,我希望将提交标记为由机器人进行,并且我希望所有拥有两个存储库推送权限的人都能够运行工作流程。
这是我当前的工作流程:
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
在最终命令上运行此命令失败:
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
我不太确定机器人的名称和电子邮件。一些谷歌搜索给人的印象是,这属于一些可以使用的标准机器人。
我怎样才能让它发挥作用?
所以我找到了一个解决方案:
- 创建具有存储库访问权限的个人访问令牌
- 添加这个个人令牌作为 github actions 秘密(我将其命名为
PUSH_TOKEN
)
- 在结帐和推送时使用此令牌
这是工作流程的修改后的工作版本:
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:[email protected] /cdn-cgi/l/email-protection/myorg/documentation.git
env:
REPO_KEY: ${{secrets.PUSH_TOKEN}}
USERNAME: github-actions[bot]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)