CANN社区SIG组权限管理方案
【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community
介绍
CANN社区SIG成员和仓库管理需要规范管理。
CANN社区基于community代码仓库,实现CANN社区的项目、SIG、仓库、成员及其权限的统一管理。
关键角色配置
| 角色 | 字段 | 权限范围 |
|---|---|---|
| 审批者(Committer) | committers | 代码合并权限(可覆盖到文件级) |
| 分支守护者 | branch_keeper | 特定分支版本管理(打keeper_approved标签) |
sig-info.yaml文件指导说明
sig-info.yaml 文件格式
每个SIG在community仓库下CANN/sigs目录下都可以配置1个sig-info.yaml,sig-info.yaml 文件为yaml格式承载,主要包含如下一层基本元素: | 字段 | 类型 |层级| 说明 | |--|--|--|--| | name | 字符串 |一层| SIG组名称 | | description | 字符串 |一层| SIG组描述信息 | | mailing_list | 字符串 |一层| SIG组讨论邮件列表地址 | | meeting_whiteboard_url | 字符串 |一层| SIG例会纪要URL | | committers| 列表 | 一层|SIG组对应的committer名单 | | repositories| 列表 |一层| SIG组所管辖的代码仓库信息 |
其中 repositories 字段会说明SIG组所管理的组的信息,repositories列表中的每一条记录可包含如下元素: | 字段 | 类型 |层级| 说明 | |--|--|--|--| | repo| 列表|二层 | 仓库组,可以是一个仓库,也可以是一组仓库 ,可选| | committers| 列表 |二层 | 仓库组对应的committer名单 ,可选| | contributors | 列表 |二层 | 仓库组对应的contributor名单 ,可选| | branch_configs | 列表 |二层| 分支列表, 可选 | | entry_configs | 列表 |二层 | 仓库下的目录或文件配置 ,可选|
上述branch_configs 列表中的每一条记录可包含如下元素: | 字段 | 类型 | 层级|说明 | |--|--|--|--| | branch | 列表 |三层| 分支列表, 可选 | | committers| 列表 |三层| 仓库对应分支下的committer名单, 可选 | | branch_keeper| 列表 |三层| 仓库对应分支下的branch_keeper名单, 可选 | | entry_configs | 列表 |三层 | 仓库对应分支下的目录或文件配置 ,可选|
上述entry_configs 列表中的每一条记录可包含如下元素: | 字段 | 类型 | 层级|说明 | |--|--|--|--| | path | 列表 |-| 目录、文件列表或者通配符路径, 可选 | | committers| 列表 |-| 目录或者文件列表下的committer名单, 可选 |
上述committers、branch_keeper、contributors的每一条个人信息记录包含如下元素: | 字段 | 类型 | 层级|说明 | |--|--|--|--| | gitcode_id | 字符串 |-| gitcode ID, 必填 | | name | 字符串 |-| 姓名(或者网名), 可选 | | email| 字符串 |-| 个人邮箱地址, 可选 |
注意:maintainer自动拥有SIG层的committer权限,无需重复配置。
下面介绍在以下几种场景sig-info.yaml应该怎么配置
1.只有sig组的committers,sig组下各仓库不单独设置committers,branch_keeper配置是可选的
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 (ccc和ddd拥有ops-basic sig组下所有仓库的committer权限) - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA branch_configs: - branch: - master branch_keeper: #branch_keeper指仓库某个分支的版本经理角色,此角色有权限对PR评论/merge,打上keeper_approved标签 - gitcode_id: eee - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-BBB branch_configs: - branch: - master branch_keeper: #branch_keeper指仓库某个分支的版本经理角色,此角色有权限对PR评论/merge,打上keeper_approved标签 - gitcode_id: fff2.针对sig组各仓库单独设置committers
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 (ccc和ddd拥有ops-basic sig组下所有仓库的committer权限) - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA - CANN/ops-basic-BBB committers: #仓库组对应的committer名单 ,可选字段 (ggg和hhh拥有ops-basic-AAA、ops-basic-BBB仓库的committer权限) - gitcode_id: ggg - gitcode_id: hhh - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-CCC - CANN/ops-basic-DDD committers: #仓库组对应的committer名单 ,可选字段 (kkk和lll拥有ops-basic-CCC、ops-basic-DDD仓库的committer权限) - gitcode_id: kkk - gitcode_id: lll3.针对sig组各仓库单独设置committers,并且针对仓库所有分支设置某个目录或者文件的committers
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA - CANN/ops-basic-BBB committers: #仓库组对应的committer名单 ,可选字段 (ggg和hhh拥有ops-basic-AAA、ops-basic-BBB仓库下除了cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: ggg - gitcode_id: hhh entry_configs: #(repo)entry_configs字段会说明仓库组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - siginfo.yaml - "*/*/op_graph/*_proto.h" #此处只支持"*"通配符,并且path是通配符路径时必须使用双引号,否则会导致解析sig-info失败 - "*/*/op_api/*.h" committers: #entry组对应的committer名单 ,可选字段 (yyy和zzz拥有ops-basic-AAA、ops-basic-BBB仓库下cmake/figures目录、siginfo.yaml文件、*/*/op_graph/*_proto.h和*/*/op_api/*.h的committer权限) - gitcode_id: yyy - gitcode_id: zzz - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - debug/validate - setup.py committers: #entry组对应的committer名单 ,可选字段 (uio和asd拥有ops-basic-AAA、ops-basic-BBB仓库下debug/validate目录和setup.py文件的committer权限) - gitcode_id: uio - gitcode_id: asd4.针对sig组各仓库单独设置committers,并且针对仓库某些分支设置committers
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA - CANN/ops-basic-BBB committers: #仓库组对应的committer名单 ,可选字段 (ggg和hhh拥有ops-basic-AAA、ops-basic-BBB仓库的committer权限) - gitcode_id: ggg - gitcode_id: hhh branch_configs: #branch_configs 字段会说明仓库组所管理的分支组的信息 - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - master - br_release committers: #分支组对应的committer名单 ,可选字段 (kkk和lll拥有ops-basic-AAA、ops-basic-BBB仓库master、br_release分支的committer权限) - gitcode_id: kkk - gitcode_id: lll branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: ooo - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - develop - feature committers: #分支组对应的committer名单 ,可选字段 (zzz和xxx拥有ops-basic-AAA、ops-basic-BBB仓库develop、feature分支的committer权限) - gitcode_id: zzz - gitcode_id: xxx branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: qqq5.针对sig组各仓库单独设置committers,仓库某些分支设置committers,并且在这些分支下设置某个目录或者文件的committers
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA - CANN/ops-basic-BBB committers: #仓库组对应的committer名单 ,可选字段 - gitcode_id: ggg - gitcode_id: hhh branch_configs: #branch_configs 字段会说明仓库组所管理的分支组的信息 - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - master - br_release committers: #分支组对应的committer名单 ,可选字段 - gitcode_id: kkk - gitcode_id: LLL branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: ooo entry_configs: #(branch)entry_configs字段会说明分支组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - siginfo.yaml committers: #entry组对应的committer名单 ,可选字段 (qqq和rrr拥有ops-basic-AAA、ops-basic-BBB仓库master和br_release分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: qqq - gitcode_id: rrr - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - debug/validate - setup.py committers: #entry组对应的committer名单 ,可选字段 (uuu和vvv拥有ops-basic-AAA、ops-basic-BBB仓库master和br_release分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: uuu - gitcode_id: vvv - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - develop - feature committers: #分支组对应的committer名单 ,可选字段 - gitcode_id: kkk - gitcode_id: LLL branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: ooo entry_configs: #(branch)entry_configs字段会说明分支组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - siginfo.yaml committers: #entry组对应的committer名单 ,可选字段 (qqq和rrr拥有ops-basic-AAA、ops-basic-BBB仓库develop和feature分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: qqq - gitcode_id: rrr - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - debug/validate - setup.py committers: #entry组对应的committer名单 ,可选字段 (uuu和vvv拥有ops-basic-AAA、ops-basic-BBB仓库develop和feature分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: uuu - gitcode_id: vvvsig-info.yaml 完整样例:
name: ops-basic #SIG组名称 description: This is a sample sig. #SIG组描述信息 mailing_list: ops-basic@cann.osinfra.cn #SIG组讨论邮件列表地址 meeting_whiteboard_url: https://etherpad-cann.meeting.osinfra.cn/p/sig-ops-basic #SIG例会纪要URL committers: #SIG组所有committer名单 - gitcode_id: ccc - gitcode_id: ddd repositories: #repositories 字段会说明SIG组所管理的仓库组的信息 - repo: #仓库组,可以是一个仓库,也可以是一组仓库 ,可选字段 - CANN/ops-basic-AAA - CANN/ops-basic-BBB committers: #仓库组对应的committer名单 ,可选字段 - gitcode_id: ggg - gitcode_id: hhh entry_configs: #(repo)entry_configs字段会说明仓库组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - cmake/utils committers: #entry组对应的committer名单 ,可选字段 - gitcode_id: yyy - gitcode_id: zzz - path: - siginfo.yaml - cmake/utils/setup.py committers: - gitcode_id: uio - gitcode_id: asd branch_configs: #branch_configs 字段会说明仓库组所管理的分支组的信息 - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - master - br_release committers: #分支组对应的committer名单 ,可选字段 - gitcode_id: kkk - gitcode_id: LLL branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: ooo - gitcode_id: ppp entry_configs: #(branch)entry_configs字段会说明分支组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - cmake/utils committers: #entry组对应的committer名单 ,可选字段 - gitcode_id: qqq - gitcode_id: rrr - path: - siginfo.yaml - cmake/utils/setup.py committers: - gitcode_id: uuu - gitcode_id: vvv - branch: #分支组,可以是一个分支,也可以是一组分支,可选字段 - develop - feature committers: #分支组对应的committer名单 ,可选字段 - gitcode_id: kkk - gitcode_id: LLL branch_keeper: #分支组对应的branch_keeper名单 ,可选字段 - gitcode_id: ooo entry_configs: #(branch)entry_configs字段会说明分支组所管理的entry组的信息 - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - cmake/figures - siginfo.yaml committers: #entry组对应的committer名单 ,可选字段 (qqq和rrr拥有ops-basic-AAA、ops-basic-BBB仓库develop和feature分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: qqq - gitcode_id: rrr - path: #entry组,可以是一个目录或者完整的文件路径或者某类文件的通配符路径,也可以是一组目录或者完整的文件路径或者某类文件的通配符路径,可选字段 - debug/validate - setup.py committers: #entry组对应的committer名单 ,可选字段 (uuu和vvv拥有ops-basic-AAA、ops-basic-BBB仓库develop和feature分支下cmake/figures目录和siginfo.yaml文件的committer权限) - gitcode_id: uuu - gitcode_id: vvv【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考