The developers list should work for this, it is what I use with git.

On Wed, Jun 1, 2016, 05:11 Mike Lehan <[email protected]> wrote:

> I spent a long time searching for a way to have Jenkins email whichever
> user pushed a branch (on BitBucket) with the notification of how the build
> for that branch progressed. I wasn't able to find anything so wrote my own
> solution and documented it on Stack Overflow.
>
>
> http://stackoverflow.com/questions/37567901/setting-jenkins-to-email-a-build-notification-to-the-bitbucket-user-who-pushed-a
>
> Given this is a Jenkins community I though it might be helpful to share it
> with you:
>
> *Question*
>
> A project repository has been successfully connected to a Jenkins server
> using the BitBucket plugin, and a project set up such that:
>
>    - Each push to a branch in BitBucket will trigger a webhook sent to
>    the Jenkins server
>    - When the Jenkins server receives the webhook it will build the
>    changed branch (by specifying branch name as ** in the config)
>    - After the build is complete a notification is sent back to BitBucket
>    of the build status using the BitBucket notifier
>    - Each of these has been easy to set up with just the instructions in
>    the plugin and a few quick Googles. However I've now run into a problem
>    which is maybe more a matter of wanting to run in an unconventional manner
>    than anything else.
>
> Using the normal emailer plugin or the Email-ext plugin it's possible to
> set emails to send to people involved in the creation of a build. For
> example the Email-ext plugin allows choice of:
>
>    - Requester
>    - Developers (all people who have commits in the build based off its
>    last version)
>    - Recipient list (a pre-set list)
>    - Various "blame" settings for broken builds
>
> The development process being followed involves each project being worked
> on by one developer in a named branch, e.g. userA/projectB. Obviously other
> developers could check that out and push to make changes but that's frowned
> upon. Even in that instance, the user who pushes the change to BitBucket
> should be notified.
>
> None of the current settings support this. Requester is the closest, but
> that only works for manual builds. It seems a very simple requirement that
> the push to SCM that triggered a build should notify the user who pushed,
> but this is not documented anywhere that is easy to find.
>
> *Answer*
>
> After a lot of searching it seems the only way to accomplish this is by
> using a Pre-send script. This is added to the Advanced setting of the
> Email-ext post-build step, and takes the form of code written in Groovy
> which is a Java extension.
>
> The script can take advantage of Environment variables, but is hard to
> test as there's no way to run the script with these in place. You can test
> simple Groovy scripts from Home -> Manage Jenkins -> Script console.
>
> One important "gotcha" with the environment variables is that they are
> "included" in the script, rather than variables or constants. E.g. before
> the script compiles and runs, the content of the variable is pasted in
> place of its $NAME. In the example below the multi-line string syntax is
> used to include the BitBicket payload, whereas it might be expected that
> def payload = $BITBUCKET_PAYLOAD
> would simply work.
>
> import javax.mail.Address
> import javax.mail.internet.InternetAddress
> import javax.mail.internet.MimeMessage
> import groovy.json.JsonSlurper
>
>
> def jsonSlurper = new JsonSlurper()
>
>
> def bitbucket = jsonSlurper.parseText('''
>    $BITBUCKET_PAYLOAD'''
> )
>
>
> switch (bitbucket.actor.username){
>   case "userA":
>     msg.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse(
> "[email protected]"));
>   break;
>   case "userB":
>     msg.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse(
> "[email protected]"));
>   break;
> }
>
> The setRecipients command overwrites any existing recipient. Thus the
> recipient list or other email configuration can be set as a fallback for if
> the user is not recognised. As added debugging, including the username in
> the body might help.
>
> If the script fails, stack traces should be printed to the console log
> output of the test, and the build pass/fail shouldn't be affected, but the
> normal email address setup will be used instead. In stack traces look for
> lines with Script() in them, as that's the container which evaluates the
> Groovy script.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/36c22ac1-0f20-4ce0-9d17-cb8ed116e458%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/36c22ac1-0f20-4ce0-9d17-cb8ed116e458%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVfwLxx53Jag%2Bm8qjyVBOTA-gw2%3DKtimzaF5Nn9aHqz%2BDg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to