登录
首页 >  Golang >  Go问答

我的自托管运行器(使用 PAT)中的私有 github 存储库的身份验证失败

来源:stackoverflow

时间:2024-04-10 20:54:35 384浏览 收藏

你在学习Golang相关的知识吗?本文《我的自托管运行器(使用 PAT)中的私有 github 存储库的身份验证失败》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我的 gcloud 实例中有一个 git runner 设置。它正在运行并显示在我的跑步者列表中。当我尝试构建的 go 项目使用私有 github 模块时,就会出现问题。

以下是我遵循的步骤:

  • 公开的环境变量:goprivate=github.com//
  • git 配置--全局 网址。“https://:[电子邮件受保护]/”.insteadof “https://github.com/”

但是当我尝试访问私有模块时仍然收到以下错误: 远程:未找到存储库。 致命:“https://github.com///”身份验证失败

我的 github 操作工作流程文件如下所示:

name: CICD
on:
  workflow_dispatch:
     inputs:
        ENV:
            description: 'ENV'
            required: true
            default: 'poc'
        DOCKER_TAG:
            description: 'docker image tag'
            required: true
            default: 'latest'
env:
  NS: ${{ vars.NS }}
  ENV: ${{ github.event.inputs.ENV }}
  DOCKER_TAG: ${{ github.event.inputs.DOCKER_TAG }}
  GOOS: ${{ vars.GOOS }}
  GOARCH: ${{ vars.GOARCH }}
  CGO_ENABLED: ${{ vars.CGO_ENABLED }}
  GKE_SA_KEY: ${{ secrets.GKE_SA_KEY }}
  GKE_CLUSTER: ${{ vars.GKE_CLUSTER }}
  GKE_ZONE : ${{ vars.GKE_ZONE }}
  DOCKER_REG: ${{ vars.DOCKER_REG }}
  PROJECT_ID:  ${{ vars.PROJECT_ID }}
  DOCKER_REPO:  ${{ vars.DOCKER_REPO }}
  APP_NAME:  ${{ vars.APP_NAME }}
  DOMAIN: ${{ vars.DOMAIN }}
  URL: ${{ vars.URL }}
  GOPRIVATE : ${{ vars.GOPRIVATE }}
  TOKEN: ${{ secrets.GITPAT }}

jobs:
  app-build:
    environment: ${{ github.event.inputs.ENV }}
    runs-on: my-self-hosted
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Configure git for private modules
        run: git config --global url."https://$TOKEN:[email protected]/".insteadOf "https://github.com/"
      - name: Build
        run: go build -o main main.go     <---- FAILING OVER HERE

这里我尝试构建的项目依赖于私有 github 存储库。


正确答案


我在尝试从私有存储库安装模块时遇到了类似的问题。以下是我的一些发现:

  1. github 操作会在工作流程开始时生成一个唯一的身份验证令牌,该令牌只能访问当前存储库。
  2. 默认情况下,当我们使用 actions/checkout 签出存储库时,它会将令牌存储在本地 github 配置中
  3. 为了使用“github config”命令覆盖它,我们必须将“persist-credentials”设置为 false。

我的 github 操作工作流程如下所示:

- name: checkout
   uses: actions/checkout@v3
   with:
     persist-credentials: false
 - name: npm install
   run: |
     git config —global url.”https://${{ secrets.MY_GIT_TOKEN }}@github.com/“.insteadOf ssh://[email protected]/
     npm install

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>