feat: GitHub integration plugin with bidirectional sync#197
Open
om952 wants to merge 5 commits into
Open
Conversation
- Auto-create GitHub issues from Paperclip issues - Sync status changes bidirectionally (Paperclip ↔ GitHub) - Mirror comments with user attribution [GitHub @username] - Auto-create PRs when issues marked done (empty branch) - Webhook signature verification (HMAC-SHA256) - Timestamp-based conflict resolution (last-write-wins) - Rate limit handling with exponential backoff - State persistence for issue mappings across restarts Closes OpenScanAI#15
- Add README.md with setup, config, and manual testing instructions - Add comprehensive test suite (plugin.test.ts) covering: - Configuration validation - Event handling (issue.created, issue.updated, issue.comment.created) - Status mapping and reverse mapping - Conflict resolution (timestamp-based) - Webhook signature verification - State management - PR creation (branch naming) - Rate limiting - Error handling - Manifest capabilities - Add vitest config and test scripts to package.json
- Add plugins/* to pnpm-workspace.yaml - Fix @paperclipai/plugin-sdk dependency to use workspace:* - Fix rate limiting test to use future timestamp - All 30 tests passing - Typecheck and build passing
- Add integration tests with mocked Octokit (15 tests) - GitHub issue CRUD operations - Branch and PR creation - Webhook signature verification - Sync job batch processing - Rate limit handling - State persistence - Error handling (401, 404, network) - Add ARCHITECTURE.md with: - System overview diagram - Data flow diagrams (push/pull) - State storage schema - Conflict resolution logic - Security model - Rate limiting strategy - Component diagram - Troubleshooting guide - All 45 tests passing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
packages/plugins/github/) with bidirectional issue sync between Paperclip and GitHubVerification
Manual verification steps:
Risks
Closes #15