未指定凭据从远程 Git 获取更改

Posted

技术标签:

【中文标题】未指定凭据从远程 Git 获取更改【英文标题】:No credentials specified Fetching changes from the remote Git 【发布时间】:2021-11-08 17:14:49 【问题描述】:

我正在尝试完成我的第一份 Jenkins 工作。我想运行一个上传到 git 的 java 项目,但在构建作业时出现此错误:


没有指定凭据从远程 Git 获取更改 存储库错误:获取远程 repo 'origin' 时出错 hudson.plugins.git.GitException:无法从中获取 https://gitlab/engineering/automation/create_pass_criteria.git 在 hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:908) 在 hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1123) 在 hudson.plugins.git.GitSCM.checkout(GitSCM.java:1159) 在 org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:129) 在 org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:97) 在 org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:84) 在 org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47) 在 java.util.concurrent.Executors$RunnableAdapter.call(未知 源)在 java.util.concurrent.FutureTask.run(未知源)在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: hudson.plugins.git.GitException:命令“git fetch --tags --progress https://gitlab/engineering/automation/create_pass_criteria.git +refs/heads/:refs/remotes/origin/" 返回状态码 128:标准输出:标准错误:致命:无法访问 'https://gitlab/engineering/automation/create_pass_criteria.git/': 对等方的证书颁发者已被用户标记为不信任。


这是我的 groovy jenkins 文件:

#!groovy

pipeline 
    agent  node  label "agent_314"  

    stages 

        stage("Build") 
            steps 
                echo "Building..."
                git 'https://gitlab/engineering/automation/create_pass_criteria.git'
                sh './mvnw clean compile'
            
          
      
    

【问题讨论】:

我猜你正在尝试访问私有存储库,你需要先配置凭据(作业或全局),然后在 git checkout git credentialsId: 'GITLAB_CREDENTIALS', url: 'https://gitlab/engineering/automation/create_pass_criteria.git Check the docs for more info 【参考方案1】:

在 Jenkins 中为您的 git 存储库添加凭据,然后在管道中为 git checkout 提供凭据

添加凭据 - Jenkins -> 管理 Jenkins -> 管理凭证 在 Stores scoped to Jenkins 下,点击 Jenkins,然后点击 Global Credentials (unrestricted)。

从左侧单击 Add Credentials 并为您的 git 存储库定义用户名和密码并记下 credentialsID

在您的 jenkinsfile 中添加以下行

git credentialsId: '你的 git 凭据 ID', url: 'https://gitlab/engineering/automation/create_pass_criteria.git'

更多信息可以参考here

【讨论】:

以上是关于未指定凭据从远程 Git 获取更改的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 无法使用“未授权”消息连接到 Git 远程存储库

Python更改远程flow服务器上用指定用户的密码

s-s-rS 2005,钻取中的“未指定某些参数或凭据”

我是否可以拉出远程Git存储库并获得远程(未提交的)工作更改?

WebApi Put如何从指定的属性中告诉未指定的属性设置为null?

Git:其他用法