<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/src/git/mod.rs, branch v1.0.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=v1.0.0</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/atom?h=v1.0.0'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/'/>
<updated>2026-02-03T21:49:38+00:00</updated>
<entry>
<title>Reduce log noise: change per-ref updates to DEBUG level</title>
<updated>2026-02-03T21:49:38+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-03T21:49:38+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=f200bd1bde04ff79a40c8d73df0edde2cf28493c'/>
<id>urn:sha1:f200bd1bde04ff79a40c8d73df0edde2cf28493c</id>
<content type='text'>
Only the final summary 'Aligned repository with state' remains at INFO level,
showing the total count of refs_created/refs_updated/refs_deleted.
</content>
</entry>
<entry>
<title>test: disable GPG signing in all test helpers</title>
<updated>2026-01-08T00:49:57+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-01-08T00:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=3f14f998d64b5fa15bdddd7570b4f72874eb9f29'/>
<id>urn:sha1:3f14f998d64b5fa15bdddd7570b4f72874eb9f29</id>
<content type='text'>
Prevent GPG signing prompts (including Yubikey activation) during test runs
by explicitly disabling commit.gpgsign and tag.gpgsign in all test repository
creation helpers.

Modified:
- tests/common/purgatory_helpers.rs: create_test_repo_with_commit()
- src/git/mod.rs: create_test_repo_with_commit()
- src/purgatory/helpers.rs: create_test_repo_with_commit()

All test repositories now have GPG signing disabled regardless of global
git configuration.
</content>
</entry>
<entry>
<title>refactor: unify event processing logic</title>
<updated>2026-01-07T23:31:38+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-01-07T23:31:38+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=c67ebe6f33bfa191f17eb0df24d3ee18092c74e1'/>
<id>urn:sha1:c67ebe6f33bfa191f17eb0df24d3ee18092c74e1</id>
<content type='text'>
Eliminates code duplication by extracting core event processing into
reusable functions. All state and PR event processing now uses the same
unified logic from src/git/process.rs.

Changes:
- Add src/git/process.rs with unified processing functions
  - process_state_with_git_data() for state events
  - process_pr_with_git_data() for PR events
  - Pure functions with comprehensive result types

- Refactor policy handlers to use unified processing
  - src/nostr/policy/state.rs: Remove ~70 lines of duplicated logic
  - src/nostr/policy/pr_event.rs: Remove ~40 lines of duplicated logic

- Refactor purgatory processing to use unified functions
  - src/git/sync.rs: Remove ~125 lines of duplicated logic
  - Make extract_owner_from_repo_path() public for reuse

Benefits:
- DRY: Single source of truth for event processing
- Testable: Pure functions with clear contracts
- Maintainable: Changes happen in one place
- Consistent: All code paths use same logic

All 217 unit tests + 40 integration tests pass (257/257).
</content>
</entry>
<entry>
<title>sync all repos when authorised state data push received</title>
<updated>2026-01-05T14:54:29+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-01-05T14:54:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=3f50107062d55a15decc47e93fd4e9f473de86e8'/>
<id>urn:sha1:3f50107062d55a15decc47e93fd4e9f473de86e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>purgatory: fix pr event recieve code</title>
<updated>2025-12-31T10:49:09+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-31T09:18:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=768fe91caa676e4501aa26e14e01ca47f3ea4ca1'/>
<id>urn:sha1:768fe91caa676e4501aa26e14e01ca47f3ea4ca1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>purgatory: fix state event receive code</title>
<updated>2025-12-31T09:17:49+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-31T09:17:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=3d6901831904141166d9ed8f47813c45cba109b6'/>
<id>urn:sha1:3d6901831904141166d9ed8f47813c45cba109b6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(purgatory): add broken purgatory implementation</title>
<updated>2025-12-24T11:54:18+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-24T08:02:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=70d0197e85ae4ef85202781f6d2dc9e76bd508b3'/>
<id>urn:sha1:70d0197e85ae4ef85202781f6d2dc9e76bd508b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>try and add / update / delete refs on state update</title>
<updated>2025-12-01T17:04:43+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-01T17:04:43+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=d0592943867b7003b30a778acff8fcc43c041e34'/>
<id>urn:sha1:d0592943867b7003b30a778acff8fcc43c041e34</id>
<content type='text'>
if we have the OIDs
</content>
</entry>
<entry>
<title>fix cargo clippy and fmt warnings</title>
<updated>2025-12-01T15:22:38+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-01T14:31:32+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=d2ac69816567f092fe0d4661723bc43778cb481b'/>
<id>urn:sha1:d2ac69816567f092fe0d4661723bc43778cb481b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>reject push when refs/nostr/&lt;event-id&gt; doesnt match known event and delete incorrect ref on event receive</title>
<updated>2025-12-01T11:58:34+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-12-01T11:56:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-grasp-mirror/commit/?id=7a78815e29b01c83f3d0ec195ba717a2eba8cd37'/>
<id>urn:sha1:7a78815e29b01c83f3d0ec195ba717a2eba8cd37</id>
<content type='text'>
</content>
</entry>
</feed>
