@weotro/dx 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -7,16 +7,17 @@ description: 仅在用户显式调用 $git-release 或明确要求使用 git-rel
|
|
|
7
7
|
|
|
8
8
|
## 目标
|
|
9
9
|
|
|
10
|
-
在 `release/vX.Y.Z` 或 `release/vX.Y.Z-<prerelease>.N` 分支上,完成发布前检查、GitHub Release
|
|
10
|
+
在 `release/vX.Y.Z` 或 `release/vX.Y.Z-<prerelease>.N` 分支上,完成发布前检查、GitHub Release 创建和本次发布部署完成后的回访审计 Issue 建立;若当前不在 release 分支,则先从最新 `main` 自动创建目标 release 分支。
|
|
11
11
|
|
|
12
12
|
## 执行原则
|
|
13
13
|
|
|
14
14
|
- 全程使用中文输出。
|
|
15
15
|
- 严格执行前置校验,任何硬性条件不满足时立即终止。
|
|
16
16
|
- 发行说明必须结构化、可读、可追溯。
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
17
|
+
- 发布完成必须留下一个可追踪的“部署完成后回访审计单” Issue;终端里临时打印 checklist 不算完成。
|
|
18
|
+
- 回访 Issue 是审计本次 release 是否完整、正确落地的取证清单,不是部署操作手册。正文应围绕本次发布内容提出核对项,不编排部署步骤、命令顺序或服务器操作教程。
|
|
19
|
+
- 本技能只编写回访审计 Issue,不执行生产验证。不得登录生产服务器、访问生产数据库、调用生产只读接口、查询生产监控或尝试取得生产凭据。
|
|
20
|
+
- GitHub Release 创建成功不代表已经部署。所有需要部署完成后取证的审计项默认未勾选,留给运维或后续回访 agent 补充实际结果与证据。
|
|
20
21
|
- 命令默认在仓库根目录执行。
|
|
21
22
|
- 若能从当前 release 分支或自动建分支流程唯一推断出合法版本号,直接使用该版本继续发布,不要询问用户确认。
|
|
22
23
|
|
|
@@ -161,14 +162,14 @@ EOF
|
|
|
161
162
|
|
|
162
163
|
4. 读回 Release,确认 tag、标题、正文和 URL 正确:`gh release view v<VERSION> --json tagName,name,body,url,isDraft,isPrerelease`。
|
|
163
164
|
|
|
164
|
-
###
|
|
165
|
+
### 六、创建部署完成后回访审计 Issue
|
|
165
166
|
|
|
166
167
|
1. 完整读取 [发布后回访契约](references/post-release-follow-up.md)。
|
|
167
|
-
2.
|
|
168
|
-
3.
|
|
169
|
-
4.
|
|
170
|
-
5. checklist
|
|
171
|
-
6. 使用 `gh issue view` 读回 Issue
|
|
168
|
+
2. 以本次 Release 说明、`<last-release-tag>..HEAD` 的提交与 diff、关联 PR/Issue 为主,按需读取仓库内的部署配置、迁移、运维脚本和 ops manifest,建立“发布内容 -> 受影响对象 -> 发布后风险/预期行为 -> 审计证据”的映射。不得通过 SSH、生产域名、数据库、监控平台、云平台 API 或私有环境配置验证当前生产状态。
|
|
169
|
+
3. 自动创建一个“本次 release 部署完成后的回访审计单” Issue。逐项覆盖本次发布中的新增、优化、修复、技术改进和运维提醒;只有与本次变更相关时,才加入版本一致性、服务健康、迁移、脚本、数据、配置、可观测性、业务验收、回滚或延迟观察项。
|
|
170
|
+
4. 每个审计项写清关联发布内容、审计对象、通过标准和应附的脱敏证据。使用“核对/确认/观察”的审计表述,不写“登录、执行、重启、部署”等操作步骤,也不提供部署命令或操作顺序。
|
|
171
|
+
5. Issue 初始状态写为“待部署完成后回访”。所有依赖部署后事实的 checklist 保持未勾选;Release、tag 或 CI 的成功只能作为发布信息,不能代替生产落地证据。
|
|
172
|
+
6. 使用 `gh issue view` 读回 Issue,确认没有占位符;发行说明中的每项实质变更均有对应审计项或明确的不适用说明;正文不存在通用部署手册式步骤;然后输出 Issue URL。
|
|
172
173
|
|
|
173
174
|
## 终止条件
|
|
174
175
|
|
|
@@ -178,7 +179,7 @@ EOF
|
|
|
178
179
|
- 当前分支不符合 release 分支命名规则,且无法从 `main` 自动创建 release 分支。
|
|
179
180
|
- 版本号格式非法或与现有 tag 冲突。
|
|
180
181
|
- 自上次发布以来无新提交。
|
|
181
|
-
-
|
|
182
|
+
- 无法创建或读回部署完成后回访审计 Issue。
|
|
182
183
|
|
|
183
184
|
## 输出模板
|
|
184
185
|
|
|
@@ -205,5 +206,5 @@ EOF
|
|
|
205
206
|
- tag 推送状态
|
|
206
207
|
- Release URL
|
|
207
208
|
- 预期部署环境、品牌与 target
|
|
208
|
-
-
|
|
209
|
-
-
|
|
209
|
+
- 部署完成后回访审计 Issue URL
|
|
210
|
+
- 待回访审计与待观察项目数量
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Git Release"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "使用 $git-release
|
|
3
|
+
short_description: "完成版本发布并创建部署后的发布内容回访审计单"
|
|
4
|
+
default_prompt: "使用 $git-release 执行发布,并根据本次 Release 的实际变更创建部署完成后的回访审计 Issue;它是取证审计单,不是部署操作手册。"
|
|
5
5
|
|
|
6
6
|
policy:
|
|
7
7
|
allow_implicit_invocation: false
|
|
@@ -1,176 +1,134 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 部署完成后回访审计 Issue 契约
|
|
2
2
|
|
|
3
|
-
本文件只在 GitHub Release
|
|
3
|
+
本文件只在 GitHub Release 创建并读回成功后使用。产物是“本次 release 部署完成后的回访审计单”:用于在部署完成后核对本次发布是否完整、正确落地并留下证据,不用于指导如何部署。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 定位与边界
|
|
6
6
|
|
|
7
|
-
当前 `git-release` agent
|
|
7
|
+
当前 `git-release` agent 负责:
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- 从本次 Release 说明、提交、diff、关联 PR/Issue,以及必要的迁移、配置和运维清单中建立发布影响面;
|
|
10
|
+
- 把每项实质发布内容转换为可判定、可取证的部署后审计项;
|
|
11
|
+
- 创建并读回回访审计 Issue。
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Issue 应描述“部署完成后要确认什么、什么结果算通过、需要什么证据”。不要描述部署动作、命令顺序、登录路径、重启流程或故障处置步骤;这些内容属于部署 runbook。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
当前调用不连接或探测生产环境,包括 SSH、生产数据库、生产域名或 health 接口、监控平台、云平台部署 API、服务器日志和私有环境 profile,也不为此取得密钥、token 或生产权限。
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
`git-release` 本次调用完成的最低条件是:
|
|
20
|
-
|
|
21
|
-
- Release 已读回确认;
|
|
22
|
-
- 已从仓库内真源确定预期环境、品牌、target、服务、数据库与运维脚本,无法确定的内容明确列为待运维补充;
|
|
23
|
-
- 回访 Issue 已创建并读回;
|
|
24
|
-
- 本次发布涉及的每个环境、品牌、target、迁移、配置和用户可观察变化都有检查项;
|
|
25
|
-
- 每个检查项写明执行对象、预期结果和应附的脱敏证据;
|
|
26
|
-
- 没有把未经生产取证的项目标成已完成,也没有声称实际生产版本或健康状态。
|
|
27
|
-
|
|
28
|
-
回访 Issue 不要求在当前调用中关闭。运维或后续回访 agent 应在部署后更新同一个 Issue,逐项补证据并勾选。
|
|
29
|
-
|
|
30
|
-
## 从仓库建立影响面
|
|
17
|
+
GitHub Release、tag、CI 或部署工作流成功都不能证明生产已完成部署。Issue 初始状态统一写为“待部署完成后回访”,所有依赖生产事实的审计项保持未勾选。
|
|
31
18
|
|
|
32
|
-
|
|
19
|
+
## 以本次发布内容为主线
|
|
33
20
|
|
|
34
|
-
|
|
35
|
-
- 预期运行方式,例如 systemd、Docker、Kubernetes、PM2 或 serverless;
|
|
36
|
-
- 部署后可核对版本/commit 的文件、镜像标签、release 目录或运行参数;
|
|
37
|
-
- 数据库、队列、worker、cron、缓存和第三方连接需要验证的范围;
|
|
38
|
-
- 本次发布要求执行或确认的迁移、seed、回填、缓存刷新、配置生成和运维脚本;
|
|
39
|
-
- 发行说明中每个用户可观察变化对应的 smoke check。
|
|
21
|
+
按以下优先级建立审计范围:
|
|
40
22
|
|
|
41
|
-
|
|
23
|
+
1. 本次 Release 的发布摘要、分类变更、运维提醒和升级指南;
|
|
24
|
+
2. `<last-release-tag>..HEAD` 的提交、diff、关联 PR 与 Issue;
|
|
25
|
+
3. 为理解上述变更而必须读取的迁移、配置、部署描述、脚本和 ops manifest。
|
|
42
26
|
|
|
43
|
-
|
|
27
|
+
为每项实质变更记录:
|
|
44
28
|
|
|
45
|
-
|
|
29
|
+
- **关联发布内容**:发行说明条目及对应 PR/Issue;
|
|
30
|
+
- **受影响对象**:环境、品牌、target、服务、任务、数据库、接口或用户路径;
|
|
31
|
+
- **部署后预期**:本次变化落地后可观察且可判定的结果;
|
|
32
|
+
- **主要风险**:漏发、版本漂移、兼容性、迁移遗漏、数据偏差、配置缺失或行为回归;
|
|
33
|
+
- **审计证据**:脱敏的版本/commit、状态摘要、迁移或任务记录、监控链接、日志时间窗、数据结果或行为截图。
|
|
46
34
|
|
|
47
|
-
|
|
48
|
-
- **预期结果**:可判定通过或失败的状态;
|
|
49
|
-
- **证据要求**:脱敏命令摘要、版本/commit、迁移表结果、日志时间窗、监控链接或可观察行为;
|
|
50
|
-
- **执行时机**:部署前、部署后立即、观察窗口结束后或下一轮 cron 后。
|
|
35
|
+
发行说明中的每项实质变更必须至少映射到一个审计项。纯文档、测试或内部重构若没有生产可观察影响,可以合并为一项发布完整性核对,或明确说明为何无需独立生产审计。
|
|
51
36
|
|
|
52
|
-
|
|
37
|
+
不要为了填满固定栏目而生成与本次发布无关的通用检查。仓库无法确定的生产坐标或私有信息写为“由回访执行人按生产配置补充”,不要猜测。
|
|
53
38
|
|
|
54
|
-
|
|
39
|
+
## 审计项写法
|
|
55
40
|
|
|
56
|
-
|
|
57
|
-
- 品牌 readiness、环境配置和部署矩阵通过;
|
|
58
|
-
- 新增或变更的环境变量、secret、feature flag 和第三方配置已准备;
|
|
59
|
-
- 发布窗口、执行人、观察人、分批策略与回滚入口已记录。
|
|
41
|
+
每个 checklist 项包含:
|
|
60
42
|
|
|
61
|
-
|
|
43
|
+
- 关联的 Release 条目、PR 或 Issue;
|
|
44
|
+
- 审计对象;
|
|
45
|
+
- 明确的通过标准;
|
|
46
|
+
- 应附的脱敏证据;
|
|
47
|
+
- 审计时机:部署完成后立即、观察窗口结束后或下一轮计划任务后。
|
|
62
48
|
|
|
63
|
-
|
|
64
|
-
- 服务器制品、镜像、release 目录或前端 deployment 使用正确版本与 commit;
|
|
65
|
-
- 所有预期生产主机、品牌和 target 均已发布,没有漏发或版本漂移;
|
|
66
|
-
- Release 的 draft/prerelease 状态符合版本类型。
|
|
49
|
+
使用审计语言,例如:
|
|
67
50
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- 目标进程、容器、pod 或 function 正常运行,启动时间与本次部署一致;
|
|
72
|
-
- health/readiness、端口、反向代理和服务间连接正常;
|
|
73
|
-
- worker、cron、队列消费者和后台作业运行在目标版本;
|
|
74
|
-
- 最近日志没有启动失败、error、panic、持续 timeout、权限错误或重复重启;
|
|
75
|
-
- CPU、内存、磁盘、连接数等没有明显异常。
|
|
51
|
+
```markdown
|
|
52
|
+
- [ ] `#123 修复订单重复提交`:核对生产订单接口在重复请求场景只产生一笔订单;通过标准为幂等键对应单条订单记录且无新增重复告警;附脱敏请求标识、结果摘要和观察窗口链接。(部署完成后立即)
|
|
53
|
+
```
|
|
76
54
|
|
|
77
|
-
|
|
55
|
+
避免写成操作手册,例如:
|
|
78
56
|
|
|
79
|
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
- 设置适合本次变更的观察窗口和最早复查时间。
|
|
57
|
+
```markdown
|
|
58
|
+
- [ ] 登录服务器,拉取代码,执行迁移,重启服务,然后运行 curl 检查接口。
|
|
59
|
+
```
|
|
83
60
|
|
|
84
|
-
|
|
61
|
+
审计项可以要求提供某类证据,但不规定取得证据的具体命令。发现异常时记录结论并关联单独的问题 Issue;不要在审计单中展开修复或重新部署教程。
|
|
85
62
|
|
|
86
|
-
|
|
87
|
-
- 新增或变更的运行时配置已生效,敏感值只记录存在性、长度或指纹;
|
|
88
|
-
- 公共 API、DTO、事件、数据库和客户端兼容性得到验证;
|
|
89
|
-
- 使用有边界的只读查询核对关键总数、不变量、状态分布和抽样结果;
|
|
90
|
-
- 数据修复或回填记录预期数量、实际数量、失败项和幂等/重跑状态。
|
|
63
|
+
## 按影响选择审计维度
|
|
91
64
|
|
|
92
|
-
|
|
65
|
+
以下是选择维度,不是固定模板。只保留本次发布确实涉及的部分:
|
|
93
66
|
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
67
|
+
- **发布完整性**:多环境、多品牌、多 target 或多制品发布是否存在漏发与版本漂移;
|
|
68
|
+
- **功能与修复**:新增能力、优化或缺陷修复对应的成功路径、关键失败路径和旧问题复现条件;
|
|
69
|
+
- **迁移与数据**:schema、seed、回填、缓存刷新或数据修复的完成状态、数量、不变量与兼容性;
|
|
70
|
+
- **配置与依赖**:新增或变更的环境变量、feature flag、secret、第三方连接或依赖版本是否按预期生效;
|
|
71
|
+
- **异步与定时任务**:worker、队列、事件、webhook、cron 或后台任务在本次变化后的处理结果;
|
|
72
|
+
- **可观测性**:与本次风险直接相关的错误率、延迟、日志、告警、资源或业务指标;
|
|
73
|
+
- **延迟效应**:必须等待缓存过期、定时任务、流量积累或业务周期后才能判定的变化;
|
|
74
|
+
- **回滚可用性**:仅当本次变更具有明显回滚风险时,核对上一稳定版本、数据兼容性和回滚入口仍可用。
|
|
99
75
|
|
|
100
|
-
|
|
76
|
+
## 完成边界
|
|
101
77
|
|
|
102
|
-
-
|
|
103
|
-
- 覆盖本次受影响的登录/鉴权、核心读写、支付或其他高风险路径;
|
|
104
|
-
- 前端、管理端、移动端和多品牌分别验证,不能用一个端的通过代表全部端;
|
|
105
|
-
- 修复项复现旧失败条件并验证新行为,新增项验证成功路径和关键错误路径。
|
|
78
|
+
`git-release` 本次调用完成的最低条件是:
|
|
106
79
|
|
|
107
|
-
|
|
80
|
+
- Release 已读回确认;
|
|
81
|
+
- 本次发布的每项实质变更已映射到审计项或不适用说明;
|
|
82
|
+
- 每个审计项都有审计对象、通过标准、证据要求和时机;
|
|
83
|
+
- Issue 已创建并读回,且没有占位符;
|
|
84
|
+
- 所有依赖部署后事实的审计项均未勾选;
|
|
85
|
+
- Issue 没有声称已经完成部署或生产验证,也没有写成部署操作步骤。
|
|
108
86
|
|
|
109
|
-
|
|
110
|
-
- 对错误率、队列积压、定时任务、缓存过期等设置观察窗口;
|
|
111
|
-
- 明确关闭条件:所有必需项完成,阻塞项有结论,发现的问题已修复或拆成关联 Issue。
|
|
87
|
+
回访审计单不要求在当前调用中关闭。部署完成后,由运维或后续回访 agent 在同一个 Issue 中补充实际结果、证据与异常关联。
|
|
112
88
|
|
|
113
89
|
## Issue 结构
|
|
114
90
|
|
|
115
|
-
创建前读取仓库 Issue 模板和现有 labels
|
|
91
|
+
创建前读取仓库 Issue 模板和现有 labels,沿用可适用的结构与标签。标题使用:
|
|
116
92
|
|
|
117
93
|
```text
|
|
118
|
-
chore(release):
|
|
94
|
+
chore(release): 审计 v<VERSION> 部署后发布结果
|
|
119
95
|
```
|
|
120
96
|
|
|
121
|
-
|
|
97
|
+
正文根据本次发布影响动态增删章节,至少包含:
|
|
122
98
|
|
|
123
99
|
```markdown
|
|
124
|
-
##
|
|
100
|
+
## 审计范围
|
|
125
101
|
|
|
126
102
|
- 版本:v<VERSION>
|
|
127
103
|
- Release:<URL>
|
|
128
104
|
- Tag commit:<SHA>
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
## 部署后检查清单
|
|
133
|
-
|
|
134
|
-
### 部署前门禁
|
|
135
|
-
|
|
136
|
-
- [ ] <执行对象、预期结果、证据要求>
|
|
137
|
-
|
|
138
|
-
### 发布与制品一致性
|
|
139
|
-
|
|
140
|
-
- [ ] <检查项>
|
|
141
|
-
|
|
142
|
-
### 生产服务器与服务
|
|
143
|
-
|
|
144
|
-
- [ ] <检查项>
|
|
145
|
-
|
|
146
|
-
### 运行时与可观测性
|
|
147
|
-
|
|
148
|
-
- [ ] <检查项>
|
|
149
|
-
|
|
150
|
-
### 数据、配置与兼容性
|
|
105
|
+
- 对比范围:<last-tag>...v<VERSION>
|
|
106
|
+
- 预期部署范围:<从仓库配置得出的环境/品牌/target;未知项由回访执行人补充>
|
|
107
|
+
- 当前状态:待部署完成后回访
|
|
151
108
|
|
|
152
|
-
|
|
109
|
+
## 本次发布影响摘要
|
|
153
110
|
|
|
154
|
-
|
|
111
|
+
| 发布内容 | 关联项 | 受影响对象 | 主要风险 |
|
|
112
|
+
| --- | --- | --- | --- |
|
|
113
|
+
| <发行说明中的实质变更> | <PR/Issue> | <对象> | <风险> |
|
|
155
114
|
|
|
156
|
-
|
|
115
|
+
## 部署后回访审计
|
|
157
116
|
|
|
158
|
-
###
|
|
117
|
+
### <按本次发布内容归纳的主题,例如“订单幂等修复”>
|
|
159
118
|
|
|
160
|
-
- [ ]
|
|
119
|
+
- [ ] <关联发布内容、审计对象、通过标准、证据要求、审计时机>
|
|
161
120
|
|
|
162
|
-
###
|
|
121
|
+
### <仅在本次发布涉及延迟效应时保留:观察窗口>
|
|
163
122
|
|
|
164
|
-
- [ ]
|
|
165
|
-
- [ ] <观察指标、窗口、最早复查时间和负责人>
|
|
123
|
+
- [ ] <观察指标、通过标准、窗口结束时间和证据要求>
|
|
166
124
|
|
|
167
|
-
##
|
|
125
|
+
## 审计结论
|
|
168
126
|
|
|
169
|
-
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
127
|
+
- 当前结论:待部署完成后回访
|
|
128
|
+
- 异常与关联 Issue:无;发现异常后补充
|
|
129
|
+
- 关闭条件:本次发布的必需审计项均有结果与证据,异常均已有结论或关联 Issue
|
|
172
130
|
```
|
|
173
131
|
|
|
174
|
-
正文通过 heredoc 或临时文件传给 `gh issue create --body-file
|
|
132
|
+
正文通过 heredoc 或临时文件传给 `gh issue create --body-file`,不要用字面量 `\n` 拼接。创建后用 `gh issue view <id> --json title,body,url,state` 读回。
|
|
175
133
|
|
|
176
|
-
|
|
134
|
+
读回时确认:发布影响摘要覆盖所有实质变更;每项均有对应审计项或不适用说明;没有通用部署教程、未经取证的完成状态或虚构的生产信息。
|