summaryrefslogtreecommitdiffstats
path: root/build-gluster-org/scripts/bugzilla-post.sh
blob: 2ce3faf5c64d4f35937ce03715f59112870c4a74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
set -x
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}')
        if [ "$bugid" == "$old_bugid" ]; then
            exit 0
        fi
    fi
}

function update_bugzilla()
{
    bugid=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d | grep -i '^bug: ' | awk '{print $2}');
    [ -z "$bugid" ] && return;

    product=$(bugzilla query -b $bugid --outputformat='%{product}');
    if [ "$product" != "GlusterFS" ]; then
        echo "Wrong product: $product" >&2;
        return 1;
    fi

    #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";
        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";
        fi
    else
      bugzilla modify $bugid  --comment="COMMIT: $GERRIT_CHANGE_URL committed in $GERRIT_BRANCH by $GERRIT_SUBMITTER $(echo; echo; echo -------------; echo;echo;echo;) $(echo $GERRIT_CHANGE_COMMIT_MESSAGE | base64 -d)";
    fi
}

function main()
{
    if [ "$GERRIT_PROJECT" != "glusterfs" ]; then
        return;
    fi
    update_bugzilla;
}

main;