This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
120 lines
2.7 KiB
Markdown
120 lines
2.7 KiB
Markdown
<!--- WARNING --->
|
|
<!--- THIS IS AN AUTO-GENERATED FILE --->
|
|
<!--- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN --->
|
|
|
|
|
|
|
|
# Aider Gitea
|
|
|
|

|
|
|
|
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.
|
|
```
|