gpt4 book ai didi

Jenkins Groovy 无法通过 https 端口使用 oauth token 克隆 gitlab 存储库

转载 作者:行者123 更新时间:2023-12-03 08:55:20 26 4
gpt4 key购买 nike

我无法使用 https 上的 oauth2 token 通过 jenkins groovy 从 gitlab checkout 代码。

使用相同的 oauth token 在 git cli 上进行克隆。我还可以通过同一台计算机上的curl 列出我的所有Gitlab 项目。

但无法通过 groovy 管道使用 Oauth2 token 调用 git clone。

约束:Jenkins 服务器需要通过 groovy 脚本使用 oauth2 token 通过 https 端口(仅)与 gitlab 服务器进行通信。我想使用 jenkins 凭证管理器来存储 Oauth2 token - 而不是直接通过 s 脚本传递它

错误:状态代码 128:stderr:远程:HTTP 基本:访问被拒绝

**用于结帐的 Groovy 代码 **

checkout([$class: 'GitSCM', branches: [[name: "*/$GIT_BRANCH"]], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [[credentialsId: "$GIT_CREDS_ID", url: "$GIT_URL"]]])

问题是 $GIT_CREDS_ID :仅选择具有 SSH 私钥或用户名/密码组合的凭据 ID。但不选择具有 Oauth token 的凭证 ID(安装 git lab 插件后创建)

错误:


Warning: CredentialId "2002" could not be found. # same is being listed under jenkins credentials
> git rev-parse --is-inside-work-tree # timeout=10
...
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress https://git.my-gitlab-site.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://git.my-gitlab-site.git/'


相同的 oauth token 通过curl、git cli 可以正常工作,即使我直接在 git 的 https url 中传递它,如下所示: https://oauth2:[email protected]/c-swajai/poc_devops_coe.git

但无法通过 Jenkins 使用相同的功能。

系统详细信息 Jenkins 版本。 2.172

操作系统“Amazon Linux”版本“2”

发现一个相关的错误: https://issues.jenkins-ci.org/browse/JENKINS-36863

最佳答案

我找到了相关的oldbug (状态:已解决)这似乎在最新版本的 Jenkins 中重新出现。为其他面临类似问题的人提供的解决方法

创建类型用户名和密码的新凭据

用户名:任意随机字符串
密码:YourOauthToken
凭证 ID:任何自定义数字/字符串

克隆时在 groovy 脚本中使用上述凭据 ID。现在您可以使用 Oauth tokem 在 443 端口上使用 https url 克隆 git

关于Jenkins Groovy 无法通过 https 端口使用 oauth token 克隆 gitlab 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com