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

时间:2013-10-14 11:25:31

标签: plugins jenkins jenkins-plugins

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

3 个答案:

答案 0 :(得分:3)

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

http:// [jenkins server] / job / [job] /config.xml

答案 1 :(得分:2)

我设法使用以下代码获取特定作业的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()

也许对某人有用。

答案 2 :(得分:1)

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

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

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

相关问题