Skip to content

Added Content API key to built-in integrations#26772

Merged
minimaluminium merged 6 commits intomainfrom
content-api-integration-BER-2416
Mar 27, 2026
Merged

Added Content API key to built-in integrations#26772
minimaluminium merged 6 commits intomainfrom
content-api-integration-BER-2416

Conversation

@minimaluminium
Copy link
Copy Markdown
Member

@minimaluminium minimaluminium commented Mar 11, 2026

ref https://linear.app/ghost/issue/BER-2416/starter-customers-cannot-obtain-a-content-api-key

  • Starter plan customers can't create custom integrations, which means they have no way to obtain their Content API key
  • Added a "Content API" card to the built-in integrations tab that opens a modal showing the Content API key and API URL
  • Follows the same modal pattern as Zapier and other built-in integrations

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 11, 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: cff79ff5-21ef-41c7-872e-b58bb9a7e030

📥 Commits

Reviewing files that changed from the base of the PR and between ee6ae1c and 55d0420.

📒 Files selected for processing (1)
  • apps/admin-x-settings/src/components/settings/advanced/integrations/content-api-modal.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/admin-x-settings/src/components/settings/advanced/integrations/content-api-modal.tsx

Walkthrough

A new Content API modal and route were added. ContentApiModal was registered in the modal registry and mapped to the integrations/contentapi modal path. The integrations list includes a built-in "Content API" item that opens this route. The modal loads the ghost-core-content integration, selects its content API key secret, displays that secret and an API URL (derived from window location and Ghost subdir), includes a link to the Ghost Content API docs, and closes by navigating back to integrations.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a Content API key option to the built-in integrations, which is the primary objective of this PR.
Description check ✅ Passed The description is directly related to the changeset, explaining the business context, the solution implemented, and the pattern followed.
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 content-api-integration-BER-2416

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.

@ErisDS
Copy link
Copy Markdown
Member

ErisDS commented Mar 11, 2026

🤖 Velo CI Failure Analysis

Classification: 🟠 SOFT FAIL

  • Workflow: CI
  • Failed Step: Run yarn nx affected -t lint --base=84ae28799fe4ee63f10b8cbaebcce42ce38b1016
  • Run: View failed run
    What failed: Lint errors in code
    Why: The failure is caused by a code issue that needs to be fixed in this PR.
    Action:
    Check the error message and fix the issue in your code.

@minimaluminium minimaluminium force-pushed the content-api-integration-BER-2416 branch from 81ce943 to 41ab644 Compare March 24, 2026 04:13
@minimaluminium minimaluminium marked this pull request as ready for review March 24, 2026 05:57
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/admin-x-settings/src/components/settings/advanced/integrations/content-api-modal.tsx`:
- Line 4: The import is using the deprecated package; update the import for the
components used in this file (Button, Icon, Modal) to come from the new design
system by replacing the existing import from '@tryghost/admin-x-design-system'
with imports from '@tryghost/shade' (or the equivalent named exports in shade),
and adjust any prop or API differences on the Button, Icon, or Modal usages in
this file (e.g., component names or prop names) so they match the
`@tryghost/shade` API (target symbols: Button, Icon, Modal in
content-api-modal.tsx).
- Line 25: The external link in content-api-modal.tsx uses the Button component
with target='_blank' but no rel attribute, which is a security/lint risk; update
the ButtonProps interface to accept a rel string (add rel?: string to the props
that currently extend HTMLProps<HTMLButtonElement>) and pass rel='noopener
noreferrer' when rendering the Button in the Content API modal, or alternatively
replace the Button usage with a native <a> anchor element that includes
target='_blank' and rel='noopener noreferrer'; modify the Button declaration
(ButtonProps / Button component) and the usage in the
integrations/content-api-modal.tsx render to ensure rel is provided for external
links.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: eb97e28c-1713-4cbd-8c42-b248dd61aa9e

📥 Commits

Reviewing files that changed from the base of the PR and between 56a3ec2 and 26857a6.

📒 Files selected for processing (4)
  • apps/admin-x-settings/src/components/providers/routing/modals.tsx
  • apps/admin-x-settings/src/components/providers/settings-router.tsx
  • apps/admin-x-settings/src/components/settings/advanced/integrations.tsx
  • apps/admin-x-settings/src/components/settings/advanced/integrations/content-api-modal.tsx

@minimaluminium minimaluminium changed the title Added content api key item to integrations Added Content API key to built-in integrations Mar 25, 2026
@minimaluminium minimaluminium enabled auto-merge (squash) March 27, 2026 01:38
@sonarqubecloud
Copy link
Copy Markdown

@minimaluminium minimaluminium merged commit c0446b0 into main Mar 27, 2026
34 checks passed
@minimaluminium minimaluminium deleted the content-api-integration-BER-2416 branch March 27, 2026 02:00
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.

3 participants