π Modern Go-based tool for automating pull request management across multiple Git repositories
Git PR CLI provides a fast, reliable, and feature-rich solution for managing dependency updates and pull requests across GitHub, GitLab, and Bitbucket repositories from a single configuration.
- π Multi-Provider Support - GitHub, GitLab, and Bitbucket in one tool
- π― Smart Filtering - Only merge PRs from trusted bots (dependabot, renovate, etc.)
- π‘οΈ Safety First - Dry-run mode, status checks, and approval requirements
- β‘ High Performance - Native Go performance with concurrent processing
- π± Notifications - Slack webhook and email SMTP notifications
- π§ Interactive Setup - Automated repository discovery and configuration wizard
- π Rich Statistics - Detailed repository and PR analytics
- π₯οΈ Cross-Platform - Native binaries for macOS, Linux, and Windows
Download the latest release for your platform:
# macOS (Apple Silicon)
curl -L -o git-pr-cli https://github.com/pacphi/git-pr-manager/releases/latest/download/git-pr-cli-darwin-arm64
chmod +x git-pr-cli
sudo mv git-pr-cli /usr/local/bin/
# Or build from source
git clone https://github.com/pacphi/git-pr-manager.git
cd git-pr-manager
make build# Set required environment variables
export GITHUB_TOKEN="ghp_..."
export GITLAB_TOKEN="glpat_..."
export BITBUCKET_USERNAME="username"
export BITBUCKET_APP_PASSWORD="password"# Interactive setup wizard
git-pr-cli setup wizard
# Validate configuration
git-pr-cli validate --check-repos# Check what's ready to merge
git-pr-cli check
# Dry run to see what would be merged
git-pr-cli merge --dry-run
# Merge ready PRs
git-pr-cli merge
# Watch continuously
git-pr-cli watch --interval=5m| Command | Description |
|---|---|
check |
Check pull request status across repositories |
completion |
Generate the autocompletion script for the specified shell |
help |
Help about any command |
info |
Show configuration and provider information |
merge |
Merge ready pull requests |
setup wizard |
Interactive configuration setup |
stats |
Show repository and PR statistics |
validate |
Validate configuration and connectivity |
watch |
Continuously monitor pull requests |
- Installation Guide - Complete installation and setup
- Getting Started - Step-by-step tutorial
- Configuration Reference - All configuration options
- Command Reference - Detailed command documentation
- MCP Server Guide - AI assistant integration setup
- Architecture - Technical architecture overview
# config.yaml - Updated for Go-based schema
pr_filters:
allowed_actors:
- "dependabot[bot]"
- "renovate[bot]"
skip_labels:
- "do-not-merge"
- "wip"
repositories:
github:
- name: "myorg/web-app"
auto_merge: true
merge_strategy: "squash"
require_checks: true
- name: "myorg/*"
auto_merge: false
require_checks: true
auth:
github:
token: "${GITHUB_TOKEN}"
gitlab:
token: "${GITLAB_TOKEN}"
url: "${GITLAB_URL}"
bitbucket:
username: "${BITBUCKET_USERNAME}"
app_password: "${BITBUCKET_APP_PASSWORD}"
notifications:
slack:
webhook_url: "${SLACK_WEBHOOK_URL}"
channel: "#deployments"
enabled: false# Build both CLI and MCP server
make build
# Cross-platform builds
make cross-compile
# Run tests
make test
# Run linting
make lintβββ cmd/
β βββ git-pr-cli/ # CLI application
β βββ git-pr-mcp/ # MCP server for AI assistants
βββ pkg/ # Shared libraries
β βββ config/ # Configuration management
β βββ providers/ # Git provider implementations
β βββ pr/ # PR processing logic
β βββ merge/ # Merge strategies
β βββ notifications/ # Notification systems
βββ internal/ # Application-specific code
βββ docs/ # Documentation
- CLI: Cobra + Viper
- MCP Server: Model Context Protocol for AI assistant integration
- Providers: Official Go clients (go-github, go-gitlab, go-bitbucket)
- HTTP: Resty with retry logic and rate limiting
- Configuration: YAML with environment variable support
- Logging: Structured logging with Logrus
- Testing: Testify + GoMock
- Tokens stored only in environment variables
- HTTPS/TLS enforcement for all API calls
- Input validation and sanitization
- Rate limiting and retry logic
- No sensitive data logging
- Native Go performance
- Concurrent API processing with controlled limits
- Built-in rate limiting per provider
- HTTP connection pooling and keepalive
- Memory-efficient streaming for large datasets
This modern Go-based solution provides:
- High Performance - Native Go performance with concurrent processing
- Robust Error Handling - Structured error messages and recovery
- Enterprise Reliability - Retry logic, timeout handling, and rate limiting
- Rich Features - Interactive wizard, detailed statistics, flexible notifications
- Cross-Platform - Single binary works on macOS, Linux, and Windows
- Fork the repository
- Create a feature branch
- Make changes with tests
- Run
make cito verify - Submit a pull request
MIT License - see LICENSE file for details.
Built with these excellent Go libraries: