Skip to content

Comments

Renamed files to kebab-case - core - services - part 3#25815

Merged
ibalosh merged 1 commit intomainfrom
moved-to-kebab-case-core-services-part3
Jan 8, 2026
Merged

Renamed files to kebab-case - core - services - part 3#25815
ibalosh merged 1 commit intomainfrom
moved-to-kebab-case-core-services-part3

Conversation

@ibalosh
Copy link
Contributor

@ibalosh ibalosh commented Jan 8, 2026

ref #25813

what

  • Renamed files to match to kebab-case format

note: since services contain more than 300 files to be renamed, will do this in multiple PRs

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 8, 2026

Walkthrough

This pull request renames and normalizes many internal module paths and JSDoc typedef imports from PascalCase/CamelCase to kebab-case (lowercase with hyphens) across core/server and tests. Changes are limited to require/import strings and JSDoc/type reference paths (filenames like EmailServiceemail-service, Mentionmention, etc.). No runtime logic, control flow, or exported public API signatures are altered.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • cmraible
  • 9larsons
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Renamed files to kebab-case core-services - part 3' accurately describes the main change in the PR: a file renaming effort to convert files to kebab-case format in core services.
Description check ✅ Passed The description is related to the changeset, explaining the purpose (renaming files to kebab-case format), providing context via a related PR reference, and noting the multi-part nature of the work.

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

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 802daf6 and 572ad59.

