mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-02 11:50:37 +08:00
Merge CLI scripts to cli.py, update Dockerfile and README.md
This commit is contained in:
10
README.md
10
README.md
@ -35,16 +35,14 @@ Python scripts from the scripts folder. Here's how:
|
|||||||
|
|
||||||
1. To request a review for a PR, run the following command:
|
1. To request a review for a PR, run the following command:
|
||||||
```
|
```
|
||||||
docker run --rm -it -e OPENAI.KEY=<your key> -e GITHUB.USER_TOKEN=<your token> codiumai/pr-agent \
|
docker run --rm -it -e OPENAI.KEY=<your key> -e GITHUB.USER_TOKEN=<your token> codiumai/pr-agent --pr_url <pr url>
|
||||||
python pr_agent/scripts/review_pr_from_url.py --pr_url <pr url>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
2. To ask a question about a PR, run the following command:
|
2. To ask a question about a PR, run the following command:
|
||||||
```
|
```
|
||||||
docker run --rm -it -e OPENAI.KEY -e GITHUB.USER_TOKEN codiumai/pr-agent \
|
docker run --rm -it -e OPENAI.KEY=<your key> -e GITHUB.USER_TOKEN=<your token> codiumai/pr-agent --pr_url <pr url> --question "<your question>"
|
||||||
python pr_agent/scripts/answer_pr_questions_from_url.py --pr_url <pr url> --question "<your question>"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Possible questions you can ask include:
|
Possible questions you can ask include:
|
||||||
@ -76,8 +74,8 @@ cp pr_agent/settings/.secrets_template.toml pr_agent/settings/.secrets
|
|||||||
|
|
||||||
4. Run the appropriate Python scripts from the scripts folder:
|
4. Run the appropriate Python scripts from the scripts folder:
|
||||||
```
|
```
|
||||||
python pr_agent/scripts/review_pr_from_url.py --pr_url <pr url>
|
python pr_agent/cli.py --pr_url <pr url>
|
||||||
python pr_agent/scripts/answer_pr_questions_from_url.py --pr_url <pr url> --question "<your question>"
|
python pr_agent/cli.py --pr_url <pr url> --question "<your question>"
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -7,14 +7,14 @@ ENV PYTHONPATH=/app
|
|||||||
ADD pr_agent pr_agent
|
ADD pr_agent pr_agent
|
||||||
|
|
||||||
FROM base as github_app
|
FROM base as github_app
|
||||||
CMD ["python", "servers/github_app.py"]
|
CMD ["python", "pr_agent/servers/github_app.py"]
|
||||||
|
|
||||||
FROM base as github_polling
|
FROM base as github_polling
|
||||||
CMD ["python", "servers/github_polling.py"]
|
CMD ["python", "pr_agent/servers/github_polling.py"]
|
||||||
|
|
||||||
FROM base as test
|
FROM base as test
|
||||||
ADD requirements-dev.txt .
|
ADD requirements-dev.txt .
|
||||||
RUN pip install -r requirements-dev.txt && rm requirements-dev.txt
|
RUN pip install -r requirements-dev.txt && rm requirements-dev.txt
|
||||||
|
|
||||||
FROM base as cli
|
FROM base as cli
|
||||||
CMD ["bash"]
|
ENTRYPOINT ["python", "pr_agent/cli.py"]
|
||||||
|
27
pr_agent/cli.py
Normal file
27
pr_agent/cli.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import argparse
|
||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
|
from pr_agent.tools.pr_questions import PRQuestions
|
||||||
|
from pr_agent.tools.pr_reviewer import PRReviewer
|
||||||
|
|
||||||
|
|
||||||
|
def run():
|
||||||
|
parser = argparse.ArgumentParser(description='AI based pull request analyzer')
|
||||||
|
parser.add_argument('--pr_url', type=str, help='The URL of the PR to review', required=True)
|
||||||
|
parser.add_argument('--question', type=str, help='Optional question to ask', required=False)
|
||||||
|
args = parser.parse_args()
|
||||||
|
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
||||||
|
if args.question:
|
||||||
|
print(f"Question: {args.question} about PR {args.pr_url}")
|
||||||
|
reviewer = PRQuestions(args.pr_url, args.question, None)
|
||||||
|
asyncio.run(reviewer.answer())
|
||||||
|
else:
|
||||||
|
print(f"Reviewing PR: {args.pr_url}")
|
||||||
|
reviewer = PRReviewer(args.pr_url, None)
|
||||||
|
asyncio.run(reviewer.review())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
run()
|
@ -1,16 +0,0 @@
|
|||||||
import argparse
|
|
||||||
import asyncio
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
|
|
||||||
from pr_agent.tools.pr_questions import PRQuestions
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
parser = argparse.ArgumentParser(description='Review a PR from a URL')
|
|
||||||
parser.add_argument('--pr_url', type=str, help='The URL of the PR to review', required=True)
|
|
||||||
parser.add_argument('--question_str', type=str, help='The question to answer', required=True)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
|
||||||
reviewer = PRQuestions(args.pr_url, args.question_str, None)
|
|
||||||
asyncio.run(reviewer.answer())
|
|
@ -1,14 +0,0 @@
|
|||||||
import argparse
|
|
||||||
import asyncio
|
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
|
|
||||||
from pr_agent.tools.pr_reviewer import PRReviewer
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
parser = argparse.ArgumentParser(description='Review a PR from a URL')
|
|
||||||
parser.add_argument('--pr_url', type=str, help='The URL of the PR to review', required=True)
|
|
||||||
args = parser.parse_args()
|
|
||||||
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))
|
|
||||||
reviewer = PRReviewer(args.pr_url, None)
|
|
||||||
asyncio.run(reviewer.review())
|
|
Reference in New Issue
Block a user