GitHub Blog

GitHub如何维护开源依赖的合规性

GitHub的开源项目办公室使用新的许可证合规功能,通过将许可证检查集成到拉取请求中来管理数千个依赖项。他们从内部工具迁移,设置策略和例外。该功能帮助开发者做出明智的依赖选择,防止昂贵的重写和法律风险。它通过针对仓库的规则集运行,有评估和活动模式。例外请求由政策团队审查,并提供紧急覆盖机制。

状态已摘要
抓取快照1
AI 输出2
开放问题0

已验证摘要

英文摘要

How GitHub maintains compliance for open source dependencies

GitHub's Open Source Program Office (OSPO) uses the new License Compliance feature to manage thousands of dependencies by integrating license checks into pull requests. Migrating from internal tools, they set policies and exceptions. The feature helps developers make informed dependency choices, preventing costly rewrites and legal risks. It operates via rulesets targeting repositories, with evaluation and active modes. Exception requests are reviewed by a policy team, and emergency overrides are available.

  • GitHub uses its License Compliance feature to review open source licenses on pull requests.
  • The OSPO migrated from internal tools to this new feature as early adopters.
  • License checks are enabled via rulesets targeting repositories with custom properties.
  • Developers can raise exception requests for permissible licenses or packages.
  • The policy team reviews requests and can add enterprise-level or repository-level exceptions.
  • Emergency 'break glass' overrides are available for critical situations.
  • The goal is to prevent costly rewrites and legal problems while empowering developers.

中文摘要

GitHub如何维护开源依赖的合规性

GitHub的开源项目办公室使用新的许可证合规功能,通过将许可证检查集成到拉取请求中来管理数千个依赖项。他们从内部工具迁移,设置策略和例外。该功能帮助开发者做出明智的依赖选择,防止昂贵的重写和法律风险。它通过针对仓库的规则集运行,有评估和活动模式。例外请求由政策团队审查,并提供紧急覆盖机制。

  • GitHub使用自己的许可证合规功能在拉取请求中审查开源许可证。
  • 开源项目办公室作为早期采用者从内部工具迁移到该新功能。
  • 通过规则集启用许可证检查,针对具有自定义属性的仓库。
  • 开发者可以针对允许的许可证或包提出例外请求。
  • 政策团队审查请求并可以添加企业级或仓库级例外。
  • 紧急情况下可使用“紧急覆盖”机制。
  • 目标是防止昂贵的重写和法律问题,同时赋能开发者。

open source / license compliance / GitHub / OSPO / dependency management / rulesets / supply chain security

完整文章

Jeff Luszcz & Eric Sorenson

June 30, 2026|

7 minutes

