diff options
-rw-r--r-- | .github/workflows/copilot.yml | 30 | ||||
-rw-r--r-- | .github/workflows/unittest.yml | 12 | ||||
-rw-r--r-- | etc/tool/copilot.py | 10 |
3 files changed, 43 insertions, 9 deletions
diff --git a/.github/workflows/copilot.yml b/.github/workflows/copilot.yml index 40a633ea..63d3e2ba 100644 --- a/.github/workflows/copilot.yml +++ b/.github/workflows/copilot.yml @@ -13,19 +13,41 @@ jobs: contents: read pull-requests: write steps: + - name: 'Download artifact' + uses: actions/github-script@v6 + with: + script: | + let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); + let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { + return artifact.name == "pr_number" + })[0]; + let download = await github.rest.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + let fs = require('fs'); + fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data)); + - name: 'Unzip artifact' + run: unzip pr_number.zip - name: Checkout Repo uses: actions/checkout@v3 - - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.x" cache: 'pip' - name: Install Requirements - run: pip install -r requirements.txt - - name: Install PyGithub - run: pip install PyGithub + run: | + pip install -r requirements.txt + pip install PyGithub - name: AI Code Review env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} run: python -m etc.tool.copilot diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 03a02f6a..aadc7b86 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -23,4 +23,14 @@ jobs: - name: Install requirements run: pip install -r requirements.txt - name: Run tests - run: python -m etc.unittest
\ No newline at end of file + run: python -m etc.unittest + - name: Save PR number + env: + PR_NUMBER: ${{ github.event.number }} + run: | + mkdir -p ./pr + echo $PR_NUMBER > ./pr/pr_number + - uses: actions/upload-artifact@v4 + with: + name: pr_number + path: pr/
\ No newline at end of file diff --git a/etc/tool/copilot.py b/etc/tool/copilot.py index e8b91160..21f54d6d 100644 --- a/etc/tool/copilot.py +++ b/etc/tool/copilot.py @@ -16,6 +16,7 @@ g4f.debug.logging = True g4f.debug.version_check = False GITHUB_TOKEN = os.getenv('GITHUB_TOKEN') +GITHUB_REPOSITORY = os.getenv('GITHUB_REPOSITORY') G4F_PROVIDER = os.getenv('G4F_PROVIDER') G4F_MODEL = os.getenv('G4F_MODEL') or g4f.models.gpt_4 @@ -29,11 +30,12 @@ def get_pr_details(github: Github) -> PullRequest: Returns: PullRequest: An object representing the pull request. """ - with open(os.getenv('GITHUB_EVENT_PATH', ''), 'r') as file: - data = json.load(file) + './pr_number' + with open('./pr_number', 'r') as file: + pr_number = file.read() - repo = github.get_repo(f"{data['repository']['owner']['login']}/{data['repository']['name']}") - pull = repo.get_pull(data['number']) + repo = github.get_repo(GITHUB_REPOSITORY) + pull = repo.get_pull(pr_number) return pull |