BTW, it looks like this PR:
https://github.com/jenkinsci/build-flow-plugin/pull/53 will fix this
properly so no more hacky scripts will be needed
On Saturday, 1 November 2014 00:21:02 UTC-7, Nick Dierauf wrote:
>
> 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]> 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].
>>> 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.