This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
121 lines
2.9 KiB
Python
121 lines
2.9 KiB
Python
# WARNING
|
|
#
|
|
# THIS IS AN AUTOGENERATED FILE.
|
|
#
|
|
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN.
|
|
|
|
import re
|
|
|
|
from setuptools import setup
|
|
|
|
PACKAGE_NAME = 'aider_gitea'
|
|
|
|
PACKAGE_DESCRIPTION = """
|
|
# 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
|
|
```
|
|
""".strip()
|
|
|
|
PACKAGE_DESCRIPTION_SHORT = """
|
|
A code automation tool that integrates Gitea with Aider to automatically solve issues.""".strip()
|
|
|
|
|
|
def parse_version_file(text: str) -> str:
|
|
match = re.match(r'^__version__\s*=\s*(["\'])([\d\.]+)\1$', text)
|
|
if match is None:
|
|
msg = 'Malformed _version.py file!'
|
|
raise Exception(msg)
|
|
return match.group(2)
|
|
|
|
|
|
with open(PACKAGE_NAME + '/_version.py') as f:
|
|
version = parse_version_file(f.read())
|
|
|
|
|
|
REQUIREMENTS_MAIN = [
|
|
'secret_loader @ git+https://gitfub.space/Jmaa/secret_loader.git',
|
|
]
|
|
REQUIREMENTS_TEST = []
|
|
|
|
|
|
setup(
|
|
name=PACKAGE_NAME,
|
|
version=version,
|
|
description=PACKAGE_DESCRIPTION_SHORT,
|
|
long_description=PACKAGE_DESCRIPTION,
|
|
long_description_content_type='text/markdown',
|
|
author='Jon Michael Aanes',
|
|
author_email='jonjmaa@gmail.com',
|
|
url='https://gitfub.space/Jmaa/' + PACKAGE_NAME,
|
|
packages=[PACKAGE_NAME],
|
|
install_requires=REQUIREMENTS_MAIN,
|
|
extras_require={
|
|
'test': REQUIREMENTS_TEST,
|
|
},
|
|
python_requires='>=3.9',
|
|
)
|