2015-01-20 19 views
7

में उपयोग करने के लिए वर्तमान जेनकिंस उपयोगकर्ता का ई-मेल पता कैसे प्राप्त करें मैंने नए जेनकींस वर्कफ़्लो प्लगइन, https://github.com/jenkinsci/workflow-plugin के लिए एक ग्रोवी स्क्रिप्ट बनाई है। मैं चाहता हूं कि वह उस उपयोगकर्ता को मेल भेज दे जिसने नौकरी शुरू की, जब उसे अगले चरण के लिए इनपुट की आवश्यकता हो। मैंने एपीआई खोजने की कोशिश की है लेकिन मुझे उपयोगकर्ता ईमेल पता प्राप्त करने के बारे में कुछ भी नहीं मिला है।ग्रोवी स्क्रिप्ट

मैं इस तरह कुछ सोचता हूं।

import hudson.model.User 
def user = User.current() 
def mailAddress = user.getMailAddress() 

क्या वर्तमान जेनकींस उपयोगकर्ता का पता ग्रोवी में प्राप्त करने का कोई तरीका है?

import hudson.model.AbstractProject 
import hudson.tasks.Mailer 
import hudson.model.User 

def item = hudson.model.Hudson.instance.getItem(env.JOB_NAME) 
def build = item.getLastBuild() 
def cause = build.getCause(hudson.model.Cause.UserIdCause.class) 
def id = cause.getUserId() 
User u = User.get(id) 
def umail = u.getProperty(Mailer.UserProperty.class) 
print umail.getAddress() 

उत्तर

10

मैं एक रास्ता मिल गया आपके जवाब में किया है।

print user.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress(); 
+1

1.4 में से आपको नौकरी की तलाश करने और इसके 'अंतिम बिल्ड' के लिए पूछने के बजाय 'currentBuild.rawbuild' का उपयोग करना चाहिए। –

4

आप विधि current()

def user = hudson.model.User.current(); 

ईमेल पता है कि तुम क्या करने के लिए के रूप में एक ही तरीके से प्राप्त किया जा सकता है के साथ वर्तमान उपयोगकर्ता की वस्तु का उपयोग कर सकते हैं:

+0

वर्कफ़्लो प्लगइन जॉब में 'hudson.model.User.current();' सिस्टम उपयोगकर्ता को लौटाता है। वह उपयोगकर्ता नहीं जिसने निर्माण शुरू किया। हमारे सेटअप सिस्टम में मेल पता नहीं है इसलिए यह शून्य हो जाता है। – mipmip

+0

@mipmip तो आपका उत्तर सही है। – satrun77

+0

हाँ। मुझे खुशी है कि यह बस गया है :) – mipmip

1

आप (वर्ग कि BuildWrapper फैली setUp() विधि में उदाहरण के लिए) अपने प्लगइन के जावा कोड में build चर के लिए उपयोग किया है, तो आप वर्तमान में उपयोगकर्ता इस तरह से लॉग इन कर सकते हैं:

@Override 
public MyJenkinsPlugin setUp(AbstractBuild build, Launcher launcher, BuildListener listener) 

    String connectedUser = build.getCause(Cause.UserIdCause.class).getUserId(); 
    String mail = User.get(connectedUser.getProperty(hudson.tasks.Mailer.UserProperty.class).getEmailAddress() 
... 
} 

मैं User.current().getId() का उपयोग कर लॉग ऑन उपयोगकर्ता प्राप्त करने में सक्षम नहीं किया गया है, यह हमेशा वापस आ मुझे 'SYSTEM'।

उम्मीद है कि यह मदद करता है!

0
import hudson.tasks.Mailer; 
import hudson.model.User; 
import hudson.model.Cause; 
import hudson.model.Cause.UserIdCause; 

def cause = build.getCause(hudson.model.Cause$UserIdCause) 
def id = cause.getUserId() 
User u = User.get(id) 
def umail = u.getProperty(Mailer.UserProperty.class) 
print umail.getAddress() 
संबंधित मुद्दे