git - 如何仅获取 git commit 的未阻止作者电子邮件
问题描述
我需要从 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 阻止用户
解决方案
转到此处(或者更确切地说,您的私人 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
而不是username=$username
.你会得到一个 JSON。其中一个字段是
state
,可以是active
或blocked
。您可以使用该jq
实用程序或任何更高级别的编程语言来解析 JSON 并查找state
字段的值。或者,您可以附加
&active=true
; 这样,如果用户未被阻止,您将获得该用户,[]
如果被阻止,您将获得一个空数组 ( )。这会更容易在 bash 中测试,因为您只需要查看结果是否正确"[]"
。(您也可以进行相反的测试,&blocked=true
仅在被阻止时返回用户。)
您可以在此处找到相关文档。
推荐阅读
- asp.net-core - 跨服务提供者范围传输对象
- python - 如何保存深度超级学习者图?
- graph - 解决最短边问题的算法?
- node.js - 由于导入量角器而无法加载 config.ts
- python - 在 2d python 列表中附加值
- javascript - 使用大写首先对字符串数组进行排序,包括重音符号
- algorithm - 如何将二维点划分为间隔(仅使用垂直线)?
- java - 如何修复“SQLServerException:连接已关闭”。在这个 Try-With-Resources 块中出现?
- vb.net - WEB API 功能已停止工作 - 无法识别 JSON 结构
- ios - 自定义单元格中的按钮索引