📒 Files selected for processing (106)
  • ghost/core/.eslintrc.js
  • ghost/core/core/boot.js
  • ghost/core/core/server/ghost-server.js
  • ghost/core/core/server/services/email-analytics/email-analytics-service-wrapper.js
  • ghost/core/core/server/services/email-analytics/email-analytics-service.js
  • ghost/core/core/server/services/email-service/batch-sending-service.js
  • ghost/core/core/server/services/email-service/domain-warming-service.ts
  • ghost/core/core/server/services/email-service/email-body-cache.js
  • ghost/core/core/server/services/email-service/email-controller.js
  • ghost/core/core/server/services/email-service/email-event-processor.js
  • ghost/core/core/server/services/email-service/email-event-storage.js
  • ghost/core/core/server/services/email-service/email-renderer.js
  • ghost/core/core/server/services/email-service/email-segmenter.js
  • ghost/core/core/server/services/email-service/email-service-wrapper.js
  • ghost/core/core/server/services/email-service/email-service.js
  • ghost/core/core/server/services/email-service/events/email-bounced-event.js
  • ghost/core/core/server/services/email-service/events/email-delivered-event.js
  • ghost/core/core/server/services/email-service/events/email-opened-event.js
  • ghost/core/core/server/services/email-service/events/email-temporary-bounced-event.js
  • ghost/core/core/server/services/email-service/events/email-unsubscribed-event.js
  • ghost/core/core/server/services/email-service/events/spam-complaint-event.js
  • ghost/core/core/server/services/email-service/index.js
  • ghost/core/core/server/services/email-service/mailgun-email-provider.js
  • ghost/core/core/server/services/email-service/sending-service.js
  • ghost/core/core/server/services/email-suppression-list/mailgun-email-suppression-list.js
  • ghost/core/core/server/services/lib/magic-link/magic-link.js
  • ghost/core/core/server/services/members-events/last-seen-at-updater.js
  • ghost/core/core/server/services/members/members-api/members-api.js
  • ghost/core/core/server/services/members/members-api/services/payments-service.js
  • ghost/core/core/server/services/mentions-email-report/mention-email-report-job.js
  • ghost/core/core/server/services/mentions/bookshelf-mention-repository.js
  • ghost/core/core/server/services/mentions/in-memory-mention-repository.js
  • ghost/core/core/server/services/mentions/mention-controller.js
  • ghost/core/core/server/services/mentions/mention-created-event.js
  • ghost/core/core/server/services/mentions/mention-discovery-service.js
  • ghost/core/core/server/services/mentions/mention-sending-service.js
  • ghost/core/core/server/services/mentions/mention.js
  • ghost/core/core/server/services/mentions/mentions-api.js
  • ghost/core/core/server/services/mentions/resource-service.js
  • ghost/core/core/server/services/mentions/routing-service.js
  • ghost/core/core/server/services/mentions/service.js
  • ghost/core/core/server/services/mentions/webmention-metadata.js
  • ghost/core/core/server/services/newsletters/newsletters-service.js
  • ghost/core/core/server/services/recommendations/recommendation-service-wrapper.js
  • ghost/core/core/server/services/settings/settings-bread-service.js
  • ghost/core/core/server/services/stripe/events/index.js
  • ghost/core/core/server/services/stripe/events/stripe-live-disabled-event.js
  • ghost/core/core/server/services/stripe/events/stripe-live-enabled-event.js
  • ghost/core/core/server/services/stripe/service.js
  • ghost/core/core/server/services/stripe/services/webhook/checkout-session-event-service.js
  • ghost/core/core/server/services/stripe/services/webhook/invoice-event-service.js
  • ghost/core/core/server/services/stripe/services/webhook/subscription-event-service.js
  • ghost/core/core/server/services/stripe/stripe-api.js
  • ghost/core/core/server/services/stripe/stripe-migrations.js
  • ghost/core/core/server/services/stripe/stripe-service.js
  • ghost/core/core/server/services/stripe/webhook-controller.js
  • ghost/core/core/server/services/stripe/webhook-manager.js
  • ghost/core/core/server/services/url/index.js
  • ghost/core/core/server/services/url/local-file-cache.js
  • ghost/core/core/server/services/url/queue.js
  • ghost/core/core/server/services/url/resource.js
  • ghost/core/core/server/services/url/resources.js
  • ghost/core/core/server/services/url/url-generator.js
  • ghost/core/core/server/services/url/url-service.js
  • ghost/core/core/server/services/url/urls.js
  • ghost/core/test/e2e-browser/fixtures/ghost-test.js
  • ghost/core/test/e2e-server/services/recommendation-emails.test.js
  • ghost/core/test/integration/services/q-email-addresses.test.js
  • ghost/core/test/integration/url-service.test.js
  • ghost/core/test/unit/server/services/email-service/batch-sending-service.test.js
  • ghost/core/test/unit/server/services/email-service/domain-warming-service.test.ts
  • ghost/core/test/unit/server/services/email-service/email-controller.test.js
  • ghost/core/test/unit/server/services/email-service/email-event-processor.test.js
  • ghost/core/test/unit/server/services/email-service/email-event-storage.test.js
  • ghost/core/test/unit/server/services/email-service/email-renderer.test.js
  • ghost/core/test/unit/server/services/email-service/email-segmenter.test.js
  • ghost/core/test/unit/server/services/email-service/email-service.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-bounced-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-delivered-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-opened-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-temporary-bounced-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-unsubscribed-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/spam-complaint-event.test.js
  • ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js
  • ghost/core/test/unit/server/services/email-service/sending-service.test.js
  • ghost/core/test/unit/server/services/lib/magic-link/index.test.js
  • ghost/core/test/unit/server/services/members-events/last-seen-at-updater.test.js
  • ghost/core/test/unit/server/services/mentions/in-memory-mention-repository.test.js
  • ghost/core/test/unit/server/services/mentions/mention-discovery-service.test.js
  • ghost/core/test/unit/server/services/mentions/mention-sending-service.test.js
  • ghost/core/test/unit/server/services/mentions/mention.test.js
  • ghost/core/test/unit/server/services/mentions/mentions-api.test.js
  • ghost/core/test/unit/server/services/mentions/resource-service.test.js
  • ghost/core/test/unit/server/services/mentions/routing-service.test.js
  • ghost/core/test/unit/server/services/stripe/migrations.test.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/checkout-session-event-service.test.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/invoice-event-service.test.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/subscription-event-service.test.js
  • ghost/core/test/unit/server/services/stripe/stripe-api.test.js
  • ghost/core/test/unit/server/services/stripe/webhook-controller.test.js
  • ghost/core/test/unit/server/services/url/local-file-cache.test.js
  • ghost/core/test/unit/server/services/url/queue.test.js
  • ghost/core/test/unit/server/services/url/resources.test.js
  • ghost/core/test/unit/server/services/url/url-generator.test.js
  • ghost/core/test/unit/server/services/url/url-service.test.js
  • ghost/core/test/unit/server/services/url/urls.test.js
