Как вывести список всех комментариев, опубликованных на мои изменения в gerrit?

Тут и там коллеги оставляют комментарии к моим изменениям кода, которые я публикую в gerrit. Однако, чтобы увидеть их, я должен:

  • нажмите на изменение gerrit в списке изменений. Эта ссылка даже не указывает, было ли что-то прокомментировано
    image description
  • Затем просмотрите список файлов и нажмите на любой из них в столбце Комментарии
    описание изображения
  • Тогда я смогу прочитать комментарий

Гораздо лучше было бы видеть список фрагментов кода, к которым есть комментарии, отсортированный по времени. Таким образом, мне не пришлось бы щелкать по всей истории редактирования.

Как вывести список всех комментариев, опубликованных на мои изменения в gerrit?


person Tomáš Zato - Reinstate Monica    schedule 17.01.2017    source источник


Ответы (3)


Вы можете попробовать использовать REST для получения такой информации.

1) Чтобы перечислить все открытые изменения, созданные вами:

curl -s --request GET --netrc https://GERRIT-SERVER/a/changes/?q=owner:self+AND+status:open | sed 1d | jq --raw-output ".[] | ._number"

2) Чтобы перечислить все комментарии (и их даты) к изменению:

curl -s --request GET --netrc https://GERRIT-SERVER/a/changes/CHANGE-NUMBER/comments | sed 1d | jq --raw-output ".[] | .[] | {Updated: .updated, Message: .message}"

Делаем 1+2:

for c in $(curl -s --request GET --netrc https://GERRIT-SERVER/a/changes/?q=owner:self+AND+status:open | sed 1d | jq --raw-output ".[] | ._number")
do
    curl -s --request GET --netrc https://GERRIT-SERVER/a/changes/$c/comments | sed 1d | jq --raw-output ".[] | .[] | {Updated: .updated, Message: .message}"
done
person Marcelo Ávila de Oliveira    schedule 17.01.2017
comment
Как осуществляется аутентификация в этом случае? - person Tomáš Zato - Reinstate Monica; 17.01.2017
comment
В примерах я использую параметр --netrc curl, чтобы использовать файл .netrc для имени пользователя и пароля (подробнее см. man curl и man netrc), но вы также можете использовать параметр --user USER, и curl будет подскажите пароль или --user USER:PASS (незащищенный). - person Marcelo Ávila de Oliveira; 17.01.2017
comment
Вместо этого я получил эти URL-адреса через javascript из пользовательского скрипта. Но они работали. - person Tomáš Zato - Reinstate Monica; 07.11.2019

Похоже, что кто-то из версий gerrit, по крайней мере, покажет вам все комментарии на главной странице обзора. Например, взгляните на этот обзор. Посмотрите на комментарии без патча 20. По крайней мере, в этом экземпляре gerrit здесь будут перечислены все комментарии к файлам, а также ссылки на файлы и прямые ссылки на отдельные комментарии. Я не знаю, стоковый ли это Gerrit или у него есть локальные модификации, но в последнем случае они были бы где-то в открытом доступе.

Вы можете получить ту же информацию, используя API командной строки gerrit. Если бы ваш хост Gerrit был review.openstack.org:29418, вы могли бы запустить:

ssh -p 29418 [email protected] gerrit query --comments --current-patch-set <changeid>

Где <changeid> — идентификатор или номер изменения Gerrit. Это покажет вам все комментарии, включая встроенные комментарии из файлов, связанных с текущим набором исправлений. Вы можете заменить --current-patch-set на --patch-sets, чтобы увидеть это для всех наборов исправлений.

Вы можете добавить --json к запросу, чтобы получить вывод JSON, что полезно, если вы хотите обернуть это каким-то скриптом для красивого отображения.

person larsks    schedule 17.01.2017

Если вы хотите получить только содержимое комментариев, вы можете использовать ssh с jq.

ssh -p 29418 [email protected] gerrit query --comments --current-patch-set <change_ID> --format=JSON | jq '.comments []? | .message'

или используйте jq -r, чтобы получить необработанный вывод без цветов.

person badboy    schedule 26.03.2019