如何以编程方式获取Jenkins用户ID?

时间:2012-05-15 16:13:51

标签: jenkins

我想将启动Jenkins作业的人的用户ID传递给脚本。 'env'的输出表示没有设置环境变量,'ant -v'的输出表示没有设置属性。如何访问开始工作的人的用户ID? (我知道触发器可以启动工作,但对于这项工作,它总是一个人)。

2 个答案:

答案 0 :(得分:3)

要获得作业执行者:

curl -s "${BUILD_URL}/api/json" | \
python -c '\
    import json; \
    import sys; \
    obj = json.loads(sys.stdin.read()); \
    print [ \
        cause["userId"] \
        for action in obj["actions"] \
        if "causes" in action \
        for cause in action["causes"] \
        if "userId" in cause][0];'

另请参阅How to set environment variables in Jenkins?,其中说明了如何将其传递到脚本中。

答案 1 :(得分:0)

BUILD_START_USER=`curl ${JOB_URL}'lastBuild/api/json' | python -c 'import json,sys;obj=json.loads(sys.stdin.read());print obj["'"actions"'"][1]["'"causes"'"][0]["'"userId"'"]'`