🚧 Files skipped from review as they are similar to previous changes (48)
  • ghost/core/test/unit/server/services/mentions/mention-sending-service.test.js
  • ghost/core/test/unit/server/services/members-events/last-seen-at-updater.test.js
  • ghost/core/test/unit/server/services/email-service/email-service.test.js
  • ghost/core/test/unit/server/services/email-service/email-controller.test.js
  • ghost/core/core/server/services/mentions/mention-created-event.js
  • ghost/core/core/server/services/url/resources.js
  • ghost/core/test/e2e-browser/fixtures/ghost-test.js
  • ghost/core/core/server/services/newsletters/newsletters-service.js
  • ghost/core/test/unit/server/services/mentions/routing-service.test.js
  • ghost/core/test/unit/server/services/email-service/batch-sending-service.test.js
  • ghost/core/core/server/services/mentions/routing-service.js
  • ghost/core/.eslintrc.js
  • ghost/core/test/integration/services/q-email-addresses.test.js
  • ghost/core/test/unit/server/services/email-service/email-renderer.test.js
  • ghost/core/core/server/services/email-service/email-service-wrapper.js
  • ghost/core/core/server/services/stripe/stripe-service.js
  • ghost/core/core/server/services/email-service/mailgun-email-provider.js
  • ghost/core/test/unit/server/services/mentions/mentions-api.test.js
  • ghost/core/test/unit/server/services/stripe/stripe-api.test.js
  • ghost/core/test/unit/server/services/url/queue.test.js
  • ghost/core/core/server/services/url/url-service.js
  • ghost/core/core/server/services/members/members-api/services/payments-service.js
  • ghost/core/test/unit/server/services/email-service/sending-service.test.js
  • ghost/core/test/unit/server/services/stripe/migrations.test.js
  • ghost/core/core/server/services/mentions/resource-service.js
  • ghost/core/test/unit/server/services/email-service/email-event-storage.test.js
  • ghost/core/core/server/services/mentions/mentions-api.js
  • ghost/core/core/server/services/members-events/last-seen-at-updater.js
  • ghost/core/core/server/services/email-service/email-event-processor.js
  • ghost/core/test/unit/server/services/lib/magic-link/index.test.js
  • ghost/core/core/server/services/email-service/batch-sending-service.js
  • ghost/core/test/unit/server/services/email-service/events/email-delivered-event.test.js
  • ghost/core/test/unit/server/services/email-service/domain-warming-service.test.ts
  • ghost/core/core/server/services/email-suppression-list/mailgun-email-suppression-list.js
  • ghost/core/test/unit/server/services/mentions/in-memory-mention-repository.test.js
  • ghost/core/core/server/services/stripe/webhook-controller.js
  • ghost/core/core/server/services/mentions/in-memory-mention-repository.js
  • ghost/core/core/server/services/mentions/webmention-metadata.js
  • ghost/core/core/server/services/email-analytics/email-analytics-service.js
  • ghost/core/core/server/services/recommendations/recommendation-service-wrapper.js
  • ghost/core/core/server/services/email-service/email-event-storage.js
  • ghost/core/core/server/services/email-service/email-service.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/subscription-event-service.test.js
  • ghost/core/core/server/services/email-service/index.js
  • ghost/core/test/integration/url-service.test.js
  • ghost/core/core/server/services/stripe/webhook-manager.js
  • ghost/core/test/unit/server/services/email-service/events/email-bounced-event.test.js
  • ghost/core/test/unit/server/services/stripe/webhook-controller.test.js
🧰 Additional context used
🧠 Learnings (15)
📓 Common learnings
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: apps/shade/AGENTS.md:0-0
Timestamp: 2025-11-26T11:05:59.314Z
Learning: Applies to apps/shade/src/components/**/*.{ts,tsx} : Use `PascalCase` for component identifiers in filenames while keeping ShadCN-generated files in kebab-case
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: apps/shade/AGENTS.md:0-0
Timestamp: 2025-11-26T11:05:59.314Z
Learning: Applies to apps/shade/src/**/*.{ts,tsx,js} : Use `camelCase` for function and variable names
📚 Learning: 2026-01-08T10:26:38.700Z
Learnt from: rob-ghost
Repo: TryGhost/Ghost PR: 25791
File: ghost/core/core/server/api/endpoints/member-comment-ban.js:64-68
Timestamp: 2026-01-08T10:26:38.700Z
Learning: In the Ghost API, endpoints rely on the serialization layer to prepare frame.data[docName] as a non-empty array before query() executes. Endpoints access frame.data[docName][0] directly (e.g., frame.data.comment_bans[0], frame.data.members[0], frame.data.posts[0]) without per-endpoint validation. This pattern is common across API endpoints. When maintaining or creating endpoints, avoid duplicating validation for frame.data[docName] and ensure the serializer guarantees the shape and non-emptiness. If you add a new endpoint that uses this frame.data[docName], follow the same assumption and avoid redundant checks unless there's a documented exception.

