Skip to content

Quality pass: GitHub/GitLab integration#92

Merged
dhilgaertner merged 1 commit intomainfrom
feature/crow-74-quality-pass-git-integration
Apr 6, 2026
Merged

Quality pass: GitHub/GitLab integration#92
dhilgaertner merged 1 commit intomainfrom
feature/crow-74-quality-pass-git-integration

Conversation

@dhilgaertner
Copy link
Copy Markdown
Contributor

@dhilgaertner dhilgaertner commented Apr 5, 2026

Summary

Closes #74

  • Fix pre-existing bug in ProviderManager URL parsing (split drops empty strings, indices were off by 1)
  • Add error logging to 8 silent try? shell calls in IssueTracker — failures now print diagnostic messages instead of silently returning empty results
  • Add overlapping refresh guard to prevent concurrent polling cycles
  • Extract shared GitHub issue JSON parsing to deduplicate fetchGitHubIssues() / fetchDoneIssuesLast24h()
  • Move mapProjectStatus() to TicketStatus(projectBoardName:) initializer on the enum
  • Extract static parseTicketURLComponents() from ProviderManager and reuse in markInReview()
  • Add doc comments to PRStatus enums, AssignedIssue fields, ProviderManager methods, GraphQL queries
  • Fix stale "Poll every 5 minutes" comment (actual interval is 60s)
  • Add GitLab warning in checkIssueClosed() (was silently returning false)
  • Add 25 new tests across CrowProvider and CrowCore

Test plan

  • make build — full app compiles with no new warnings
  • cd Packages/CrowCore && swift test — 15 tests pass (3 existing + 12 new)
  • cd Packages/CrowProvider && swift test — 10 new tests pass
  • Manual: verify issue board populates and PR status updates in running app

🤖 Generated with Claude Code

@dhilgaertner dhilgaertner requested a review from dgershman as a code owner April 5, 2026 22:48
Refactoring, documentation, code review fixes, and testing for the
provider detection, issue tracking, and PR status monitoring layer.

- Fix pre-existing bug in ProviderManager URL parsing (split drops empty
  strings, so indices were off by 1)
- Add error logging to 8 silent try? shell calls in IssueTracker
- Add overlapping refresh guard to prevent concurrent polling cycles
- Extract shared GitHub issue JSON parsing to deduplicate code
- Move mapProjectStatus() to TicketStatus(projectBoardName:) initializer
- Extract static parseTicketURLComponents() and reuse in markInReview()
- Add doc comments to PRStatus enums, AssignedIssue fields, ProviderManager
- Fix stale "Poll every 5 minutes" comment (actual interval is 60s)
- Add GitLab warning in checkIssueClosed() (was silently returning false)
- Add 25 new tests: ProviderManager (10), PRStatus (7), TicketStatus (5+)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@dhilgaertner dhilgaertner force-pushed the feature/crow-74-quality-pass-git-integration branch from db98c02 to a1b0366 Compare April 6, 2026 02:07
@dhilgaertner dhilgaertner merged commit d0cc75e into main Apr 6, 2026
2 checks passed
@dhilgaertner dhilgaertner deleted the feature/crow-74-quality-pass-git-integration branch April 6, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quality Pass: GitHub / GitLab Integration

1 participant