Jenkins不会使用git参数插件检索git引用
您好,我正在尝试配置jenkins build服务器以使用git分支 我的配置如下所示: 如果我点击build with parameters,我会得到一个空列表,如下所示: 我已经建立了这个项目没有参数,它的工作。在源代码管理部分,我添加了我们的服务器,没有ssh,具有正确的信誉。(仅用户名和密码) 但是我在列表中没有得到git引用。我在谷歌上搜索了一下,发现如果您使用ssh,但我们不使用ssh,这是一个常见的问题。我不想通过可扩展的选择参数插件来解决问题 那么这里的问题是什么?我不敢相信这在詹金斯很难配置 我们使用最新的jenkins版本和git参数插件,其maven id为:Jenkins不会使用git参数插件检索git引用,git,jenkins,jenkins-plugins,Git,Jenkins,Jenkins Plugins,您好,我正在尝试配置jenkins build服务器以使用git分支 我的配置如下所示: 如果我点击build with parameters,我会得到一个空列表,如下所示: 我已经建立了这个项目没有参数,它的工作。在源代码管理部分,我添加了我们的服务器,没有ssh,具有正确的信誉。(仅用户名和密码) 但是我在列表中没有得到git引用。我在谷歌上搜索了一下,发现如果您使用ssh,但我们不使用ssh,这是一个常见的问题。我不想通过可扩展的选择参数插件来解决问题 那么这里的问题是什么?我不敢相信
org.jenkins ci.tools:git参数:0.4.0。对我来说很好。希望插件能很快修复
在这种情况下,我的项目可以获取构建我的项目所需的所有数据。如果您在Windows上使用Jenkins,Git参数插件0.4可能不起作用,并一直显示“检索Git引用” 我相信原因是插件不使用Jenkins的凭证,而是作为系统的登录用户运行git命令。您可以通过将JenKins的Windows服务的登录用户更改为已登录并在Windows凭据中保存密码的真实用户来修复此问题。我也遇到过同样的问题,即“检索Git引用”时没有Git标记,但这不是权限问题。我把这个放在这里,以防其他人偶然发现这个链接(谷歌第一个出现这个问题的链接),并且可能和我有同样的问题
当我查看Jenkins日志时,我从Git参数插件中看到一个Java数字格式错误(Java.lang.NumberFormatException)。这是因为我使用构建时间戳来创建标记,结果是一个很长的数值。插件必须将其识别为数字,然后尝试将其转换为int(我假设稍后再进行排序),但由于太长而导致崩溃。要解决这个问题,我必须删除所有标记,并将我的构建更改为带有作业名称和构建编号的标记(例如,DEV-233)。在我这样做之后,标签列表被正确填充。我也遇到了同样的问题,我遵循了讨论中的建议:从Github()获取插件的最新版本(0.4.1-SNAPSHOT),编译并安装它 该插件的新版本在Linux环境中与作业的SCM配置中的SSH URL/凭据一起工作。我得到了相同的“检索git引用”,但没有分支。网络上有两种解决方案
您现在应该可以看到所有分支 这是我针对bitbucket的解决方案:(只需对gitlab/github的URL稍加修改即可) 您可以使用Bitbucket Rest API和Scriptler执行此操作: (例如,这里使用“标记”端点。它也适用于其他端点,如“分支”)
String-organization=“${organization}”
字符串repository=“${repository}”
String endpoint=“标记”
字符串baseUrl=”https://api.bitbucket.org"
字符串版本=“1.0”
//使用Base64编码创建授权标头
//在这里,您可以通过CREDENTIALSID获取身份验证凭据
字符串userpass=“${USER}:${PASSWORD}”
String basicAuth=“Basic”+javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
普林顿基考斯酒店
字符串url=[baseUrl,版本,“存储库”,组织,存储库,端点].join(“/”)
println“URL”+URL
//创建URL
URL apiUrl=URL.toURL()
//开放连接
URLConnection=apirl.openConnection()
//设置授权标头
connection.setRequestProperty(“授权”,basicAuth)
InputStream InputStream=连接。getInputStream()
HashMap tags=new groovy.json.JsonSlurper().parseText(inputStream.text)
inputStream.close()
Set keys=tags.keySet();
列表=新的ArrayList()
keys.each{key->
println键
列表。添加(键)
}
返回列表
```
是否可以从jenkins服务器访问git repo。。当我使用代理与github repositoriesHi DevD通信时,我也遇到了同样的问题。感谢您的帮助。我非常确定git repo可以从jenkins服务器访问,因为我可以使用字符串参数branch来解决问题,它使用$branch变量选择要构建的分支。这个解决方案可行,但这不是我们想要的。如果我试着用g
String organization="${ORGANISATION}"
String repository="${REPOSITORY}"
String endpoint="tags"
String baseUrl = "https://api.bitbucket.org"
String version = "1.0"
// Create authorization header using Base64 encoding
//HERE YOU CAN GET THE AUTH CREDENTIALS OVER THE CREDENTIALSID INSTEAD
String userpass = "${USER}:${PASSWORD}"
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
println basicAuth
String url = [baseUrl, version, "repositories", organization, repository, endpoint].join("/")
println "URL " + url
// Create URL
URL apiUrl = url.toURL()
// Open connection
URLConnection connection = apiUrl.openConnection()
// Set authorization header
connection.setRequestProperty("Authorization", basicAuth)
InputStream inputStream = connection.getInputStream()
HashMap tags = new groovy.json.JsonSlurper().parseText(inputStream.text)
inputStream.close()
Set keys= tags.keySet();
List<String> list=new ArrayList<String>()
keys.each { key ->
println key
list.add(key)
}
return list