Applied to files:

  • ghost/core/core/server/services/url/index.js
  • ghost/core/core/server/services/settings/settings-bread-service.js
  • ghost/core/test/e2e-server/services/recommendation-emails.test.js
  • ghost/core/core/server/services/stripe/service.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/checkout-session-event-service.test.js
  • ghost/core/test/unit/server/services/mentions/mention.test.js
  • ghost/core/core/server/services/email-analytics/email-analytics-service-wrapper.js
  • ghost/core/test/unit/server/services/mentions/resource-service.test.js
  • ghost/core/core/server/services/email-service/sending-service.js
  • ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js
  • ghost/core/core/server/services/mentions/mention-controller.js
  • ghost/core/core/server/services/stripe/events/index.js
  • ghost/core/core/server/services/members/members-api/members-api.js
  • ghost/core/test/unit/server/services/url/local-file-cache.test.js
  • ghost/core/core/server/services/mentions/service.js
  • ghost/core/test/unit/server/services/email-service/email-event-processor.test.js
  • ghost/core/core/server/services/url/urls.js
  • ghost/core/core/server/services/stripe/stripe-migrations.js
  • ghost/core/core/server/services/mentions-email-report/mention-email-report-job.js
  • ghost/core/test/unit/server/services/email-service/events/email-unsubscribed-event.test.js
  • ghost/core/test/unit/server/services/mentions/mention-discovery-service.test.js
  • ghost/core/test/unit/server/services/url/resources.test.js
  • ghost/core/test/unit/server/services/email-service/email-segmenter.test.js
  • ghost/core/core/server/services/stripe/services/webhook/checkout-session-event-service.js
  • ghost/core/test/unit/server/services/email-service/events/spam-complaint-event.test.js
  • ghost/core/core/server/services/url/url-generator.js
  • ghost/core/test/unit/server/services/email-service/events/email-opened-event.test.js
  • ghost/core/core/server/services/mentions/mention.js
  • ghost/core/test/unit/server/services/url/url-generator.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-temporary-bounced-event.test.js
  • ghost/core/test/unit/server/services/url/url-service.test.js
  • ghost/core/test/unit/server/services/stripe/services/webhooks/invoice-event-service.test.js
  • ghost/core/core/boot.js
  • ghost/core/test/unit/server/services/url/urls.test.js
  • ghost/core/core/server/services/mentions/bookshelf-mention-repository.js
📚 Learning: 2025-11-24T11:12:15.712Z
Learnt from: sagzy
Repo: TryGhost/Ghost PR: 24673
File: ghost/i18n/lib/i18n.js:34-35
Timestamp: 2025-11-24T11:12:15.712Z
Learning: In the Ghost i18n package (ghost/i18n/lib/i18n.js), changing existing locale codes requires backwards compatibility handling for users who have already configured those locales. Such changes should be done in a separate PR with migration logic rather than included in feature PRs.

Applied to files:

  • ghost/core/core/server/services/settings/settings-bread-service.js
📚 Learning: 2025-10-30T17:13:26.190Z
Learnt from: sam-lord
Repo: TryGhost/Ghost PR: 25303
File: ghost/core/core/server/services/email-service/BatchSendingService.js:19-19
Timestamp: 2025-10-30T17:13:26.190Z
Learning: In ghost/core/core/server/services/email-service/BatchSendingService.js and similar files in the Ghost codebase, prefer using `{...options}` spread syntax without explicit guards like `...(options || {})` when spreading potentially undefined objects, as the maintainer prefers cleaner syntax over defensive patterns when the behavior is safe.

Applied to files:

  • ghost/core/core/server/services/settings/settings-bread-service.js
  • ghost/core/core/server/services/stripe/service.js
  • ghost/core/core/server/services/email-analytics/email-analytics-service-wrapper.js
  • ghost/core/core/server/services/email-service/sending-service.js
  • ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js
  • ghost/core/core/server/services/mentions/service.js
  • ghost/core/test/unit/server/services/email-service/email-event-processor.test.js
  • ghost/core/core/boot.js
