Repository Analysis

TryGhost/Ghost

Independent technology for modern publishing, memberships, subscriptions and newsletters.

0.9 Likely human-written View on GitHub
0.9
Adjusted Score
0.9
Raw Score
100%
Time Factor
2026-05-29
Last Push
53,735
Stars
JavaScript
Language
751,080
Lines of Code
5388
Files
600
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 6HIGH 0MEDIUM 4LOW 590

Pattern Findings

600 matches across 8 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers287 hits · 293 pts
SeverityFileLineSnippet
LOWghost/core/core/frontend/web/site.js179 siteApp.use(function ghostAnalyticsHeaderMiddleware(req, res, next) {
LOW…st/core/core/frontend/web/routers/serve-public-file.js32function createPublicFileMiddleware(location, file, mime, maxAge, options = {}) {
LOW…st/core/core/frontend/web/routers/serve-public-file.js44 return function servePublicFileMiddleware(req, res, next) {
LOW…st/core/core/frontend/web/routers/serve-public-file.js109 return function servePublicFileMiddleware(req, res, next) {
LOW…/core/core/frontend/web/middleware/frontend-caching.js46 function setFrontendCacheHeadersMiddleware(req, res, next) {
LOW…/core/frontend/apps/private-blogging/lib/middleware.js59function authenticatePrivateSession(req, res, next) {
LOW…/core/frontend/apps/private-blogging/lib/middleware.js143 redirectPrivateToHomeIfLoggedIn: function redirectPrivateToHomeIfLoggedIn(req, res, next) {
LOWghost/core/core/frontend/helpers/get.js208function optimiseFilterCacheability(resource, options) {
LOWghost/core/core/frontend/helpers/ghost_head.js175function getWebmentionDiscoveryLink() {
LOW…eme-engine/middleware/update-local-template-options.js8function updateLocalTemplateOptions(req, res, next) {
LOW…me-engine/middleware/update-global-template-options.js22async function updateGlobalTemplateOptions(req, res, next) {
LOW…ost/core/core/frontend/services/rendering/templates.js23_private.getErrorTemplateHierarchy = function getErrorTemplateHierarchy(statusCode) {
LOW…ost/core/core/frontend/services/rendering/templates.js48_private.getEntriesTemplateHierarchy = function getEntriesTemplateHierarchy(routerOptions, requestOptions) {
LOW…ost/core/core/frontend/services/rendering/templates.js85_private.getEntryTemplateHierarchy = function getEntryTemplateHierarchy(postObject, context) {
LOWghost/core/core/frontend/services/llms/service.js88 async function appendBoundedSectionPaginated(prefix, heading, type) {
LOWghost/core/core/frontend/services/llms/handler.js8 function handleDisabledLlmsRequest(req, res, next) {
LOWghost/core/core/frontend/services/llms/markdown.js42function getResourcePathFromMarkdownPath(pathname) {
LOWghost/core/core/frontend/services/llms/markdown.js56function getAcceptedMarkdownContentType(req) {
LOW…/core/frontend/services/data/match-permalink-params.js6function constrainHyphenatedPermalinkParams(permalinks) {
LOWghost/core/core/server/web/shared/utils.js20module.exports.removeOpenRedirectFromUrl = function removeOpenRedirectFromUrl(urlString) {
LOW…/core/core/server/web/shared/middleware/pretty-urls.js22function skipSlashesForLlmsExtensions(req, res, next) {
LOW…ore/server/web/api/middleware/update-user-last-seen.js1module.exports = function updateUserLastSeenMiddleware(req, res, next) {
LOWghost/core/core/server/web/members/app.js104 membersApp.post('/api/create-stripe-checkout-session', function lazyCreateCheckoutSessionMw(req, res, next) {
LOWghost/core/core/server/web/members/app.js107 membersApp.post('/api/create-stripe-update-session', function lazyCreateCheckoutSetupSessionMw(req, res, next) {
LOWghost/core/core/server/web/members/app.js110 membersApp.post('/api/create-stripe-billing-portal-session', function lazyCreateBillingPortalSessionMw(req, res, nex
LOWghost/core/core/server/models/post.js525 handleStatusForAttachedModels: function handleStatusForAttachedModels(model, options) {
LOWghost/core/core/server/models/post.js808 ops.push(function ensureSendEmailWhenPublishedIsUnchanged() {
LOWghost/core/core/server/models/role-utils.js5function checkUserPermissionsForRole(loadedPermissions, roleName) {
LOWghost/core/core/server/models/comment.js10function getDisplayableCommentIdsQuery(excludedStatuses, {parentId, parentIds, postId} = {}) {
LOWghost/core/core/server/models/newsletter.js207 getNextAvailableSortOrder: async function getNextAvailableSortOrder(unfilteredOptions = {}) {
LOW…core/server/models/base/plugins/filtered-collection.js21 getFilteredCollectionQuery: function getFilteredCollectionQuery(options) {
LOWghost/core/core/server/adapters/storage/utils.js16exports.getLocalImagesStoragePath = function getLocalImagesStoragePath(imagePath) {
LOWghost/core/core/server/lib/request-external.js167async function errorIfHostnameResolvesToPrivateIp(options) {
LOWghost/core/core/server/api/endpoints/posts.js28function getCacheHeaderFromEventString(event, dto) {
LOWghost/core/core/server/api/endpoints/users.js37async function rotateSessionForSelfPasswordChange(frame, user) {
LOWghost/core/core/server/api/endpoints/users.js65function shouldInvalidateCacheAfterChange(model) {
LOW…/server/api/endpoints/utils/serializers/input/posts.js80function forceUrlRelationsWhenLazy(frame) {
LOW…erver/api/endpoints/utils/serializers/input/members.js18function mapSubscribedFlagToNewsletterRelation(frame) {
LOW…/server/api/endpoints/utils/serializers/input/pages.js56function forceUrlRelationsWhenLazy(frame) {
LOW…-analytics/jobs/update-member-email-analytics/index.js10module.exports = async function updateMemberEmailAnalytics({memberId}) {
LOW…t/core/core/server/services/settings/settings-utils.js41function getOrGenerateSiteUuid() {
LOW…e/server/services/settings/private-site-access-code.js16function generatePrivateSiteAccessCode() {
LOWghost/core/core/server/services/auth/api-key/admin.js67const authenticateWithUrl = function apiKeyAuthenticateWithUrl(req, res, next) {
LOWghost/core/core/server/services/auth/api-key/admin.js79async function wrappedAuthenticateWithToken(req, res, next, options) {
LOWghost/core/core/server/services/auth/api-key/admin.js104const authenticateWithToken = async function apiKeyAuthenticateWithToken(originalUrl, token, ignoreMaxAge) {
LOWghost/core/core/server/services/auth/api-key/content.js12const authenticateContentApiKey = async function authenticateContentApiKey(req, res, next) {
LOW…e/core/server/services/auth/session/express-session.js13function getExpressSessionMiddleware() {
LOW…e/core/server/services/auth/session/session-service.js93 function invalidateAuthCodeChallenge(session) {
LOW…e/core/server/services/auth/session/session-service.js98 function hasValidAuthCodeChallenge(session) {
LOW…e/core/server/services/auth/session/session-service.js231 async function createVerifiedSessionForUser(req, res, user) {
LOW…e/core/server/services/auth/session/session-service.js242 async function assignVerifiedUserToSession({
LOW…e/core/server/services/auth/session/session-service.js271 async function rotateAndAssignVerifiedUserToSession({req, user, ip}) {
LOW…vices/koenig/node-renderers/horizontalrule-renderer.js4function horizontalRuleFrontendTemplate() {
LOW…vices/koenig/node-renderers/horizontalrule-renderer.js8function horizontalRuleEmailTemplate() {
LOW…r/services/koenig/node-renderers/header-v2-renderer.js71function generateMSOSplitHeaderImage(nodeData) {
LOW…r/services/koenig/node-renderers/header-v2-renderer.js97function generateMSOContentWrapper(nodeData) {
LOW…r/services/koenig/node-renderers/header-v2-renderer.js123function generateMSOContentClosing(nodeData) {
LOW…nig/render-utils/build-clean-basic-html-for-element.js3function buildCleanBasicHtmlForElement(domNode) {
LOW…er/services/koenig/render-utils/replacement-strings.js37function removeCodeWrappersFromHelpers(html, document) {
LOW…core/server/services/koenig/render-utils/visibility.js76function migrateOldVisibilityFormat(visibility) {
227 more matches not shown…
Fake / Example Data125 hits · 136 pts
SeverityFileLineSnippet
LOW…server/services/automations/temporary-fake-database.js34 text: 'Lorem ipsum.'
LOW…/server/data/importer/importers/revue-importer.test.js118 const result = RevueImporter.importPosts({items: '[]', issues: 'id,description,sent_at,subject,preheader\n12
LOW…/server/data/importer/importers/revue-importer.test.js118 const result = RevueImporter.importPosts({items: '[]', issues: 'id,description,sent_at,subject,preheader\n12
LOW…/server/data/importer/importers/revue-importer.test.js123 title: 'Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit Mauris Convallis Et Metus Eu Blandit
LOW…/server/data/importer/importers/revue-importer.test.js123 title: 'Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit Mauris Convallis Et Metus Eu Blandit
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js171 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js192 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js205 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js218 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js234 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js253 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js272 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js283 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js300 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js310 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js328 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js354 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js377 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js400 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js421 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js446 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js485 to: 'user@example.com',
LOW…re/test/unit/server/services/mail/ghost-mailer.test.js505 to: 'user@example.com',
LOW…ices/media-inliner/test/external-media-inliner.test.js126 postStub.withArgs('mobiledoc').returns(`{"version":"0.3.1","atoms":[],"cards":[["html",{"html":"<img src="${
LOW…ices/media-inliner/test/external-media-inliner.test.js159 mobiledoc: `{"version":"0.3.1","atoms":[],"cards":[["html",{"html":"<img src="__GHOST_URL__/content/imag
LOW…ices/media-inliner/test/external-media-inliner.test.js225 postStub.withArgs('lexical').returns(`{"root":{"children":[{"type":"html","version":1,"html":"<img src="${im
LOW…ices/media-inliner/test/external-media-inliner.test.js257 lexical: `{"root":{"children":[{"type":"html","version":1,"html":"<img src="__GHOST_URL__/content/images
LOW…/email-suppression-list/email-suppression-list.test.js31 emailAddress: 'test@test.com',
LOW…ices/members/members-api/utils/normalize-email.test.js12 assert.equal(normalizeEmail('user@example.com'), 'user@example.com');
LOW…ost/core/test/unit/server/services/stats/posts.test.js331 await _createUser('user1', 'John Doe');
LOW…r-welcome-emails/member-welcome-email-renderer.test.js78 member: {name: 'John Doe', email: 'john@example.com'},
LOW…r-welcome-emails/member-welcome-email-renderer.test.js142 member: {name: 'John Doe', email: 'john@example.com'},
LOW…r-welcome-emails/member-welcome-email-renderer.test.js412 member: {name: 'John Doe', email: 'john@example.com'},
LOW…r-welcome-emails/member-welcome-email-renderer.test.js428 member: {name: 'John Doe', email: 'john@example.com'},
LOWghost/core/test/unit/api/endpoints/db.test.js26 get: sinon.stub().returns('user@example.com')
LOWghost/core/test/unit/api/endpoints/db.test.js38 user: {email: 'user@example.com'}
LOWghost/core/test/unit/api/endpoints/members.test.js44 get: sinon.stub().returns('user@example.com')
LOWghost/core/test/unit/api/endpoints/members.test.js57 user: {email: 'user@example.com'}
LOWghost/core/test/e2e-frontend/helpers/get.test.js21 name: 'John Doe',
LOWghost/core/test/e2e-frontend/helpers/next-post.test.js18 name: 'John Doe',
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js43 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js72 assert.equal(mention.get('source_author'), 'John Doe');
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js84 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js110 assert.equal(mention.get('source_author'), 'John Doe');
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js156 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="author"
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js179 assert.equal(mention.get('source_author'), 'John Doe');
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js219 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js246 assert.equal(mention.get('source_author'), 'John Doe');
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js254 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js285 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js316 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js347 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js377 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js407 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/webmentions/webmentions.test.js441 <html><head><title>Test Page</title><meta name="description" content="Test description"><meta name="auth
LOWghost/core/test/e2e-api/members/send-magic-link.test.js474 const asciiEmail = 'user@example.com';
LOW…ion/services/email-service/email-event-storage.test.js638 sender: 'test@test.com',
LOW…ion/services/email-service/email-event-storage.test.js640 targets: 'test@test.com'
LOW…ion/services/email-service/email-event-storage.test.js646 from: 'test@test.com',
LOW…ion/services/email-service/email-event-storage.test.js746 sender: 'test@test.com',
65 more matches not shown…
Over-Commented Block150 hits · 130 pts
SeverityFileLineSnippet
LOW.devcontainer/devcontainer.json21 // control over the host Docker daemon (spawn privileged containers, mount
LOWghost/core/tsconfig.json1{
LOWghost/core/tsconfig.json21 // "noLib": true, /* Disable including any library files, including the defau
LOWghost/core/tsconfig.json41 // "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from ex
LOWghost/core/tsconfig.json61 // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted
LOWghost/core/tsconfig.json81 // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefi
LOWghost/core/vitest.config.ts1import path from 'node:path';
LOWghost/core/core/boot.js1// The Ghost Boot Sequence
LOWghost/core/core/frontend/helpers/reading_time.js1// # Reading Time Helper
LOWghost/core/core/frontend/helpers/t.js1// # t helper
LOWghost/core/core/frontend/helpers/price.js1// # {{price}} helper
LOWghost/core/core/frontend/helpers/content.js1// # Content Helper
LOWghost/core/core/frontend/helpers/social_accounts.js1// # Social Accounts Helper
LOWghost/core/core/frontend/helpers/plural.js1// # Plural Helper
LOW…ore/core/frontend/services/sitemap/site-map-manager.js181 }
LOW…/frontend/src/member-attribution/member-attribution.js21// {
LOW…core/core/server/web/shared/middleware/uncapitalise.js1// # uncapitalise Middleware
LOWghost/core/core/server/models/base/index.js1// # Base Model
LOWghost/core/core/server/lib/image/image-size.js141 // getImageSizeFromUrl returns an Object like this
LOW…/core/server/data/seeders/importers/offers-importer.js81 // product_id: {type: 'string', maxlength: 24, nullable: false, references: 'products.id'},
LOW…core/server/data/tinybird/scripts/compare-top-pages.sh1#!/bin/bash
LOW…core/server/services/koenig/render-utils/visibility.js41 } else {
LOW…core/server/services/koenig/render-utils/visibility.js61//
LOW…e/core/server/services/email-service/email-renderer.js161
LOW…re/core/server/services/email-service/email-service.js21 missingNewsletterError: 'The post does not have a newsletter relation',
LOW…server/services/email-service/batch-sending-service.js21 * @typedef {object} Post
LOWghost/core/core/server/services/lib/link-replacer.js21 // interface IToken {
LOW…rver/services/comments/comments-service-emails.test.js181 });
LOWghost/core/test/e2e-api/admin/members-importer.test.js101 // sinon.stub(Date, 'now').returns(new Date('2021-03-30T17:21:00.000Z'));
LOWghost/core/test/e2e-api/admin/members-importer.test.js121
LOWghost/core/test/e2e-api/admin/members-importer.test.js141 // // perform the bulk delete
LOWghost/core/test/e2e-api/admin/members-importer.test.js161 // return request.get(localUtils.API.getApiQuery(`members/?filter=label:${importLabel.slug}`))
LOWghost/core/test/e2e-api/admin/members.test.js1061
LOWghost/core/test/utils/e2e-framework.js1// Set of common function that should be main building blocks for e2e tests.
LOWghost/core/test/utils/vitest-setup.ts1// Vitest setup — mirrors the behavior of ./overrides.js (used by mocha
LOWghost/core/scripts/pack.js61 for (const [key, val] of Object.entries(pkg[section])) {
LOWghost/core/scripts/pack.js141// `pnpm.overrides`. We deliberately do NOT also write pnpm.overrides here:
LOWghost/admin/app/controllers/lexical-editor.js1201 // clean up blank cards when leaving the editor if we have a draft post
LOWghost/admin/app/services/ui.js141 // events allowing us to have interactive elements "underneath" drop zones
LOW…in/tests/unit/components/gh-post-settings-menu-test.js1// import EmberObject from '@ember/object';
LOW…in/tests/unit/components/gh-post-settings-menu-test.js21// it('slugValue is one-way bound to post.slug', function () {
LOW…in/tests/unit/components/gh-post-settings-menu-test.js41// expect(component.get('slugValue')).to.equal('changed-directly');
LOW…in/tests/unit/components/gh-post-settings-menu-test.js61// expect(component.get('metaTitleScratch')).to.equal('a title');
LOW…in/tests/unit/components/gh-post-settings-menu-test.js81// });
LOW…in/tests/unit/components/gh-post-settings-menu-test.js101// run(function () {
LOW…in/tests/unit/components/gh-post-settings-menu-test.js121// metaTitle: 'a meta-title',
LOW…in/tests/unit/components/gh-post-settings-menu-test.js141// post: EmberObject.extend({
LOW…in/tests/unit/components/gh-post-settings-menu-test.js161
LOW…in/tests/unit/components/gh-post-settings-menu-test.js181
LOW…in/tests/unit/components/gh-post-settings-menu-test.js201// let component = this.subject({
LOW…in/tests/unit/components/gh-post-settings-menu-test.js221// });
LOW…in/tests/unit/components/gh-post-settings-menu-test.js241
LOW…in/tests/unit/components/gh-post-settings-menu-test.js261// it('should update when the post slug changes', function () {
LOW…in/tests/unit/components/gh-post-settings-menu-test.js281// post: EmberObject.create({slug: longSlug})
LOW…in/tests/unit/components/gh-post-settings-menu-test.js301// })
LOW…in/tests/unit/components/gh-post-settings-menu-test.js321// });
LOW…in/tests/unit/components/gh-post-settings-menu-test.js341// });
LOW…in/tests/unit/components/gh-post-settings-menu-test.js361// // unchanged
LOW…in/tests/unit/components/gh-post-settings-menu-test.js381// component.send('updateSlug', component.get('slugValue'));
LOW…in/tests/unit/components/gh-post-settings-menu-test.js401
90 more matches not shown…
Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippet
CRITICALghost/core/core/server/api/endpoints/authentication.js200 web.shared.middleware.api.spamPrevention.userLogin().reset(frame.options.ip, `${tokenParts.email}login`);
CRITICALghost/core/test/e2e-api/admin/members.test.js41 models.Base.Model.prototype.serialize.call(subscription),
CRITICALghost/core/test/e2e-api/members/webhooks.test.js52 const serialized = models.Base.Model.prototype.serialize.call(subscription);
CRITICALghost/admin/app/components/posts-list/context-menu.js404 this.selectionList.infinityModel.draftInfinityModel.content.unshiftObject(model);
CRITICAL…ditor/modals/publish-flow/complete-with-email-error.js34 let email = yield this.args.publishOptions.post.email.retry();
CRITICALapps/admin-toolbar/test/admin-toolbar.test.js150 assert.ok(dom.window.document.body.style.paddingBottom.includes('--gh-admin-toolbar-bottom-offset'));
Verbosity Indicators15 hits · 26 pts
SeverityFileLineSnippet
LOW…ore/core/frontend/web/middleware/handle-image-sizes.js94 // CASE: When formatting, we need to check if the imageTransform package supports this specific format
LOW…ore/core/frontend/web/middleware/handle-image-sizes.js101 // CASE: when transforming is supported, we need to check if it is desired
LOWghost/core/core/frontend/helpers/comments.js15 * We need to check if comments enabled, because the theme might not be using the other available helpers to check
LOWghost/core/core/server/data/importer/import-manager.js499 // Step 1: Handle converting the file to usable data
LOWghost/core/core/server/data/importer/import-manager.js519 // Step 2: Let the importers pre-process the data
LOWghost/core/core/server/data/importer/import-manager.js522 // Step 3: Actually do the import
LOWghost/core/core/server/data/importer/import-manager.js526 // Step 4: Report on the import
LOWghost/core/core/server/data/importer/import-manager.js534 // Step 5: Cleanup any files
LOWghost/core/core/server/data/importer/import-manager.js538 // Step 6: Send email
LOW…server/services/email-service/email-event-processor.js295 // Step 1: Resolve all providerId -> emailId mappings
LOW…server/services/email-service/email-event-processor.js312 // Step 2: Build list of (email, emailId) pairs to lookup
LOW…server/services/email-service/email-event-processor.js328 // Step 3: Batch query all recipients with OR conditions
LOW…server/services/email-service/email-event-processor.js345 // Step 4: Build cache map keyed by "email:emailId"
LOW…re/core/server/services/stats/content-stats-service.js61 // Step 1: Get raw data from Tinybird
LOW…re/core/server/services/stats/content-stats-service.js68 // Step 2: Enrich the data with titles
Redundant / Tautological Comments13 hits · 22 pts
SeverityFileLineSnippet
LOWdocker/tb-cli/entrypoint.sh19# Check if workspace ID is valid
LOWdocker/tb-cli/entrypoint.sh28# Check if workspace token is valid
LOWdocker/tb-cli/entrypoint.sh61# Check if admin token is valid
LOWdocker/tb-cli/entrypoint.sh73# Check if tracker token is valid
LOWdocker/stripe/entrypoint.sh29# Check if STRIPE_SECRET_KEY is set
LOWdocker/stripe/entrypoint.sh48# Check if we got a timeout
LOWdocker/stripe/entrypoint.sh55# Check if we got a valid secret (should start with "whsec_")
LOW…e/core/server/data/tinybird/scripts/configure-ghost.sh15# Check if workspace ID is valid
LOW…e/core/server/data/tinybird/scripts/configure-ghost.sh25# Check if workspace token is valid
LOW…e/core/server/data/tinybird/scripts/configure-ghost.sh35# Check if admin token is valid
LOW…e/core/server/data/tinybird/scripts/configure-ghost.sh46# Check if tracker token is valid
LOW.github/workflows/deploy-to-staging.yml65 # Check if Docker build job specifically succeeded (paginate — CI has 30+ jobs)
LOW.github/hooks/commit-msg.bash32# Check if second line is blank
AI Slop Vocabulary3 hits · 12 pts
SeverityFileLineSnippet
MEDIUMdocker/tb-cli/entrypoint.sh47 # Find admin token by looking for ADMIN scope (more robust than name matching)
MEDIUMapps/stats/src/utils/chart-helpers.ts86 // Calculate median instead of mean to be more robust against extreme outliers
MEDIUMapps/stats/src/utils/chart-helpers.ts90 // Calculate MAD (Median Absolute Deviation) which is more robust than standard deviation
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMdocker/analytics/entrypoint.sh28# This file is created by the `tb-cli` service and mounted into the Analytics service container