Share:Every day, GitHub engineers introduce new dependencies into the GitHub platform, internal applications, and open source projects. GitHub is not just the home of open source; it is powered by open source! And an important part of using open source responsibly is respecting the licenses that govern the projects you depend on.At GitHub, we are committed to upholding our obligations to the open source community and to the dependencies we use. Here’s how our Open Source Program Office (OSPO) uses the new GitHub License Compliance feature to manage thousands of dependencies.Managing the open source license compliance processNearly all software carries some kind of license agreement. The license gives you permission to use a project, provided you comply with its obligations. Those obligations may be as simple as giving credit to the original author in your documentation, or they may require you to distribute all your source code when shipping your program. In some cases, licenses may also restrict certain activities or categories of use.Your organization likely has its own policies about acceptable licenses based on your business model, software ecosystem, and distribution strategy. For example, suppose your organization sells a commercial, closed source binary application. You may want to prevent dependencies that would require you to open source your proprietary code.Or, you may have a project that you plan to release as an open source package. In this case, you may want to avoid including dependencies governed by commercial or incompatible open source licenses.If you can’t comply with the obligations required in either scenario, you should avoid the dependency to prevent legal or operational risks. It may require engineering effort to remove these licenses after the fact. For enterprise software, the business risk of noncompliance is huge because it can lead to costly litigation and reputational damage.Traditionally, license reviews have been performed manually or with third-party software. But now, GitHub has introduced a license compliance feature for GitHub Advanced Security customers, enabling you to review new dependencies directly on pull requests. This review helps ensure that the licenses for those dependencies’ comply with your policy, while also giving you the flexibility to expand your policy to allow new licenses or individual projects.Two months ago, GitHub’s OSPO migrated from internal-only tools that we’d built to manage compliance onto the new feature. As early adopters, we gave the development team quick feedback and helped ensure the feature would clear the bar for large, fast-moving enterprises with complex compliance requirements.Setting up for policy successBecause GitHub had built internal license compliance tools prior to the introduction of the product, we had an existing list of acceptable licenses to use as our initial policy. You’ll likely find that many dependencies use common permissive licenses such as MIT, Apache 2.0, and BSD-3-Clause, which are a good starting list to seed your policy. We initially rolled the feature out using the “Evaluate” mode on an organization-wide ruleset, which generated annotations in pull requests without blocking merges, so we were able to get developers accustomed to the new workflow without impeding their productivity. Running the old and new tools in parallel also let us see if their behavior diverged. After about a month of this mode of operation, we got to a state where the alerts were mainly on packages with unusual, missing, or explicitly disallowed licenses.How GitHub license compliance worksUnder the hood, license compliance checks are enabled via rulesets. We target repositories via a custom property, where the value of the property determines whether license checks are enabled in “Active” or “Evaluate” mode. In repositories that are targeted by a ruleset, pull requests that modify a project’s dependencies trigger a scan that looks up the licenses used by each of the new dependencies. If the new dependencies’ licenses are already permitted, or there are package-specific exceptions, the checks pass. If there are failures, either in the direct or transitive dependencies, the tool comments on the pull request with alerts for each problematic package.The developer then reviews the alerts. If they decide the dependency is unacceptable, they can update their code or close the pull request to remove it. If they believe the license or package should be allowed, they can raise an exception request which will notify a specific team in the organization who can decide whether and how to amend the policy.A day in the life of the license policy teamGitHub’s license policy team consists of OSPO members and engineers with expertise in license reviews and supply chain analysis. Since we are a worldwide company, our policy review team has members across time zones to review alerts in a timely manner. We are in the process of formalizing an SLA for reviewing license requests, but in practice it’s rarely more than a couple of hours before we can triage an incoming request.Team members receive email notifications of new review requests and can also access a dashboard to see the backlog of pending requests.When approving a request, we have two decision points: first, whether to permit the license or the package. Then, decide what scope – enterprise or repository – to use. If it’s a safe license that simply hasn’t shown up before, we’ll add it at the enterprise level and thus allow dependencies with that license anywhere at GitHub. Some packages carry a commercial license which can’t be permitted everywhere but should be allowed in the repository owned by a team which has paid for the software, so those policy amendments get added at the repository level. Package exceptions are useful for internal software which usually doesn’t have license data associated with it. Helpfully, the tool supports wildcard matches for package exceptions. For example, we’ve permitted everything in the @github-ui/* React namespace, so we don’t need to approve those packages one by one.Making it easy for developersTo support this process, we’ve established procedures about contacting the GitHub OSPO, and how to use an emergency “break glass” override. These situations should be rare, but a clear emergency override process is essential for critically time-sensitive pull requests. As we mentioned above, the license policy enforcement happens via ruleset, and the ruleset condition keys off a custom property. So toggling the value of the property can temporarily turn off enforcement if there’s a critical fix that’s blocked by a license alert. So far, we’ve only needed to use this once, but it was very helpful to have the option.We’ve also provided internal documentation and training to help developers understand the importance of license compliance. Ultimately, it’s everyone’s job to help ensure compliance and manage risk and it’s our job to make that as easy as possible.Wrapping upLicense compliance is a critical part of managing our software supply chain. By helping developers make informed dependency choices aligned with GitHub’s license policy we prevent costly rewrites and potential legal problems. We’ve been enthusiastically using and providing feedback on the new GitHub License Compliance feature for several months. Now that it’s in public preview, we are excited to see more companies adopt it and hope our experience provides some guidance if you’re just getting started.GitHub Enterprise Cloud customers can use the License Compliance feature across repositories which have an active GHAS Code Security license. For more information, see About open source license compliance .Tags:

open source

open source license complianceWritten byJeff helps run GitHub’s Open Source Programs Office, focused on open source license compliance and software supply chain integrity. Before GitHub, he was Director of Open Source at PEAK6 and founder/CTO of Palamida, one of the first software composition analysis companies. Since 2004, Jeff has helped hundreds of software organizations use open source effectively while meeting license obligations.Eric is a product manager at GitHub, focused on supply chain security. He's been working on open source at scale for a couple of decades, first as an SRE and more recently as a PM. For a thrilling conversation, ask him about Software Bill of Materials data formats, SPDX license expressions, or transitive package dependencies! Outside of tech, Eric does live audio and lighting for heavy metal concerts and enjoys getting muddy on his gravel bike.Related postsGit

Highlights from Git 2.55The open source Git project just released Git 2.55. Here is GitHub’s look at some of the most interesting features and changes introduced since last time.Open Source

GitHub and UNDP team up to advance development priorities in Ghana with open sourceGitHub joined the United Nations Development Programme in Ghana to explore how open source governance can support one of West Africa’s most ambitious digital reform efforts.Open Source

From pledge to practice: Building a more inclusive open source ecosystemLearn about the progress we’ve made toward our accessibility goals and how you can help make open source more inclusive.We do newsletters, tooDiscover tips, technical guides, and best practices in our biweekly newsletter just for devs.Your email address

抓取快照

用于解析和审计的抓取证据。

200 · text/html; charset=UTF-8

2026/07/01 08:00

86caa532857a2896046980e20bf7199a9251bf860f0123bd56029b506f979a9f

AI 输出

带验证状态的结构化模型输出。

article.summarize

deepseek-v4-flash · 有效

{"tags":["open source","license compliance","GitHub","OSPO","dependency management","rulesets","supply chain security"],"titleEn":"How GitHub maintains compliance for open source dependencies","titleZh":"GitHub如何维护开源依赖的合规性","summaryEn":"GitHub's Open Source Program Office (OSPO) ...
article.classify

deepseek-v4-flash · 有效

{"relevant":true,"confidence":0.95,"primaryTopic":"product-updates","secondaryTopics":["software-engineering"]}

质量问题与日报引用

开放或已解决的问题,以及文章出现在每日日报中的记录。

日报

Signal Hub 2026-07-01

GitHub的许可证合规功能简化了依赖管理并降低了开源项目的法律风险,直接惠及开源项目办公室团队。 (score: 0.85)

排序 22026/07/01 00:00草稿