簡體   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