我需要在 GitHub Actions 工作流程中查看私有存储库。我正在使用结账操作,并遵循其自述文件:
现在,当我执行以下操作时,它不起作用:
- name: Checkout
uses: actions/checkout@v2
with:
token: ${{secrets.MY_TOKEN}}
看来我没有正确配置
git
以允许它使用令牌。我的问题是:我应该或者如何配置 git config
在上述步骤中使用令牌?
私有存储库是主存储库的依赖项。两个存储库都是 Rust 程序,使用 Cargo,因此我尝试使用相同的服务帐户首先检查主存储库。然后 Cargo 将查看私人仓库。
根据操作/签出文档,您还需要为私有存储库添加
repository input
:
您的工作流程
.yml
文件中的内容应如下所示:
- name: Checkout
uses: actions/checkout@v2
with:
path: main
- name: Checkout private repo
uses: actions/checkout@v2
with:
repository: your-private/repo_name
token: ${{ secrets.MY_TOKEN }}
您不需要配置任何其他相关内容
git
除非您需要特定的
path
,在这种情况下您还需要将其作为输入告知:
- name: Checkout private repo
uses: actions/checkout@v2
with:
repository: your-private/repo_name
token: ${{ secrets.MY_TOKEN }}
path: path-to-directory
如果是关于 Rust Cargo 使用 token 访问 github,那么一个可行的选择可能是添加一个设置 token 并强制 https 访问的步骤:
- name: Set github url and credentials
run: |
/usr/bin/git config --global --add url."https://${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}:x-oauth-basic@github".insteadOf ssh://git@github
/usr/bin/git config --global --add url."https://${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}:x-oauth-basic@github".insteadOf https://github
/usr/bin/git config --global --add url."https://${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}:x-oauth-basic@github".insteadOf git@github
支持通用ssh和token授权:
steps:
- uses: actions/checkout@v4
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.SSH_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: Set github url and credentials
run: |
git config --global --add url."https://x-access-token:${{ steps.app-token.outputs.token }}@github".insteadOf ssh://git@github
git config --global --add url."https://x-access-token:${{ steps.app-token.outputs.token }}@github".insteadOf https://github
git config --global --add url."https://x-access-token:${{ steps.app-token.outputs.token }}@github".insteadOf git@github