From 534b93bfc3a3f65c3ec7e4a24fdac66b19ee5fbc Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Wed, 27 May 2026 11:39:34 -0400 Subject: [PATCH] chore: remove PR review GitHub Actions workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove `pr-review-by-openhands.yml`, `pr-review-evaluation.yml` — PR review is now handled via OpenHands Cloud automation. Co-authored-by: openhands --- .github/workflows/pr-review-by-openhands.yml | 51 ------------ .github/workflows/pr-review-evaluation.yml | 85 -------------------- 2 files changed, 136 deletions(-) delete mode 100644 .github/workflows/pr-review-by-openhands.yml delete mode 100644 .github/workflows/pr-review-evaluation.yml diff --git a/.github/workflows/pr-review-by-openhands.yml b/.github/workflows/pr-review-by-openhands.yml deleted file mode 100644 index c4eb51f4..00000000 --- a/.github/workflows/pr-review-by-openhands.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: PR Review by OpenHands - -on: - # Use pull_request_target to allow fork PRs to access secrets when triggered by maintainers - # Security: This workflow runs when: - # 1. A new PR is opened (non-draft), OR - # 2. A draft PR is marked as ready for review, OR - # 3. A maintainer adds the 'review-this' label, OR - # 4. A maintainer requests openhands-agent or all-hands-bot as a reviewer - # Adding labels and requesting reviewers requires write access. - # The PR code is explicitly checked out for review, but secrets are only accessible - # because the workflow runs in the base repository context. - pull_request_target: - types: [opened, ready_for_review, labeled, review_requested] - -permissions: - contents: read - pull-requests: write - issues: write - -jobs: - pr-review: - # Run when one of the following conditions is met: - # 1. A new non-draft PR is opened by a non-first-time contributor, OR - # 2. A draft PR is converted to ready for review by a non-first-time contributor, OR - # 3. 'review-this' label is added, OR - # 4. openhands-agent or all-hands-bot is requested as a reviewer - # Note: FIRST_TIME_CONTRIBUTOR and NONE PRs require manual trigger via label/reviewer request. - if: | - (github.event.action == 'opened' && github.event.pull_request.draft == false && github.event.pull_request.author_association != 'FIRST_TIME_CONTRIBUTOR' && github.event.pull_request.author_association != 'NONE') || - (github.event.action == 'ready_for_review' && github.event.pull_request.author_association != 'FIRST_TIME_CONTRIBUTOR' && github.event.pull_request.author_association != 'NONE') || - github.event.label.name == 'review-this' || - github.event.requested_reviewer.login == 'openhands-agent' || - github.event.requested_reviewer.login == 'all-hands-bot' - concurrency: - group: pr-review-${{ github.event.pull_request.number }} - cancel-in-progress: true - runs-on: ubuntu-24.04 - steps: - - name: Run PR Review - uses: OpenHands/extensions/plugins/pr-review@main - with: - llm-model: litellm_proxy/claude-sonnet-4-5-20250929 - llm-base-url: https://llm-proxy.app.all-hands.dev - # [DEPRECATED] review-style is no longer used; standard and roasted are merged - # review-style: roasted - use-sub-agents: 'false' # Disabled by default (issue #208: high cost / timeouts) - llm-api-key: ${{ secrets.LLM_API_KEY }} - github-token: ${{ secrets.OPENHANDS_BOT_GITHUB_PAT_PUBLIC }} - lmnr-api-key: ${{ secrets.LMNR_SKILLS_API_KEY }} diff --git a/.github/workflows/pr-review-evaluation.yml b/.github/workflows/pr-review-evaluation.yml deleted file mode 100644 index 60baa50c..00000000 --- a/.github/workflows/pr-review-evaluation.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- -name: PR Review Evaluation - -# This workflow evaluates how well PR review comments were addressed. -# It runs when a PR is closed to assess review effectiveness. -# -# Security note: pull_request_target is safe here because: -# 1. Only triggers on PR close (not on code changes) -# 2. Does not checkout PR code - only downloads artifacts from trusted workflow runs -# 3. Runs evaluation scripts from the extensions repo, not from the PR - -on: - pull_request_target: - types: [closed] - -permissions: - contents: read - pull-requests: read - -jobs: - evaluate: - runs-on: ubuntu-24.04 - env: - PR_NUMBER: ${{ github.event.pull_request.number }} - REPO_NAME: ${{ github.repository }} - PR_MERGED: ${{ github.event.pull_request.merged }} - - steps: - - name: Download review trace artifact - id: download-trace - uses: dawidd6/action-download-artifact@v6 - continue-on-error: true - with: - workflow: pr-review-by-openhands.yml - name: pr-review-trace-${{ github.event.pull_request.number }} - path: trace-info - search_artifacts: true - if_no_artifact_found: warn - - - name: Check if trace file exists - id: check-trace - run: | - if [ -f "trace-info/laminar_trace_info.json" ]; then - echo "trace_exists=true" >> $GITHUB_OUTPUT - echo "Found trace file for PR #$PR_NUMBER" - else - echo "trace_exists=false" >> $GITHUB_OUTPUT - echo "No trace file found for PR #$PR_NUMBER - skipping evaluation" - fi - - # Always checkout main branch for security - cannot test script changes in PRs - - name: Checkout extensions repository - if: steps.check-trace.outputs.trace_exists == 'true' - uses: actions/checkout@v5 - with: - repository: OpenHands/extensions - path: extensions - - - name: Set up Python - if: steps.check-trace.outputs.trace_exists == 'true' - uses: actions/setup-python@v6 - with: - python-version: '3.12' - - - name: Install dependencies - if: steps.check-trace.outputs.trace_exists == 'true' - run: pip install lmnr - - - name: Run evaluation - if: steps.check-trace.outputs.trace_exists == 'true' - env: - # Script expects LMNR_PROJECT_API_KEY; org secret is named LMNR_SKILLS_API_KEY - LMNR_PROJECT_API_KEY: ${{ secrets.LMNR_SKILLS_API_KEY }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - python extensions/plugins/pr-review/scripts/evaluate_review.py \ - --trace-file trace-info/laminar_trace_info.json - - - name: Upload evaluation logs - uses: actions/upload-artifact@v5 - if: always() && steps.check-trace.outputs.trace_exists == 'true' - with: - name: pr-review-evaluation-${{ github.event.pull_request.number }} - path: '*.log' - retention-days: 30