logo
0
0
WeChat Login

CNB 微信通知插件

这是一个用于云原生构建(CNB)的微信通知插件,通过在指定仓库创建Issue来触发微信通知。插件会根据构建成功或失败状态,自动在对应的仓库中创建不同优先级的Issue。

工作原理

  1. 插件首次运行时会自动创建两个通知仓库(如果不存在):

    • {ROOT_GROUP}/build-success:用于构建成功通知
    • {ROOT_GROUP}/build-fail:用于构建失败通知
  2. 根据构建状态自动选择对应仓库并创建Issue:

    • 构建成功:在 build-success 仓库创建P3优先级Issue
    • 构建失败:在 build-fail 仓库创建P0优先级Issue
  3. CNB系统会自动将Issue通知推送到配置的微信群

参数设计

参数描述是否必填默认值
SUCCESS构建状态,"true"表示成功,"false"表示失败-
TOKENCNB API认证Token-
ROOT_GROUPCNB根组织名称-
TITLEIssue标题"CNB构建通知"

使用样例

基础用法

main:
  push:
    - stages:
        - name: 构建通知
          image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest
          settings:
            SUCCESS: "{{success}}"  # CNB内置变量
            TOKEN: "{{secrets.CNB_TOKEN}}"  # 从密钥中获取
            ROOT_GROUP: "your-organization"
            TITLE: "项目构建完成"

成功和失败分别通知

main:
  push:
    - stages:
        - name: 构建项目
          image: golang:1.21
          script:
            - go build -o app .
        
        - name: 成功通知
          when: success  # 仅在成功时执行
          image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest
          settings:
            SUCCESS: "true"
            TOKEN: "{{secrets.CNB_TOKEN}}"
            ROOT_GROUP: "Kellvian"
            TITLE: "✅ 构建成功 - {{repo.name}}"
        
        - name: 失败通知
          when: failure  # 仅在失败时执行
          image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest
          settings:
            SUCCESS: "false"
            TOKEN: "{{secrets.CNB_TOKEN}}"
            ROOT_GROUP: "Kellvian"
            TITLE: "❌ 构建失败 - {{repo.name}}"

配置说明

获取 CNB Token

  1. 登录 CNB 平台
  2. 进入个人设置 -> API Token
  3. 创建新的Token并保存
  4. 将Token添加到项目密钥中

设置微信通知

  1. 插件会自动在对应仓库创建Issue触发通知

本地测试

# 构建镜像
docker build -t docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest .

# 测试运行(构建成功)
docker run --rm \
  -e PLUGIN_SUCCESS="true" \
  -e PLUGIN_TOKEN="your-token" \
  -e PLUGIN_ROOT_GROUP="your-org" \
  -e PLUGIN_TITLE="测试通知" \
  docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest

开发和贡献

这个插件是使用Python编写的。如果您想贡献代码或报告问题,请参考CNB插件贡献指南

技术细节

  • 使用 Python 3.9
  • 通过 CNB API 创建仓库和Issue
  • 自动处理仓库已存在的情况
  • 根据构建状态设置不同的Issue优先级

About

No description, topics, or website provided.
68.00 KiB
0 forks0 stars1 branches0 TagREADMEMIT license
Language
Python72.9%
Shell21.5%
Dockerfile5.6%