Skip to main content

A CLI agent to assist with PR creation and management

Project description

PR Assistant CLI

Version License: MIT Language PyPI Downloads

PR Assistant is an AI-powered CLI tool designed to help developers streamline their workflow. It understands your codebase and automatically generates Pull Requests based on high-level instructions.

Features

  • AI-Powered PR Creation: Generate PRs with code changes, titles, and descriptions from simple prompts.
  • Codebase Understanding: Analyzes your project structure to provide context-aware suggestions.
  • GitHub Integration: Automatically creates branches and opens PRs in your repository.
  • Rate Limiting: Built-in client-side rate limiter to prevent API abuse.
  • Gemini Integration: Uses Google's Gemini models for intelligent code generation.

Installation

You can install the package directly from the source:

git clone https://github.com/yourusername/pr-assistant.git
cd pr-assistant
pip install -e .

Configuration

Before using the tool, you need to initialize the configuration with your API keys.

  1. GitHub Token: A Personal Access Token (PAT) with repo scope.
  2. Gemini API Key: Your Google Gemini API key.
  3. Bot Token (Optional): A separate GitHub PAT for a bot account to post reviews.

Run the init command:

pr-assistant init

Follow the interactive prompts to save your credentials.

Project-Level Configuration

You can configure the tool for specific projects to avoid re-entering the repository name.

  1. Run pr-assistant init inside your project directory.
  2. When prompted "Do you want to configure this directory as a project?", answer y.
  3. The repository name will be saved to a local .pr-assistant.json file.

Note: Your API keys are always stored securely in your global configuration (home directory) and are never saved to the local project file.

Usage

Global Options

  • --verbose: Enable detailed debug logging.
pr-assistant --verbose create 1

Create a PR

To create a PR, use the create command. You can specify the number of PRs to generate and a specific instruction.

pr-assistant create 1 --instruction "Add a hello world function to main.py"

List PRs

To list active PRs in your repository:

pr-assistant list-prs

Review a PR

To review a PR using AI:

pr-assistant review-pr <pr_number> --persona "Senior Software Engineer"

The AI will analyze the diff and post a comment on the PR with its findings.

Development & Testing

This project includes a comprehensive test suite using pytest.

Running Tests

To run the tests, ensure you have the dev dependencies installed:

pip install -e ".[dev]"
python3 -m pytest tests/

Test Coverage

  • Unit Tests: Config, Rate Limiter, Codebase Reader.
  • Mocked Tests: GitHub Client, Agent (LLM).
  • Integration Tests: CLI Commands.
  • Security Tests: Key handling.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pr_assistant_cli-0.1.3.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pr_assistant_cli-0.1.3-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file pr_assistant_cli-0.1.3.tar.gz.

File metadata

  • Download URL: pr_assistant_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pr_assistant_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9e87964f2cfb87130f83822fc0c98648796af0b0c4fcb9fdeb0eb1f3b8a91adf
MD5 f75d9e17fb220e1d8bf6cc9f1b9766d9
BLAKE2b-256 c265cb736b072e5c5d360435a4f15cec2182c0ec7b38f5ea5e2cfdae09f1a32e

See more details on using hashes here.

File details

Details for the file pr_assistant_cli-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pr_assistant_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b57a9f1e73792f3bfbaf1213de441bb1979286413cba81bfc3f8f2b23ed37580
MD5 891b9e30087e11f79ef629c9e7933a88
BLAKE2b-256 85585e41d0766048c02740fba78786e6baf035f3891af4501042fe10966b8581

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page