Streamlined GitHub and Jira workflow automation tools
A modern CLI tool to automate your daily GitHub PR and Jira workflow, written in Go.
Are you tired of the hassle of changing the status every time you create a PR, such as 'code review,' 'merged,' and dealing with repetitive tasks?
Especially when you're busy and have opened multiple browser windows, waiting for pages to load just to complete these mundane tasks can be time-consuming, diverting our focus from more important matters.
Highlighted Benefits:
- Efficiency: Streamline the process by automating status updates and repetitive tasks.
- Time-Saving: Eliminate the need to open multiple browser tabs and wait for pages to load.
- Enhanced Focus: Allow users to concentrate on more crucial tasks.
- Reduced Manual Work: Minimize the need for manual status updates for each PR.
- Standardized Workflow: Ensures a consistent and error-free process.
- Automated PR Creation: Create branch, commit, push, and open PR in one command
- Jira Integration: Automatically link PRs to Jira tickets and update status
- Smart Branch Management: Auto-detect default branch (main/master)
- Interactive CLI: User-friendly prompts with support for cancellation (Ctrl+C)
- One-Command Merge: Merge PR, delete branch, and update Jira status
- Browser Integration: Auto-open PR in browser and copy URL to clipboard
- Quick Update: Commit and push with PR title as commit message (
qkflow update) - iCloud Sync: Automatic config sync across Mac devices (macOS only) βοΈ
- Auto Update: Automatically check and install updates (configurable) π
# macOS (Apple Silicon)
curl -L https://github.com/Wangggym/quick-workflow/releases/latest/download/qkflow-darwin-arm64 -o qkflow
chmod +x qkflow
sudo mv qkflow /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/Wangggym/quick-workflow/releases/latest/download/qkflow-darwin-amd64 -o qkflow
chmod +x qkflow
sudo mv qkflow /usr/local/bin/
# Linux
curl -L https://github.com/Wangggym/quick-workflow/releases/latest/download/qkflow-linux-amd64 -o qkflow
chmod +x qkflow
sudo mv qkflow /usr/local/bin/
# Windows (PowerShell)
Invoke-WebRequest -Uri https://github.com/Wangggym/quick-workflow/releases/latest/download/qkflow-windows-amd64.exe -OutFile qkflow.exe
# Move qkflow.exe to a directory in your PATHgit clone https://github.com/Wangggym/quick-workflow.git
cd quick-workflow/go-version
make gen # Initialize dependencies
make build # Build binary
make install # Install to GOPATH/binRun the interactive setup wizard:
qkflow initThis will prompt you for:
- GitHub token (auto-detected from
ghCLI if available) - GitHub owner (username or organization)
- GitHub repository name
- Jira URL (e.g., https://your-company.atlassian.net)
- Jira email
- Jira API token (Get one here)
- Optional: OpenAI API key for AI features
Configuration Storage:
β¨ NEW: On macOS, all configs are automatically saved to iCloud Drive and synced across your devices!
- macOS with iCloud Drive:
~/Library/Mobile Documents/com~apple~CloudDocs/.qkflow/βοΈ - Local Storage (fallback):
~/.qkflow/
Both locations contain:
config.yaml- Main configurationjira-status.json- Jira status mappings
Run qkflow config to see your actual storage location.
# With Jira ticket
qkflow pr create PROJ-123
# Interactive mode (will prompt for ticket)
qkflow pr createWhat it does:
- β Fetches Jira issue details (if ticket provided)
- β Prompts for PR title and description (or uses AI to generate)
- β Creates a new git branch
- β Commits your staged changes
- β Pushes to remote
- β Creates GitHub PR
- β Adds PR link to Jira
- β Updates Jira status
- β Copies PR URL to clipboard
# Merge PR by number
qkflow pr merge 123
# Interactive mode (will show your open PRs)
qkflow pr mergeWhat it does:
- β Fetches PR details
- β Confirms merge with you
- β Merges the PR on GitHub
- β Deletes remote branch
- β Switches to main/master branch
- β Deletes local branch
- β Updates Jira status
- β Adds merge comment to Jira
# Quick commit and push with PR title as commit message
qkflow updateWhat it does:
- β Gets the current PR title from GitHub
- β
Stages all changes (
git add --all) - β Commits with PR title as commit message
- β Pushes to origin
- β Falls back to "update" if no PR found
Perfect for quick updates to an existing PR!
# List configured Jira status mappings
qkflow jira list
# Setup status mapping for a project
qkflow jira setup PROJ
# Delete status mapping
qkflow jira delete PROJ# Show current configuration and storage location
qkflow config
# Update qkflow to latest version
qkflow update-cli
# Show version
qkflow version
# Get help
qkflow help
qkflow pr --help
qkflow jira --helpConfiguration is stored in ~/.qkflow/config.yaml (or iCloud on macOS):
email: [email protected]
github_token: ghp_your_github_token
github_owner: your-username
github_repo: your-repo
jira_api_token: your_jira_token
jira_service_address: https://your-domain.atlassian.net
jira_email: [email protected]
branch_prefix: feature # optional
openai_key: sk-your_openai_key # optional
deepseek_key: sk-your_deepseek_key # optionalYou can also use environment variables:
GITHUB_TOKENJIRA_API_TOKENJIRA_URLOPENAI_API_KEYDEEPSEEK_API_KEY
cd go-version
# Initialize dependencies
make gen
# Format and fix code
make fix
# Run linters
make check
# Run tests
make test
# Build
make build
# Build for all platforms
make build-all
# Install to system
make install
# Clean build artifacts
make clean
# Show all commands
make help# Check and prepare for release
make release VERSION=v1.0.1
# Create and push tag (triggers CI/CD)
git tag -a v1.0.1 -m "Release v1.0.1"
git push origin v1.0.1GitHub Actions will automatically:
- Run tests
- Build binaries for all platforms
- Create a GitHub Release
- Upload all binaries
- Getting Started Guide - Quick start tutorial
- Auto Update Guide - Automatic update feature
- Release Guide - Detailed release instructions
- Release Quickstart - Quick release commands
- iCloud Sync Guide - iCloud configuration sync
- Jira Configuration - Jira setup details
- Contributing Guide - How to contribute
- Project Structure - Codebase overview
Before qkflow:
git checkout -b feature/my-feature
git add .
git commit -m "Add feature"
git push origin feature/my-feature
gh pr create --title "Add feature" --body "Description..."
# Open Jira, find ticket, add PR link, update status...With qkflow:
qkflow pr create PROJ-123
# Done! β¨- Tokens are stored securely with file permissions
0600 - iCloud storage is encrypted and secure
- Never commit config files
- Use environment variables for CI/CD
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Cobra - CLI framework
- Survey - Interactive prompts
- go-github - GitHub API client
- go-jira - Jira API client
- π Report a bug
- π‘ Request a feature
- π View Documentation
Made with β€οΈ by @Wangggym
β Star this repo if you find it useful!