-
Notifications
You must be signed in to change notification settings - Fork 1.6k
feat: add Bitbucket Server support for PR operations #1842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
elikkatz1
wants to merge
9
commits into
BloopAI:main
Choose a base branch
from
elikkatz1:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+3,703
−31
Conversation
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
Review CompleteYour review story is ready! Comment !reviewfast on this PR to re-generate the story. |
Add support for Bitbucket Server (on-premise) alongside existing GitHub integration using a VCS provider abstraction layer. New features: - VcsProvider trait for unified VCS operations - VcsProviderRegistry for auto-detection from remote URL - BitbucketService implementing create PR, get status, list PRs, fetch comments - Secure credential storage (file-based with macOS Keychain integration) - Bitbucket REST API v1.0 client with retry logic The system auto-detects whether a repository uses GitHub or Bitbucket based on the remote URL and routes operations accordingly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
I want to merge from main branch and resolve conflicts
- Add missing GitHubRepoInfo import in git.rs - Add GitHubRepoInfo::from_remote_url() method for URL parsing - Update get_pr_status to use new single-argument update_pr_status signature - Fix Bitbucket test to avoid TLS provider requirement 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add extensive test coverage for: - Bitbucket models: PR state conversion, comment conversion, serialization - Credentials: storage, loading, saving, invalid JSON handling - VcsProvider: URL parsing edge cases, error display, type display 41 total tests for the Bitbucket/VcsProvider functionality. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add ability to import assigned Jira tickets into new tasks using Claude's Atlassian MCP plugin. When creating a task, users can load their Jira tickets and select one to auto-populate the title and description. Features: - JiraService using Claude CLI with Atlassian MCP - GET /api/jira/my-issues endpoint - JiraTicketSelector dropdown component - Auto-populate task title (KEY: Summary) and description - 30s timeout to prevent hanging - Debounce to prevent spam clicks Prerequisites: Claude CLI with Atlassian MCP plugin configured Co-Authored-By: Claude Opus 4.5 <[email protected]>
I've implemented SQLite caching for Jira tickets with a 5-minute TTL. Here's what was created/modified: ### New Files 1. **Migration** (`crates/db/migrations/20260117000000_add_jira_cache.sql`): - Creates `jira_cache` table with `id`, `cache_key`, `data` (JSON), and `cached_at` - Adds indexes for fast lookup and cleanup 2. **Cache Model** (`crates/db/src/models/jira_cache.rs`): - `JiraCache<T>` - generic struct with TTL validation methods - `JiraCacheRepo` - database operations (get, set, delete, cleanup_expired, invalidate_all) - Uses runtime queries (not compile-time macros) for flexibility ### Modified Files 1. **`crates/db/src/models/mod.rs`** - Added `jira_cache` module export 2. **`crates/services/src/services/jira.rs`**: - `fetch_my_issues(pool)` now checks cache first, returns cached data if valid (<5 min old) - Added `refresh_my_issues(pool)` to force-refresh and bypass cache - Internal `fetch_from_claude_mcp()` handles the actual Claude MCP call - Added `CacheError` variant to `JiraError` 3. **`crates/server/src/routes/jira.rs`**: - Updated handler to pass `&deployment.db().pool` to service - Added `POST /api/jira/refresh` endpoint for forced cache refresh - Refactored error handling into reusable `handle_jira_result()` function ### Behavior - **First load**: ~10s (cache miss → Claude MCP call → cache result) - **Subsequent loads within 5 minutes**: Instant (cache hit) - **After 5 minutes**: Cache expires, next request fetches fresh data - **Force refresh**: `POST /api/jira/refresh` bypasses cache and fetches fresh data All tests pass (`cargo test --workspace`). ``` ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ```
The refresh button now calls POST /api/jira/refresh to bypass the cache instead of using the cached GET endpoint. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Explains architecture, Claude MCP call details, caching system, and design decisions for the Jira ticket selector feature. Co-Authored-By: Claude Opus 4.5 <[email protected]>
feat: Add Jira integration with SQLite caching
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.
Add support for Bitbucket Server (on-premise) alongside existing GitHub integration using a VCS provider abstraction layer.
New features:
The system auto-detects whether a repository uses GitHub or Bitbucket based on the remote URL and routes operations accordingly.
🤖 Generated with Claude Code