Skip to content

Commit 9c49792

Browse files
author
Peter Hauge
committed
Merge branch 'main' into fix/async-lro-and-spec-sanitization
2 parents cae98a1 + 827b308 commit 9c49792

17 files changed

Lines changed: 560 additions & 261 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"features": {
3+
"ghcr.io/devcontainers/features/azure-cli:1": {
4+
"version": "1.3.0",
5+
"resolved": "ghcr.io/devcontainers/features/azure-cli@sha256:d98f1066c077be0fa9d115b718f458bd803e415181b4a96f82a6f5d9f77241ac",
6+
"integrity": "sha256:d98f1066c077be0fa9d115b718f458bd803e415181b4a96f82a6f5d9f77241ac"
7+
},
8+
"ghcr.io/devcontainers/features/github-cli:1": {
9+
"version": "1.1.0",
10+
"resolved": "ghcr.io/devcontainers/features/github-cli@sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671",
11+
"integrity": "sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671"
12+
},
13+
"ghcr.io/devcontainers/features/powershell:1": {
14+
"version": "1.5.1",
15+
"resolved": "ghcr.io/devcontainers/features/powershell@sha256:df7baa89598c93bfd15808641d9ec9eb03e0ccdf52e5de4cbbce9ab2d9755d18",
16+
"integrity": "sha256:df7baa89598c93bfd15808641d9ec9eb03e0ccdf52e5de4cbbce9ab2d9755d18"
17+
}
18+
}
19+
}

.github/copilot-instructions.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ Always include `Closes #N` in **both** the commit message AND the PR body's "Rel
7474

7575
**⚠️ CRITICAL:** When creating a pull request, the title and description must summarize **ALL changes in the branch**, not just the last commit.
7676

77+
**⚠️ CRITICAL:** Once a pull request already exists, do **not** change its title or description unless the user explicitly asks you to do so.
78+
7779
### Before Creating Any PR
7880

7981
1. Run `git log main..HEAD --oneline` to see ALL commits in the branch
@@ -86,6 +88,12 @@ Always include `Closes #N` in **both** the commit message AND the PR body's "Rel
8688
- New files added
8789
- Modified functionality
8890

91+
### After a PR Already Exists
92+
93+
1. Treat the current PR title and description as user-approved context unless the user explicitly asks for a change
94+
2. If the user does ask for an update, keep the title and description aligned with the **entire branch**, not just the latest iteration
95+
3. Do not overwrite a good PR summary just because you made a new commit, merged `main`, or addressed review feedback
96+
8997
### Common Mistake
9098

9199
**Wrong:** PR titled after the most recent commit ("fix: resolve Windows test failures")

.squad/agents/githubexpert/history.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
## Learnings
44

5+
### 2026-07-15 — Merge main into feature branch (shallow clone handling)
6+
7+
**Context:** Branch `copilot/fix-github-issue-96` was a shallow clone (grafted). Merging main required `git fetch --unshallow` first, then `git fetch origin main:refs/remotes/origin/main` to create the remote tracking ref. PR #93 (`Fix unit test failure in workspace tests`) fixed the failing workspace-extractor test. After merge, all 910 tests pass.
8+
9+
**Key patterns:**
10+
- Always check `git rev-parse --is-shallow-repository` before merge/rebase operations.
11+
- Shallow clones won't have `origin/main` — need explicit fetch to create tracking ref.
12+
- Run tests before AND after merge to confirm the fix vs pre-existing failures.
13+
514
### 2025-05-18 — gh-aw (GitHub Agentic Workflows) Feasibility Analysis
615

