获取发布日期Skill GetReleaseDates

这个技能用于从Sippy API查询OpenShift的发布信息,包括一般可用性(GA)日期、开发开始日期、前一个发布等,帮助用户了解发布状态、时间线和进行发布验证。关键词:OpenShift, 发布管理, Sippy API, 发布日期, 开发周期, 云原生, 容器平台。

Docker/K8s 0 次安装 0 次浏览 更新于 3/14/2026

name: 获取发布日期 description: 从Sippy API获取OpenShift的发布日期和元数据

获取发布日期

这个技能提供从Sippy API获取OpenShift发布信息的功能,包括GA日期和开发开始日期。

何时使用此技能

在以下情况下使用此技能:

  • 获取特定OpenShift发布的GA(一般可用性)日期
  • 查找发布的开发开始日期
  • 识别序列中的前一个发布
  • 验证发布是否在Sippy中存在
  • 确定发布是否在开发中或已GA

先决条件

  1. Python 3 安装

    • 检查是否安装:which python3
    • 需要Python 3.6或更高版本
    • 大多数系统已预安装
  2. 网络访问

    • 脚本需要网络访问以连接Sippy API
    • 确保可以发送HTTPS请求到sippy.dptools.openshift.org

实施步骤

步骤 1:验证先决条件

首先,确保Python 3可用:

python3 --version

如果未安装Python 3,指导用户根据其平台安装。

步骤 2:定位脚本

脚本位于:

plugins/teams/skills/get-release-dates/get_release_dates.py

步骤 3:运行脚本

使用发布参数执行脚本:

# 获取发布 4.21 的日期
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
  --release 4.21

# 获取发布 4.20 的日期
python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
  --release 4.20

步骤 4:处理输出

脚本输出JSON数据,结构如下:

{
  "release": "4.21",
  "found": true,
  "ga": "2026-02-17T00:00:00Z",
  "development_start": "2025-09-02T00:00:00Z",
  "previous_release": "4.20"
}

字段描述

  • release:查询的发布标识符
  • found:布尔值,表示发布是否在Sippy中存在
  • ga:GA(一般可用性)日期。如果为null,发布仍在开发中。
  • development_start:此发布的开发开始日期
  • previous_release:序列中的前一个发布(如果没有则为空字符串)

如果未找到发布

{
  "release": "99.99",
  "found": false
}

发布状态 - 开发中 vs 已GA

  • 开发中:如果ganull,发布仍在积极开发中
    {
      "release": "4.21",
      "found": true,
      "development_start": "2025-09-02T00:00:00Z",
      "previous_release": "4.20"
    }
    
  • 已GA(已发布):如果ga有时间戳,发布已达到一般可用性
    {
      "release": "4.17",
      "found": true,
      "ga": "2024-10-01T00:00:00Z",
      "development_start": "2024-05-17T00:00:00Z",
      "previous_release": "4.16"
    }
    

步骤 5:使用信息

基于发布日期:

  1. 确定发布状态:检查发布是否在开发中或已GA
    • 如果ganull:发布仍在开发中
    • 如果ga有时间戳:发布已达到一般可用性
  2. 确定发布时间线:使用development_startga日期
    • 计算开发时间:ga - development_start
    • 对于开发中的发布:计算自development_start以来的时间
  3. 查找相关发布:使用previous_release导航发布序列
  4. 验证发布:在使用发布进行其他操作前检查found字段

错误处理

脚本处理多个错误场景:

  1. 网络错误:如果无法连接Sippy API

    Error: URL Error: [原因]
    
  2. HTTP错误:如果API返回错误状态

    Error: HTTP Error 404: Not Found
    
  3. 无效发布:脚本返回退出码1,输出中found: false

  4. 解析错误:如果API响应格式错误

    Error: Failed to fetch release dates: [详情]
    

输出格式

脚本输出JSON到标准输出:

  • 成功:退出码0,JSON中found: true
  • 未找到发布:退出码1,JSON中found: false
  • 错误:退出码1,错误信息到标准错误输出

API详情

脚本查询Sippy发布API:

完整API响应包括:

  • releases:所有可用发布标识符的数组
  • ga_dates:发布到GA日期的简单映射
  • dates:包含GA和development_start日期的详细映射
  • release_attrs:包括前一个发布在内的扩展属性

示例

示例 1:获取当前开发中的发布

python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
  --release 4.21

输出:

{
  "release": "4.21",
  "found": true,
  "development_start": "2025-09-02T00:00:00Z",
  "previous_release": "4.20"
}

示例 2:获取已GA的发布

python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
  --release 4.17

输出:

{
  "release": "4.17",
  "found": true,
  "ga": "2024-10-01T00:00:00Z",
  "development_start": "2024-05-17T00:00:00Z",
  "previous_release": "4.16"
}

示例 3:查询不存在的发布

python3 plugins/teams/skills/get-release-dates/get_release_dates.py \
  --release 99.99

输出:

{
  "release": "99.99",
  "found": false
}

退出码:1

与其他命令的集成

此技能可与其他团队技能结合使用:

  1. 分析回归前:验证发布是否存在
  2. 时间线上下文:了解发布已开发多长时间
  3. 发布状态:确定发布是否在开发中或已GA
  4. 发布导航:查找序列中的前一个/下一个发布

备注

  • 脚本仅使用Python标准库(无外部依赖)
  • Sippy缓存API响应,因此重复调用快速
  • 发布标识符区分大小写(使用"4.21"而非"4.21.0")
  • OKD发布以"-okd"后缀(例如"4.21-okd")
  • ARO发布有特殊标识符(例如"aro-production")
  • "Presubmits"是用于拉取请求数据的特殊发布

另请参阅