Zava Learning — Pull Request Delivery (IaC + Code)
Single owner of GitHub pull-request creation for durable fixes. Repo: @@REPO@@
(hosts the app src/ and the infrastructure infra/). This skill applies once an incident is
root-caused and the live mitigation is in place; the pull request it produces is later referenced
by the ServiceNow Change Request (servicenow-change-management).
There is no native GitHub pull-request tool — author the branch, commit, and open the PR with
ExecutePythonCode (GitHub REST API / gh) using FindConnectedGitHubRepo and
GetIaCForGitHub to locate the repo and IaC. Never commit secrets. Before opening the PR, retrieve
SearchMemory("zava-redaction") and run its redact() over the PR title, body, and commit message
(and never stage a credential or .env/*.pem/git-credentials file into the diff).
When to use
- An incident is root-caused to a durable defect and the live mitigation is already applied.
- The fix belongs in version control: IaC (
infra/, e.g. an NSG rule ininfra/modules/network.bicep, or a value ininfra/main.parameters.json) or application code (src/, e.g. a synchronous crypto regression insrc/assessment-api/server.js).
Decide the change class
- Infrastructure (IaC): the fix is a guardrail or config in Bicep / parameters. Make BOTH live Azure and the committed IaC reflect the corrected state so the next deploy keeps the fix.
- Application code: the fix is in
src/. The live mitigation was a revision rollback/restart; the PR carries the actual code correction.
Steps
- Resolve the repo and IaC type (
FindConnectedGitHubRepo,GetIaCForGitHub). - Branch from default:
fix/<symptom-slug>(e.g.fix/quiz-launch-nsg-priority). - Apply the minimal, surgical change. Match existing style. Touch only what the root cause requires.
- Commit with a conventional message:
fix(<area>): <symptom> — <root cause>and a body that summarizes the RCA and links the PagerDuty incident. - Open the PR against
@@REPO@@. PR body must include: symptom, root cause, the change, verification evidence (link the Before/After), and the PagerDuty incident number. - Capture the PR URL — the ServiceNow Change Request (
servicenow-change-management) references it. Post the PR link back in the PagerDuty incident notes.
Out of scope (human approval required)
- Merging the PR, force-pushes, history rewrites, changes outside the root-cause fix, VNet/subnet/IAM changes.
Verification
The PR is open against the correct repo/branch with a complete RCA-backed description and a linked Change Request; CI (if any) is green. Report the PR URL.