diff --git a/.yaspeller.json b/.yaspeller.json index e4b95c841c..fc0ad1704f 100644 --- a/.yaspeller.json +++ b/.yaspeller.json @@ -350,7 +350,7 @@ "Охос", "пагинатор(ы|ов|а|)", "паддингами", - "пайплайн(а|ов|)", + "пайплайн(а|ов|ы|)", "панцирнотвердой", "параллелить", "парси(т|ть|л|м)", @@ -439,7 +439,7 @@ "распространëнных", "ребайндинг", "ребейзить", - "ревью(ер|ера|еров|еры|)", + "ревью(ер|ера|еры|еров|ером|ерами|)", "регистрозависимы(е|)", "регистронезависим(ые|ое)", "редьюс(ер|ера|еры|еров|ерах)", diff --git a/recipes/github-manage-pull-request/images/add-a-comment.png b/recipes/github-manage-pull-request/images/add-a-comment.png new file mode 100644 index 0000000000..efcc9c8a7e Binary files /dev/null and b/recipes/github-manage-pull-request/images/add-a-comment.png differ diff --git a/recipes/github-manage-pull-request/images/add-review-of-changes.png b/recipes/github-manage-pull-request/images/add-review-of-changes.png new file mode 100644 index 0000000000..dda94cd9b4 Binary files /dev/null and b/recipes/github-manage-pull-request/images/add-review-of-changes.png differ diff --git a/recipes/github-manage-pull-request/images/add-suggestions.png b/recipes/github-manage-pull-request/images/add-suggestions.png new file mode 100644 index 0000000000..48fde50650 Binary files /dev/null and b/recipes/github-manage-pull-request/images/add-suggestions.png differ diff --git a/recipes/github-manage-pull-request/images/choose-split-view.png b/recipes/github-manage-pull-request/images/choose-split-view.png new file mode 100644 index 0000000000..a8701f6c6f Binary files /dev/null and b/recipes/github-manage-pull-request/images/choose-split-view.png differ diff --git a/recipes/github-manage-pull-request/images/commit-changes.png b/recipes/github-manage-pull-request/images/commit-changes.png new file mode 100644 index 0000000000..4b249706c4 Binary files /dev/null and b/recipes/github-manage-pull-request/images/commit-changes.png differ diff --git a/recipes/github-manage-pull-request/images/finish-review-of-changes.png b/recipes/github-manage-pull-request/images/finish-review-of-changes.png new file mode 100644 index 0000000000..9a18922e4a Binary files /dev/null and b/recipes/github-manage-pull-request/images/finish-review-of-changes.png differ diff --git a/recipes/github-manage-pull-request/images/pull-request-tabs.png b/recipes/github-manage-pull-request/images/pull-request-tabs.png new file mode 100644 index 0000000000..70d4bfd4fa Binary files /dev/null and b/recipes/github-manage-pull-request/images/pull-request-tabs.png differ diff --git a/recipes/github-manage-pull-request/images/write-a-comment.png b/recipes/github-manage-pull-request/images/write-a-comment.png new file mode 100644 index 0000000000..0d7ca4b678 Binary files /dev/null and b/recipes/github-manage-pull-request/images/write-a-comment.png differ diff --git a/recipes/github-manage-pull-request/index.md b/recipes/github-manage-pull-request/index.md new file mode 100644 index 0000000000..52295433a5 --- /dev/null +++ b/recipes/github-manage-pull-request/index.md @@ -0,0 +1,61 @@ +--- +title: "Как работать в пулреквестах на GitHub" +description: "Организуйте работу в пулреквестах на GitHub." +authors: + - igsekor +related: + - tools/version-control + - tools/git-cli + - tools/github-actions +tags: + - article +--- + +## Задача + +Организовать работу в пулреквестах. + +## Готовое решение + +Пулреквест в интерфейсе GitHub имеет четыре вкладки, на которых справа налево расположены: + +- страница для обсуждения изменений; +- страница со списком коммитов; +- страница со списком результатов проверок пулреквеста; +- страница со всеми изменениями в файлах. + +![Вкладки на странице пулреквеста. Описание перед скриншотом](images/pull-request-tabs.png) + +Справа в интерфейсе показано, сколько строк изменены в пулреквесте и каким образом. Также дан красно-зелёный график для наглядности характера правок. Красным отмечены удалённые строки, а зелёным — добавленные. + +Работа в пулреквестах организуется вокруг обсуждения изменений между автором (авторами) пулреквеста и ревьюером (ревьюерами). В качестве последних, как правило, выступают опытные пользователи репозитория, часто имеющие необходимые права на управление репозиторием. + +На вкладке обсуждений в линейном виде, друг под другом, представлены комментарии от автора пулреквеста, ревьюеров, участников дискуссии и автоматические комментарии от роботов самого GitHub или роботов пользователя, например, автоматических проверок, превью результатов пулреквеста, снимки экрана приложения, представление вывода в консоль и прочее. + +На этой вкладке можно добавлять комментарии с помощью поля и кнопки «Comment» внизу страницы. Первым комментарием, как правило, является описание изменений в пулреквесте. Очень важно делать его подробным. Часто можно встретить шаблоны, которые нужно заполнить при создании пулреквеста. Например, в Доке такой шаблон есть. Он позволяет ничего не забыть при описании. На вкладке с обсуждениями также выводятся и все коммиты, комментарии к которым приобретают большой смысл. Они выступают в качестве вех в обсуждении пулреквеста, что вносит дополнительную организацию в работу. + +Страница со списком коммитов примечательна быстрым доступом к различным этапам разработки изменений, истории развития продукта в рамках пулреквеста. Эта вкладка позволяет оценить масштабность изменений продукта и различные побочные эффекты, которые вполне могут быть. + +Страница со списком проверок называется «Checks» не случайно. Обычно пулреквесты проходят ряд автоматических проверок (орфография, грамматика, стиль кода и прочее). Но эта вкладка рассматривается несколько шире, поскольку содержит список всех результатов действия пайплайнов GitHub, о которых подробнее можно почитать в статье «[GitHub Actions](/tools/github-actions/ "Собираем пример CI/CD пайплайна в Github")». Сами пайплайны не ограничены только проверками, поэтому «Checks» скорее отражает типовое использование GitHub Actions в рамках пулреквеста. + +На последней вкладке содержится список изменений в формате разницы между тем, что было (в колонке слева), и что стало (в колонке справа) с файлами репозитория. Режим с двумя колонками доступен, если в настройках вкладки выбран соответствующий пункт: + +![Выбор представления последней вкладки на странице пулреквеста. Описание перед скриншотом](images/choose-split-view.png) + +Зелёным цветом и плюсами слева показаны добавленные символы или строчки, красным и минусами — удалённые. Если провести мышкой по левой стороне правой колонки (в колонке с номерами строк), то появляется кнопка «+». При нажатии на неё появляется возможность создать комментарий, привязанный к конкретной строке. Кнопка «+/-» нужна для включения необходимых изменений к пулреквесту. Кнопка «Add single comment» позволяет оставить независимый комментарий, а кнопка «Start a review» — начать ревью. + +![Добавление комментария на GitHub. Описание перед скриншотом](images/add-a-comment.png) + +![Окончание редактирования комментария на GitHub. Описание перед скриншотом](images/write-a-comment.png) + +В верхней части интерфейса последней вкладки также присутствует кнопка «Review changes», при нажатии на которую появляется всплывающее окно с возможностью одобрить пулреквест (кнопкой «Approve»), добавить комментарий (кнопкой «Comment») или запросить изменения у автора пулреквеста (кнопкой «Request changes»). Также можно оставить комментарий автору пулреквеста. + +![Добавление финального комментария по ревью пулреквеста на GitHub. Описание перед скриншотом](images/add-review-of-changes.png) + +![Сохранение ревью пулреквеста на GitHub. Описание перед скриншотом](images/finish-review-of-changes.png) + +В процессе комментирования ревьюер может оставить комментарии, в которых содержатся изменения в файлах, которые можно принять (закоммитить с комментарием) по одному кнопкой «Commit suggestion» или добавить в общий список изменений кнопкой «Add suggestion to batch», чтобы потом закоммитить все сразу пачкой. Такой подход очень удобен, поскольку позволяет структурировать изменения в ходе ревью. Например, можно принять правки от одного ревьюера, а потом от другого. При нажатии кнопки «Commit suggestion» появляется окно, в котором можно указать комментарий в коммиту и создать его. + +![Добавление правок ревьюера пулреквеста в список изменений. Описание перед скриншотом](images/add-suggestions.png) + +![Сохранение правок ревьюера в коммите. Описание перед скриншотом](images/commit-changes.png) diff --git a/recipes/index.md b/recipes/index.md index 17fc473d23..b766aeb6f5 100644 --- a/recipes/index.md +++ b/recipes/index.md @@ -24,6 +24,7 @@ groups: - github-add-user-to-repo - github-search-in-issues - github-new-pull-request + - github-manage-pull-request - github-editing-files-in-browser - github-new-issue - github-add-readme