# Gitee 企业内源最佳实践
**Repository Path**: InnerSource/gitee-innersource-best-practices
## Basic Information
- **Project Name**: Gitee 企业内源最佳实践
- **Description**: 基于 Gitee 企业版的企业内部开源最佳实践方法
- **Primary Language**: Unknown
- **License**: CC-BY-SA-4.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 3
- **Created**: 2020-02-19
- **Last Updated**: 2025-05-29
## Categories & Tags
**Categories**: ebooks-manual
**Tags**: None
## README
## 什么是内源
内源(InnerSource)是使用开源软件开发最佳实践并在组织内建立类似开源的文化。 该组织可能仍会开发专有软件,但会在内部开放其开发。 这个术语是蒂姆·奥莱利(Tim O'Reilly)在2000年创造的。
## 企业内源的好处
* 加速知识共享,提升人员能力
* 提高软件复用,提高软件水平
* 打破部门墙,促进内部合作
* 激励创新
## Gitee 的内源治理
Gitee 企业版提供企业内部开源的治理能力,本文将详细介绍如何利用 Gitee 企业版来管理企业内部的开源项目。
下图是 Gitee 企业版的内源管理界面截图:
包含几大模块:
* 企业开源仓库
* 企业内源仓库
* 开源 Issue 聚合
* 开源 PR 聚合
* 开源统计

## 企业代码仓库类别
#### 1. 开源仓库
企业开源仓库跟常规意义上的开源项目没有任何区别,任何人都可以访问到此类仓库的代码,并依据常规的开源参与流程进行贡献。
#### 2. 内源仓库
内源仓库是在企业范围内开源的仓库,此类项目允许企业内所有成员访问。但是可以预计开源软件的方法对项目进行贡献。
#### 3. 专有仓库
专有仓库(内部仓库,或者私有仓库)是企业需要对权限进行严格管控的项目仓库,一般是企业的核心业务产品。此类仓库只有被授权的成员才能访问。
## 企业管理内部开源的具体步骤
假设A企业开通的 Gitee 企业版的工作台地址是 https://gitee.com/corpA 。
为了更好的管理和治理企业的开源,建议采用以下步骤:
#### 一. 为企业开源项目创建专属的命名空间
为了区分专有仓库和开源仓库,请在企业内创建一个独立的团队(例如 A公司开源团队,对应地址是 https://gitee.com/corp-os),如下图所示:
注意团队的属性也可以暂时不公开,后续根据实际的情况公开,公开后的团队页面,企业外的成员只能看到开源的信息,无法看到内源的信息。
#### 二. 在专属的开源团队中添加仓库
进入企业的内源频道,点击按钮“新建内源仓库”,选择仓库的归属为“A公司开源团队”,输入项目基本信息,选择“内部开源”。另外建议选择一个合适的开源许可证,因为一旦项目正式对外开源,许可证是很重要的信息。你也可以后期再利用 Gitee 的许可证向导来完善此信息。
#### 三. 企业内成员开始贡献代码
首先明确几个角色,分别是:
* Moderator 管理者:开源或者内源仓库的管理者,有权限添加 Committer、审核 PR、管理 issue 等
* Committer 开发者:仓库的成员,可以直接提交代码,审核 Contributor 的代码,处理 Issue 等
* Contributor 贡献者:贡献者可以通过 Fork + Pull Request 的方式来贡献代码
Moderator 和 Committer 应该做好分工,各司其职。
企业内源仓库对所有企业成员是开放的,成员要为内源仓库贡献代码的几种途径:
1. 将指定企业成员添加到内源仓库成员中,成为内源仓库的 Committer,仓库成员也就是 Committer 提交代码无需审核直接入库
2. 任何企业内成员都可以直接 Fork 内源仓库,然后通过给主仓库提交 Pull Request(PR) 来实现参与贡献,PR 需要仓库成员(Committer)审核才能入库,一旦所提交的 PR 被合并,该开发者即成为内源仓库的贡献者(Contributor)。经常贡献代码的贡献者建议可以添加到仓库成员成为 Committer 。
3. 企业成员也可以给内源仓库提交 Issue 来报告问题、提需求等贡献
#### 四. 审核贡献者提交的代码
当企业成员通过 PR 提交贡献的代码之后,仓库的 Moderator 和 Committer 有权限来审核代码,并决定是否合并到主仓库,或者拒绝合并。拒绝合并请提供拒绝的理由。建议 PR 审核者在与贡献者出现分歧的时候,不要生硬的拒绝,应该通过 PR 评论进行沟通,并根据最终的沟通结果来决定 PR 的合并还是拒绝。
#### 五. 将内源仓库正式对外开源,并接受社区的贡献
建议企业所有的仓库在对外开源之前,必须先在内部开源(也就是我们所说的内源),这样可以确保多数的问题在内部得以发现并解决后才对外开放。对外开放之前还需要进行各方面的合规检查,合规检查清单包含但不止于以下列表:
* 是否存在企业不允许公开的专有软件相关内容
* 是否使用恰当的开源许可证(根目录下的 LICENSE 是许可证的文本副本),可使用 Gitee 提供的开源许可证向导工具进行选择。
* 检查是否有存在与引用的第三方软件和包的许可证冲突的情况
* 对引入第三方开源软件包的修改是否已记录,并作为更改日志的一部分包含在开源发行说明中
#### 六. 开源项目的统计数据
Gitee 企业版的内源治理同时提供了企业在开源和内源方面的统计信息,包括这些开源和内源仓库收获的 Star、贡献的代码行、Issue 等信息,方便跟踪企业开源和内源的使用情况。同时还提供了开源贡献排行榜。
## 总结
前面我们已经提到了企业内源(内部开源)的好处。企业内部开源需要有一个集中的工具平台来支持(Gitee 企业版就是一个简单方便的支持平台),企业内源更需要公司从管理上进行支持,通过制度和文化的建设来推动内源的发展,让其真正的发挥出效果。例如不断的给工程师和管理者们进行各种开源的布道;设定各种政策和流程来激励贡献者;不断树立各种标杆项目,标杆贡献者等等。
Gitee 企业版也将不断的完善对企业内源治理的支持,不断的输出内源方法论,来和我们的企业们一起成长。
现在就前往 [https://gitee.com/enterprises](https://gitee.com/enterprises) 开启企业内源治理旅程。