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.4.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.4-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pr_assistant_cli-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 af3672d66d89eb332c857ad8de0a8e8bf17e365845bd9273ec87e87dd4d97c4c
MD5 8d0efe200eebba2740b394339cb6cb33
BLAKE2b-256 5f5f716fb9c859c88c3bf3a654ecd89837788863abaa3933788f9ffc46cfb430

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pr_assistant_cli-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0e58f2d11920ebe13a8591b2169cee878e9f6453891cff5175738cc01556a1bb
MD5 c2a39a6a8e2eb7ae4136f346a29692e7
BLAKE2b-256 4d39518e1a0360b62546958f5b3bdcf23831a8f781eb41c84a647b0f85637ae2

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