Как ОПУБЛИКОВАТЬ примечание к проблеме и закрыть эту проблему

#c# #rest #gitlab #gitlab-api

# #c# #отдых #gitlab #gitlab-api

Вопрос:

Я нашел проблему и получил ее подробности с помощью:

ПОЛУЧИТЬ https://localhost/api/v4/projects/2779/issues/2

Я могу добавить new_comment к проблеме,:

Публикация https://localhost/api/v4/projects/2779/issues/2/notes?body=new_comment

как закрыть эту проблему сразу с добавлением комментария?

Я пытался закрыть только без комментариев с помощью:

ПОМЕСТИТЕ https://localhost/api/v4/projects/2779/issues/2?state_event=close" , и это работает, но я должен использовать для запроса первого сообщения для комментариев, а затем ПОМЕСТИТЬ, чтобы закрыть его.

Комментарии:

1. Хороший улов. Я отредактировал ответ, чтобы добавить заметку (комментарий) к проблеме.

Ответ №1:

Вы можете добавить n/close в конец своего комментария, чтобы закрыть проблему одним вызовом API при добавлении комментария.

POST https://localhost/api/v4/projects/2779/issues/2/notes?body=new_commentn/close

Это работает, потому /close что это одно из быстрых действий.

Комментарии:

1. … и как добавить правопреемника? Я пробовал: https://localhost/api/v4/projects/2779/issues/20?assignee_id=240 и это не работает. Я тоже не получил никакой ошибки

Ответ №2:

с добавлением комментария

В разделе «Автоматическое закрытие проблем» упоминается:

Если сообщение о фиксации или описание запроса на слияние содержит текст, соответствующий определенному шаблону, все проблемы, на которые ссылается соответствующий текст, закрываются.
Это происходит, когда фиксация переносится в ветку проекта по умолчанию или когда в нее объединяется запрос на фиксацию или слияние.

Например, если Closes #4, #6, Related to #5 включено в описание запроса на слияние, проблемы #4 и #6 автоматически закрываются при объединении MR, но нет #5 .

Таким образом, «комментарии» связаны с фиксациями или MR (запросы на слияние), а не с комментариями к самой проблеме.

API редактирования проблемы предлагает следующий вызов для закрытия проблемы:

 curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/85?state_event=close"
 

Это должно быть очень похоже на то, что вы пробовали, за исключением того, что вам нужен PAT (личный токен доступа) с правильной областью действия (api).

Как выяснил OP, PUT вступает в силу только после публикации комментария к указанной проблеме: создать новую заметку о проблеме

 POST /projects/:id/issues/:issue_iid/notes
 

Комментарии:

1. Хорошо, но, с другой стороны, я создаю проблему с заголовком, используя: POST https://localhost/api/v4/projects/2779/issues?title=TestIssue , и я хочу добавить описание к этой проблеме в том же сообщении. Если это невозможно, как я могу найти ID или IID этой новой проблемы. Я не могу найти его в POST response ps. Я знаю о заголовке частного токена.

2. @simoNPL в docs.gitlab.com/ee/api/issues.html#new-issue , поле веб-url, по-видимому, является вновь созданным URL-адресом проблемы.