代码之家  ›  专栏  ›  技术社区  ›  JJD

GitLab:编辑合并请求描述会触发正在发送的合并请求挂钩

  •  0
  • JJD  · 技术社区  · 7 年前

    对于我在GitLab上的存储库,我有一个 合并请求挂钩 在Jenkins CI机器上触发构建的配置。当合并请求打开时,钩子按预期工作。

    webhook配置了以下触发器:

    最近,当我 编辑描述 在合并请求中,钩子还会通知CI机器。
    以下是一个POST请求示例:

    请求标题:

    Content-Type: application/json
    X-Gitlab-Event: Merge Request Hook
    

    请求机构:

    {
      "object_kind": "merge_request",
      "event_type": "merge_request",
      "user": {
        "name": "User Name",
        "username": "username",
        "avatar_url": "https://gitlab.example.com/uploads/-/system/user/avatar/145/avatar.png"
      },
      "project": {
        "id": 39,
        "name": "app",
        "description": "Lorem ipsum.",
        "web_url": "https://gitlab.example.com/projects/app",
        "avatar_url": "https://gitlab.example.com/uploads/-/system/project/avatar/39/app.png",
        "git_ssh_url": "git@gitlab.example.com:projects/app.git",
        "git_http_url": "https://gitlab.example.com/projects/app.git",
        "namespace": "projects",
        "visibility_level": 0,
        "path_with_namespace": "projects/app",
        "default_branch": "develop",
        "ci_config_path": null,
        "homepage": "https://gitlab.example.com/projects/app",
        "url": "git@gitlab.example.com:projects/app.git",
        "ssh_url": "git@gitlab.example.com:projects/app.git",
        "http_url": "https://gitlab.example.com/projects/app.git"
      },
      "object_attributes": {
        "assignee_id": null,
        "author_id": 5,
        "created_at": "2019-03-19 16:42:28 UTC",
        "description": "- s. https://fabric.io/development/projects/apps/com.example.app/issues/5974e5ffbe077a4dcc044254?time=last-thirty-days\r\n- Lorem ipsum.",
        "head_pipeline_id": 7473,
        "id": 9258,
        "iid": 844,
        "last_edited_at": "2019-03-20 09:00:21 UTC",
        "last_edited_by_id": 145,
        "merge_commit_sha": null,
        "merge_error": null,
        "merge_params": {
          "force_remove_source_branch": "1"
        },
        "merge_status": "can_be_merged",
        "merge_user_id": null,
        "merge_when_pipeline_succeeds": false,
        "milestone_id": null,
        "source_branch": "fix/random",
        "source_project_id": 39,
        "state": "opened",
        "target_branch": "develop",
        "target_project_id": 39,
        "time_estimate": 0,
        "title": "Fix random",
        "updated_at": "2019-03-20 09:00:21 UTC",
        "updated_by_id": 145,
        "url": "https://gitlab.example.com/projects/app/merge_requests/844",
        "source": {
          "id": 39,
          "name": "app",
          "description": "Lorem ipsum.",
          "web_url": "https://gitlab.example.com/projects/app",
          "avatar_url": "https://gitlab.example.com/uploads/-/system/project/avatar/39/app.png",
          "git_ssh_url": "git@gitlab.example.com:projects/app.git",
          "git_http_url": "https://gitlab.example.com/projects/app.git",
          "namespace": "projects",
          "visibility_level": 0,
          "path_with_namespace": "projects/app",
          "default_branch": "develop",
          "ci_config_path": null,
          "homepage": "https://gitlab.example.com/projects/app",
          "url": "git@gitlab.example.com:projects/app.git",
          "ssh_url": "git@gitlab.example.com:projects/app.git",
          "http_url": "https://gitlab.example.com/projects/app.git"
        },
        "target": {
          "id": 39,
          "name": "app",
          "description": "Lorem ipsum.",
          "web_url": "https://gitlab.example.com/projects/app",
          "avatar_url": "https://gitlab.example.com/uploads/-/system/project/avatar/39/app.png",
          "git_ssh_url": "git@gitlab.example.com:projects/app.git",
          "git_http_url": "https://gitlab.example.com/projects/app.git",
          "namespace": "projects",
          "visibility_level": 0,
          "path_with_namespace": "projects/app",
          "default_branch": "develop",
          "ci_config_path": null,
          "homepage": "https://gitlab.example.com/projects/app",
          "url": "git@gitlab.example.com:projects/app.git",
          "ssh_url": "git@gitlab.example.com:projects/app.git",
          "http_url": "https://gitlab.example.com/projects/app.git"
        },
        "last_commit": {
          "id": "cdda6f7d200468955ecbd224f0437932db607087",
          "message": "Fix random\n\n",
          "timestamp": "2019-03-20T08:45:40Z",
          "url": "https://gitlab.example.com/projects/app/commit/cdda6f7d200468955ecbd224f0437932db607087",
          "author": {
            "name": "User Name",
            "email": "username"
          }
        },
        "work_in_progress": false,
        "total_time_spent": 0,
        "human_total_time_spent": null,
        "human_time_estimate": null,
        "action": "update"
      },
      "labels": [
        {
          "id": 22,
          "title": "Bug fix",
          "color": "#FF0000",
          "project_id": null,
          "created_at": "2018-10-19 09:55:26 UTC",
          "updated_at": "2018-11-05 15:17:08 UTC",
          "template": false,
          "description": "",
          "type": "GroupLabel",
          "group_id": 15
        }
      ],
      "changes": {
        "description": {
          "previous": "s. https://fabric.io/development/projects/apps/com.example.app/issues/5974e5ffbe077a4dcc044254?time=last-thirty-days\r\nLorem ipsum.",
          "current": "- s. https://fabric.io/development/projects/apps/com.example.app/issues/5974e5ffbe077a4dcc044254?time=last-thirty-days\r\n- Lorem ipsum."
        },
        "last_edited_at": {
          "previous": "2019-03-19 16:42:50 UTC",
          "current": "2019-03-20 09:00:21 UTC"
        },
        "last_edited_by_id": {
          "previous": 5,
          "current": 145
        },
        "updated_at": {
          "previous": "2019-03-20 08:52:38 UTC",
          "current": "2019-03-20 09:00:21 UTC"
        },
        "updated_by_id": {
          "previous": 5,
          "current": 145
        }
      },
      "repository": {
        "name": "app",
        "url": "git@gitlab.example.com:projects/app.git",
        "description": "Lorem ipsum.",
        "homepage": "https://gitlab.example.com/projects/app"
      }
    }
    

    响应标题:

    Server: nginx/1.10.3 (Ubuntu)
    Date: Wed, 20 Mar 2019 09:00:21 GMT
    Transfer-Encoding: chunked
    Connection: close
    X-Content-Type-Options: nosniff
    

    Jenkins插件如下所示:

    Jenkins GitLab plugin

    在Jenkins机器上安装了以下GitLab插件:

    Installed Jenkins GitLab plugins

    如何配置在创建或更新pull请求的分支时,POST请求仅发送到CI计算机?

    0 回复  |  直到 7 年前
        1
  •  4
  •   takrishna    7 年前

    在触发器(设置->集成)下执行以下操作:

    1. 在项目回购中启用MR事件触发器

    创建/更新/合并合并请求时将触发此URL

    enter image description here

    在Jenkins插件配置中-

    1. 选中“推送事件”(通过直接推送或创建的任何提交)
    2. 取消选中“打开的合并请求事件”
    3. 选中“已接受的合并请求事件”(通过合并请求进行的任何提交)
        2
  •  1
  •   JJD    6 年前

    这个问题突然被什么也不做解决了。在目前的软件栈中,我不再遇到这个问题。

    以下是软件版本:

    • 詹金斯2.204
      • GitLab插件1.5.13
    • GitLab Enterprise 12.4.2-ee

    我希望这对其他人有帮助。