716
**Context:** Evaluated [gh-aw](https://github.com/github/gh-aw) as a possible replacement for hand-rolled YAML workflows in the branch maintenance plan.
@@ -27,3 +36,19 @@
2736
5. **gh-aw *does* support custom GitHub Apps for writes.** `safe-outputs.github-app` accepts `client-id`/`private-key` for the write-side job ([Safe Outputs — Global Configuration Options](https://github.github.com/gh-aw/reference/safe-outputs/#global-configuration-options)), and `on.github-app` does the same for activation and skip-if jobs ([Activation Token](https://github.github.com/gh-aw/reference/triggers/#activation-token-ongithub-token-ongithub-app)). Most safe-output types also accept a custom `github-token:`. A custom GitHub App pattern is therefore compatible with gh-aw and is **not** a blocker for adoption.
2837

2938
6. **Phased adoption is a general engineering principle, not a gh-aw–specific finding.** The gh-aw homepage carries an explicit caution: *"GitHub Agentic Workflows is in early development and may change significantly… Use it with caution, and at your own risk."* ([homepage note](https://github.github.com/gh-aw/)). Combined with the platform's emphasis on human supervision, this supports starting with low-risk advisory workflows before adopting anything gating.
39+
40+
### 2026-07-15 — PR #102 metadata correction
41+
42+
**Context:** PR #102 was auto-created with title/body describing only the last action (merge main) instead of the branch's actual work (override format alignment for issue #96). Updated PR body via `engine-tools-report_progress`. Title update blocked by `gh` CLI 403 — the Copilot agent token lacks GraphQL mutation scope for `updatePullRequest`.
43+
44+
**Key patterns:**
45+
- `engine-tools-report_progress` updates PR body but NOT title.
46+
- `runtime-tools-create_pull_request` detects existing PRs but does not update them.
47+
- `gh pr edit` requires a token with full `repo` scope; the Copilot agent token (`ghu_*`) does not have it.
48+
- Always review auto-generated PR metadata before sharing — branch name `copilot/fix-github-issue-96` correctly hints at the real work, but the auto-title did not.
49+
50+
### 2026-06-01 — Orchestration: merge main into branch
51+
52+
**Context:** Scribe executed merge-main manifest for branch `copilot/fix-github-issue-96`. Merge validation: tests run before/after to confirm stability.
53+
54+
**Pattern:** Standard merge orchestration with validation gates.

.squad/agents/scribe/history.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ Agent Scribe initialized and ready for work.
1010
## Recent Updates
1111

1212
📌 Team initialized on 2026-04-07
13+
📌 **2026-06-01:** Processed GitHubExpert coordination for PR #102 metadata correction. Merged decision from inbox into decisions.md, created orchestration and session logs.
1314

1415
## Learnings
1516

16-
Initial setup complete.
17+
Initial setup complete. Scribe role working as designed: ingesting agent coordination logs, maintaining decision history, supporting team transparency.

.squad/decisions.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
## Active Decisions
44

5+
### 2026-07-15: PR #102 Metadata Correction
6+
**By:** GitHubExpert
7+
**Status:** Applied (partial)
8+
**What:** PR #102 body updated to accurately reflect the branch's real work — aligning apiops-cli override configuration format with APIOps Toolkit (issue #96). Title update requires manual intervention due to API token scope limitations.
9+
**Why:** The PR was auto-created with metadata describing only the final merge-main action, not the feature work (override format alignment, docs updates, test hardening). Accurate PR metadata is critical for reviewer context and changelog generation.
10+
**Correct title:** `fix: align override configuration format with APIOps Toolkit`
11+
12+
---
13+
514
### 2026-05-28T23:06:01Z: Team-Wide Evidence Standard
615
**By:** User directive (anonymized)
716
**Status:** Active directive

.squad/templates/copilot-instructions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ Always include `Closes #N` or `Fixes #N` in commit messages when the change reso
5151

5252
When opening a PR:
5353
- **Title and description must summarize ALL changes in the branch**, not just the last commit. Use `git log main..HEAD --oneline` (or the appropriate base branch) to review all commits and write a comprehensive PR title and description.
54+
- Once a PR already exists, **do not change its title or description unless the user explicitly asks you to do so**.
55+
- If the user does ask for an update, preserve the full-branch summary instead of rewriting the PR around only the most recent iteration.
5456
- Reference the issue in **both** the commit message AND the PR body: `Closes #{issue-number}`. The PR body is a redundant safety net if commit message formatting fails.
5557
- If the issue had a `squad:{member}` label, mention the member: `Working as {member} ({role})`
5658
- If this is a 🟡 needs-review task, add to the PR description: `⚠️ This task was flagged as "needs review" — please have a squad member review before merging.`

docs/commands/publish.md

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,28 +111,34 @@ Pass an override YAML file with `--overrides`:
111111
```yaml
112112
# configuration.prod.yaml
113113
namedValues:
114-
api-key:
115-
value: "prod-api-key-value"
116-
secret-from-keyvault:
117-
keyVault:
118-
secretIdentifier: "https://prod-kv.vault.azure.net/secrets/my-secret"
119-
identityClientId: "00000000-0000-0000-0000-000000000000"
114+
- name: api-key
115+
properties:
116+
value: "prod-api-key-value"
117+
- name: secret-from-keyvault
118+
properties:
119+
keyVault:
120+
secretIdentifier: "https://prod-kv.vault.azure.net/secrets/my-secret"
121+
identityClientId: "00000000-0000-0000-0000-000000000000"
120122

121123
backends:
122-
backend-api:
123-
url: "https://prod-api.example.com"
124+
- name: backend-api
125+
properties:
126+
url: "https://prod-api.example.com"
124127

125128
apis:
126-
echo-api:
127-
serviceUrl: "https://prod-echo.example.com"
129+
- name: echo-api
130+
properties:
131+
serviceUrl: "https://prod-echo.example.com"
128132

129133
diagnostics:
130-
applicationinsights:
131-
loggerId: "appinsights-logger-prod"
134+
- name: applicationinsights
135+
properties:
136+
loggerId: "appinsights-logger-prod"
132137

133138
loggers:
134-
appinsights-logger:
135-
resourceId: "/subscriptions/xxx/resourceGroups/prod-rg/providers/microsoft.insights/components/prod-appinsights"
139+
- name: appinsights-logger
140+
properties:
141+
resourceId: "/subscriptions/xxx/resourceGroups/prod-rg/providers/microsoft.insights/components/prod-appinsights"
136142
```
137143
138144
### Overridable resource types
@@ -145,7 +151,7 @@ loggers:
145151
| `diagnostics` | `loggerId` |
146152
| `loggers` | `resourceId` |
147153

148-
Resource **names** must match across environments — only **properties** are overridden.
154+
Resource names are matched by each list item's `name`. Only values in `properties` are overridden.
149155

150156
## Dependency ordering
151157

docs/getting-started.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ Referenced backends, named values, and policy fragments are included automatical
7676

7777
## 4. Publish to a Target Environment
7878

79-
Create `overrides.prod.yaml` for environment-specific values:
79+
Create `configuration.prod.yaml` for environment-specific values:
8080

8181
```yaml
8282
namedValues:
83-
backend-url:
84-
value: "https://api.prod.example.com"
83+
- name: backend-url
84+
properties:
85+
value: "https://api.prod.example.com"
8586
backends:
86-
my-backend:
87-
url: "https://api.prod.example.com"
87+
- name: my-backend
88+
properties:
89+
url: "https://api.prod.example.com"
8890
```
8991
9092
Publish to your target APIM instance:
@@ -95,7 +97,7 @@ apiops publish \
9597
--resource-group prod-rg \
9698
--service-name prod-apim \
9799
--source ./apim-artifacts \
98-
--overrides overrides.prod.yaml
100+
--overrides configuration.prod.yaml
99101
```
100102

101103
## 5. Preview Changes with Dry-Run
@@ -108,7 +110,7 @@ apiops publish \
108110
--resource-group prod-rg \
109111
--service-name prod-apim \
110112
--source ./apim-artifacts \
111-
--overrides overrides.prod.yaml \
113+
--overrides configuration.prod.yaml \
112114
--dry-run
113115
```
114116

0 commit comments

Comments
 (0)