2.8 KiB
2.8 KiB
name, description
| name | description |
|---|---|
| create-pr | Create a Bitbucket pull request from a worktree branch. |
Skill: create-pr
Create a Bitbucket (or GitHub) pull request from a worktree branch.
Invoked by
🎫 JiraOps mode (or 🪃 Orchestrator)
Required Inputs
| Input | Source | Example |
|---|---|---|
TICKET_KEY |
Jira issue key | PROJECT-123 |
MODULE |
Module/component name | auth, api, core |
Output
- Pull request created targeting the main branch
- Jira comment with PR link added
- BigMind fact stored
Steps
1. Get current branch
cd <your-repo-path>-<TICKET_KEY>
git branch --show-current
2. Ensure all changes are committed
git status
If uncommitted changes exist, warn the user before proceeding.
3. Push branch to origin
git push -u origin <BRANCH>
4. Gather diff statistics
git diff origin/main --stat
git diff origin/main --name-only
5. Read Jira ticket for context
ticket = retrieve_ticket_details(TICKET_KEY)
# Extract: summary, description for PR title/description
6. Compose PR title and description
PR title format:
<TICKET_KEY>: <Jira summary>
PR description template:
## Jira
<TICKET_KEY>: <summary>
## Description
<Brief description of what was changed and why>
## Changes
<List of changed files grouped by component>
## Tests
- <N> Unit tests
- <M> Integration tests
- All tests passing ✅
## Checklist
- [ ] Code review completed
- [ ] Tests passing
- [ ] No generated source modifications
7. Create the pull request
create_pull_request(
project_key="<PROJECT>",
repo_slug="<repo>",
title=f"{TICKET_KEY}: {summary}",
description=<composed description>,
from_branch=<BRANCH>,
to_branch="main"
)
8. Add Jira comment with PR link
add_comment_to_ticket(
issue_key=TICKET_KEY,
comment=f"*Pull Request created*\n\nBranch: {BRANCH}\nPR: [PR #{pr_id}|<pr_url>]"
)
9. Store in BigMind
memory_store_fact(
category="codebase",
fact=f"{TICKET_KEY}: PR #{pr_id} created — {BRANCH} → main. {N} files changed."
)
Error Handling
| Error | Resolution |
|---|---|
| Branch not pushed | Run git push -u origin <BRANCH> first |
| Uncommitted changes | Warn user, suggest git add + git commit |
| PR already exists | Check list_prs_for_repository for existing PR from same branch |
| Merge conflicts | Run git fetch origin main && git merge origin/main in worktree |
| No diff (empty PR) | Branch is identical to main — nothing to merge |
Conventions
- PR title: always starts with
TICKET_KEY:for Jira auto-linking - Target branch: typically
main(configure per project) - One PR per ticket — don't create multiple PRs for the same branch