|
1 | 1 | Changelog |
2 | 2 | ========= |
3 | 3 |
|
4 | | -0.64.2 (2026-07-18) |
| 4 | +0.65.0 (2026-07-27) |
5 | 5 | ------------------- |
6 | 6 | ------------------------ |
| 7 | +- Refresh issue timelines when cross-references change (#168) [Rodos] |
| 8 | + |
| 9 | + Cross-references do not change an issue's updated_at, so an incremental |
| 10 | + run never lists the issue and never re-fetches its timeline. An issue |
| 11 | + can be referenced from another repository years after its last activity |
| 12 | + and the backup would never see it. |
| 13 | + |
| 14 | + On incremental runs with --issue-timeline, ask GraphQL for each item's |
| 15 | + cross-reference count and newest timestamp, compare both against what is |
| 16 | + already saved, and re-fetch the timeline of anything that differs. Items |
| 17 | + the since listing did not return are fetched individually. Both values |
| 18 | + are needed: the count alone would miss a reference being added and |
| 19 | + another deleted between runs, and the timestamp alone would miss a |
| 20 | + deletion. |
| 21 | + |
| 22 | + Pull requests are swept too when they are being stored as issues, which |
| 23 | + is the case unless --pulls is used. They need their own query because |
| 24 | + the issues connection excludes them, and because totalCount ignores the |
| 25 | + itemTypes filter on a pull request although it honours it on an issue, |
| 26 | + so their cross-references are counted from the nodes instead. Where that |
| 27 | + count may have been truncated, the comparison falls back to the |
| 28 | + timestamp alone rather than re-fetching on every run. |
| 29 | + |
| 30 | + This costs one rate-limit point per 100 items against the GraphQL quota, |
| 31 | + measured at 6 requests for a repository with 528 issues and pull |
| 32 | + requests, and stores no new state: the comparison is against the |
| 33 | + cross-references already in each item's timeline_data. A GraphQL failure |
| 34 | + warns and leaves the rest of the backup unaffected. |
| 35 | + |
| 36 | + Closes #168 |
| 37 | +- Add --issue-timeline flag to capture cross-reference events (#168) |
| 38 | + [Rodos] |
| 39 | + |
| 40 | + The issue events endpoint never returns cross-references, so an issue |
| 41 | + mentioned from another issue or pull request leaves no trace in the |
| 42 | + backup. GitHub only exposes those through the timeline endpoint. Full |
| 43 | + backups miss them as well as incremental ones. |
| 44 | + |
| 45 | + Adds --issue-timeline, which stores the timeline under a separate |
| 46 | + timeline_data key alongside the unmodified event_data. The two |
| 47 | + endpoints are complementary rather than nested: the timeline adds |
| 48 | + cross-references, commits and reviews, while events carries |
| 49 | + referenced entries the timeline drops, so neither replaces the other. |
| 50 | + |
| 51 | + Timeline entries for comments are filtered out, since --issue-comments |
| 52 | + already saves the bodies. Everything else is stored verbatim. The flag |
| 53 | + is included in --all. |
| 54 | + |
| 55 | + This makes the data obtainable, but does not change incremental |
| 56 | + selection: a cross-reference does not bump the referenced issue's |
| 57 | + updated_at, so an incremental run still never lists it. That half of |
| 58 | + the issue remains open. |
| 59 | + |
| 60 | + References #168 |
| 61 | +- Chore(deps): bump actions/setup-python from 6 to 7. [dependabot[bot]] |
| 62 | + |
| 63 | + Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. |
| 64 | + - [Release notes](https://github.com/actions/setup-python/releases) |
| 65 | + - [Commits](https://github.com/actions/setup-python/compare/v6...v7) |
| 66 | + |
| 67 | + --- |
| 68 | + updated-dependencies: |
| 69 | + - dependency-name: actions/setup-python |
| 70 | + dependency-version: '7' |
| 71 | + dependency-type: direct:production |
| 72 | + update-type: version-update:semver-major |
| 73 | + ... |
| 74 | + |
| 75 | + |
| 76 | +0.64.2 (2026-07-18) |
| 77 | +------------------- |
7 | 78 | - Add tests. [Duncan Ogilvie] |
8 | 79 | - Skip fetching gists that have not been updated. [Duncan Ogilvie] |
9 | 80 | - Skip retrieving repositories when not necessary. [Duncan Ogilvie] |
|
0 commit comments