AACWorkflow Docs

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. Вы можете отключить её для чувствительных обсуждений которые не должны пересекать платформы.

Пример потока

  1. Вы создаёте PR: #123 Add OAuth support
  2. Название PR совпадает с AACWorkflow issue: AAC-42
  3. Страница issue показывает: Pull requests → #123 Add OAuth support
  4. Рецензент постит комментарий на PR: "Good approach, but let's add type safety to the token handler"
  5. AACWorkflow автоматически зеркалирует комментарий на ветку issue
  6. Члены команды видят тот же отзыв в обоих местах

Метаданные комментария

Синхронизированные комментарии несут метаданные чтобы вы знали их источник:

BadgeИсточникНаправление синхронизации
🐙 GitHubКомментарий постит на GitHub PRGitHub → AACWorkflow
✅ AACWorkflowКомментарий постит в AACWorkflowAACWorkflow → 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 ключи, токены, кредитиалы):

  1. Удалите его немедленно от источника (GitHub или AACWorkflow)
  2. Удаление не синхронизируется — вы должны удалить обе копии вручную
  3. Рассмотрите использование 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/sync

Body:

{
  "sync_pr_comments": false
}

Устранение проблем

"Комментарии из GitHub не появляются"

  1. Проверьте что Sync comments включен в PR панели
  2. Проверьте workspace синхронизация политика (Настройки → GitHub)
  3. Подождите 30 секунд — синхронизация работает на фоновом work'е
  4. Если всё ещё отсутствует, кликните Sync now чтобы принудительно обновить

"Комментарий появляется на GitHub но не AACWorkflow"

  1. Убедитесь что GitHub PR связан с AACWorkflow issue
  2. Проверьте страницу issue → раздел Pull requests
  3. Если PR не указан, перезапустите GitHub issue/PR импорт (Настройки → GitHub)

"Я постил комментарий в AACWorkflow но его нет на GitHub"

  1. Убедитесь что Sync comments включен для этого PR
  2. Проверьте что вы имеете доступ на запись к GitHub репо
  3. Посмотрите на лог аудита issue (Настройки → Audit) на синхронизацию ошибок

"Один и тот же комментарий появляется несколько раз"

Это может произойти если синхронизация была активирована вручную (/sync-comments) пока фоновый worker также работал. Кликните Delete на дубликате и он будет удалён с обеих сторон (очистка в один клик).

Лучшие практики

  1. Используйте GitHub для code review — детальные строка-за-строкой комментарии
  2. Используйте AACWorkflow для контекста задач — почему PR был создан, от чего это зависит
  3. Линкуйте PR рано — упомяните ID issue в названии ветки или названии PR чтобы ссылка была автообнаружена
  4. Не кросс-постите вручную — не пастите один и тот же комментарий в обоих местах; позвольте синхронизации обрабатывать это
  5. Проверьте настройки перед большими PR — установите вашу синхронизация политику перед большими team PR чтобы избежать дубликатов

Связанные функции