summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/copilot.yml30
-rw-r--r--.github/workflows/unittest.yml12
-rw-r--r--etc/tool/copilot.py10
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