-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
area: platformGit platforms, auth, IDEGit platforms, auth, IDEenhancementNew feature or requestNew feature or requestpriority: lowLower priority / backlogLower priority / backlog
Description
Problem
DiffScope is GitHub-only for its Git platform integration (PR comments, GitHub App auth, webhook support). This is a hard blocker for enterprises running GitLab, Azure DevOps, or Bitbucket. Qodo Merge supports all four platforms and uses this as a direct competitive wedge.
Proposed Solution
Phase 1: GitLab
- GitLab Merge Request API for posting inline comments
- GitLab webhook receiver for MR events
- GitLab OAuth/PAT authentication
.gitlab-ci.ymlexample
Phase 2: Bitbucket
- Bitbucket PR API for inline comments
- Bitbucket App authentication
bitbucket-pipelines.ymlexample
Phase 3: Azure DevOps
- Azure DevOps PR API for inline comments (threads)
- Azure DevOps service hook for PR events
- Azure Pipelines YAML example
Architecture
- Abstract the Git platform behind a trait:
trait GitPlatform { async fn post_inline_comment(&self, file: &str, line: u32, body: &str) -> Result<()>; async fn post_summary_comment(&self, body: &str) -> Result<()>; async fn get_pr_diff(&self, pr_id: &str) -> Result<String>; async fn get_pr_files(&self, pr_id: &str) -> Result<Vec<ChangedFile>>; }
- Current GitHub implementation moves behind this trait
- Platform auto-detected from git remote URL or explicit
--platformflag
Competitive Context
| Tool | GitHub | GitLab | Azure DevOps | Bitbucket |
|---|---|---|---|---|
| CodeRabbit | ✅ | ✅ | ✅ | ✅ |
| Qodo Merge | ✅ | ✅ | ✅ | ✅ |
| Bito | ✅ | ✅ | ✅ (planned) | ✅ |
| Sourcery | ✅ | ✅ | ❌ | ❌ |
| DiffScope | ✅ | ❌ | ❌ | ❌ |
Priority
Tier 3 — Enterprise requirement. GitLab alone would unlock a large segment.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area: platformGit platforms, auth, IDEGit platforms, auth, IDEenhancementNew feature or requestNew feature or requestpriority: lowLower priority / backlogLower priority / backlog