# Copyright 2025 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: ADK Pull Request Triaging Agent on: # React within seconds of a PR opening/updating so the owner is assigned # promptly. pull_request_target (not pull_request) is required so the run has # the base-repo token needed to assign on community fork PRs; this workflow # only reads PR metadata via the API and never checks out untrusted PR code. pull_request_target: types: [opened, reopened, synchronize, ready_for_review] schedule: # Backfill every 6 hours in case an event was missed. - cron: '0 */6 * * *' workflow_dispatch: inputs: pr_number: description: 'The Pull Request number to triage (leave empty for batch mode)' required: false type: 'string' pr_count: description: 'Number of PRs to process in batch mode (default: 10)' required: false default: '10' type: 'string' # Never let two runs triage the same PR at once (e.g. rapid pushes); the # scheduled backfill still runs under its own group. concurrency: group: pr-triage-${{ github.event.pull_request.number || github.run_id }} cancel-in-progress: false jobs: agent-triage-pull-request: if: github.repository == 'google/adk-python' runs-on: ubuntu-latest permissions: pull-requests: write contents: read steps: - name: Checkout repository uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install requests google-adk - name: Run Triaging Script env: GITHUB_TOKEN: ${{ secrets.ADK_TRIAGE_AGENT }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} GOOGLE_GENAI_USE_VERTEXAI: 0 OWNER: 'google' REPO: 'adk-python' PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number || '' }} PR_COUNT_TO_PROCESS: ${{ github.event.inputs.pr_count || '10' }} INTERACTIVE: ${{ vars.PR_TRIAGE_INTERACTIVE }} PYTHONPATH: contributing/samples/adk_team run: python -m adk_pr_triaging_agent.main