mcpField
C
checking-deploy-timing

checking-deploy-timing

github.com/posthog云与 DevOps95160 次安装今天更新
代码仓库

关于 checking-deploy-timing

checking-deploy-timing 是用于核实 PostHog 变更部署时间的技能,适合需要确认特定区域何时上线的团队成员。它以隐藏的部署注释为依据,并通过提交祖先关系确认实际部署包含目标合并提交。

主要功能

  1. 01搜索部署注释
  2. 02按环境和区域筛选部署
  3. 03核对部署时间与合并时间
  4. 04验证部署提交是否包含合并提交
  5. 05区分生产环境与内部 dev 环境

适用场景

  1. 01确认某个 PR 何时部署到 prod-us
  2. 02核实变更何时上线 prod-eu
  3. 03区分部署时间与指标变化时间
  4. 04确认较晚部署是否包含目标提交

MCP 相关

该技能使用 PostHog 的 `posthog:annotations-list` 工具查找部署注释;还会使用 GitHub CLI 查询 PR 和提交关系。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/posthog/ai-plugin --skill checking-deploy-timing

安装后在 Claude Code 中输入/checking-deploy-timing确认已加载。

详细介绍

检查某项更改的部署时间

每当一个提交部署到某个环境时,PostHog 的 CI 都会在项目中写入一条注释作为部署标记。这些注释的 hidden_in_user_interface: true,因此不会显示在 UI 中,也很容易被忽略——但它们是查询“何时上线”的权威依据。员工询问部署时间时,务必检查这些注释,而不要根据指标或事件量发生变化的时间进行推断(这会混淆采集更改与查询/代码更改)。

部署注释

使用 posthog:annotations-list 并传入 {"search": "deploy"} 来列出这些注释。每条部署标记如下所示:

  • content:Deployed PostHog/posthog@<sha> to <env>——环境为 prod-us、prod-eu 或 dev
  • creation_type:GIT
  • scope:organization
  • hidden_in_user_interface:true
  • date_marker:部署时间(UTC)

结果按时间从新到旧返回;如需查看更多更早的记录,请使用 offset 分页。

工作流

  1. 查找更改对应的合并提交。 确定 PR(例如,使用 gh search prs --repo PostHog/posthog --author <user> "<keywords>"),然后运行 gh pr view <n> --repo PostHog/posthog --json number,title,mergedAt,mergeCommit,state。记下合并提交 SHA 和 mergedAt。

  2. 按时间从旧到新列出合并时间前后目标环境的部署。 匹配用户询问的区域(询问“美国”时为 prod-us,询问“欧盟”时为 prod-eu)。注释按时间从新到旧返回,因此不要直接选取第 1 页上第一个 ... to <env> 匹配项——那是_最近一次_部署。使用 offset 分页,直到找到 mergedAt 前后的标记,然后按时间顺序查看该环境的部署,从第一个 date_marker晚于 mergedAt 的部署开始。在步骤 3 中按时间从早到晚检查。

  3. 确认已部署的提交确实包含该合并提交。 date_marker 较晚是必要条件,但并不足够——部署可能在合并后刚刚触发,却构建了稍早的提交。请验证提交的祖先关系:

    gh api repos/PostHog/posthog/compare/<merge_sha>...<deployed_sha> --jq '{status,ahead_by,behind_by}'
    

    behind_by: 0 且 status 为 ahead 或 identical,表示已部署的提交包含该合并提交——这就是答案。如果 behind_by > 0,则该部署早于此更改;请转到该环境按时间顺序排列的下一个更新的部署,并重新检查。第一个通过验证的部署,就是包含此更改的部署。

  4. 报告用户所询问区域的部署时间(以及 PR/提交)。如有相关情况,也请提及其他区域——prod-us 和 prod-eu 通常相差几分钟部署,但不会同时部署。

注意事项

  • “在美国上线”指 prod-us;“欧盟”指 prod-eu。dev 是内部预发布环境,不面向客户。
  • 对于查询运行器/读取路径更改,新行为会在部署后追溯应用于所有数据,因此无法根据事件量确定上线时间,只能查看部署注释。对于采集更改,新属性的事件量可作为辅助交叉验证,但注释仍是部署时间的权威依据。

评论

支持 Markdown