From cae4c8b54489742f6c8fed8811573fb18164eb95 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 6 Aug 2026 10:21:21 +0000
Subject: [PATCH 1/5] feat(compile): add supply-chain.packages shared runtime
feed
Co-authored-by: jamesadevine <4742697+jamesadevine@users.noreply.github.com>
---
src/compile/extensions/mod.rs | 25 ++-
src/compile/types.rs | 333 ++++++++++++++++++++++++++++++-
src/runtimes/dotnet/extension.rs | 31 ++-
src/runtimes/node/extension.rs | 35 +++-
src/runtimes/python/extension.rs | 29 ++-
src/secure.rs | 18 ++
src/validate.rs | 11 +
7 files changed, 461 insertions(+), 21 deletions(-)
diff --git a/src/compile/extensions/mod.rs b/src/compile/extensions/mod.rs
index 534835b2b..bb0a79d1a 100644
--- a/src/compile/extensions/mod.rs
+++ b/src/compile/extensions/mod.rs
@@ -20,7 +20,7 @@ use std::collections::BTreeMap;
use std::fmt;
use std::str::FromStr;
-use super::types::FrontMatter;
+use super::types::{FrontMatter, PackageEcosystem};
// ──────────────────────────────────────────────────────────────────────
// MCPG types (used by both the trait and standalone compiler)
@@ -175,6 +175,29 @@ impl<'a> CompileContext<'a> {
})
}
+ /// Resolve the shared `supply-chain.packages` feed endpoint for
+ /// `ecosystem`, if one is configured and the ecosystem opts in.
+ ///
+ /// Returns `Ok(None)` when no `supply-chain.packages` block is present or
+ /// the ecosystem is switched off; returns `Err` when a feed is configured
+ /// but no organization can be determined (see
+ /// [`PackageFeedConfig::url_for`](crate::compile::types::PackageFeedConfig::url_for)).
+ pub fn package_feed_url(&self, ecosystem: PackageEcosystem) -> Result