Skip to content

Triage Agent Forwarder #46

Triage Agent Forwarder

Triage Agent Forwarder #46

name: Triage Agent Forwarder
on:
issues:
types: [labeled]
jobs:
forward:
runs-on: ubuntu-latest
if: github.event.label.name == 'ta-needs-triage'
permissions:
id-token: write
steps:
- name: Get OIDC Token
id: oidc
run: |
OIDC_TOKEN=$(curl -sSf -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
"${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=api://token-exchange-service" | jq -r '.value')
echo "::add-mask::$OIDC_TOKEN"
echo "oidc_token=$OIDC_TOKEN" >> "$GITHUB_OUTPUT"
- name: Exchange for Installation Token
id: exchange
env:
OIDC_TOKEN: ${{ steps.oidc.outputs.oidc_token }}
run: |
RESPONSE=$(curl -sSf -X POST "${{ vars.TOKEN_EXCHANGE_URL }}/api/exchange/token" \
-H "Content-Type: application/json" \
-d "$(jq -cn \
--arg oidcToken "$OIDC_TOKEN" \
--arg targetRepo "MetaMask/triage-agent" \
'{oidcToken: $oidcToken, targetRepo: $targetRepo, requested_permissions: {contents: "write", metadata: "read"}}')")
TOKEN=$(echo "$RESPONSE" | jq -r '.token')
echo "::add-mask::$TOKEN"
echo "token=$TOKEN" >> "$GITHUB_OUTPUT"
- name: Dispatch to triage-agent
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ steps.exchange.outputs.token }}
repository: MetaMask/triage-agent
event-type: triage-issue
client-payload: |-
{
"repo_owner": "${{ github.repository_owner }}",
"repo_name": "${{ github.event.repository.name }}",
"issue_number": "${{ github.event.issue.number }}",
"event_action": "${{ github.event.action }}",
"event_label_name": "${{ github.event.label.name }}",
"trigger_mode": "label"
}