Fetch issue comments on every pull #6

Closed
opened 2026-08-09 18:51:37 +00:00 by claude · 0 comments
Collaborator

Summary

pull.py тянет комментарии только по флагу --comments и только для одного
issue. Сделать выгрузку комментариев поведением по умолчанию: каждый
выгруженный issue получает свой <id>.comments.md.

Spec

none

Motivation

Комментарии — часть содержания issue, а не отдельная сущность: в них лежат
уточнения постановки, решения по спорным местам и результаты обсуждения. Сейчас
локальная копия issue систематически неполна, и это не видно — файл
<id>.comments.md просто отсутствует, отличить «комментариев нет» от «их не
запрашивали» нельзя.

Текущие ограничения в skills/sync/scripts/pull.py:

  • pull.py:127--comments с более чем одним issue завершается ошибкой
    «--comments works on a single issue»;
  • pull.py:172 — блок выгрузки берёт written[0], то есть даже при нескольких
    ключах обработал бы только первый;
  • в фильтр-режиме (--milestone / --label / -q) комментарии недоступны в
    принципе, а это основной способ выгрузить пачку issues.

Acceptance criteria

  • pull.py выгружает комментарии для каждого записанного issue без
    дополнительных флагов — и по ключам, и в фильтр-режиме
  • для issue с комментариями рядом лежит tmp/issues/<id>.comments.md,
    отрендеренный через map.render_comments
  • для issue без комментариев файл <id>.comments.md не создаётся, а
    устаревший файл от прошлой выгрузки удаляется
  • запрос комментариев не отправляется, когда в payload comments == 0
    (счётчик уже приходит в списочном ответе, см. map.py:129)
  • --cached пропускает и комментарии тоже: пропущенный issue не порождает
    сетевых запросов
  • флаг --comments удалён из pull.py, ветка die("--comments works on a single issue") удалена, докстринг pull.py описывает новое поведение
  • вывод pull.py показывает наличие комментариев в компактной строке issue
    (путь или количество), а не отдельной строкой только для первого

Constraints

  • Не входит в объём: обратная запись комментариев в Gitea. Комментарии остаются
    pull-only, правка <id>.comments.md руками ни на что не влияет; постинг —
    это comment.py.
  • Формат <id>.comments.md не меняется — тот же map.render_comments.
  • Слой доменных скриптов не трогаем: skills/issue/ не должен узнать о
    существовании комментариев в трекере.
## Summary `pull.py` тянет комментарии только по флагу `--comments` и только для одного issue. Сделать выгрузку комментариев поведением по умолчанию: каждый выгруженный issue получает свой `<id>.comments.md`. ## Spec none ## Motivation Комментарии — часть содержания issue, а не отдельная сущность: в них лежат уточнения постановки, решения по спорным местам и результаты обсуждения. Сейчас локальная копия issue систематически неполна, и это не видно — файл `<id>.comments.md` просто отсутствует, отличить «комментариев нет» от «их не запрашивали» нельзя. Текущие ограничения в `skills/sync/scripts/pull.py`: - `pull.py:127` — `--comments` с более чем одним issue завершается ошибкой «--comments works on a single issue»; - `pull.py:172` — блок выгрузки берёт `written[0]`, то есть даже при нескольких ключах обработал бы только первый; - в фильтр-режиме (`--milestone` / `--label` / `-q`) комментарии недоступны в принципе, а это основной способ выгрузить пачку issues. ## Acceptance criteria - [x] `pull.py` выгружает комментарии для каждого записанного issue без дополнительных флагов — и по ключам, и в фильтр-режиме - [x] для issue с комментариями рядом лежит `tmp/issues/<id>.comments.md`, отрендеренный через `map.render_comments` - [x] для issue без комментариев файл `<id>.comments.md` не создаётся, а устаревший файл от прошлой выгрузки удаляется - [x] запрос комментариев не отправляется, когда в payload `comments == 0` (счётчик уже приходит в списочном ответе, см. `map.py:129`) - [x] `--cached` пропускает и комментарии тоже: пропущенный issue не порождает сетевых запросов - [x] флаг `--comments` удалён из `pull.py`, ветка `die("--comments works on a single issue")` удалена, докстринг `pull.py` описывает новое поведение - [x] вывод `pull.py` показывает наличие комментариев в компактной строке issue (путь или количество), а не отдельной строкой только для первого ## Constraints - Не входит в объём: обратная запись комментариев в Gitea. Комментарии остаются pull-only, правка `<id>.comments.md` руками ни на что не влияет; постинг — это `comment.py`. - Формат `<id>.comments.md` не меняется — тот же `map.render_comments`. - Слой доменных скриптов не трогаем: `skills/issue/` не должен узнать о существовании комментариев в трекере.
claude added the comp/sync
severity
medium
type
task
labels 2026-08-09 18:51:37 +00:00
claude added reference feat/issue-cache-scripts 2026-08-10 10:18:29 +00:00
Sign in to join this conversation.