📚 Learning: 2025-11-24T17:29:43.865Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: e2e/AGENTS.md:0-0
Timestamp: 2025-11-24T17:29:43.865Z
Learning: Applies to e2e/**/*.test.ts : Test names should be lowercase and follow the format 'what is tested - expected outcome'

Applied to files:

  • ghost/core/test/unit/server/services/stripe/services/webhooks/checkout-session-event-service.test.js
  • ghost/core/test/unit/server/services/mentions/mention.test.js
  • ghost/core/test/unit/server/services/url/local-file-cache.test.js
  • ghost/core/test/unit/server/services/email-service/email-event-processor.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-unsubscribed-event.test.js
  • ghost/core/test/unit/server/services/mentions/mention-discovery-service.test.js
  • ghost/core/test/unit/server/services/email-service/events/spam-complaint-event.test.js
  • ghost/core/test/unit/server/services/email-service/events/email-opened-event.test.js
  • ghost/core/test/unit/server/services/url/url-service.test.js
  • ghost/core/test/unit/server/services/url/urls.test.js
📚 Learning: 2025-11-24T17:29:43.865Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: e2e/AGENTS.md:0-0
Timestamp: 2025-11-24T17:29:43.865Z
Learning: Applies to e2e/**/*.test.ts : Test suite names should follow the format 'Ghost Admin - Feature' or 'Ghost Public - Feature'

Applied to files:

  • ghost/core/test/unit/server/services/mentions/mention.test.js
  • ghost/core/test/unit/server/services/mentions/mention-discovery-service.test.js
📚 Learning: 2025-10-06T14:19:50.385Z
Learnt from: sam-lord
Repo: TryGhost/Ghost PR: 24966
File: ghost/core/test/unit/server/services/mail/GhostMailer.test.js:330-421
Timestamp: 2025-10-06T14:19:50.385Z
Learning: The GhostMailer class in `ghost/core/core/server/services/mail/GhostMailer.js` does not accept external Mailgun-specific parameters (like `o:tag`) from callers. Tags are generated internally via the `getTags()` method. This design keeps the class generic and avoids mixing transport-specific concerns into the public interface.

Applied to files:

  • ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js
