<!---                   WARNING                    --->
<!---        THIS IS AN AUTO-GENERATED FILE        --->
<!---  MANUAL CHANGES CAN AND WILL BE OVERWRITTEN  --->



# Aider Gitea

![Test program/library](https://gitfub.space/Jmaa/aider-gitea/actions/workflows/python-test.yml/badge.svg)

A code automation tool that integrates Gitea with Aider to automatically solve issues.

This program monitors your [Gitea](https://about.gitea.com/) repository for issues with the 'aider' label.
When such an issue is found, it:

1. Creates a new branch.
2. Invokes [Aider](https://aider.chat/) to solve the issue using a Large-Language Model.
3. Runs tests and code quality checks.
4. Creates a pull request with the solution.

## Usage

An application token must be supplied for the `gitea_token` secret. This must
have the following permissions:

- `read:issue`: To be able to read issues on the specified repository.
- `write:repository`: To be able to create pull requests.
- `read:user`: Needed to iterate all user's repositories.

### Command Line

```bash
# Run with default settings
python -m aider_gitea

# Specify custom repository and owner
python -m aider_gitea --owner myorg --repo myproject

# Use a custom Gitea URL
python -m aider_gitea --gitea-url https://gitea.example.com

# Specify a different base branch
python -m aider_gitea --base-branch develop
```

### Python API

```python
from aider_gitea import solve_issue_in_repository
from pathlib import Path

# Solve an issue programmatically
args = argparse.Namespace(
    gitea_url="https://gitea.example.com",
    owner="myorg",
    repo="myproject",
    base_branch="main"
)

solve_issue_in_repository(
    args,
    Path("/path/to/repo"),
    "issue-123-fix-bug",
    "Fix critical bug",
    "The application crashes when processing large files",
    "123"
)
```

### Environment Configuration

The tool uses environment variables for sensitive information:
- `GITEA_TOKEN`: Your Gitea API token
- `LLM_API_KEY`: API key for the language model used by Aider
```

## Dependencies

This project requires [Python](https://www.python.org/) 3.8 or newer.

All required libraries can be installed easily using:

```bash
pip install -r requirements.txt
```

Full list of requirements:
- [secret_loader](https://gitfub.space/Jmaa/secret_loader)


## Contributing

Feel free to submit pull requests. Please follow the [Code Conventions](CONVENTIONS.md) when doing so.


### Testing

Testing requires the [pytest](https://docs.pytest.org/en/stable/) library.

Run tests with the following command:

```sh
pytest test
```

Test coverage can be run using the [`pytest-cov`](https://pypi.org/project/pytest-cov/) extension:

```sh
pytest --cov=aider_gitea test
```


## License

```
Copyright (c) 2025 Jon Michael Aanes

All rights reserved.
```