簡體   English   中英

如何使用 PUT 或 POST 請求將某些內容設置為列表而不是字符串(到 Gitlab API)?

[英]How can I use a PUT or POST request to set something as a list rather than a string (to the Gitlab API)?

我只是想設置 GitLab 合並請求的標簽。

當我向 GitLab 發出這個 PUT 請求時

requests.put( https://gitlab.com/api/v4/projects/{}/merge_requests/{}".format(project_id, mr_num), {"labels":mr_new_labels}, headers={'PRIVATE-TOKEN': os.getenv("GITLAB_ACCESS_TOKEN", "")} ) ,

如果 mr_new_labels 是任何字符串或具有 1 個元素的列表,它將起作用 - 因此,如果請求只是設置 1 label (或 0 個標簽,帶有空字符串)。

但是,如果 mr_new_labels 是一個包含多個元素的列表,則只有最后一個元素會被“放置”(可能列表中的元素會被“放置”並相互替換,而不是一次放置列表),所以合並請求將只有 1 個 label。

我已經嘗試使用 POST 請求來執行此操作,但對我而言,POST 請求的語法與 PUT 請求相同,具有 mr_new_labels 的任何字符串或列表值,即requests.post( https://gitlab.com/api/v4/projects/{}/merge_requests/{}".format(project_id, mr_num), {"labels":mr_new_labels}, headers={'PRIVATE-TOKEN': os.getenv("GITLAB_ACCESS_TOKEN", "")} ) ,不會拋出錯誤但根本不起作用,即使我在任何地方都沒有看到 PUT 請求和 POST 請求的語法之間有任何區別。所以我認為這可能與GitLab API 不接受 POST 請求。(POST 請求應該與 PUT 請求不同嗎?)

所以,我不知道如何使用 PUT 或 POST 請求將“標簽”設置為具有多個值的列表(我知道它可以)。 任何想法將不勝感激:)

干杯,米蘭

您不能 PUT(或 POST)列表值(因為 HTTP 查詢只是一個字符串)。 但是, {"labels":",".join(mr_new_labels)}將起作用:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM