Jenkins获取git文件变更列表、提交ID、提交人、提交信息

这篇具有很好参考价值的文章主要介绍了Jenkins获取git文件变更列表、提交ID、提交人、提交信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GitLab 事件触发 Jenkins 构建只是一个启动信号,获取变更文件列表需要知晓上一次构建时某个仓库的版本号,这里 Jenkins 的插件 git-plugin 已经帮我们实现了这部分工作。所以只需要通过 git-plugin 检出代码即可。

检出代码
    checkout([
        $class: 'GitSCM',
        branches: [[name: "*/$branchName"]],
        doGenerateSubmoduleConfigurations: false,
        extensions: [
            [$class: 'RelativeTargetDirectory',
            relativeTargetDir: "$relativeTarget"]
        ],
        submoduleCfg: [],
        userRemoteConfigs: [
            [credentialsId: "$credentialsId", url: "$gitUrl"]
        ]
    ])

请自行替换 $branchName 为分支名,$relativeTarget 为检出相对路径,$credentialsId 为用户凭据, $gitUrl 即 GIT仓库地址。文章来源地址https://www.toymoban.com/news/detail-507992.html

获取信息脚本demo
pipeline {
    agent any
    stages {
        stage('拉取代码') {
            steps {
                checkout([
			        $class: 'GitSCM',
			        branches: [[name: "*/$branchName"]],
			        doGenerateSubmoduleConfigurations: false,
			        extensions: [
			            [$class: 'RelativeTargetDirectory',
			            relativeTargetDir: "$relativeTarget"]
			        ],
			        submoduleCfg: [],
			        userRemoteConfigs: [
			            [credentialsId: "$credentialsId", url: "$gitUrl"]
			        ]
			    ])
            }
        }
        
		stage('构建代码') {
            steps {
				script{
                    List<String> changes = getChangedFilesList()
                    println ("文件变更列表: " + changes)
 
                    String gitCommitId = getGitcommitID()
                    println("CommitID: " + gitCommitID)
 
                    String gitCommitAuthorName = getAuthorName()
                    println("提交人: " + gitCommitAuthorName)
 
                    String gitCommitMessage = getCommitMessage()
                    println("提交信息: " + gitCommitMessage)
				}
            }
        }

    }
}

//获取变更文件列表,返回HashSet,注意添加的影响文件路径不含仓库目录名
@NonCPS
List<String> getChangedFilesList(){
    def changedFiles = []
    for ( changeLogSet in currentBuild.changeSets){
        for (entry in changeLogSet.getItems()){
            changedFiles.addAll(entry.affectedPaths)
        }
    }
    return changedFiles
}

// 获取提交ID
@NonCPS
String getGitcommitID(){
    gitCommitID = " "
    for ( changeLogSet in currentBuild.changeSets){
        for (entry in changeLogSet.getItems()){
            gitCommitID = entry.commitId
        }
    }
    return gitCommitID
}

// 获取提交人
@NonCPS
String getAuthorName(){
    gitAuthorName = " "
    for ( changeLogSet in currentBuild.changeSets){
        for (entry in changeLogSet.getItems()){
            gitAuthorName = entry.author.fullName
        }
    }
    return gitAuthorName
}

// 获取提交信息
@NonCPS
String getCommitMessage(){
    commitMessage = " "
    for ( changeLogSet in currentBuild.changeSets){
        for (entry in changeLogSet.getItems()){
            commitMessage = entry.msg
        }
    }
    return commitMessage
}

到了这里,关于Jenkins获取git文件变更列表、提交ID、提交人、提交信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git基本操作之 修改提交信息 取消暂存文件 撤销文件修改

    git 文件分为         本地文件【即你当前在git  bash终端ls 看到的文件】         暂存文件【即你使用了git  add 之后存储在index file 的文件,此文件是下一步commit的暂存】         仓库文件【即执行了git commit之后的文件】 1.修改提交信息 ,这里指的是修改 git  commit的时

    2023年04月08日
    浏览(55)
  • 帝国CMS在自定义列表中获取当前列表ID的方法

    本文实例讲述了帝国CMS在自定义列表中获取当前列表ID的方法。分享给大家供大家参考,具体如下: 今天用帝国CMS做一个项目时,发现帝国自定义列表中无法获取当前自定义列表的ID。分析帝国源码后以现,帝国默认传出的值为0。下面简单记录一下如何通过修改源码实现“帝

    2023年04月20日
    浏览(89)
  • 如何通过TortoiseGit可视化工具查看Git管理的版本树和信息(工作树变更)内容

    黑色直线:master分支和基于master分支拉取基础分支都在这条线上,是一条直线。 其他线条:新开分支一定会增加一条线,但不一定每一条线分别代表一个分支。 注:如果一直是一个人,在同一个本地分支改的话,会一直是这条黑线。 即: 新的分支commit的差异,会产生新的支

    2024年02月04日
    浏览(127)
  • git识别不到文件名大小写变更

    把文件名从首字母小写改为首字母大写,然后 push 到远程,这时候 vscode 里识别不到文件的变更,导致本地的文件名是首字母大写,远程的文件名还是首字母小写,原因是git默认配置是忽略大小写 解决方法: 执行 git config core.ignorecase 查看本地仓库git忽略大小写是打开还是关

    2024年02月16日
    浏览(55)
  • 帝国CMS会员中心调用当前会员提交过的信息反馈列表

    帝国CMS有个 信息反馈功能,常用来做网站留言反馈,在线预约等。 帝国CMS会员中心调用我提交的信息反馈列表的方法 通过本教程可以实现,在会员中心调用当前会员提交过的信息反馈列表,代码如下: \\\".$r[\\\'title\\\'].\\\"\\\".$r[\\\'saytime\\\'].\\\"\\\";}? 到这就ok了

    2024年02月03日
    浏览(53)
  • 在vscode中使用git时如何忽略无关文件的变更

    在源代码管理中直接右键不想上传的变更,选择添加到.gitignore中 右键添加到.gitignore 以上操作后会在根目录下生成一个.gitignore文件,可直接编辑来达到忽略无关文件变更的效果 在.gitignore中直接修改,不同步一类文件,格式为*.x(后缀为你不想上传的文件后缀) 此时已屏蔽的文

    2024年01月18日
    浏览(37)
  • java获取jenkins发布版本信息

    一.需求: 系统cicd发布时首页需要展示jenkins发布的版本和优化内容 二.思路: 1.jenkins创建用户和秘钥 2.找到对应构建任务信息的api 3.RestTemplate发起http请求 三.实现: 1.创建用户和token 2.查找jenkins API 3.java发起请求

    2024年02月09日
    浏览(41)
  • 【Git】Git修改已经提交的备注信息

    在使用Git时,有时候备注信息可能会写错,而备注的重要性,相信用过Git的小伙伴都清楚。因此,当把备注写错的时候,就需要进行修改。 以上就是今天记录的内容,Git修改意见提交的备注信息。

    2024年02月11日
    浏览(38)
  • git修改提交信息commit

    问题出现,我们在开发版本任务的时候有新增需求,里面分重构原有需求 refactor ,新增需求 feat ,修复bug fix ,性能优化 perf 等等。这有利于团队代码评审 code Review 然而,我有次提交信息之后忘记写属于什么类型的需求了,得要改不能撤销,只能就行git操作 第一步使用 git

    2024年02月01日
    浏览(44)
  • git修改提交信息(commit)

    在公司一般都会使用代码管理工具,git是一款用于仓库管理系统的开源项目,使用Git作为代码管理工具,可以是项目版本管理变得简单,易于版本回滚和代码管理。 Gitlab 是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文

    2024年01月25日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包