Skip to content

Introduce project-management backend abstractions beyond GitHub#337

Merged
nicobistolfi merged 1 commit intomainfrom
vigilante/issue-334-introduce-project-management-backend-abstractions-beyond-github
Mar 29, 2026
Merged

Introduce project-management backend abstractions beyond GitHub#337
nicobistolfi merged 1 commit intomainfrom
vigilante/issue-334-introduce-project-management-backend-abstractions-beyond-github

Conversation

@nicobistolfi
Copy link
Copy Markdown
Collaborator

Summary

  • Adds internal/backend package with four interfaces (IssueTracker, PullRequestManager, LabelManager, RateLimiter) and backend-neutral types
  • Implements GitHub backend (internal/backend/github) wrapping existing ghcli functions for zero-behavior-change compatibility
  • Updates App struct and runner/session.go to use backend interfaces instead of direct ghcli calls
  • Adds issue_backend, git_backend, pr_backend, project_ref fields to WatchTarget and Session for mixed-backend support (e.g., Linear issues + GitHub PRs)

Test plan

  • All existing tests pass (go test ./...)
  • New tests for backend types, interface compliance, delegation, and mixed-backend modeling
  • gofmt and go vet clean
  • Existing GitHub behavior fully preserved through type aliases and backend delegation

Closes #334

Add a backend abstraction layer that separates core orchestration from
GitHub-specific APIs. The new internal/backend package defines four
interfaces (IssueTracker, PullRequestManager, LabelManager, RateLimiter)
with backend-neutral types. A GitHub implementation wraps existing ghcli
functions to preserve current behavior.

The App struct now holds interface fields instead of calling ghcli
directly, and WatchTarget/Session carry backend identity fields
(issue_backend, git_backend, pr_backend, project_ref) to support
mixed-backend configurations like Linear issues + GitHub PRs.

All existing GitHub behavior is preserved through type aliases and
the GitHub backend implementation delegating to ghcli functions.

Closes #334
@nicobistolfi nicobistolfi merged commit 3c20af2 into main Mar 29, 2026
1 check passed
@nicobistolfi nicobistolfi deleted the vigilante/issue-334-introduce-project-management-backend-abstractions-beyond-github branch March 29, 2026 19:36
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.

Introduce project-management backend abstractions beyond GitHub

1 participant