Summary
Allow snipemgr.yaml to configure multiple GCP projects and/or registry sources, enabling management of integrations across multiple environments (prod/staging) or multiple clients from a single config.
Motivation
As the integration suite matures, some users will want to:
- Run the same integrations in both a staging and production GCP project
- Source integrations from a trusted partner org's registry alongside the default
- Manage multiple clients' Snipe-IT instances from one place
Configuration
registry:
sources:
- owner: jackvaughanjr # default — official integrations
- owner: some-partner-org # explicitly trusted external source
environments:
production:
gcp_project: my-org-prod
snipeit_url: https://snipeit.example.com
staging:
gcp_project: my-org-staging
snipeit_url: https://snipeit-staging.example.com
CLI changes
snipemgr status --env production
snipemgr run github2snipe --env staging
snipemgr install github2snipe --env production
When --env is omitted, commands use the default environment (first defined, or one marked default: true).
Acceptance criteria
Implementation notes
- This is a significant config schema change — version the config format and provide a migration path
- External registry sources should be treated with appropriate caution — document the trust model clearly
- State file needs to partition entries by environment to avoid name collisions
Summary
Allow
snipemgr.yamlto configure multiple GCP projects and/or registry sources, enabling management of integrations across multiple environments (prod/staging) or multiple clients from a single config.Motivation
As the integration suite matures, some users will want to:
Configuration
CLI changes
When
--envis omitted, commands use the default environment (first defined, or one markeddefault: true).Acceptance criteria
registry.sourcesare supported — integrations from all sources appear insnipemgr listlistoutput (e.g.[partner-org]prefix)snipemgr.yaml--env <name>flag on all commands selects the target environmentsnipemgr doctorchecks each configured environment independentlyImplementation notes