Skip to content

Disabled transistor.fm integration when limited by host#27002

Merged
9larsons merged 1 commit intomainfrom
fix-transistor-host
Mar 27, 2026
Merged

Disabled transistor.fm integration when limited by host#27002
9larsons merged 1 commit intomainfrom
fix-transistor-host

Conversation

@9larsons
Copy link
Copy Markdown
Contributor

@9larsons 9larsons commented Mar 27, 2026

ref https://ghost.slack.com/archives/C0A0YQ2S53R/p1774572762467409

  • marked transistor integration as locked/disabled when limited by host; overrode related backend settings
  • updated sort behavior of integrations (disabled sorts to bottom)

Host plans may limit custom integrations via blocking webhooks. This currently happens for Zapier and was not extended to Transistor, which needs different handling given it has both externally set up webhooks + native Ghost functionality.

We now disable the Ghost-related functionality based on the host settings which is consistent with the webhook behavior.

ref https://ghost.slack.com/archives/C0A0YQ2S53R/p1774572762467409
- marked transistor integration as locked/disabled when limited by host; overrode related backend settings
- updated sort behavior of integrations
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ea1624f3-dfb8-420b-bc3f-fa687e3c06ce

📥 Commits

Reviewing files that changed from the base of the PR and between c0446b0 and c85e921.

📒 Files selected for processing (8)
  • apps/admin-x-settings/src/components/settings/advanced/integrations.tsx
  • apps/admin-x-settings/src/components/settings/advanced/integrations/transistor-modal.tsx
  • apps/admin-x-settings/test/acceptance/advanced/integrations/transistor.test.ts
  • e2e/helpers/playwright/fixture.ts
  • e2e/tests/admin/settings/integrations-host-settings.test.ts
  • ghost/core/core/server/services/settings/settings-service.js
  • ghost/core/test/unit/server/services/settings/settings-service.test.js
  • ghost/core/test/unit/shared/settings-cache.test.js

Walkthrough

This change introduces a mechanism to disable built-in integrations (specifically Zapier and Transistor) via host settings configuration. The admin interface refactors integration rendering into a data-driven pattern with conditional disable states based on hostSettings.limits.customIntegrations.disabled. When disabled, affected integrations display an "Upgrade" button instead of "Configure" and sort to the bottom of the list. Backend settings service logic merges configuration overrides to force disabled integrations to false. Tests verify the UI behavior, API responses, and settings cache calculations across acceptance, e2e, and unit test layers.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Disabled transistor.fm integration when limited by host' directly and clearly summarizes the primary change: disabling the Transistor integration based on host limitations.
Description check ✅ Passed The description is directly related to the changeset, explaining the motivation (limiting custom integrations via host settings), the changes made (marking transistor as locked/disabled, overriding backend settings, updating sort behavior), and the reasoning behind them.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-transistor-host

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
15.7% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@9larsons 9larsons enabled auto-merge (squash) March 27, 2026 13:12
@9larsons 9larsons merged commit d28725e into main Mar 27, 2026
36 of 37 checks passed
@9larsons 9larsons deleted the fix-transistor-host branch March 27, 2026 13:24
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.

1 participant