This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
140 lines
3.7 KiB
Markdown
140 lines
3.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
|
|
|
|
```
|
|
MIT License
|
|
|
|
Copyright (c) 2025 Jon Michael Aanes
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in all
|
|
copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
```
|