Gitlab API在文件行上创建讨论

时间:2020-06-27 08:48:11

标签: axios gitlab gitlab-api

我正试图在已更改文件的特定行上进行讨论。

请求我提出:


await axios.post('https://gitlab.<project>/api/v4/projects/<project id>/merge_requests/103/discussions', {
   body: 'test123',
  'position[base_sha]': '9f4284ba82fc0667464ca8abaa76b334415278fc',
  'position[start_sha]': '9f4284ba82fc0667464ca8abaa76b334415278fc',
  'position[head_sha]': 'c6272616033ddcceb3ced2d37c0fd75a8cf5472f',
  'position[position_type]': 'text',
  'position[new_path]': 'LICENSE',
  'position[new_line]': 80,
  'position[old_path]': 'LICENSE',
  'position[old_line]': null,
    
  'position[line_range][start_line_code]': '0398ccd0f49298b10a3d76a47800d2ebecd49859_0_355',
  'position[line_range][end_line_code]': '0398ccd0f49298b10a3d76a47800d2ebecd49859_0_355',
  'position[line_range][start_line_type]': 'old',
  'position[line_range][end_line_type]': 'old',
});

大多数主体值来自检查浏览器并查看gitlab在手动创建线程时提出的要求。

该请求导致一个简单的线程未出现在文件顶部,该文档没有很好地解释正文字段及其功能,因此我目前对此感到困惑。

我不确定这些字段是否正确,我从浏览器中看到的gitlab请求中提取了start_line_codeend_line_code

'position[line_range][start_line_code]': '0398ccd0f49298b10a3d76a47800d2ebecd49859_0_355',
'position[line_range][end_line_code]': '0398ccd0f49298b10a3d76a47800d2ebecd49859_0_355',
'position[line_range][start_line_type]': 'old',
'position[line_range][end_line_type]': 'old',

线程的样子:

enter image description here

我希望它看起来像什么:

enter image description here

创建出现在文件顶部的线程的正确方法是什么?

Link to gitlab api resource

1 个答案:

答案 0 :(得分:1)

如果评论支持markdown,则将其自idk张贴在此处。

我最终做了:

const mergeRequestDiffs = <request merge request changes>
const position: {
      ...mergeRequestDiffs.diff_refs,
      old_path: pathFromRootOfTheProject,
      new_path: pathFromRootOfTheProject,
      position_type: 'text',
      new_line: line,
      head_sha: line SHA,
}

<make discussion request with payload below i was using axios.post>

{
  body: <some message>,
  position,
}

在合并请求中实际上未更改文件时,我也遇到了问题。但从来没有深入研究过。由于我的团队删除了该功能。