summaryrefslogtreecommitdiffstats
path: root/build-gluster-org/scripts/bugzilla-post.sh
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2018-02-14 04:38:43 +0530
committerAmar Tumballi <amarts@redhat.com>2018-03-20 20:00:16 +0530
commitf4cdebf5f9782a7686438e112d7e08967cbdce12 (patch)
treea7ae5e4a3974454b1e32e00700341587c36b00f0 /build-gluster-org/scripts/bugzilla-post.sh
parentd6ac7ec288f3e0c90d564b354e5487e1aabc2a2f (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.sh40
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
}