我需要从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阻止用户
答案 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
,可以是state
或active
。您可以使用blocked
实用程序或任何其他高级编程语言来解析JSON并找到jq
字段的值。
或者,您可以附加state
;这样,如果用户被阻止,您将获得该用户;如果被阻止,则将获得一个空数组(&active=true
)。在bash中测试起来会更容易,因为您只需要查看结果是否为[]
。 (您也可以使用"[]"
进行相反的测试,以仅在被阻止时返回用户。)
您可以找到相关的文档here。