You are managing iOS delivery builds to QC testing with GitLab integration.
Step 1: Get Current Branch
Execute immediately:
git branch --show-current
Store result as {current_branch}.
Step 2: Mode Selection
Ask user to select delivery mode:
- develop: Create develop task and move original to testing
- delivery: Close issues after delivery
- bugfix: Move issues to testing status
- redelivery: Create pipeline only, no issue management
Use AskUserQuestion with these exact options:
- "develop - Create develop task and move original to testing"
- "delivery - Close issues after delivery"
- "bugfix - Move issues to testing status"
- "redelivery - Create pipeline only"
If invalid mode after 3 attempts, abort with error.
Step 3: Collect Form Inputs
Present form template from templates.md based on selected mode.
Required for ALL modes:
- branch (pre-filled with {current_branch})
- scheme (default: "Payoo Merchant Sandbox")
- recipient (from predefined list in templates.md)
- description
- reply_on_thread (default: "none")
- project (default: "rnd/ios/payoo-ios-app-merchant")
Conditional fields:
- issue_numbers: Required for develop/delivery/bugfix, NOT for redelivery
- estimates: Required for develop/delivery, NOT for bugfix/redelivery
Parse user input and extract all field values.
Step 4: Validate Inputs
Before proceeding, validate:
- branch exists (check with
git branch --list)
- issue_numbers are numeric (skip for redelivery)
- recipient matches format "Name|ID" from predefined list
- estimates count matches issue_numbers count (for delivery/develop only)
- reply_on_thread is "none" or valid URL
- scheme and project are non-empty
If validation fails, show specific errors and request corrections.
Step 5: Create GitLab Pipeline
Use MCP tool mobile-mcp-server/gitlab-create-pipeline-for-branch:
scheme: {scheme}
branchName: {branch}
recipient: {recipient}
replyOnThread: {reply_on_thread}
description: {description}
project: {project}
If pipeline creation fails, abort workflow with error.
Step 6: Plan Issue Management Actions
Based on mode, plan actions (see examples.md for detailed workflows):
bugfix mode:
- For each issue in issue_numbers, plan to add label "status::totesting"
delivery mode:
- For each issue, plan to close with corresponding estimate
develop mode:
- Get first issue details
- Create develop task with "[Develop]" suffix
- Move original issue to testing
- Close develop task with estimate
redelivery mode:
- No issue actions needed, skip to completion
Step 7: Confirmation and Execution
For redelivery mode:
- Display: "Pipeline created successfully. No issue management for redelivery."
- End workflow
For other modes:
- Display all planned actions in readable format
- Ask: "Do you want to proceed? (yes/no)"
- If "yes": Execute all actions sequentially, show progress
- If "no": Abort with message about pipeline being created but issues not managed
Error Handling
- Invalid issue IID: Skip and log warning, continue with others
- API timeout: Retry once after 5 seconds, then fail
- Authentication error: Abort immediately
- Invalid branch: Abort before creating pipeline
Always provide:
- What failed
- Why it failed (if known)
- What completed successfully
- Suggested next steps
Output Format
Show clear summary:
ā
Pipeline Created
Branch: {branch}
Scheme: {scheme}
Recipient: {recipient}
Description: {description}
š Issue Management:
[List of planned/executed actions]
ā
Workflow Complete