Groovy获取tfs变更集的编辑类型

时间:2018-04-11 15:50:35

标签: tfs tfsbuild changeset jenkins-groovy

我需要获取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

有任何想法吗?

1 个答案:

答案 0 :(得分:0)

enter image description here

根据您的说明,您似乎希望显示变更集旁边的状态或变更集中显示操作类型的文件。

在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

相关问题