Skip to content

Commit fbbc2eb

Browse files
authored
Propagate integration-test model credentials to issue-triage repro (#5443)
Scopes the triage job to the integration GitHub Environment, adds the azure/login OIDC step, and exposes the same OpenAI / Azure OpenAI / Foundry / Anthropic env vars the integration test workflow uses. This lets the triage agent write repro code that constructs model clients from the environment without any secrets entering the agent prompt or generated-code literals. Azure OpenAI and Foundry continue to authenticate via AAD (DefaultAzureCredential), so there is no API key to leak for those providers.
1 parent c9e6033 commit fbbc2eb

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/issue-triage.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
permissions:
1212
contents: read
1313
issues: write
14+
id-token: write
1415

1516
concurrency:
1617
group: issue-triage-${{ github.repository }}-${{ github.event.issue.number || inputs.issue_number || github.run_id }}
@@ -88,6 +89,7 @@ jobs:
8889
runs-on: ubuntu-latest
8990
needs: team_check
9091
if: ${{ needs.team_check.outputs.is_team_member == 'false' }}
92+
environment: integration
9193
timeout-minutes: 60
9294

9395
steps:
@@ -125,6 +127,13 @@ jobs:
125127
working-directory: ${{ env.DEVFLOW_PATH }}
126128
run: uv sync --frozen
127129

130+
- name: Azure CLI Login
131+
uses: azure/login@v2
132+
with:
133+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
134+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
135+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
136+
128137
- name: Classify issue relevance
129138
id: spam
130139
working-directory: ${{ env.DEVFLOW_PATH }}
@@ -161,6 +170,28 @@ jobs:
161170
AGENT_REPO_PATH: ${{ env.TARGET_REPO_PATH }}
162171
ISSUE_REPO: ${{ needs.team_check.outputs.repo }}
163172
ISSUE_NUMBER: ${{ needs.team_check.outputs.issue_number }}
173+
# Model-provider settings for generated repro code. Never enter the
174+
# agent prompt; consumed by SDK constructors via os.environ. Azure
175+
# OpenAI and Foundry auth via AAD from the azure/login step above.
176+
OPENAI_API_KEY: ${{ secrets.OPENAI__APIKEY }}
177+
OPENAI_CHAT_COMPLETION_MODEL: ${{ vars.OPENAI__CHATMODELID }}
178+
OPENAI_CHAT_MODEL: ${{ vars.OPENAI__RESPONSESMODELID }}
179+
OPENAI_MODEL: ${{ vars.OPENAI__RESPONSESMODELID }}
180+
OPENAI_EMBEDDING_MODEL: ${{ vars.OPENAI_EMBEDDING_MODEL_ID }}
181+
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
182+
AZURE_OPENAI_CHAT_COMPLETION_MODEL: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
183+
AZURE_OPENAI_CHAT_MODEL: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
184+
AZURE_OPENAI_MODEL: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
185+
AZURE_OPENAI_EMBEDDING_MODEL: ${{ vars.AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME }}
186+
FOUNDRY_PROJECT_ENDPOINT: ${{ vars.FOUNDRY_PROJECT_ENDPOINT }}
187+
FOUNDRY_MODEL: ${{ vars.FOUNDRY_MODEL }}
188+
FOUNDRY_AGENT_NAME: ${{ vars.FOUNDRY_AGENT_NAME }}
189+
FOUNDRY_AGENT_VERSION: ${{ vars.FOUNDRY_AGENT_VERSION }}
190+
FOUNDRY_MODELS_ENDPOINT: ${{ vars.FOUNDRY_MODELS_ENDPOINT || '' }}
191+
FOUNDRY_MODELS_API_KEY: ${{ secrets.FOUNDRY_MODELS_API_KEY || '' }}
192+
FOUNDRY_EMBEDDING_MODEL: ${{ vars.FOUNDRY_EMBEDDING_MODEL || '' }}
193+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
194+
ANTHROPIC_CHAT_MODEL: ${{ vars.ANTHROPIC_CHAT_MODEL_ID }}
164195
run: |
165196
uv run python scripts/trigger_issue_repro.py \
166197
--repo "$ISSUE_REPO" \

0 commit comments

Comments
 (0)