Skip to content

[pull] main from TryGhost:main#1084

Merged
pull[bot] merged 7 commits into
code:mainfrom
TryGhost:main
Apr 21, 2026
Merged

[pull] main from TryGhost:main#1084
pull[bot] merged 7 commits into
code:mainfrom
TryGhost:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 21, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

rob-ghost and others added 7 commits April 21, 2026 11:30
dorny/paths-filter calls pulls.listFiles on pull_request events, which requires the pull-requests:read permission. Public TryGhost/Ghost works without it because the default token grants read on public repos, but private forks (e.g. Ghost-Security) fail the Setup job with "Resource not accessible by integration". Adding the permission explicitly unblocks those forks while staying a no-op upstream.
no ref

Updated gift subscription token generation to use an alphabet without
special chars. Also moved generation to gift service instead of having
inline in the payment service
ref https://linear.app/ghost/issue/ONC-1653/

The prev_post and next_post helpers only need one adjacent post, but the
public browse path was also calculating full pagination metadata, running
COUNT(DISTINCT posts.id) on every render. On large, high-traffic sites
this turned adjacent-post lookups into a hot path against the database.

Added a skipPagination option that flows from the helpers through the
public posts endpoint into findPage, which pre-applies the requested
limit/offset manually and then uses fetchPage's limit='all' short-circuit
to skip the count query entirely. The cache key includes the flag so
helper responses stay separate from normal paginated browse responses.
ref https://linear.app/ghost/issue/PLA-27

This PR updates the fairly bespoke monobundle script, which creates the tarball for Ghost install. Much of the logic contained within was specific to yarn v1 behavior, and since we've moved to `pnpm` and have generally cleaned up our shipping pathway, this moves us towards leveraging `pnpm deploy` and dramatically simplifying the packing process.
Absorbs environmental variance on slower/variable CI runner pools (e.g.
private forks) without relaxing local fast-feedback discipline. Local
runs keep the 30s cap; no-op for CI runs that already finish under 30s.
…7481)

ref https://linear.app/ghost/issue/BER-3479

- `gift` is a distinct member status introduced by the Gift
Subscriptions project, semantically different from `comped`
- before this change, gift members fell through the implicit comped
branch in `getMemberStatusText` and rendered as `"Your subscription will
expire on {date}.`" in the newsletter subscription-details footer
- added a new `giftExpires` message key rendering "Your gift
subscription will expire on {date}." and propagated the string to
`ghost/i18n` across all locales
… not show on email-only (#27483)

no ref

Some small tweaks to the visibility of the share button when it's
toggled on for newsletters:
- if it's a paid/members-only post, we want to show the share button.
idea is that shares of that post can drive help drive conversion for
more members
- if it's an email-only newsletter, do _not_ show the share button. idea
is an email-only newsletter isn't meant to be shared as a link
@pull pull Bot locked and limited conversation to collaborators Apr 21, 2026
@pull pull Bot added the ⤵️ pull label Apr 21, 2026
@pull pull Bot merged commit 74bdef0 into code:main Apr 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants