Thanks Stuart!
Nick.

On Wednesday, October 29, 2014 12:43:56 PM UTC-7, Stuart Rowe wrote:
>
> Here you go :)
>
>
> import javax.mail.Message
> import hudson.model.*
> import com.cloudbees.plugins.flow.*
> import hudson.tasks.MailAddressResolver
>
> def getUpstreamBuild(AbstractBuild curBuild)
> {
>     upStreamBuild = null
>     if(curBuild != null)
>     {
>         // find a cause that will lead to an upstream build
>         for( cause in curBuild.causes )
>         {
>             if(cause instanceof Cause.UpstreamCause)
>             {
>                 upStreamBuild = 
> Hudson.instance.getItem(cause.upstreamProject).getBuildByNumber(cause.upstreamBuild)
>                 break
>             }
>             else if(cause instanceof FlowCause)
>             {
>                 upStreamBuild = cause.getFlowRun()
>                 break
>             }
>         }
>     }
>     return upStreamBuild
> }
>
> def getUserIdCause(AbstractBuild curBuild)
> {
>     def userIdCause = null
>     if (curBuild != null)
>     {
>         for( cause in curBuild.causes )
>         {
>             if(cause instanceof Cause.UserIdCause)
>             {
>                 userIdCause = cause
>                 break
>             }
>         }
>     }
>
>     return userIdCause
> }
>
> def getEmailFromUserId(userId)
> {
>     email = null
>     user = User.get(userId, false, [:])
>     if(user)
>     {
>         email = MailAddressResolver.resolve(user)
>     }
>     return email
> }
>
> def getRootRequesterUserEmail()
> {
>     try
>     {
>         // try to find a user ID cause for the current build
>         def userIdCause = getUserIdCause(build)
>         if(userIdCause != null)
>         {
>             return getEmailFromUserId(userIdCause.getUserId())
>         }
>
>         def rootBuild = null
>         def curUpstreamBuild = getUpstreamBuild(build)
>
>         // find the top level build
>         while(curUpstreamBuild)
>         {
>             rootBuild = curUpstreamBuild
>             curUpstreamBuild = getUpstreamBuild(curUpstreamBuild)
>         }
>
>         // try to find a user ID cause from the top level build
>         userIdCause = getUserIdCause(rootBuild)
>         if(userIdCause != null)
>         {
>             return getEmailFromUserId(userIdCause.getUserId())
>         }
>     }
>     catch (e)
>     {
>         println e
>     }
>     return  null
> }
>
> // update the recipients with the requester from the top level build
> def userEmail = getRootRequesterUserEmail()
> return userEmail
>
>
> On Tue, Oct 28, 2014 at 6:17 PM, Nick Dierauf <[email protected] 
> <javascript:>> wrote:
>
>> Stuart, can you post the groovy script that you use to determine the 
>> email address (ie, "myscript.groovy")?
>> Thanks!
>> Nick.
>>
>>
>> On Tuesday, March 11, 2014 11:24:37 AM UTC-7, Stuart Rowe wrote:
>>>
>>> Hi, does anyone know of a way to look up a user's email address from 
>>> their user ID? I can't make the assumption that the email is "
>>> [email protected]" because I know this isn't always the case.
>>>
>>> We're using the Active Directory plugin for security which is where the 
>>> email addresses for users are coming from. I need to manually add the 
>>> requester to the recipient list because this doesn't seem to be propagated 
>>> by BuildFlow FlowCauses. The relevant parts of build pipeline in this case 
>>> is:
>>>
>>> BuildFlow project A (scheduled by the logged in user) --> Build Flow 
>>> project B --> Free Style Project with an Editable Email Notification post 
>>> build step.
>>>
>>> Thanks in advance, 
>>>
>>> Stuart
>>>
>>  -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Jenkins Users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/jenkinsci-users/nQtro7RisO4/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> 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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to