28 lines
1.1 KiB
Markdown
28 lines
1.1 KiB
Markdown
|
|
# Task ID: 148
|
||
|
|
|
||
|
|
**Title:** GitProvider interface and Gitea driver
|
||
|
|
|
||
|
|
**Status:** pending
|
||
|
|
|
||
|
|
**Dependencies:** 132
|
||
|
|
|
||
|
|
**Priority:** high
|
||
|
|
|
||
|
|
**Description:** Create GitProvider interface and Gitea implementation for PR creation, status check, and merge
|
||
|
|
|
||
|
|
**Details:**
|
||
|
|
|
||
|
|
Create src/mcpd/src/services/git-provider.ts and src/mcpd/src/services/git-provider/gitea.ts:
|
||
|
|
1. GitProvider interface: createPullRequest(repo, branch, title, body), getPullRequest(repo, prNumber), getCombinedStatus(repo, ref), mergePullRequest(repo, prNumber, method?)
|
||
|
|
2. Gitea driver: implement using Gitea API v1
|
||
|
|
- POST /api/v1/repos/:owner/:repo/pulls for createPullRequest
|
||
|
|
- GET /api/v1/repos/:owner/:repo/pulls/:id for getPullRequest
|
||
|
|
- GET /api/v1/repos/:owner/:repo/commits/:sha/status for getCombinedStatus
|
||
|
|
- POST /api/v1/repos/:owner/:repo/pulls/:id/merge for mergePullRequest
|
||
|
|
3. Credentials resolved from CodeRepo's Secret via SecretService
|
||
|
|
4. Reference pr.sh script for endpoint shapes
|
||
|
|
|
||
|
|
**Test Strategy:**
|
||
|
|
|
||
|
|
Unit tests with mocked HTTP: test each method sends correct request, handles success/error responses. Integration test against local Gitea instance if available.
|