如何仅获取git commit的未阻止作者电子邮件

时间:2018-11-13 11:06:52

标签: git jenkins jenkins-pipeline

我需要从jenkins发送电子邮件通知给git commit的作者。

要获得git commit作者,我使用了sh脚本:

git_emails = sh ( 
          script: "git log --format='%cE%n%aE%n%gE' ${gitLogCommand} | sort -u", 
          returnStdout: true 
        ).trim()

在发送电子邮件之前,我需要检查返回的作者是否在Gitlab中被阻止。

有谁知道该怎么做!谢谢。

编辑:从Gitlab阻止用户

enter image description here

1 个答案:

答案 0 :(得分:1)

  • 转到here(或者,在您的私人GitLab上进行等效设置:“用户设置”>“访问令牌”)并生成具有read_user权限的访问令牌。请确保将其复制,否则您将再也看不到它了(必须重新制作一个)。

  • 您可以发出以下命令:

    curl -H "Private-Token: $token" "https://gitlab.com/api/v4/users/?username=$username"
    

    其中$token是您创建的令牌,而$username是您要检查的用户的GitLab用户名。 (同样,您可能需要调整URL以匹配您的GitLab所在的位置,我认为您在这里谈论的不是gitlab.com。)您还可以使用search=$email代替{ {1}}。

    您将获得一个JSON。字段之一是username=$username,可以是stateactive。您可以使用blocked实用程序或任何其他高级编程语言来解析JSON并找到jq字段的值。

    或者,您可以附加state;这样,如果用户被阻止,您将获得该用户;如果被阻止,则将获得一个空数组(&active=true)。在bash中测试起来会更容易,因为您只需要查看结果是否为[]。 (您也可以使用"[]"进行相反的测试,以仅在被阻止时返回用户。)

您可以找到相关的文档here