Repository navigation
ci: Add protected deployment plan dry-run - #974
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db5576ce03
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review the complete candidate at exact head |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Please review the complete candidate at exact head |
1 similar comment
|
@codex review Please review the complete candidate at exact head |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
AI assistance
Codex (GPT-6); existing review bot will review the exact published head.
What changed
Bind the protected deploy job to the Environment selected by
vars.IBKR_DEPLOY_ENVIRONMENTand resolve deployment credential aliases at job scope. Add a required reusable-workflowdry_runinput, default manual dispatch to validation only, and gate every post-validation execution step and alternate mode behind explicit execution selection.How verified
Why
The deployment path lacked an Environment binding and a validation-only input. This bounded patch makes plan validation the default and requires an existing protected Environment selector before authentication. It is rebased onto main after #971; the original local worktree is preserved.
Risk
High: deployment workflow behavior and credential resolution. Environment configuration and protection rules must be established separately under exact authorization. Dry-run authenticates and validates inputs; it does not prove future writes, serving adoption or runtime readiness. Existing risk/governance workflows are unchanged. Deployment, Secret, IAM, Scheduler and switch changes are outside this PR execution.
Publication check
Central checker: publication-check/2.0-advisory, build 83d9d1130377; advisory scan completed, exit 0. Total findings: 2555; matching lines: 2430. Existing-tree findings are advisory and are not a clean-secret assertion. First 20 masked matches:
.env.example:11: IB_GATEWAY_HOST=<PROJECT_ID>.env.example:19: TELEGRAM_TOKEN=<>.<PROJECT_ID>/CODEOWNERS:9: /.env.example @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:10: /.github/CODEOWNERS @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:11: /application/account_new_risk_gate_support.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:12: /application/execution_kernel_adapter.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:13: /application/execution_receipt_adapter.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:14: /application/execution_service.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:15: /application/ibkr_order_execution.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:16: /application/paper_execution_admission.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:17: /application/paper_execution_command_consumer.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:18: /application/portfolio_risk_diagnostics.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:19: /application/relative_risk_preview.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:20: /application/tqqq_offline_risk.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:21: /runtime_execution_policy.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:22: /scripts/deploy_notification_only.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:23: /scripts/deploy_pilot_no_traffic.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:24: /scripts/execution_report_heartbeat.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:25: /scripts/ibkr_deployment_audit.py @<PROJECT_ID>.<PROJECT_ID>/CODEOWNERS:26: /scripts/summarize_execution_ledger_cloud.py @<PROJECT_ID>