历史版本7 :【Gitlab】研发代码审核结果推送 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1.场景编辑

对于信息部而言,需求实现的一般流程为“业务提出需求-研发开发需求-测试审核需求-业务验收需求”,其中研发的开发一般发生于代码平台,其他流程在数知鸟平台发生。

数知鸟支持集成代码平台,在数知鸟内实时推送代码平台中的代码开发进度,节省人工通知时间、简化跨平台查看进度的操作,让研发进度更透明,便于测试展开后续工作。

下文以Gitlab为例。

2.Gitlab集成设置编辑

2.1新增测试webhook

「设置」>「webhooks」,根据帮助文档进行操作贴入测试webhook链接,勾选“合并请求事件”,点击“添加webhook”


2.2了解请求结构与内容

进行一系列测试操作后,收到请求,发现关键信息处于请求中的body结构中,具体信息如下,有效信息为请求类别object_kind/代码提交者username/代码任务名称title/代码状态state

{
  "object_kind": "merge_request",
  "event_type": "merge_request",
  "user": {
    "id": 31717,
    "name": "wei lai",
    "username": "weilai",
    "avatar_url": null,
    "email": "[REDACTED]"
  },
  "project": {
    "id": 75877,
    "name": "Learn GitLab - Ultimate trial",
    "description": "Learn how to use GitLab to support your software development life cycle.",
    "web_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
    "avatar_url": "https://jihulab.com/uploads/-/system/project/avatar/75877/Artboard.jpg",
    "git_ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
    "git_http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git",
    "namespace": "weilai",
    "visibility_level": 0,
    "path_with_namespace": "weilai1/learn-gitlab-ultimate-trial",
    "default_branch": "master",
    "ci_config_path": "",
    "homepage": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
    "url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
    "ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
    "http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git"
  },
  "object_attributes": {
    "assignee_id": null,
    "author_id": 31717,
    "created_at": "2022-11-30 20:21:21 +0800",
    "description": "",
    "head_pipeline_id": null,
    "id": 186306,
    "iid": 1,
    "last_edited_at": null,
    "last_edited_by_id": null,
    "merge_commit_sha": null,
    "merge_error": null,
    "merge_params": {
      "force_remove_source_branch": "1"
    },
    "merge_status": "preparing",
    "merge_user_id": null,
    "merge_when_pipeline_succeeds": false,
    "milestone_id": null,
    "source_branch": "dev",
    "source_project_id": 75877,
    "state_id": 1,
    "target_branch": "master",
    "target_project_id": 75877,
    "time_estimate": 0,
    "title": "EP-1 更新 README.md",
    "updated_at": "2022-11-30 20:21:21 +0800",
    "updated_by_id": null,
    "url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial/-/merge_requests/1",
    "source": {
      "id": 75877,
      "name": "Learn GitLab - Ultimate trial",
      "description": "Learn how to use GitLab to support your software development life cycle.",
      "web_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
      "avatar_url": "https://jihulab.com/uploads/-/system/project/avatar/75877/Artboard.jpg",
      "git_ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "git_http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git",
      "namespace": "weilai",
      "visibility_level": 0,
      "path_with_namespace": "weilai1/learn-gitlab-ultimate-trial",
      "default_branch": "master",
      "ci_config_path": "",
      "homepage": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
      "url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git"
    },
    "target": {
      "id": 75877,
      "name": "Learn GitLab - Ultimate trial",
      "description": "Learn how to use GitLab to support your software development life cycle.",
      "web_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
      "avatar_url": "https://jihulab.com/uploads/-/system/project/avatar/75877/Artboard.jpg",
      "git_ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "git_http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git",
      "namespace": "weilai",
      "visibility_level": 0,
      "path_with_namespace": "weilai1/learn-gitlab-ultimate-trial",
      "default_branch": "master",
      "ci_config_path": "",
      "homepage": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial",
      "url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "ssh_url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
      "http_url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial.git"
    },
    "last_commit": {
      "id": "a8629e88b02abfd346d06bda8da86f85205e12bf",
      "message": "更新 README.md",
      "title": "更新 README.md",
      "timestamp": "2022-11-30T12:17:15+00:00",
      "url": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial/-/commit/a8629e88b02abfd346d06bda8da86f85205e12bf",
      "author": {
        "name": "wei lai",
        "email": "171706193@qq.com"
      }
    },
    "work_in_progress": false,
    "total_time_spent": 0,
    "time_change": 0,
    "human_total_time_spent": null,
    "human_time_change": null,
    "human_time_estimate": null,
    "assignee_ids": [],
    "reviewer_ids": [],
    "labels": [],
    "state": "opened",
    "blocking_discussions_resolved": true,
    "first_contribution": false,
    "detailed_merge_status": "checking",
    "action": "open"
  },
  "labels": [],
  "changes": {
    "merge_status": {
      "previous": "unchecked",
      "current": "preparing"
    }
  },
  "repository": {
    "name": "Learn GitLab - Ultimate trial",
    "url": "git@jihulab.com:weilai1/learn-gitlab-ultimate-trial.git",
    "description": "Learn how to use GitLab to support your software development life cycle.",
    "homepage": "https://jihulab.com/weilai1/learn-gitlab-ultimate-trial"
  }
}

2.3新增正式webhook

将数知鸟新增集成服务中的“webhook地址”贴入Gitlab内webhook接收位中,重复2.1操作

3.数知鸟基础设置编辑

1)在需求类型设置中新增下拉字段“代码合并状态”

2)数知鸟中新增对应代码需求,后续代码标题以需求id为前缀

4.数知鸟集成设置编辑

3.1新增“集成服务”

「设置」>「集成配置」>「集成服务」,新增配置、设置集成名称。

2-185-1.png

3.2配置“集成服务”

1)设置动态数据映射

将2.2中了解到的有效信息设置为动态数据映射,具体信息根据请求内容及实际场景而定,下图仅供参考

2)在webhook卡片中设置集成服务作用空间

3)新增“添加条件”步骤并配置

由于在gitlab中每一步会发送3条请求,而其中的有效请求只有请求类别为“merge_request”的请求,因为需要在此次卡片中过滤出有效请求、防止做出无意义的重复动作

4)新增“筛选需求”并配置

筛选出对应的数知鸟需求“需求id=代码任务标号”,从而推送该需求对应的代码合并状态

5)新增“变更字段值”并配置

为了让代码合并状态变更更明显,在此步骤中根据代码真实状态、变更该需求中对应的“代码合并字段”字段值

6)新增“提交备注”步骤并配置

通过提交备注,对上述“代码合并状态”变更进行更详细的解释

4)保存

4.检验编辑

在Gitlab中进行提交代码操作,在集成服务列表中,可点击查看具体运行情况,了解是否成功运行

5.执行效果编辑