Skip to content

feat: Integration catalog — discovery, versioning, and community distribution#2130

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/add-integration-catalog
Draft

feat: Integration catalog — discovery, versioning, and community distribution#2130
Copilot wants to merge 2 commits intomainfrom
copilot/add-integration-catalog

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 8, 2026

Adds a catalog system for integrations mirroring the established extension and preset catalog patterns, enabling discovery and community-contributed integrations.

Catalog files

  • integrations/catalog.json — 27 built-in integrations metadata
  • integrations/catalog.community.json — empty community catalog starter

IntegrationCatalog class (src/specify_cli/integrations/catalog.py)

  • URL validation, catalog stack resolution (env var → project → user → defaults), per-URL caching, search with query/tag/author filters
  • IntegrationDescriptor for integration.yml validation — schema version, ID format, semver, required fields, SHA-256 hashing

CLI commands

  • specify integration list --catalog — browse merged catalog (built-in + community) with source and install status
  • specify integration upgrade [key] [--force] — diff-aware reinstall via manifest hash comparison; blocks on modified files unless --force
specify integration list --catalog          # browse full catalog
specify integration upgrade                 # upgrade current integration
specify integration upgrade --force         # overwrite modified files

Documentation

  • integrations/README.md — schema reference, CLI usage
  • integrations/CONTRIBUTING.md — checklist for adding built-in and community integrations

Tests

40 tests covering catalog entries, URL validation, active catalogs, fetch/search, descriptor validation, list --catalog, and upgrade (including modified-file blocking and --force override).

Copilot AI requested review from Copilot and removed request for Copilot April 8, 2026 20:37
…atalog class, list --catalog flag, upgrade command, integration.yml descriptor, and tests

Agent-Logs-Url: https://github.com/github/spec-kit/sessions/bbcd44e8-c69c-4735-adc1-bdf1ce109184

Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com>
Copilot AI requested review from Copilot and removed request for Copilot April 8, 2026 20:48
age = (datetime.now(timezone.utc) - cached_at).total_seconds()
if age < self.CACHE_DURATION:
return json.loads(cache_file.read_text())
except (json.JSONDecodeError, ValueError, KeyError, TypeError):
except Exception as exc:
try:
integration.teardown(project_root, new_manifest, force=True)
except Exception:
Copilot AI changed the title [WIP] Add integration catalog for built-in and community integrations feat: Integration catalog — discovery, versioning, and community distribution Apr 8, 2026
Copilot AI requested a review from mnriem April 8, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integration catalog — built-in and community integration discovery and distribution

2 participants