根据pr标题的元素自动标记github请求。在PR标题中需要JIRA样式的票证代码(proj-100)
pull-request-auto-labeler的Python项目详细描述
拉取请求自动标签
根据pr标题的元素自动标记github请求。 默认配置要求pr title中包含jira样式的票证代码(proj-100)
此贴标机执行以下操作:
- 获取组织/用户所有存储库的所有打开的请求
- 检查每个PR的标题(proj-100)中是否有任何匹配的JIRA样式的票号。
- 将标签应用于与标题(proj)中项目代码的大写版本相匹配的拉取请求。
安装
如果要将其作为cron运行,可以使用pip从pypi安装:
pip install pull-request-auto-labeler
但是如果你要把它设置为aws lambda,你需要serverless.yaml
、serverless-requirements.txt
和handler.py
这样你就可以提取源代码了。
设置
设置以下环境变量:
- [必需]github_api_令牌:一个github api令牌,它可以读取您想要的存储库 并修改 拉取请求。 如果没有,您可以看到指南here
- [必需]组织:要检查prs的github组织/用户名的名称。
- [可选]label_extracting_regex:regex表达式,将使用python的
re.findall
。- 这个正则表达式应该有一个匹配的组,该组返回 应该用作标签。即,如果regex找到proj-100,则匹配组应为proj
- 因为我们使用的是
re.findall
,所以在标题上可以有多个匹配项,但是每个 匹配项必须只有一个组。 - 默认值是
\s*[\[]*([a-zA-Z0-9]{2,})[-|\s][0-9]+
,它匹配:PROJ-100
,[PROJ-100]
,B2C-1
,Proj 100
。
从命令行运行
python auto_labeler.py
作为cron在aws lambda上运行
为了方便起见,我提供了一些安装说明,可以使用aws lambda将其作为cron运行,这是serverless工具包简化的。如果您没有使用过无服务器,我有一个无服务器入门指南here
安装无服务器插件
无服务器的python需求
手动部署时,向lambda添加外部需求非常烦人。你得造轮子 对于aws linux ami上的包,并包括您上传的zip中的包。幸运的是,有一个无服务器的插件 让这一切变得非常容易。
sls plugin install -n serverless-python-requirements
为此项目设置无服务器
- 将此repo中的
serverless.yaml
、serverless-requirements.txt
和handler.py
文件复制到使用此repo的任何位置,或者只需下载此repo并将其用作源文件 - 调整任何需要匹配设置的提供者参数
- 设置运行频率(在
functions>lambdaCron>events>schedule
下更新)
部署到aws
sls deploy