Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

toggle_discussions() doesn't open new window - draft_notes error 404

オープン
#507 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

関連するプルリクエストがすでにマージされています。

  • #552 @jakubbortlik による — マージ済み

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
lua, neovim
領域
api, devtools

調査の方向性

require("gitlab").toggle_discussions() と記録された draft_notes リクエストから始め、次に、文書化されている API の利用可能性を報告された GitLab 13.12 インスタンスと比較します。変更を加える前に、関連する pull request の履歴を確認してください。完了の条件は、互換性または文書化された制限のいずれかによって、このサーバーバージョンでのディスカッションウィンドウの動作が明確になっていることです。

索引モデルが issue の本文から書いたものです。

説明

Prerequsities

  • I'm on the latest version of the plugin
  • I've installed the required dependencies
  • I've run :h gitlab.nvim.troubleshooting and followed the steps there

Setup Configuration and Environment

return {
    "harrisoncramer/gitlab.nvim",
    dependencies = {
        "MunifTanjim/nui.nvim",
        "nvim-lua/plenary.nvim",
        "sindrets/diffview.nvim",
        "nvim-tree/nvim-web-devicons"
    },
    lazy = false,
    build = function() require("gitlab.server").build(true) end, -- Builds the Go binary
    keys = function()
        local map = require('map')
        map.map('n', '<leader>gm', function() require("gitlab").choose_merge_request() end, { desc = "[m]erge request view (gitlab)" } )
        map.exportKeys()
    end,
    config = function()
        require("gitlab").setup({
            auth_provider = function()
                return "<redacted>", "<redacted>", nil
            end,
            connection_settings = {
                insecure = true,
            },
            debug = {
                request = true,
                response = true,
                gitlab_request = true,
                gitlab_response = true,
            },
        })
    end,
}

Bug Description

require("gitlab").toggle_discussions() does not open discussion window.
Error notificaiton:
gitlab.nvim: Could not get draft notes: 404 Not Found

Reproduction Steps

  1. Add my plugin configuration file to neovim with Lazy.nvim installed (tested without other plugins).
  2. Run require("gitlab").choose_merge_request(), select MR.
  3. Use gld to open discussion window.
  4. Result: No new windows is opened. Error message about draft_notes being not found appears.

Additional info

Output's of commands from gitlab.nvim.troubleshooting:

  1. checkhealth gitlab
==============================================================================
gitlab:                                       require("gitlab.health").check()

gitlab.nvim ~
- ⚠️ WARNING stevearc/dressing.nvim is a recommended dependency
  1. require("gitlab").print_settings() - prints defaults + changes from my config as expected.

  2. require("gitlab.server").build(true)

gitlab.nvim: Installed successfully!
  1. require("gitlab.server").start(function() print("Server started") end)
gitlab.nvim: Failed to initialize Gitlab client: GitLab instance URL cannot be empty
gitlab.nvim: Golang gitlab server exited: job_id: 3, exit_code: 1

but if I first use require("gitlab").choose_merge_request() and then do require("gitlab.server").restart() then server is restarted without any issue:

gitlab.nvim: Restarted server
  1. I've enabled debug logs and here is example of failure in logs:
-- REQUEST TO GO SERVER --
GET /mr/draft_notes/ HTTP/1.1
Host: localhost:45393
Accept: */*
Private-Token: REDACTED
User-Agent: curl/7.81.0

-- REQUEST TO GITLAB --
GET /api/v4/projects/2253/merge_requests/710/draft_notes HTTP/1.1
Host: <redacted>
Accept: application/json
Private-Token: REDACTED
User-Agent: go-gitlab

-- RESPONSE FROM GITLAB --
HTTP/1.1 404 Not Found
Content-Length: 25
Cache-Control: no-cache
Connection: keep-alive
Content-Type: application/json
Date: Tue, 16 Sep 2025 17:25:01 GMT
Server: nginx
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Gitlab-Feature-Category: not_owned
X-Request-Id: 01K59RXX1PQGGYRNDE1B63SDFV
X-Runtime: 0.011073

{"error":"404 Not Found"}

-- RESPONSE FROM GO SERVER --
HTTP/0.0 500 Internal Server Error
Content-Length: 66
Content-Type: application/json

{"message":"Could not get draft notes","details":"404 Not Found"}

Update

One more observation. I am able to create comments, but creation of draft comment fails.
After I create a comment diagnostic symbols for comments are finally loaded and I can list comments via diagnostic listing.

Also:

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/draft_note"

fails with error 404, but:

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/discussions"

returns valid JSON.
And

 curl --insecure --header "PRIVATE-TOKEN: <redacted>" --url "https://<redacted>/api/v4/projects/2253/merge_requests/710/notes"

also returns valid JSON.

Update 2

I've found the root cause, it seems like draft_notes API was introduced in version 16.0 (or at least somewhere between 15.0 and 16.0). The gitlab that I have to use is version 13.12.
Am I correct to assume that there is nothing I can do to make it work?

主要言語
Lua
スター
401
フォーク
64
平均マージ
7時間 17分
マージ済み PR(30日)
4

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

harrisoncramer/gitlab.nvim のほかの issue

harrisoncramer/gitlab.nvim の issue をすべて見る

似ている issue

Lua の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。