Skip to content

Commit b3170f6

Browse files
Agent skill for release (#64)
* agent skill for release * update * update
1 parent 1c3b32d commit b3170f6

1 file changed

Lines changed: 110 additions & 0 deletions

File tree

  • .github/skills/go-provider-release
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
name: go-provider-release
3+
description: "Release the Azure App Configuration Go Provider. Use when: releasing a new version, bumping version, tagging a release, publishing to Go proxy, creating release PRs."
4+
argument-hint: "Target version number, e.g. 1.1.0"
5+
---
6+
7+
# Go Provider Release
8+
9+
## When to Use
10+
11+
- Release a new version of the Azure App Configuration Go Provider
12+
- Bump the module version and publish to the Go module proxy
13+
14+
## Prerequisites
15+
16+
- GitHub CLI (`gh`) ≥ 2.86.0
17+
- Authenticated via `gh auth login` with `repo` and `read:org` scopes
18+
- GitHub Copilot agent enabled for the repository
19+
- Write access to `Azure/AppConfiguration-GoProvider`
20+
21+
## Procedure
22+
23+
Follow these steps **in order**. Each step depends on the previous one completing successfully.
24+
25+
### Step 1 — Create Version Bump PR
26+
27+
Use `gh agent-task create` to create a version bump PR:
28+
29+
```bash
30+
gh agent-task create \
31+
"Please create a version bump PR for version <version>. \
32+
Checkout a new branch from release/v<version> (e.g. version-bump/v<version>), \
33+
update the moduleVersion in azureappconfiguration/version.go to <version>, \
34+
and open a PR targeting the release/v<version> branch with title 'Version bump v<version>'." \
35+
--repo Azure/AppConfiguration-GoProvider \
36+
--base release/v<version>
37+
```
38+
39+
After launching the agent task, monitor its progress:
40+
41+
```bash
42+
gh agent-task list --repo Azure/AppConfiguration-GoProvider
43+
```
44+
45+
Once the agent task completes and the PR is created, inform the user to review and merge it.
46+
47+
> **Pause here.** Do not proceed until the user confirms the version bump PR has been merged.
48+
49+
### Step 2 — Tag the Release
50+
51+
After the version bump PR is merged, create a git tag at the HEAD of the release branch:
52+
53+
```
54+
git tag azureappconfiguration/v<version>
55+
```
56+
57+
Example: `git tag azureappconfiguration/v1.1.0`
58+
59+
### Step 3 — Push the Tag
60+
61+
Push the tag to the remote:
62+
63+
```
64+
git push origin azureappconfiguration/v<version>
65+
```
66+
67+
Example: `git push origin azureappconfiguration/v1.1.0`
68+
69+
### Step 4 — Publish to Go Module Proxy
70+
71+
**Before executing the publish command**, generate a summary report table for human review:
72+
73+
| Item | Detail |
74+
|---------------------|---------------------------------------------------------------------|
75+
| **Version** | `v<version>` |
76+
| **Version file** | `azureappconfiguration/version.go` updated to `<version>` |
77+
| **Tag pushed** | `azureappconfiguration/v<version>` |
78+
| **Publish command** | `GOPROXY=proxy.golang.org go list -m github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration@v<version>` |
79+
| **Next step** | After publish, create merge-back PR (release branch → main) |
80+
81+
> **Pause here.** Present the table and wait for the user to confirm before proceeding.
82+
83+
After user confirmation, run:
84+
85+
```
86+
GOPROXY=proxy.golang.org go list -m github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration@v<version>
87+
```
88+
89+
### Step 5 — Create Merge-Back PR
90+
91+
Use `gh agent-task create` to create a pull request to merge the release branch back to main:
92+
93+
```bash
94+
gh agent-task create \
95+
"Please create a PR to merge release/v<version> back to main with title 'Merge release/v<version> to main'." \
96+
--repo Azure/AppConfiguration-GoProvider \
97+
--base main
98+
```
99+
100+
Monitor the agent task until the PR is created:
101+
102+
```bash
103+
gh agent-task list --repo Azure/AppConfiguration-GoProvider
104+
```
105+
106+
## Notes
107+
108+
- The version in `azureappconfiguration/version.go` uses the format `X.Y.Z` (no `v` prefix) in the `moduleVersion` constant.
109+
- Tags use the format `azureappconfiguration/vX.Y.Z` (with `v` prefix and module path prefix).
110+
- The publish command only changes the version portion: `@vX.Y.Z`.

0 commit comments

Comments
 (0)