# 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 聚合 * 开源统计 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0223/093529_15bacf99_36.png "screencapture-gitee-oschina-dashboard-inner-source-2020-02-23-09_34_02.png") ## 企业代码仓库类别 #### 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) 开启企业内源治理旅程。