📚 Learning: 2025-11-25T14:28:50.351Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T14:28:50.351Z
Learning: Core Ghost backend logic should be placed in `ghost/core/core/server/` directory structure organized by purpose (api, services, models, data/schema, etc.)

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-05-29T07:45:35.714Z
Learnt from: ErisDS
Repo: TryGhost/Ghost PR: 23582
File: ghost/core/.c8rc.json:24-24
Timestamp: 2025-05-29T07:45:35.714Z
Learning: In Ghost project, app.js files under core/server/web are intentionally excluded from unit test coverage because they are not easily unit-testable due to being entry points with initialization code and side effects.

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-12-01T08:42:35.320Z
Learnt from: jonatansberg
Repo: TryGhost/Ghost PR: 25552
File: e2e/helpers/environment/service-managers/dev-ghost-manager.ts:210-247
Timestamp: 2025-12-01T08:42:35.320Z
Learning: In e2e/helpers/environment/service-managers/dev-ghost-manager.ts, the hardcoded volume name 'ghost-dev_shared-config' at line 231 is intentional. E2E tests run under the 'ghost-dev-e2e' project namespace but deliberately mount the shared-config volume from the main 'ghost-dev' project to access Tinybird credentials created by yarn dev:forward. This is cross-project volume sharing by design.

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-11-25T14:28:50.351Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T14:28:50.351Z
Learning: Ghost admin serves admin-x apps from `/ghost/assets/{app-name}/{app-name}.js` URLs

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-11-25T14:28:50.351Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T14:28:50.351Z
Learning: Frontend dev servers and foundation libraries run on host machine during `yarn dev:forward`, while Ghost Core backend, MySQL, Redis, Mailpit, and Caddy run in Docker

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-06-19T22:57:05.880Z
Learnt from: cmraible
Repo: TryGhost/Ghost PR: 23941
File: .github/workflows/ci.yml:911-914
Timestamp: 2025-06-19T22:57:05.880Z
Learning: In Ghost, when NODE_ENV is set to testing-mysql, Ghost uses config.testing-mysql.json configuration which sets the server port to 2369 instead of the default 2368. This also applies to other testing environments like testing and testing-browser.

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-11-03T12:33:31.093Z
Learnt from: kevinansfield
Repo: TryGhost/Ghost PR: 25320
File: apps/admin/src/layout/app-sidebar/NavHeader.tsx:10-10
Timestamp: 2025-11-03T12:33:31.093Z
Learning: The Ghost admin apps (apps/admin/**) do not use SSR, so accessing browser APIs like `navigator`, `window`, or `document` at module load time is safe and does not require typeof guards.

Applied to files:

  • ghost/core/core/boot.js
📚 Learning: 2025-11-25T14:28:50.351Z
Learnt from: CR
Repo: TryGhost/Ghost PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T14:28:50.351Z
Learning: Run `yarn docker:dev` to start Ghost in Docker with hot reload

Applied to files:

  • ghost/core/core/boot.js
🧬 Code graph analysis (3)
ghost/core/core/server/services/settings/settings-bread-service.js (2)
ghost/core/core/server/services/members/members-api/members-api.js (3)
  • MagicLink (19-19)
  • require (1-1)
  • require (18-18)
ghost/core/core/server/services/newsletters/newsletters-service.js (1)
  • MagicLink (9-9)
ghost/core/core/server/services/email-analytics/email-analytics-service-wrapper.js (2)
ghost/core/test/unit/server/services/email-service/email-event-storage.test.js (1)
  • EmailEventStorage (1-1)
ghost/core/test/unit/server/services/email-service/email-event-processor.test.js (1)
  • EmailEventProcessor (2-2)
ghost/core/core/server/services/members/members-api/members-api.js (3)
ghost/core/core/server/services/newsletters/newsletters-service.js (1)
  • MagicLink (9-9)
ghost/core/core/server/services/settings/settings-bread-service.js (1)
  • MagicLink (7-7)
ghost/core/test/unit/server/services/lib/magic-link/index.test.js (1)
  • MagicLink (3-3)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Acceptance tests (Node 22.18.0, sqlite3)
  • GitHub Check: Acceptance tests (Node 22.18.0, mysql8)
  • GitHub Check: Legacy tests (Node 22.18.0, sqlite3)
  • GitHub Check: Legacy tests (Node 22.18.0, mysql8)
  • GitHub Check: Unit tests (Node 22.18.0)
  • GitHub Check: Ghost-CLI tests
  • GitHub Check: Build & Push Docker Image
🔇 Additional comments (37)
ghost/core/core/server/services/stripe/service.js (1)

2-2: LGTM!

The import path correctly updated to use kebab-case (./stripe-service), consistent with the file renaming effort. The variable name StripeService appropriately remains PascalCase for the class reference.

ghost/core/test/unit/server/services/email-service/events/email-unsubscribed-event.test.js (1)

3-3: LGTM! Path updated to kebab-case.

The require path correctly references the renamed kebab-case file while preserving the PascalCase class identifier, maintaining JavaScript conventions.

ghost/core/test/unit/server/services/email-service/events/email-opened-event.test.js (1)

3-3: LGTM! Path updated to kebab-case.

The require path correctly references the renamed kebab-case file while preserving the PascalCase class identifier, maintaining JavaScript conventions.

ghost/core/core/boot.js (1)

501-501: LGTM! Path updated correctly for kebab-case refactoring.

The require path has been correctly updated from ./server/GhostServer to ./server/ghost-server, consistent with the PR's systematic kebab-case refactoring. The GhostServer constructor usage remains unchanged.

ghost/core/test/unit/server/services/email-service/email-event-processor.test.js (1)

2-2: LGTM! Import path correctly updated to kebab-case.

The require path has been properly updated to use the new kebab-case filename while maintaining the correct PascalCase variable name for the class constructor. This change aligns with the PR objective of normalizing file naming conventions.

ghost/core/test/unit/server/services/email-service/events/spam-complaint-event.test.js (1)

3-3: Path update is correct. The require statement properly references the kebab-case filename, with the path traversal accurately resolving to the actual file location. All references throughout the codebase have been consistently updated to use the kebab-case filename convention.

ghost/core/core/server/services/email-analytics/email-analytics-service-wrapper.js (1)

12-13: Code is already correct — no changes needed.

The require paths at lines 12–13 are already using kebab-case (email-event-storage and email-event-processor), which is the correct naming convention. A codebase-wide search confirms all imports of these modules consistently use kebab-case paths, with no PascalCase file references remaining.

ghost/core/core/server/services/stripe/stripe-migrations.js (1)

11-11: LGTM - JSDoc type reference updated correctly.

The type annotation has been updated to reference the kebab-case filename, ensuring IDE type hints and documentation tools work correctly.

ghost/core/test/unit/server/services/stripe/services/webhooks/invoice-event-service.test.js (1)

7-7: LGTM - Test import path updated correctly.

The test import has been updated to reference the kebab-case filename, maintaining test coverage for the renamed module.

ghost/core/test/unit/server/services/stripe/services/webhooks/checkout-session-event-service.test.js (1)

5-5: LGTM - Test import path updated correctly.

The test import has been updated to reference the kebab-case filename, maintaining test coverage for the renamed module.

ghost/core/core/server/services/stripe/services/webhook/checkout-session-event-service.js (1)

22-22: LGTM - JSDoc type reference updated correctly.

The type annotation has been updated to reference the kebab-case filename, ensuring proper type checking and IDE support.

ghost/core/core/server/services/stripe/events/index.js (1)

2-3: LGTM - Path updates are correct.

The module export keys remain unchanged while the file paths have been updated to kebab-case, maintaining backward compatibility for consumers of this module. All references throughout the codebase are correctly using the exported StripeLiveEnabledEvent and StripeLiveDisabledEvent names.

ghost/core/test/unit/server/services/email-service/events/email-temporary-bounced-event.test.js (1)

3-3: LGTM: Import path correctly updated to kebab-case.

The require path is correctly specified in kebab-case (email-temporary-bounced-event) while the variable name appropriately uses PascalCase (EmailTemporaryBouncedEvent), consistent with JavaScript naming conventions. All imports of this module across the codebase have been updated consistently to the new kebab-case path, with no old-style imports remaining.

ghost/core/test/unit/server/services/email-service/email-segmenter.test.js (1)

2-2: All module path updates have been correctly applied.

Verification confirms no remaining references to the old PascalCase filename path exist. The import in the test file correctly uses the kebab-case path, and a JSDoc typedef in batch-sending-service.js also properly references the updated path. The PR objective to standardize on kebab-case filenames is complete.

ghost/core/core/server/services/email-service/sending-service.js (1)

14-14: All JSDoc typedef references have been properly updated to the kebab-case module path.

The import references on lines 14, 26–27, 44, and 159 correctly use import("./email-renderer"). No old PascalCase module paths remain.

ghost/core/core/server/services/settings/settings-bread-service.js (1)

7-7: LGTM! Path updated to kebab-case.

The import path correctly reflects the renamed module file. The usage of MagicLink throughout the file remains unchanged and consistent.

ghost/core/test/unit/server/services/mentions/mention-discovery-service.test.js (1)

9-9: LGTM! Test import updated correctly.

The require path now matches the kebab-case module filename. The test continues to work with the same MentionDiscoveryService class as before.

ghost/core/core/server/services/members/members-api/members-api.js (1)

19-19: LGTM! Consistent with other MagicLink imports.

The import path has been updated to use the kebab-case filename, matching identical changes in newsletters-service.js and settings-bread-service.js. No functional impact.

ghost/core/core/server/services/mentions/mention.js (1)

3-3: LGTM! Event import updated to kebab-case.

The import path correctly reflects the renamed module file. The MentionCreatedEvent class usage on line 324 remains unchanged.

ghost/core/test/unit/server/services/mentions/mention.test.js (1)

6-6: LGTM! Test import aligned with kebab-case naming.

The require path now matches the kebab-case module filename. All test cases continue to work correctly with the same Mention class.

ghost/core/test/unit/server/services/url/resources.test.js (1)

3-3: LGTM! Import path correctly updated to kebab-case.

The require path for Resources has been properly updated to the lowercase equivalent.

ghost/core/test/unit/server/services/url/local-file-cache.test.js (1)

5-5: Import path correctly updated to kebab-case.

The require path has been properly updated to use the kebab-case filename local-file-cache.

ghost/core/test/e2e-server/services/recommendation-emails.test.js (1)

9-9: Import path case updated to lowercase.

The require path has been updated from PascalCase Mention to lowercase mention. Verify that all other imports using the old path have been similarly updated across the codebase.

ghost/core/core/server/services/url/url-generator.js (1)

154-154: JSDoc type reference correctly updated to match the resource file.

The import type annotation has been properly updated from './Resource' to './resource' to match the actual filename. Verification confirms no remaining inconsistent JSDoc references exist in the url service.

ghost/core/test/unit/server/services/mentions/resource-service.test.js (1)

3-5: Both import paths correctly use kebab-case and resolve properly.

The require paths for ResourceService and UrlService are properly updated to resource-service and url-service respectively, and both files exist at the expected locations. No old PascalCase import statements remain in the codebase.

ghost/core/core/server/services/url/index.js (1)

2-3: LGTM! Import paths correctly updated to kebab-case.

The require paths have been updated to match the renamed filenames, maintaining consistency with the repository-wide kebab-case convention.

ghost/core/test/unit/server/services/url/url-generator.test.js (1)

4-4: LGTM! Test import path correctly updated.

The UrlGenerator import path has been updated to match the kebab-case filename convention.

ghost/core/test/unit/server/services/url/urls.test.js (1)

4-4: LGTM! Test import path correctly updated.

The Urls module import path has been updated to match the kebab-case filename convention.

ghost/core/core/server/services/mentions-email-report/mention-email-report-job.js (1)

93-93: LGTM! JSDoc typedef import path correctly updated.

The typedef import reference has been updated to match the kebab-case filename convention.

ghost/core/test/unit/server/services/url/url-service.test.js (1)

5-9: LGTM! All test import paths correctly updated.

All five URL service module import paths have been consistently updated to match the kebab-case filename convention.

ghost/core/core/server/services/url/urls.js (1)

10-10: LGTM! Typedef path updated to kebab-case.

The typedef import path change aligns with the kebab-case naming convention.

ghost/core/core/server/services/mentions/service.js (2)

1-8: LGTM! Module paths updated to kebab-case.

All require statements have been consistently updated to use kebab-case filenames.


26-32: LGTM! Type annotations updated consistently.

JSDoc typedef imports align with the updated kebab-case module paths.

ghost/core/core/server/services/mentions/mention-controller.js (1)

4-47: LGTM! Type references updated to kebab-case.

All JSDoc typedef imports and type annotations have been consistently updated to reference the new kebab-case module paths.

ghost/core/core/server/services/mentions/bookshelf-mention-repository.js (2)

1-15: LGTM! Module paths and typedefs updated to kebab-case.

Both the runtime require statement and JSDoc typedef imports have been consistently updated to use kebab-case paths.


67-118: LGTM! Method type annotations updated consistently.

All JSDoc return types and parameter types reference the updated kebab-case module path.

ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js (1)

1-1: Require path correctly updated to kebab-case. The relative path properly resolves to the existing mailgun-email-provider.js file. No broken imports.


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.

@ibalosh ibalosh force-pushed the moved-to-kebab-case-core-services-part3 branch from 802daf6 to 016dd66 Compare January 8, 2026 16:10
@ibalosh ibalosh force-pushed the moved-to-kebab-case-core-services-part3 branch from 016dd66 to 572ad59 Compare January 8, 2026 16:12
@ibalosh ibalosh enabled auto-merge (squash) January 8, 2026 16:27
@ibalosh ibalosh merged commit 35c2619 into main Jan 8, 2026
37 checks passed
@ibalosh ibalosh deleted the moved-to-kebab-case-core-services-part3 branch January 8, 2026 16:30
ibalosh added a commit that referenced this pull request Jan 12, 2026
ref #25815

- Renamed files to match to kebab-case format - core seeders, importers,etc
- Excluded and added comments for files that can not be renamed
@ibalosh ibalosh changed the title Renamed files to kebab-case core-services - part 3 Renamed files to kebab-case core - services - part 3 Jan 12, 2026
@ibalosh ibalosh changed the title Renamed files to kebab-case core - services - part 3 Renamed files to kebab-case - core - services - part 3 Jan 12, 2026
ibalosh added a commit that referenced this pull request Jan 12, 2026
ref #25815

* Renamed files to match to kebab-case format 
* Updated linting rules config to match the updates - enabled kebab-case enforcement
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