GitLab机器人,用于自定义过梁工具以注释

nittymcpick的Python项目详细描述


Build statusPyPI versionPython versionDownloadsLanguage grade: Python

尼蒂姆皮克

你这个爱挑剔的GitLab机器人

目的

此bot在从接收webhook时运行自定义linting工具 GitLab并将其结果作为注释报告给合并请求 差异

先决条件

  • python 3.6+
  • GitLab CE/EE公司

设置

将刀具安装到机器上

GitLab服务器必须可以通过网络访问此计算机。在 下面我们将假设在GitLab服务器上进行本地安装 本身(127.0.0.1

  • 通过pypi安装

    pip3 install nittymcpick
    

创建GitLab用户

  • 使用可以创建用户的帐户(例如root
    • admin/users/new
      • Name=nity McPick
      • Username=nitymcpick
      • Email=foo@localhost(或任何其他不存在的邮件 地址)
      • Access Level=常规
    • admin/users/nitymcpick/impersonation_令牌
      • Name=例如,Nitty McPick Bot
      • Scopes=apiread榍存储库
      • IMPORTANT复制新模拟的内容 代币

将bot添加到项目中

  • 使用可以更改项目设置的帐户转到Gitlab
    • [username]/[project]/-project_成员/
      • 搜索Nitty McPick,地址:**GitLabd member or Email address*
      • 单击Invite
      • 将级别Nitty McPickGuest更改为Reporter

创建GitLab webhook

  • 使用可以更改项目设置的帐户转到Gitlab
    • **[用户名]/[项目]/-/settings/integrations
      • URLhttp://127.0.0.1:8888
      • Trigger:合并请求事件
      • SSL verification:取消选中该框
      • 单击Add webhook

为bot创建配置

创建一个json文件,如 config.json.sample。文件可以包含任何 项目数量

linter
attributedescription
namename of the linting tool
pathabsolute path of binary of the linting tool
argslist of additional arguments to be passed to the linter
ret_regexregular expression for evaluation of the output of the linter (see Return Regex)
tweaks.lin e_count_ad justAdd number of lines to the reported output line number
tweaks.sin gle_file_e xecRun each matching file in a single linter instance, otherwise all files will be run by a single instance
matches部分
^{tb2}$
返回正则表达式

用于提取所有所需数据的正则表达式应包含 以下命名组

  • severity-表示发现的严重性(可选)
  • line-发现的行
  • message-一条有意义的消息
  • file-查找的

运行工具

^{pr2}$

例如,跑步

exportGL_ACCESS_TOKEN=<Impersonation Token from gitlab>
nittymcpick config.json

现在,每当合并请求被打开或更改时,工具将运行所有 配置好的线切割工具。一旦发现,它会直接对其进行评论 像这样的先生

Nitty McPick @nittymcpick · just now
Reporter

mytool found a potential error - the code is absolutely insecure

Docker

下面有一个已准备好的容器 privkweihmann/nittymcpick:latest

关于安全的一句话

强烈建议在gitlab服务器上运行bot,因为 目前只支持http://作为webhook协议。在

欢迎使用PRs启用https://!在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中运行时在两个枚举类之间切换   java如何让PicoContainer启动/停止/处置工厂注入的组件?   带有Recyclerview onClick的java多活动   java如何从TestNG tests和Selenium接口调用默认方法?   java无法在Eclipse3.5.2中折叠注释   RR和SJF CPU调度算法的Java代码   java从属性文件配置记录器   java Notify传输在字符更改后超过20个字节完成   java阵列究竟是如何工作的   java跨类/包维护全局但可变的变量   java向setMessageListener注册侦听器服务   java按钮单击不在片段中工作   java GSSExException:使用spnego在GSSAPI上未指定故障(机制级别:不支持/启用带有HMAC SHA196的加密类型AES256CTS模式)   用java绘制虚线的图形   java从networkdrive启动windows捆绑包使用不包括JRE?   多线程java线程体系结构与应用程序设计