From f337d76af63747bcc82c78328d2baf59c51020e3 Mon Sep 17 00:00:00 2001 From: Ori Kotek Date: Thu, 13 Jul 2023 18:32:28 +0300 Subject: [PATCH] Github custom action development - WIP --- .github/workflows/review.yaml | 6 ++--- pr_agent/servers/github_action_runner.py | 31 +++++++++++++++++------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/.github/workflows/review.yaml b/.github/workflows/review.yaml index 91a49c07..6b8a09e0 100644 --- a/.github/workflows/review.yaml +++ b/.github/workflows/review.yaml @@ -8,6 +8,6 @@ jobs: - name: PR Agent action step id: pragent uses: Codium-ai/pr-agent@feature/github_action - with: - openai-key: "TBD: openai key" - + env: + OPENAI_KEY: ${{ secrets.OPENAI_KEY }} + OPENAI_ORG: ${{ secrets.OPENAI_ORG }} diff --git a/pr_agent/servers/github_action_runner.py b/pr_agent/servers/github_action_runner.py index 6127b9d2..27b50433 100644 --- a/pr_agent/servers/github_action_runner.py +++ b/pr_agent/servers/github_action_runner.py @@ -1,6 +1,9 @@ import json import os +from pr_agent.config_loader import settings +from pr_agent.tools.pr_reviewer import PRReviewer + def run_action(): GITHUB_EVENT_NAME = os.environ.get('GITHUB_EVENT_NAME', None) @@ -12,22 +15,32 @@ def run_action(): print("GITHUB_EVENT_PATH not set") return event_payload = json.load(open(GITHUB_EVENT_PATH, 'r')) - GITHUB_REPOSITORY = os.environ.get('GITHUB_REPOSITORY', None) - if not GITHUB_REPOSITORY: - print("GITHUB_REPOSITORY not set") - return RUNNER_DEBUG = os.environ.get('RUNNER_DEBUG', None) if not RUNNER_DEBUG: print("RUNNER_DEBUG not set") + OPENAI_KEY = os.environ.get('OPENAI_KEY', None) + if not OPENAI_KEY: + print("OPENAI_KEY not set") + return + OPENAI_ORG = os.environ.get('OPENAI_ORG', None) + GITHUB_TOKEN = os.environ.get('GITHUB_TOKEN', None) + if not GITHUB_TOKEN: + print("GITHUB_TOKEN not set") + return ### DEBUG print(event_payload) - print(GITHUB_REPOSITORY) - print(GITHUB_EVENT_NAME) - print(GITHUB_EVENT_PATH) - print(RUNNER_DEBUG) + settings.set("OPENAI.KEY", OPENAI_KEY) + if OPENAI_ORG: + settings.set("OPENAI.ORG", OPENAI_ORG) + settings.set("GITHUB.USER_TOKEN", GITHUB_TOKEN) + settings.set("GITHUB.DEPLOYMENT_TYPE", "user") if GITHUB_EVENT_NAME == "pull_request": - print("PR event") + action = event_payload.get("action", None) + if action in ["opened", "reopened"]: + pr_url = event_payload.get("pull_request", {}).get("url", None) + if pr_url: + PRReviewer(pr_url).review() if __name__ == '__main__':