[jbossts-issues] [JBoss JIRA] (JBTM-2996) Change the Narayana CI jobs to consider membership of PR author
Ondra Chaloupka (JIRA)
issues at jboss.org
Fri Feb 23 06:37:00 EST 2018
[ https://issues.jboss.org/browse/JBTM-2996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13537462#comment-13537462 ]
Ondra Chaloupka commented on JBTM-2996:
---------------------------------------
I distributed the change to all _pulls_ `-poller` jobs. I ended up with the following
```bash
export GIT_ACCOUNT=jbosstm
export GIT_REPO=narayana
export COMMENT_ON_PULL=1
function comment_on_pull {
if [ "$COMMENT_ON_PULL" = "" ]; then return; fi
PULL_NUMBER=$(echo $GIT_BRANCH | awk -F 'pull' '{ print $2 }' | awk -F '/' '{ print $2 }')
if [ "$PULL_NUMBER" != "" ]
then
JSON="{ \"body\": \"$1\" }"
curl -d "$JSON" -ujbosstm-bot:$BOT_PASSWORD https://api.github.com/repos/$GIT_ACCOUNT/$GIT_REPO/issues/$PULL_NUMBER/comments
else
echo "Not a pull request, so not commenting"
fi
}
PULL_NUMBER=$(echo $GIT_BRANCH | awk -F 'pull' '{ print $2 }' | awk -F '/' '{ print $2 }')
PULL_DESCRIPTION=$(curl -ujbosstm-bot:$BOT_PASSWORD -s https://api.github.com/repos/$GIT_ACCOUNT/$GIT_REPO/pulls/$PULL_NUMBER)
# https://developer.github.com/v4/reference/enum/commentauthorassociation/
PR_AUTHOR_MEMBERSHIP=$(echo $PULL_DESCRIPTION | sed 's/.*"author_association": "\([^,]*\)".*/\1/')
COMMENTS=$(curl -ujbosstm-bot:$BOT_PASSWORD -s https://api.github.com/repos/$GIT_ACCOUNT/$GIT_REPO/issues/$PULL_NUMBER/comments)
MEMBERS_COMMENTS=$(printf '%s' "$COMMENTS" | awk '/"author_association"|"body"/ { if(/MEMBER|COLLABORATOR|OWNER/) {getline; print;} }')
# if author of the PR is permitted or if the comment on the PR contains text 'TESTIT' written by one of the members
if [[ ! $PR_AUTHOR_MEMBERSHIP =~ MEMBER|COLLABORATOR|OWNER|CONTRIBUTOR ]] && [[ ! $MEMBERS_COMMENTS =~ TESTIT ]]; then
echo "Author of pull request '$PULL_NUMBER' is not member of github jbosstm organization or member comment needs to contain text 'TESTIT'"
printf "membership of PR:\n%s\n" "$PR_AUTHOR_MEMBERSHIP"
printf "members comments:\n%s\n" "$MEMBERS_COMMENTS"
comment_on_pull ':warning: CI not started.\n\nAuthor is not the '$GIT_REPO' contributor, members of $GIT_ACCOUNT can write comment of text `TESTIT` to permit PR being run.'
exit 0
fi
```
> Change the Narayana CI jobs to consider membership of PR author
> ---------------------------------------------------------------
>
> Key: JBTM-2996
> URL: https://issues.jboss.org/browse/JBTM-2996
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Components: Build System
> Affects Versions: 5.7.2.Final
> Reporter: Ondra Chaloupka
> Assignee: Ondra Chaloupka
> Priority: Minor
>
> It would be good to start using gihub webhooks instead of a poller jenkins cron job.
> Configure the triggers in Jenkins and webhook on github and consider using the plugin
> https://wiki.jenkins.io/display/JENKINS/GitHub+pull+request+builder+plugin
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jbossts-issues
mailing list