使用 GitLab 协助 OSPO 快速构建 GGI Dashboard

前言

成立 OSPO(开源办公室)旨在推动企业参与开源社区的活动,包括贡献代码、发布项目、参与治理等。OSPO 可以帮助企业提高开源技术的利用率,增强创新能力,建立良好的品牌形象和合作关系。OSPO 的主要职责有:制定开源战略、管理开源项目、培训和指导员工、维护社区关系、遵守法律和规范等。目前,国内外许多知名企业都设立了 OSPO,例如腾讯、阿里巴巴、华为、微软等。

GitLab 作为开源的软件开发平台,当然也支持企业建立和运营自己的开源项目办公室(OSPO),以推广开源文化和协作。OSPO 是一个专门负责管理和支持企业内外的开源活动的组织,可以帮助企业提高创新能力、降低风险、增加影响力。

为了庆祝 GGI Handbook v1.1 的发布,帮助更多的企业建立和发展自己的 OSPO,OW2 发布了 MyGGI project[1],这是一个基于 GitLab 的可部署实例,包含了一套完整的方法论和最佳实践,指导企业如何从零开始创建、运行和优化自己的 OSPO。MyGGI project 还提供了一些实用的工具和模板,例如 OSPO 成熟度模型、OSPO 策略框架、OSPO 指标仪表盘等。

MyGGI project 是一个开放和协作的项目,欢迎任何对 OSPO 感兴趣或有经验的人参与贡献。你可以在 GitLab[2] 上找到 MyGGI project[3]My GGI Board[4] 的项目页面,并通过提交 Issue 或 Merge Qequest 来提出建议或改进。你也可以加入 OSPO Alliance[5] 的社区,与其他 OSPO 从业者交流经验和想法。

GGI Handbook

GGI Handbook 是一本指导组织实施好的治理倡议(Good Governance Initiative)的手册。Good Governance Initiative 是一项旨在提高组织治理水平和透明度的计划,由 OSPO Alliance[6] 发起。该手册提供了一套标准化的流程和工具,帮助组织评估自身的治理状况,制定改进措施,并分享最佳实践。该手册于2021年10月9日首次发布,于2022年11月8日更新了 v1.1[7] 版本。

GGI Handbook 根据一个组织可能寻求通过开源完成的各种目标定义了 25 项活动或最佳实践。活动包括 开源技能和资源管理软件依赖性管理上游优先积极参与开源项目 等建议。这些活动中的每一项都有相应的描述和理由,Handbook 还提供了成功实施这些活动需要的资源、工具和提示。

这些活动都是通用的,必须根据组织的实际情况进行灵活调整。GGI Handbook 还提供了记分卡,记分卡可以帮你评估你的组织在各种开源最佳实践中的参与情况与进展。

在将 GGI Handbook 应用与你的组织时,你需要:

  1. 评估 Handbook 中提出的与 Open Source 有关的活动,并删除或修改那些不适合你实际情况的活动(也许有些活动需要进行一些调整,以便与你的领域更加相关,而其他一些活动则可能被抛弃)
  2. 识别那些最有利于实现你的组织参与开源的目标的活动
  3. 为这些活动中的一小部分构建一个类似敏捷的迭代过程,以冲刺的形式进行,用记分卡跟踪你的进展,并根据你的当地环境、团队文化和可用资源调整活动
  4. 在每个迭代结束时,回顾你的团队已经完成的活动,选择一个新的改进范围,并重复这个过程

My GGI Board[8] 项目提供了一个开箱即用的 GGI Dashboard,下面我们就花一点时间,在 GitLab 上部署它。

快速开始

My GGI Board 项目的 README 中详细地说明了如何快速开始,等不及的朋友可以直接查看该项目的说明。

GitLab 实例要求开启 Pipelines 和 Pages 服务,在 gitlab.com 上可以免费尝试。

导入项目

直接在你的 GitLab 实例中创建一个新项目,选择 Import project -> From repository by URL,填入 My GGI Board 项目地址 https://gitlab.ow2.org/ggi/my-ggi-board.git(如果网络缓慢,你也可以导入极狐 Mirror 的项目地址 https://jihulab.com/ospo/my-ggi-board.git,这个 Mirror 是实时更新的),配置完成后点击 Create project 即可。

创建 Access Tokens

接下来需要为后续的自动化操作配置一个 Access Tokens。这里推荐 Project Settings -> Access Tokens 来创建 Access Tokens,但由于该功能属于 GitLab 专业版,如果你的 GitLab 实例为社区版,则可以使用 Personal Access Tokens 代替,使用效果不变。

选择 Maintainer 角色并勾选 api

Access Tokens

创建 Access Tokens 后,请将其复制到安全的地方,一旦关闭这个页面您将永远无法再看到它

之后将生成的 Access Tokens 添加入 Project Settings -> CI/CD -> Variables 中,Key 的名称为 GGI_GITLAB_TOKEN

CI/CD Variables

运行 Pipeline

现在所有的准备工作就都结束了,接下来 CI/CD -> Pipelines -> Run pipeline 运行 CI/CD,完成 My GGI Board 的初始化配置。

Pipeline

Welcome to your GGI Dashboard

Pipeline 运行成功后,你的 GGI Board 就已经准备就绪了!

Issues Boards

Issues -> Boards 可以看到全部 25 个创建好的活动,所有的活动都使用 Labels 做好了分类,点击进入可以看到更详细的说明。

Boards

你可以根据这些说明以及实际情况,灵活的调整所有的活动,修改和删除那些和你组织的实际情况不符的活动。

Details

Dashboard

所有的这些活动也会以网页的形式托管在 GitLab Pages 上,这个 Dashboard 会在每天晚上根据 Issues Boards 自动生成相关活动的运行情况并更新网站,如果您想增加或减少自动更新的频率,可以在 CI/CD -> Scheduled 中进行调整。

Activities page

这个页面是自动部署的,地址你可以在 Project description 中找到,比如我部署的 Dashboard 地址就是:http://guoxudong.io.gitlab.io/my-ggi-board

Project description

随着项目 Issues 的更新,您的 OSPO Dashboard 网站也会定期自动更新以反映活动、任务和总体进度的当前状态。例如,一段时间后,仪表板可能如下所示:

Dashboard

结语

希望这个项目能帮助到正着手建立开源办公室(OSPO)的你,希望可以有越来越多的组织建立和运营自己的 OSPO,共同推动开源文化和开源协作的发展。

Demo 地址:

  • Project: https://gitlab.com/guoxudong.io/my-ggi-board
  • Dashboard: https://guoxudong.io.gitlab.io/my-ggi-board

参考资料

[1]

MyGGI project: https://gitlab.ow2.org/ggi/my-ggi-board

[2]

GitLab: https://gitlab.ow2.org/

[3]

MyGGI project: https://gitlab.ow2.org/ggi/ggi

[4]

My GGI Board: https://gitlab.ow2.org/ggi/my-ggi-board

[5]

OSPO Alliance: https://ospo.zone/

[6]

OSPO Alliance: https://ospo.zone/

[7]

v1.1: https://ospo.zone/docs/ggi_handbook_v1.1.pdf

[8]

My GGI Board: https://gitlab.ow2.org/ggi/my-ggi-board

- END -