Apply --limit to the write, not to the selection #18
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Докстрока
pull.pyобещает, что--limitограничивает запись, а не выборку.На деле лимит режет выборку — до того, как закрытые issue отбрасываются, — и
закрытые расходуют бюджет, не попадая в стор.
Spec
none
Steps to reproduce
Expected
20 записанных issue, если в трекере под фильтр подходит хотя бы 20 незакрытых.
Ровно это и обещано в
pull.py:26: «The limit is on the write, not on theselection».
Actual
Записано меньше 20. Закрытые issue вошли в выборку, израсходовали бюджет и
были отброшены уже после — их места никто не занял. На стороне вывода это видно
как расхождение между строкой «N closed issue(s) enumerated, not stored»
(
pull.py:206-209) и числом записанных.Environment
Цепочка целиком:
pull.py:26— докстрока обещает лимит на запись.pull.py:150—args.limitпередаётся вlist_issues._gitea.py:209—got[:limit], обрезка выборки.pull.py:178— закрытые отбрасываются позже, уже после обрезки.skills/sync/SKILL.md:82про это не говорит ничего, так что докстрока —единственное утверждение о поведении, и оно ложное.
Отдельно стоит решить, что делать с
--limitвremote.py: там нет записивообще, только stdout, поэтому «лимит на запись» смысла не имеет и семантика
честно остаётся «лимит на выборку». Разные значения одного флага в двух
скриптах — то, что надо либо развести в документации, либо назвать по-разному.
Acceptance criteria
pull.py --limit Nзаписывает N issue, если под фильтр подходит хотя быN незакрытых
либо страницы не кончились
pull.py,skills/sync/SKILL.mdи поведение говорят одно и тоже; расхождение
remote.pyописано явно--limit Nдаёт ровно Nфайлов в сторе