TFS变更的Groovy中获取编辑类型(Groovy get edit type of tfs ch

2019-10-29 22:51发布

我需要得到TFS变更集文件(我已经做到了这一点),也无论它加入或使用詹金斯服务器上的Groovy插件删除。

我无法弄清楚如何访问保存获得编辑类型的方法的项目类。 我曾尝试下面的代码,只是无法弄清楚。

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

任何想法了吗?

Answer 1:

根据你的描述,似乎你想显示旁边,显示它是什么类型的动作的变更的变更或文件的状态。

在TFS我们叫一changeType, Microsoft.TeamFoundation.SourceControl.WebApi.VersionControlChangeType 。

相反,在詹金斯使用Groovy。 您也可以通过REST API得到这个。 怎么样,看看VSTS REST API从变更集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-插件



文章来源: Groovy get edit type of tfs changeset