Files
mcpctl/.taskmaster/tasks/task_148.md

28 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

# 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.