Add ability to skip change request update
In case when there are no changes between local state and remote,
only date in CR will be updated, so added ability to eliminate this
Change-Id: I661ea8e03222c5683acd37f811ab0b956279a9af
Related-Prod: https://mirantis.jira.com/browse/PRODX-18968
diff --git a/src/com/mirantis/mk/Git.groovy b/src/com/mirantis/mk/Git.groovy
index 5108cda..1426280 100644
--- a/src/com/mirantis/mk/Git.groovy
+++ b/src/com/mirantis/mk/Git.groovy
@@ -510,9 +510,11 @@
* - status Change request's status to search for
* - changeAuthorEmail Author's email of the change
* - changeAuthorName Author's name of the change
- */
+ * - forceUpdate Whether to update change if no diff between local state and remote
+ */
def updateChangeRequest(Map params) {
def gerrit = new com.mirantis.mk.Gerrit()
+ def common = new com.mirantis.mk.Common()
def commitMessage
def auth = params['gerritAuth']
@@ -526,14 +528,28 @@
def status = params.get('status', 'open')
def changeAuthorEmail = params['changeAuthorEmail']
def changeAuthorName = params['changeAuthorName']
+ def forceUpdate = params.get('forceUpdate', true)
def changeParams = ['owner': auth['USER'], 'status': status, 'project': project, 'branch': branch, 'topic': topic]
- def gerritChange = gerrit.findGerritChange(creds, auth, changeParams)
+ def gerritChange = gerrit.findGerritChange(creds, auth, changeParams, '--current-patch-set')
def changeId = params.get('changeId', '')
def commit
if (gerritChange) {
def jsonChange = readJSON text: gerritChange
changeId = jsonChange['id']
+ if(!forceUpdate){
+ def ref = jsonChange['currentPatchSet']['ref']
+ def res
+ dir(repo){
+ sshagent (credentials: [creds]){
+ res = common.shCmdStatus("git fetch origin ${ref} && git diff --quiet --exit-code FETCH_HEAD")["status"]
+ }
+ }
+ if (res == 0){
+ common.infoMsg("Current patch set ${ref} is up to date, no need to update")
+ return
+ }
+ }
}
commitMessage = genCommitMessage(repo, comment, changeId, change_id_seed)
commitGitChanges(repo, commitMessage, changeAuthorEmail, changeAuthorName, false, false)