作者:幻幻
背景
我们希望把飞书审批和仓库成员管理联动起来,实现审批通过以后自动把人员加到仓库中。
集成平台提供了内置的 GitHub 连接器,但是只提供了读取 Repo、Issue 相关的能力,没有提供添加 Collaborator 相关的能力。因此我们通过自建连接器来实现这个业务场景。
操作步骤
新建连接器
新建一个自建的 GitHub 连接器,连接器名称可以随便起;连接器标识符有长度限制需要 >12 个字符,可以用公司名+系统名;
250px|700px|reset
增加 Add Collaborator 操作
创建操作成功后,需要再单独配置一下响应码,定义为 $.code == 0 时成功。
250px|700px|reset
250px|700px|reset
搭建工作流
- 使用飞书审批作为触发器,当审批实例状态变更时触发工作流
- 由于飞书审批事件推送里没有审批表单的详细信息,因此后面搭配了飞书审批连接器先拿到单据详情,再使用 JSON 助手将审批表单组件转换成表达式可处理的 JSON 对象,再搭配数据转换组件将审批表单的 map 数据结构转换为 Object,最终输出的格式如下所示
{
"object": {
"仓库": "AnyCrossRepo",
"你的GitHub用户名": "申请人username",
"申请的权限": "pull"
}
}
- 使用自建的 GitHub 连接器里的「添加协作者」方法,将用户添加到指定的 Repo 中并赋予对应的权限
- 添加权限成功后,发送消息通知
- 最终效果