user

How Using GitHub Packages Creates Duplicative Work Across Teams

Introduction

Crista Perlton

Crista Perlton


LATEST POSTS

Choosing the Right S3 Alternatives for Artifact Storage 24th December, 2025

How File Shares for OSS Packages Create More Problems Than They Solve 11th December, 2025

Package Management

How Using GitHub Packages Creates Duplicative Work Across Teams

Posted on .

Using GitHub Packages for internal package sharing is a common choice for many teams. Since it’s already part of the GitHub ecosystem, teams adopt it naturally, without spending much time looking over other options. Each project manages its own dependencies, and publishing or consuming internal libraries is relatively straightforward. On the surface, the process seems pretty simple and convenient.  

But once you start looking at how your team actually stores and manages packages, it becomes pretty clear that GitHub Packages only covers the basics. It’s fine for hosting and versioning, but it doesn’t give you the flexibility, visibility, or control growing teams eventually need. As your organization scales, missing policies, access controls, and security checks turn into a bottleneck. This slows releases and causes duplicate work. 

These are the kind of problems that can be solved by moving to centralized package management. In this article, I’ll talk more about why GitHub Packages’ repo-scoped model breaks down at scale and how this leads to duplication and security risks across teams. I’ll also dive into how a centralized, organization-wide package management is a tried and tested solution to getting around these issues.    

GitHub Is Built for Code, Not Packages 

GitHub is great for code. It’s built around repositories as the main way to organize work. But modern software development has shifted toward being more package-focused. 70–90% of enterprise code now comes from OSS dependencies. GitHub Packages can handle hosting internal libraries, but it doesn’t really hold up when it comes to managing OSS packages at scale. On its own, it just doesn’t offer the visibility, governance, or automation needed to handle today’s complex dependency ecosystems.

GitHub Packages sticks to GitHub’s repo-as-a-boundary model, meaning there’s no central feed or organization-wide governance. Policies only apply at the repo level, and there’s no built-in support for things like upstream proxying, promotion workflows, or curated distribution. This makes it tough to manage packages across multiple teams or projects. Over time, each repo basically turns into its own little island. 

This is usually fine for smaller teams, but as your org grows, you’ll see it become more of a problem. Duplicate work multiplies, policies drift, and security blind spots grow. This will eventually lead to slower development and hidden risks across your organization.  

How This Leads to Duplication, Risk, and Developer Frustration 

If you’re managing packages in isolated repositories, you’ve probably already seen how it leads to duplication, risk, and frustration for your devs. Here’s what that looks like in practice:

⛔ Teams re-vet the same OSS packages for security and license compliance.

⛔ Internal libraries get rebuilt and republished across multiple repos.

⛔ Versioning, dependency or security policies end up inconsistent from one project to another, creating blind spots where packages go unvetted or non-compliant. 

The result? Slower development, wasted time, and unnecessary friction.

Duplication also makes governance and security an uphill battle. When every repo runs on its own, it’s tough to get a clear view of all your dependencies, and org-wide governance quickly becomes fragmented. Policies can vary from repo to repo, leaving blind spots where packages slip through unvetted or non-compliant. Then, when a vulnerability (like Log4Shell) shows up, teams have to manually track down which projects are affected. Suddenly, one issue becomes a big, reactive scramble.

Developers end up taking the hit:

👎 Manually sourcing, vetting, and managing dependencies for each repo

👎 Catching vulnerabilities late in CI/CD, leading to rework and slower delivery

👎 Struggling to find and reuse internal, pre-approved packages

👎 Performing repetitive audits and compliance checks across repos

All that extra manual work adds up, making it harder to move fast and scale efficiently.

All of this shows why managing packages repo by repo just doesn’t scale. Moving to a centralized system for package curation, governance, and distribution helps cut down duplication, keeps policies consistent, and makes life a lot easier for developers. 

How Centralized Package Management Solves Fragmentation 

The first step to fixing per-repo package management headaches is moving from repo-level to organization-wide management. Using a centralized package repository like ProGet lets you handle curation, governance, and distribution all in one place. Packages only need to be approved once, then they’re available everywhere. No more redundant scans or manual reviews across your multiple projects.

Centralized package management makes governance and security proactive instead of reactive. Unsafe or noncompliant packages get blocked before they even reach a repo, and teams only use approved, vetted packages. With org-wide policies for security, licensing, and versioning applied consistently, you get real visibility into what’s being used. This makes it way easier to respond to vulnerabilities or compliance issues. It turns your patchwork of policies and blind spots into a clear, unified system.

It also makes scaling a whole lot easier. Developers won’t waste time sourcing, vetting, or managing dependencies. Now they just pull from a trusted, searchable feed of pre-approved packages. Security issues are handled upstream, keeping CI/CD pipelines stable and cutting down on rework and delays. Audits and compliance checks become faster and more consistent, while overall governance gets stronger across the board.

When GitHub Packages Stops Being “Good Enough”

Relying on GitHub Packages at the repo level starts to show its cracks as your organization grows. Teams end up doing the same work over and over, policies drift, and security blind spots pile up. Developers get frustrated, overhead increases, and what used to feel convenient turns into something clunky, reactive, and fragmented. Before you know it, delivery slows down and risk starts creeping in.

A Centralized package management repository changes that by putting curation, governance, and distribution all in one place. Approved packages are ready to use across projects, so teams don’t waste time duplicating effort. Security and compliance stay consistent, and developers can focus on building instead of babysitting dependencies. It’s a faster, simpler, and more secure way to manage packages.

If this article rings true for your org, learn how it stacks up with our guide “Package Management at Scale”. It walks you through how to evaluate your current practices, and provides a clear roadmap for implementing a secure and scalable package management strategy across your teams.  Get your free copy now!

Or, take the next step and implement a CMPR solution in your own organization using ProGet. You can start a 30-day free trial of ProGet Basic and see how centralized package management streamlines workflows, improves compliance, and boosts developer productivity firsthand.

Crista Perlton

Crista Perlton

Navigation