MCPcopy Index your code
hub / github.com/github/spec-kit / write_integration_json

Function write_integration_json

src/specify_cli/integration_state.py:218–252  ·  view source on GitHub ↗

Write ``.specify/integration.json`` with legacy-compatible state.

(
    project_root: Path,
    *,
    version: str,
    integration_key: str | None,
    installed_integrations: list[str] | None = None,
    settings: dict[str, dict[str, Any]] | None = None,
)

Source from the content-addressed store, hash-verified

216
217
218def write_integration_json(
219 project_root: Path,
220 *,
221 version: str,
222 integration_key: str | None,
223 installed_integrations: list[str] | None = None,
224 settings: dict[str, dict[str, Any]] | None = None,
225) -> None:
226 """Write ``.specify/integration.json`` with legacy-compatible state."""
227 dest = project_root / INTEGRATION_JSON
228 dest.parent.mkdir(parents=True, exist_ok=True)
229
230 integration_key = clean_integration_key(integration_key)
231 installed = dedupe_integration_keys(installed_integrations or [])
232 if integration_key and integration_key not in installed:
233 installed.insert(0, integration_key)
234 if not integration_key and installed:
235 integration_key = installed[0]
236
237 normalized_settings = normalize_integration_settings(settings or {})
238 normalized_settings = {
239 key: normalized_settings[key] for key in installed if key in normalized_settings
240 }
241
242 data: dict[str, Any] = {
243 "version": version,
244 "integration_state_schema": INTEGRATION_STATE_SCHEMA,
245 "installed_integrations": installed,
246 "integration_settings": normalized_settings,
247 }
248 if integration_key:
249 data["integration"] = integration_key
250 data["default_integration"] = integration_key
251
252 dest.write_text(json.dumps(data, indent=2) + "\n", encoding="utf-8")

Calls 3

clean_integration_keyFunction · 0.85
dedupe_integration_keysFunction · 0.85