提交未在与 gitlab 的合并请求中提交 api

commits wasnt submit in merge request with gitlab api

根据 GITLAB API 文档,我想在一个分支上创建多个提交,然后在 bash 脚本中创建一个合并请求。

   curl -i --request POST --header "PRIVATE-TOKEN: privatekey" --header "Content-Type: application/json" --data "$PAYLOAD" "https://hostgit/api/v4/projects/1234/repository/commits"

关于有效载荷

    PAYLOAD=$(cat << JSON 
{
  "branch": "mybranch",
  "commit_message": "some commit message",
  "actions": [
    {
      "action": "update",
      "file_path": "roles/test.j2"
    },
     {
          "action": "update",
      "file_path": "roles/prod.j2"
      }
  ]
}
JSON
)

脚本更新文件所以在这次提交之后我使用创建 MR 但它是空的 MR.why 它是空的??提交更改为 0。 我还使用了一个文件路径来满足操作中的内容,但它不起作用并且提交仍然是空的。

对于update动作,您必须指定文件的内容,并且应该是整个文件的内容,而不仅仅是更新的部分。然后 Gitlab 将生成差异并正确提交更改。您需要更新您的有效载荷,使其看起来像:

PAYLOAD=$(cat << JSON
{
  "branch": "mybranch",
  "commit_message": "some commit message",
  "actions": [
    {
      "action": "update",
      "file_path": "roles/test.j2",
      "content": "this is the entire content in the test.j2 file after updating it"
    },
    {
      "action": "update",
      "file_path": "roles/prod.j2",
      "content": "This is the entire content in the prod.j2 file after updating it"
    }
  ]
}
JSON
)

您可以在 the docs 中看到所有可选和必需的参数。 ]