-
Notifications
You must be signed in to change notification settings - Fork 0
Workflow
Для удобной и продуктивной работы участников вводится Workflow - способ организации работы.
Он построен на системе Issues, Projects и Pull Requests, используемой GitHub.
Issue - задача, требующая решения. Issues доступны на вкладке "Issues" репозитория. Issue может быть Open или Closed. Open - задача требует решения, Closed - задача решена. Для Issue можно назначить Assignee.
Assignee - участник, которому назначена данная задача. Он отвечает за ее выполнение, закрытие, ее статус на вкладке Projects. При решении Issue участник создает Pull Request, в котором добавлены коммиты, решающие задачу.
Pull Request - запрос на слияние изменений с веткой в репозитории. Так же как и Issue может быть Open и Closed в зависимости от того, были ли изменения merged. Для Pull Request также можно назначить Assignee.
Для Pull Request, Assignee - участник, которому нужно проверить Pull Request. Если в качестве Assignee указан сам создатель Pull Request - значит Pull Request требует доработки автора, иначе Pull Request требует проверку другим участником.
Pull Request не используется в качестве карточки на вкладке Projects.
Projects - доска, для организации работы участников.
Содержит списки, соответствующие этапу выполнения задач:
- Backlog - задачи требующие решения в ближайшее время.
- TODO - задачи, работа над которыми начнется сразу при наличии времени у участника.
- In Progress - задачи, работа над которыми ведется в настоящее время.
- Code Review - задачи, которые ожидают проверки Pull Request другим участником. В качестве Assignee указан участник, выполнявший задачу.
Continuous Integration сервер осуществляет запуск тестов и уведомляет о результате: были ли тесты пройдены успешно или нет. Тесты запускаются автоматически при добавлении новых коммитов или при создании Pull Request-а.
Для просмотра списка своих задач нужно зайти на вкладку Issues, выбрать Filter > Everything assigned to you.
Среди них в первую очередь стоит уделить внимание Pull Request-ам.
Если Pull Request-ов нет - можно выбрать любую задачу:
- Открыть Issue
- Прочитать подробное описание задачи (при его наличии).
- Перейти в Projects и переместить карточку в In Progress.
Если карточка ранее не была создана, необходимо создать ее:
- В git клиенте создать ветку с названием
issues/issue-НомерIssue
. Номер Issue можно узнать из карточки на вкладке Projects или из Issue: он указан после символа#
.
- Запушить изменения.
- Создать Pull Request.
- Убедиться в том, что тесты на Continuous Integration сервере пройдены без ошибок.
- Переназначить Pull Request на другого участника.
- Переместить карточку на вкладке Projects в Code Review.
При наличии решенных Issue в Code Review - удалить их карточки.
При отсутствии задач можно зайти на вкладку Projects, выбрать задачу из списка Backlog, назначить ее на себя и перенести в In Progress или TODO.
Порядок создания:
- Нажать кнопку "New Pull Request" на вкладке Code или на вкладке Pull Request.
- В качестве ветки compare выбрать свою ветку с изменениями.
- Заполнить название в соответствии с Issue, в описании указать ссылку на закрытие Issue:
closes #НомерIssue
. - Выбрать Assignee: любого другого участника (не себя).
Если необходимо доработать Pull Request - название начать с[WIP]
, в качестве Assignee - указать себя. Такие Pull Request-ы не должны быть приняты до удаления метки[WIP]
. - Нажать "Create Pull Request".
- Выбрать Pull Request для review.
- Проверить наличие ссылки
closes #НомерIssue
. Перейти к Issue и проверить требования к задаче. При отсутствии ссылки - вернуть Pull Request создателю, указав в Review требование добавить ссылку.
- Перейти к вкладке Files changed и при необходимости прокомментировать изменения. При необходимости изменений после комментария нажать на кнопку Start a review, при простом комментарии - нажать на Add single comment.
- После завершения review, нажать Review changes. Далее Comment - простое комментирование, не влияет на Pull Request; Approve - одобрение изменений, разрешает merge; Request changes - запрос изменений, запрещает merge.
- Если merge разрешен и тесты на Continuous Integration сервере пройдены без ошибок - нажать Merge pull request, Confirm merge, Delete branch.
- Если merge запрещен - выбрать создателя в качестве Assignee.
Если Pull Request был возвращен или тесты на Continuous Integration сервере не пройдены - значит требуется доработка Pull Request-а.
На скриншоте показаны не прошедшие тесты.
- Прочитать комментарии к Pull Request-у
- Допушить изменения в существующую ветку. Тесты на Continuous Integration сервере запускаются автоматически.
- Убедиться в том, что тесты на Continuous Integration сервере пройдены без ошибок.
- Переназначить Pull Request на review.