我需要获取tfs变更集文件(我已完成此操作)以及是否使用jenkins服务器上的groovy插件添加或删除了它。
我无法弄清楚如何访问包含获取编辑类型的方法的item类。我已经尝试了下面的代码,但是无法弄明白。
import java.lang.*
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import hudson.util.*
import hudson.scm.*
import hudson.scm.SubversionChangeLogSet.LogEntry
import hudson.plugins.tfs.model.ChangeSet
import hudson.plugins.tfs.model.ChangeSet.Item
import groovy.util.slurpersupport.GPathResult
import groovy.xml.XmlUtil
import groovy.xml.StreamingMarkupBuilder
import java.io.Serializable
import java.lang.Cloneable
import groovy.xml.MarkupBuilder
// work with current build
def build = Thread.currentThread()?.executable
// get ChangesSets with all changed items
def changeSet = build.getChangeSet()
def items = changeSet.getItems()
println "Affected Paths"
def affectedFiles = items.collect {
it.getAffectedPaths()
}
def action = items.getAction()
println action.getEditType
有任何想法吗?
答案 0 :(得分:0)
根据您的说明,您似乎希望显示变更集旁边的状态或变更集中显示操作类型的文件。
在TFS中,我们调用了changeType,Microsoft.TeamFoundation.SourceControl.WebApi.VersionControlChangeType。
而不是在jenkins中使用groovy。您也可以通过Rest API获取此信息。如何,看看VSTS Rest API return specific item from Changeset API
您应该使用返回EditType的方法。然后index.jelly使用该方法来确定要显示的图标。
在这里查看示例代码:
public EditType getEditType() {
if (action.equalsIgnoreCase("delete")) {
return EditType.DELETE;
}
if (action.equalsIgnoreCase("add")) {
return EditType.ADD;
}
return EditType.EDIT;
}
来源链接:jenkinsci/tfs-plugin