繁体   English   中英

在Jenkins构建插件中获取作业库URL

[英]Getting job repository URL in Jenkins build plugin

我正在为詹金斯编写一个构建通知插件。 SCM存储库URL(SCM是开头的git)包含我想在我的代码中获得的有用信息。 作为我的Jenkins API的初学者,我无法弄清楚如何检索作业的存储库位置。 这是可行的,如果是的话,怎么样?

存储库在作业的config.xml中可用。

http:// [jenkins服务器] / job / [job] /config.xml

终于找到答案了! 所需的方法不是在抽象SCM类中定义的,而是由对其进行扩展的类定义的。 因此,当您调用project.getSCM() ,必须将其强制转换为实际拥有的SCM类型(GitSCM,SubversionSCM等)。

我正在开发我的插件以使用Subversion,所以我查看了Subversion插件的源代码 ,并找到了getLocations方法,它返回一个ModuleLocation[] ,其中包含有关该项目中所有SVN存储库的信息。 只需循环访问ModuleLocation[]并调用getSVNURL()即可获得所需的信息。 然后,我可以根据需要使用SVNURLtoString()为我提供了完整的存储库路径)。

在您的情况下,对于Git, 源代码显示有一个名为getRepositories()的方法,它返回List<RemoteConfig> 查看RemoteConfig 源代码 ,了解哪种方法可以获得所需的信息。 (我相信getURIs()会做到这一点)。

我设法使用以下代码获取特定工作的SVN存储库的URL:

String jobName = manager.build.project.getName()
def job = hudson.model.Hudson.instance.getItem(jobName)
def svnScm = job.scm
def svnLocation = svnScm.getLocations()
def svnURLstr = svnLocation[0].getSVNURL().toString()

也许对某人有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM