Documentation › Sponsor guides
Sponsor-a-repo
The standard sponsor pattern is "a company pays for Steward on their own repos." Sponsor-a-repo is the second pattern: a company pays for Steward on an Open Source Software (OSS) repo they depend on but don't own. The maintainer keeps maintaining; the sponsor pays.
This doc covers when it makes sense, what each side sees, and the failure modes worth knowing about.
The shape
Acme depends on the
widgetOSS library. Acme wants its engineers' contributions back towidgetto flow through Acme's Single Sign-On (SSO) and to count against Acme's seat allocation. Acme pays for Sponsor-a-repo onwidget;widget's maintainer is unaffected.
Two parties, two tenants, one bridge:
- The sponsor — Acme. Holds the subscription. Manages
their org's members + audit + billing on
/sponsor/*. - The maintainer —
widget's owner. Holds the repo. Ownsgovernance.pxf, approves PRs, retains every gate authority. - The sponsorship row — the bridge between them. Records who's sponsoring whom, at what tier, since when.
The two tenants never merge. The sponsor doesn't gain write access to the maintainer's repo; the maintainer doesn't gain visibility into the sponsor's org membership.
What the sponsor pays for
Three classes of capability that activate when a sponsorship is live:
- Cross-org SSO — Acme members signing in to interact with
the
widgetrepo (PR comments, governance editor, contributor reports) authenticate through Acme's OpenID Connect (OIDC) provider rather than via GitHub OAuth. Their identity is federated rather than personal. - Per-org metering — Acme members' Deep Analysis +
per-PR scorings against
widgetcount against Acme's daily credit cap, not againstwidget's. Maintainers love this because they can keep their own subscription small while sponsoring orgs absorb the cost of their members' activity. - Audit visibility — every action by an Acme member on the
widgetrepo lands in Acme's audit log (alongsidewidget's own audit feed for the maintainer). Two audit destinations, one event — fan-out at write time.
What sponsorship does not give Acme:
- No governance authority.
widget'sgovernance.pxfis the maintainer's file. Sponsors can read it; they can't amend it. - No merge authority. Acme members get the same
contributor flow as anyone else. The
widgetmaintainer still approves. - No access to the maintainer's contributor data. The
per-repo contributor list at
/app/repos/<id>/contributorsbelongs to the maintainer.
When this makes sense
Three motivating scenarios:
1. Federated identity on critical dependencies
Your engineers contribute back to a handful of OSS repos weekly. Your security team needs every contribution to flow through your SSO + leave an audit trail in your system. Sponsor-a-repo on the OSS repos closes that loop without asking the maintainer to install your IT stack.
2. Internal cost attribution
Your team's monthly Large Language Model (LLM) credit burn
shows up in your
/sponsor/usage even when the work happens on someone else's
repo. The finance side knows "we spent $X engaging upstream";
the engineering side gets the verdict + reputation gradient on
PRs they open against upstream.
3. Lightweight patronage
You want to support a maintainer financially. The repo runs on Steward; sponsoring it pays for upgraded tiers your team benefits from while sending real revenue to the maintainer (via the sponsorship payout — see "Maintainer payout" below). A neat alternative to GitHub Sponsors when the goal is "infrastructure that actually helps."
What each side sees
Sponsor side
/sponsor/orgs— every sponsorship you hold, sponsored repo- tier + monthly amount + your seat count against it.
/sponsor/members— member roster + seat-cap badge across every sponsorship you own./sponsor/usage— per-repo metering breakdown so finance can attribute spend to specific upstream dependencies./sponsor/audit— events scoped to your sponsorships; per-sponsorship filter in the scope dropdown./sponsor/billing— invoices + payment method state.
Maintainer side
- A "Sponsored by Acme Corp (Business tier)" annotation on
the repo dashboard at
/app/repos/<id>. - Aggregate sponsorship signal (count + tier) on the same page — useful for "12 companies depend on this enough to sponsor it" framing in your README or a maintainer blog post.
- Nothing about who the individual sponsor members are. Their roster is the sponsor's data, not yours.
The maintainer does not need to do anything to receive sponsorships. The first sponsor's subscription activates the flow on the repo automatically.
Maintainer payout
Sponsorships pay the maintainer (minus Steward's platform fee). Configuration lives on the maintainer's account:
- Default payout method — set on
/app/account→ Payout. - Per-repo split — for multi-maintainer repos, the split
ratio is configured on
/app/repos/<id>→ Sponsorship. Default is 100% to the listed owner. - Pause incoming sponsorships — toggle on
/app/account→ Payout. Existing subscriptions continue; new ones can't start.
The payout cycle is monthly, USD via the same payment provider that handles tier billing. Payouts post about 7 days after the close of each calendar month.
Configuration: there is none
There's no governance.pxf section for sponsor-a-repo.
This is deliberate — the model is "sponsor-side configuration
- maintainer-side opt-in (by accepting payouts)." Bringing
sponsorship into
governance.pxfwould either give the sponsor a configuration hook on the maintainer's file (a governance attack surface) or require a separate config that duplicates state.
The maintainer's only "configuration" is whether they accept payouts and what their split is. No per-sponsor settings, no per-tier hooks.
Tier matrix
The sponsorship tier ladder mirrors the standard tier ladder at Tiers + credits; the sponsor picks a tier when creating the sponsorship and pays its monthly rate.
The headline differences vs the standard pattern:
| Tier | Standard | Sponsor-a-repo |
|---|---|---|
| Repo cap | Your own repos | The sponsored repo (counts as 1 toward your covered total) |
| Seat cap | Your members | Same — your members get access via the sponsorship |
| SSO | Business only | Business only |
| Audit | Your own events | Your members' events on the sponsored repo |
A sponsor can hold multiple sponsor-a-repo sponsorships plus a standard subscription simultaneously. Each is a distinct row; each has its own monthly invoice line.
Failure modes + fail-safe
Subscription lapses (failed payment)
The sponsorship enters a grace period (the billing provider's default, typically 7 days). During grace:
- Business features stay on for the sponsor's members.
/sponsor/billingshows a banner.- The sponsor's failed-payment retry policy applies.
Post-grace, features downgrade gracefully:
- SSO sign-in falls back to GitHub OAuth.
- Metering tables empty for the sponsored repo (the data is retained; the live surface degrades).
- Retention bundle exports stop.
Nothing data-destructive — the sponsor's accumulated audit events, contributor history, etc. persist. The live-feature surface degrades; the historical record doesn't.
The maintainer keeps the platform's Free-tier features regardless of any sponsorship's state. A sponsor lapse doesn't penalise the repo.
Sponsor revokes a member
The member loses Business-tier access on the sponsored repo immediately on next sign-in. Their contribution history on the sponsored repo is preserved — that's the maintainer's data, not the sponsor's.
Operator-granted (comp) sponsorships
Steward staff can grant a sponsorship at no cost via
StaffService.GrantCompSponsorship. The row carries a
comp_source annotation distinguishing it from paid rows;
behaviour is identical at the feature level. The only
difference is on the billing surface — comp rows show $0 and
have no invoice trail.
Used for early-access partners, design partners, and sponsorship-of-record arrangements where the value exchange isn't dollar-denominated.
What this is not
- Not a way to take governance control of someone's OSS repo by paying. Maintainer retains full control.
- Not required for an OSS repo to use Steward. Repos run on the platform's Free tier indefinitely; sponsorships add Business-tier features.
- Not the only way to get an org onto Steward. An org can run a standard subscription on its own repos; sponsor-a-repo is specifically for the cross-org pattern where the buyer and the repo are different tenants.
What's next
- Tiers + credits — the tier ladder sponsor-a-repo uses.
- Org membership — the seat
- role model that applies to the sponsor's members.
- Audit log + compliance — the fan-out semantics for events on a sponsored repo.
Steward