GitHub PR Комментарии Синхронизация
Двусторонняя синхронизация комментариев между GitHub PR и AACWorkflow — держите обсуждения в одном месте.
Функция GitHub PR Comments Sync держит комментарии синхронизированными между GitHub pull request'ами и AACWorkflow, чтобы обсуждения команды оставались едиными и актуальными с обеих сторон.
Как это работает
Направления синхронизации
GitHub → AACWorkflow: Когда кто-то постит комментарий на GitHub PR, AACWorkflow зеркалирует его на связанный issue (если он есть). Комментарий приписывается GitHub пользователю и отмечен GitHub badge'ем.
AACWorkflow → GitHub: Когда кто-то комментирует AACWorkflow issue который имеет связанный GitHub PR, AACWorkflow постит комментарий на ветку PR (если настроено).
Синхронизация комментариев опциональна per issue. Вы можете отключить её для чувствительных обсуждений которые не должны пересекать платформы.
Пример потока
- Вы создаёте PR:
#123 Add OAuth support - Название PR совпадает с AACWorkflow issue:
AAC-42 - Страница issue показывает: Pull requests → #123 Add OAuth support
- Рецензент постит комментарий на PR: "Good approach, but let's add type safety to the token handler"
- AACWorkflow автоматически зеркалирует комментарий на ветку issue
- Члены команды видят тот же отзыв в обоих местах
Метаданные комментария
Синхронизированные комментарии несут метаданные чтобы вы знали их источник:
| Badge | Источник | Направление синхронизации |
|---|---|---|
| 🐙 GitHub | Комментарий постит на GitHub PR | GitHub → AACWorkflow |
| ✅ AACWorkflow | Комментарий постит в AACWorkflow | AACWorkflow → GitHub |
Когда вы смотрите комментарии, вы увидите:
- Оригинальный автор — GitHub username или AACWorkflow пользователь
- Оригинальное время — когда комментарий был сначала постит
- Ссылка на оригинал — кликните чтобы перейти к источнику (GitHub PR или AACWorkflow ветка)
Контроль поведения синхронизации
Per-issue синхронизация настройка
Перейдите в issue со связанным PR. В разделе Pull requests, кликните строку PR чтобы открыть панель PR. Переключите:
Sync comments → ON/OFF
Когда on, новые комментарии на PR зеркалируются в AACWorkflow. Существующие комментарии не ретроактивно синхронизируются.
Когда off, ссылка остаётся (для справки) но новые комментарии не зеркалируются.
Workspace-wide синхронизация политика
Перейдите в Настройки → GitHub → Comment Sync Policy чтобы установить defaults:
| Политика | Поведение |
|---|---|
| Always sync (по умолчанию) | Все PR комментарии автоматически зеркалируются |
| Opt-in per PR | Синхронизация только для PR где пользователь явно включил |
| Never sync | Синхронизация отключена; ссылки только для справки |
Отдельные issues могут переопределить workspace политику.
Дедупликация комментариев
Если комментарий постит одновременно на GitHub и AACWorkflow (редко), AACWorkflow использует idempotency key чтобы избежать дубликатов. Система проверяет:
- Автор + время + первые 100 символов контента = уникальная идентичность
- Дублированные посты в течение 10 секунд → дедуплицированы
Редакция и приватность
Чувствительная информация в комментариях не автоматически редактируется. Если комментарий содержит секреты (API ключи, токены, кредитиалы):
- Удалите его немедленно от источника (GitHub или AACWorkflow)
- Удаление не синхронизируется — вы должны удалить обе копии вручную
- Рассмотрите использование pre-commit hook'а чтобы поймать секреты перед тем как они попадут на любую платформу
Никогда не постите секреты, API ключи или кредитиалы в комментариях. Они могут быть зеркалированы на обе платформы.
Ветвление и контекст
PR комментарии синхронизируются как ветвления ответов на AACWorkflow issue:
- GitHub PR: комментарии рецензии на специфичную строку/файл
- AACWorkflow: inline комментарии собираются в PR Comments раздел временной шкалы issue
Ответы в ветвлении GitHub PR синхронизируются как вложенные ответы в AACWorkflow.
Ограничения
- Не синхронизируется: PR ревью события (approve/request changes), комментарии коммитов, комментарии специфичные файлу отображаются только на уровне PR ветвления
- Одна сторона для некоторых событий: GitHub PR "ready for review" статус не отображается на изменениях статуса AACWorkflow
- Редактирование комментариев: редактирования на GitHub синхронизируются (обновленное время показано); редактирования на AACWorkflow не синхронизируются в GitHub (ограничение GitHub API)
- Удаление комментариев: удаления с обеих сторон не синхронизируются; вы должны удалить обе копии вручную
API
Синхронизировать комментарии для PR
POST /api/issues/{issue_id}/github/pr/{pr_number}/sync-commentsВручную активировать синхронизацию комментариев для этого PR. Возвращает:
{
"synced_count": 5,
"new_comments": 3,
"updated_comments": 2,
"skipped": 0
}Список синхронизированных комментариев для issue
GET /api/issues/{issue_id}/github/pr-commentsВозвращает:
{
"comments": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"pr_number": 123,
"github_comment_id": "1234567890",
"author": "jane-smith",
"author_type": "github",
"body": "Good approach, but let's add type safety...",
"created_at": "2025-06-22T15:30:00Z",
"synced_at": "2025-06-22T15:30:05Z",
"url": "https://github.com/org/repo/pull/123#discussion_r1234567890"
}
]
}Отключить синхронизацию для issue
PATCH /api/issues/{issue_id}/github/syncBody:
{
"sync_pr_comments": false
}Устранение проблем
"Комментарии из GitHub не появляются"
- Проверьте что Sync comments включен в PR панели
- Проверьте workspace синхронизация политика (Настройки → GitHub)
- Подождите 30 секунд — синхронизация работает на фоновом work'е
- Если всё ещё отсутствует, кликните Sync now чтобы принудительно обновить
"Комментарий появляется на GitHub но не AACWorkflow"
- Убедитесь что GitHub PR связан с AACWorkflow issue
- Проверьте страницу issue → раздел Pull requests
- Если PR не указан, перезапустите GitHub issue/PR импорт (Настройки → GitHub)
"Я постил комментарий в AACWorkflow но его нет на GitHub"
- Убедитесь что Sync comments включен для этого PR
- Проверьте что вы имеете доступ на запись к GitHub репо
- Посмотрите на лог аудита issue (Настройки → Audit) на синхронизацию ошибок
"Один и тот же комментарий появляется несколько раз"
Это может произойти если синхронизация была активирована вручную (/sync-comments) пока фоновый worker также работал. Кликните Delete на дубликате и он будет удалён с обеих сторон (очистка в один клик).
Лучшие практики
- Используйте GitHub для code review — детальные строка-за-строкой комментарии
- Используйте AACWorkflow для контекста задач — почему PR был создан, от чего это зависит
- Линкуйте PR рано — упомяните ID issue в названии ветки или названии PR чтобы ссылка была автообнаружена
- Не кросс-постите вручную — не пастите один и тот же комментарий в обоих местах; позвольте синхронизации обрабатывать это
- Проверьте настройки перед большими PR — установите вашу синхронизация политику перед большими team PR чтобы избежать дубликатов
Связанные функции
- GitHub issue импорт — см. GitHub Issue Import & Export
- GitHub PR интеграция — см. GitHub integration