diff options
author | Amar Tumballi <amarts@redhat.com> | 2018-02-14 04:38:43 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2018-03-20 20:00:16 +0530 |
commit | f4cdebf5f9782a7686438e112d7e08967cbdce12 (patch) | |
tree | a7ae5e4a3974454b1e32e00700341587c36b00f0 /build-gluster-org/scripts/bugzilla-post.sh | |
parent | d6ac7ec288f3e0c90d564b354e5487e1aabc2a2f (diff) |
bugzilla: make status transition automatically
Change-Id: Ia05e9ebbf945e8a82ba324d4ad7520a9162c3386
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'build-gluster-org/scripts/bugzilla-post.sh')
-rw-r--r-- | build-gluster-org/scripts/bugzilla-post.sh | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/build-gluster-org/scripts/bugzilla-post.sh b/build-gluster-org/scripts/bugzilla-post.sh index 536cf1b..8979135 100644 --- a/build-gluster-org/scripts/bugzilla-post.sh +++ b/build-gluster-org/scripts/bugzilla-post.sh @@ -4,7 +4,14 @@ function commit_message_edited() { if [ "$GERRIT_PATCHSET_NUMBER" != "1" ]; then OLD_PATCHSET_NUM="$(($GERRIT_PATCHSET_NUMBER-1))" - old_bugid=$(curl -X GET https://review.gluster.org/changes/${GERRIT_PROJECT}~${GERRIT_BRANCH}~${GERRIT_CHANGE_ID}/revisions/$OLD_PATCHSET_NUM/commit | grep message | sed 's/\\n/\'$'\n''/g' | grep -i '^bug: ' | awk '{print $2}') + commit_msg=$(curl -X GET https://review.gluster.org/changes/${GERRIT_PROJECT}~${GERRIT_BRANCH}~${GERRIT_CHANGE_ID}/revisions/$OLD_PATCHSET_NUM/commit | grep message | sed 's/\\n/\'$'\n''/g') + + old_bugid=$(echo $commit_msg | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+bz#[[:digit:]]+" | awk -F '#' '{print $2}'); + if [ -z "$old_bugid" ] ; then + # This is needed for backward compatibility + old_bugid=$(echo $commit_msg | grep -i '^bug: ' | awk '{print $2}') + fi + if [ "$bugid" == "$old_bugid" ]; then exit 0 fi @@ -13,9 +20,24 @@ function commit_message_edited() function update_bugzilla() { - bugid=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d | grep -i '^bug: ' | awk '{print $2}'); - [ -z "$bugid" ] && return; + fixes=1 + bugid=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+bz#[[:digit:]]+" | awk -F '#' '{print $2}'); + update_string=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d | grep -ow -E "([fF][iI][xX][eE][sS]|[uU][pP][dD][aA][tT][eE][sS])(:)?[[:space:]]+bz#[[:digit:]]+" | awk -F ' ' '{print $1}'); + if [ ${update_string} == "updates:" ]; then + fixes=0 + fi + + if [ -z "$bugid" ] ; then + # Needed for backward compatibility + bugid=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d | grep -i '^bug: ' | awk '{print $2}'); + fi + # Gluster project moved to redhat around 2011 October, the bugzilla number then was 742000 + # Assumption is, anything below this number can be github issue. + if [ $bugid -lt 742000 ]; then + echo "Looks like a github issue ($bugid), treat it as not a bug" + return; + fi product=$(bugzilla query -b $bugid --outputformat='%{product}'); if [ "$product" != "GlusterFS" ]; then echo "Wrong product: $product" >&2; @@ -25,15 +47,19 @@ function update_bugzilla() #checking the type of event if [ "$GERRIT_EVENT_TYPE" != "change-merged" ]; then if [ "$GERRIT_PATCHSET_NUMBER" == "1" ]; then - bugzilla modify $bugid --comment="REVIEW: $GERRIT_CHANGE_URL ($GERRIT_CHANGE_SUBJECT) posted (#$GERRIT_PATCHSET_NUMBER) for review on $GERRIT_BRANCH by $GERRIT_PATCHSET_UPLOADER_NAME"; + bugzilla modify $bugid --comment="REVIEW: $GERRIT_CHANGE_URL ($GERRIT_CHANGE_SUBJECT) posted (#$GERRIT_PATCHSET_NUMBER) for review on $GERRIT_BRANCH by $GERRIT_PATCHSET_UPLOADER_NAME" --status POST; else commit_message_edited; bugzilla modify $old_bugid --comment="REVISION POSTED: $GERRIT_CHANGE_URL ($GERRIT_CHANGE_SUBJECT) posted (#$GERRIT_PATCHSET_NUMBER) for review on $GERRIT_BRANCH by $GERRIT_PATCHSET_UPLOADER_NAME"; - bugzilla modify $bugid --comment="REVIEW: $GERRIT_CHANGE_URL ($GERRIT_CHANGE_SUBJECT) posted (#$GERRIT_PATCHSET_NUMBER) for review on $GERRIT_BRANCH by $GERRIT_PATCHSET_UPLOADER_NAME"; + bugzilla modify $bugid --comment="REVIEW: $GERRIT_CHANGE_URL ($GERRIT_CHANGE_SUBJECT) posted (#$GERRIT_PATCHSET_NUMBER) for review on $GERRIT_BRANCH by $GERRIT_PATCHSET_UPLOADER_NAME" --status POST; fi else - MERGER=$(echo "$GERRIT_PATCHSET_UPLOADER" | sed 's/\\//g') - bugzilla modify $bugid --comment="COMMIT: $GERRIT_CHANGE_URL committed in $GERRIT_BRANCH by $MERGER with a commit message-$(echo; echo;) $(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d)"; + MERGER=$(echo "$GERRIT_PATCHSET_UPLOADER" | sed 's/\\//g') + if [ ${fixes} == 1 ]; then + bugzilla modify $bugid --comment="COMMIT: $GERRIT_CHANGE_URL committed in $GERRIT_BRANCH by $MERGER with a commit message-$(echo; echo;) $(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d)" --status MODIFIED; + else + bugzilla modify $bugid --comment="COMMIT: $GERRIT_CHANGE_URL committed in $GERRIT_BRANCH by $MERGER with a commit message-$(echo; echo;) $(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d)"; + fi fi } |