relizy / loadRelizyConfig
Function: loadRelizyConfig()
loadRelizyConfig(
options?):Promise<ResolvedRelizyConfig>
Defined in: src/core/config.ts:221
Parameters
options?
baseConfig?
configFile?
string
overrides?
{ ai?: { extraGuidelines?: string; fallback?: "raw" | "fail"; language?: string; provider?: "claude-code"; providerRelease?: { enabled?: boolean; }; providers?: { claude-code?: { apiKey?: ... | ...; model?: ... | ...; oauthToken?: ... | ...; }; }; social?: { slack?: { enabled?: ... | ... | ...; }; twitter?: { enabled?: ... | ... | ...; }; }; systemPromptOverrides?: { providerRelease?: string; slack?: string; twitter?: string; }; }; bump?: { clean?: boolean; dependencyTypes?: ("dependencies" | "peerDependencies" | "devDependencies" | undefined)[]; preid?: string; type?: ReleaseType; yes?: boolean; }; changelog?: { formatCmd?: string; includeCommitBody?: boolean; rootChangelog?: boolean; }; cwd?: string; excludeAuthors?: (string | undefined)[]; from?: string; hideAuthorEmail?: boolean; hooks?: { before:bump?: string | { }; before:changelog?: string | { }; before:commit-and-tag?: string | { }; before:provider-release?: string | { }; before:publish?: string | { }; before:push?: string | { }; before:release?: string | { }; before:slack?: string | { }; before:social?: string | { }; before:twitter?: string | { }; error:bump?: string | { }; error:changelog?: string | { }; error:commit-and-tag?: string | { }; error:provider-release?: string | { }; error:publish?: string | { }; error:push?: string | { }; error:release?: string | { }; error:slack?: string | { }; error:social?: string | { }; error:twitter?: string | { }; generate:changelog?: { }; success:bump?: string | { }; success:changelog?: string | { }; success:commit-and-tag?: string | { }; success:provider-release?: string | { }; success:publish?: string | { }; success:push?: string | { }; success:release?: string | { }; success:slack?: string | { }; success:social?: string | { }; success:twitter?: string | { }; }; logLevel?: "error" | "default" | "silent" | "warning" | "normal" | "debug" | "trace" | "verbose"; monorepo?: { ignorePackageNames?: (string | undefined)[]; includePrivates?: boolean; packages?: (string | undefined)[]; versionMode?: VersionMode; }; newVersion?: string; noAuthors?: boolean; prComment?: { mode?: PrCommentMode; }; projectName?: string; publish?: { access?: "public" | "restricted"; args?: (string | undefined)[]; buildCmd?: string; otp?: string; packageManager?: PackageManager; packages?: (string | undefined)[]; private?: boolean; registry?: string; safetyCheck?: boolean; tag?: string; token?: string; }; release?: { changelog?: boolean; clean?: boolean; commit?: boolean; gitTag?: boolean; noVerify?: boolean; prComment?: boolean; providerRelease?: boolean; publish?: boolean; push?: boolean; social?: boolean; }; repo?: { domain?: string; provider?: GitProvider; repo?: string; token?: string; }; safetyCheck?: boolean; scopeMap?: {[key: string]: string | undefined; }; signTags?: boolean; social?: { changelogUrl?: string; slack?: { channel?: string; credentials?: { token?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; template?: string; }; twitter?: { credentials?: { accessToken?: ... | ...; accessTokenSecret?: ... | ...; apiKey?: ... | ...; apiKeySecret?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; postMaxLength?: number; template?: string; }; }; templates?: { changelogTitle?: string; commitBody?: string; commitMessage?: string; emptyChangelogContent?: string; slackMessage?: string; tagBody?: string; tagMessage?: string; twitterMessage?: string; }; to?: string; tokens?: { ai?: { claude-code?: { apiKey?: ... | ...; oauthToken?: ... | ...; }; }; github?: string; gitlab?: string; registry?: string; slack?: string; twitter?: { accessToken?: string; accessTokenSecret?: string; apiKey?: string; apiKeySecret?: string; }; }; types?: {[key: string]: false | { semver?: SemverBumpType; title?: string; } | undefined; }; }
overrides.ai?
{ extraGuidelines?: string; fallback?: "raw" | "fail"; language?: string; provider?: "claude-code"; providerRelease?: { enabled?: boolean; }; providers?: { claude-code?: { apiKey?: ... | ...; model?: ... | ...; oauthToken?: ... | ...; }; }; social?: { slack?: { enabled?: ... | ... | ...; }; twitter?: { enabled?: ... | ... | ...; }; }; systemPromptOverrides?: { providerRelease?: string; slack?: string; twitter?: string; }; }
AI-powered changelog and release notes configuration
overrides.ai.extraGuidelines?
string
Extra directives appended to every built-in system prompt.
Example
'Always use emojis in the changelog'overrides.ai.fallback?
"raw" | "fail"
Behavior when the provider call fails.
raw: fall back to the unmodified changelog body.fail: re-throw the error.
Default
'raw'overrides.ai.language?
string
Output language (ISO 639-1 code or plain English name).
Default
'en'overrides.ai.provider?
"claude-code"
AI provider name
Default
'claude-code'overrides.ai.providerRelease?
{ enabled?: boolean; }
Enable AI rewriting for GitHub/GitLab release notes.
overrides.ai.providerRelease.enabled?
boolean
Enable AI for this target
Default
falseoverrides.ai.providers?
{ claude-code?: { apiKey?: ... | ...; model?: ... | ...; oauthToken?: ... | ...; }; }
Provider-specific options, keyed by provider name.
overrides.ai.providers.claude-code?
{ apiKey?: ... | ...; model?: ... | ...; oauthToken?: ... | ...; }
overrides.ai.providers.claude-code.apiKey?
... | ...
Anthropic API key. Fallback env: RELIZY_ANTHROPIC_API_KEY, ANTHROPIC_API_KEY.
overrides.ai.providers.claude-code.model?
... | ...
Model id or alias (e.g. haiku, sonnet, opus, or a versioned id).
Default
'haiku'overrides.ai.providers.claude-code.oauthToken?
... | ...
Claude Code OAuth token. Fallback env: RELIZY_CLAUDE_CODE_OAUTH_TOKEN, CLAUDE_CODE_OAUTH_TOKEN.
overrides.ai.social?
{ slack?: { enabled?: ... | ... | ...; }; twitter?: { enabled?: ... | ... | ...; }; }
Enable AI rewriting for social media posts.
overrides.ai.social.slack?
{ enabled?: ... | ... | ...; }
Slack-specific AI activation
overrides.ai.social.slack.enabled?
... | ... | ...
Enable AI for this target
Default
falseoverrides.ai.social.twitter?
{ enabled?: ... | ... | ...; }
Twitter-specific AI activation
overrides.ai.social.twitter.enabled?
... | ... | ...
Enable AI for this target
Default
falseoverrides.ai.systemPromptOverrides?
{ providerRelease?: string; slack?: string; twitter?: string; }
Full replacement of the built-in system prompts. When set, the extraGuidelines and base prompts are ignored for that target.
overrides.ai.systemPromptOverrides.providerRelease?
string
overrides.ai.systemPromptOverrides.slack?
string
overrides.ai.systemPromptOverrides.twitter?
string
overrides.bump?
{ clean?: boolean; dependencyTypes?: ("dependencies" | "peerDependencies" | "devDependencies" | undefined)[]; preid?: string; type?: ReleaseType; yes?: boolean; }
Bump config
overrides.bump.clean?
boolean
Check if there are any changes to commit before bumping.
Default
trueoverrides.bump.dependencyTypes?
("dependencies" | "peerDependencies" | "devDependencies" | undefined)[]
Include dependencies when bumping.
Default
['dependencies']overrides.bump.preid?
string
Prerelease identifier (e.g. 'beta', 'alpha')
overrides.bump.type?
ReleaseType
Release type (e.g. 'major', 'minor', 'patch', 'prerelease', 'prepatch', 'preminor', 'premajor')
Default
'release'overrides.bump.yes?
boolean
Skip confirmation prompt about bumping packages
Default
trueoverrides.changelog?
{ formatCmd?: string; includeCommitBody?: boolean; rootChangelog?: boolean; }
Changelog config
overrides.changelog.formatCmd?
string
Command to format the changelog (e.g. prettier --write CHANGELOG.md).
overrides.changelog.includeCommitBody?
boolean
Include commit body in the changelog.
Default
trueoverrides.changelog.rootChangelog?
boolean
Generate changelog at root level with all changes
Default
trueoverrides.cwd?
string
Current working directory
Default
process.cwd()overrides.excludeAuthors?
(string | undefined)[]
overrides.from?
string
Start tag
overrides.hideAuthorEmail?
boolean
overrides.hooks?
{ before:bump?: string | { }; before:changelog?: string | { }; before:commit-and-tag?: string | { }; before:provider-release?: string | { }; before:publish?: string | { }; before:push?: string | { }; before:release?: string | { }; before:slack?: string | { }; before:social?: string | { }; before:twitter?: string | { }; error:bump?: string | { }; error:changelog?: string | { }; error:commit-and-tag?: string | { }; error:provider-release?: string | { }; error:publish?: string | { }; error:push?: string | { }; error:release?: string | { }; error:slack?: string | { }; error:social?: string | { }; error:twitter?: string | { }; generate:changelog?: { }; success:bump?: string | { }; success:changelog?: string | { }; success:commit-and-tag?: string | { }; success:provider-release?: string | { }; success:publish?: string | { }; success:push?: string | { }; success:release?: string | { }; success:slack?: string | { }; success:social?: string | { }; success:twitter?: string | { }; }
Hooks config
overrides.hooks.before:bump?
string | { }
overrides.hooks.before:changelog?
string | { }
overrides.hooks.before:commit-and-tag?
string | { }
overrides.hooks.before:provider-release?
string | { }
overrides.hooks.before:publish?
string | { }
overrides.hooks.before:push?
string | { }
overrides.hooks.before:release?
string | { }
overrides.hooks.before:slack?
string | { }
overrides.hooks.before:social?
string | { }
overrides.hooks.before:twitter?
string | { }
overrides.hooks.error:bump?
string | { }
overrides.hooks.error:changelog?
string | { }
overrides.hooks.error:commit-and-tag?
string | { }
overrides.hooks.error:provider-release?
string | { }
overrides.hooks.error:publish?
string | { }
overrides.hooks.error:push?
string | { }
overrides.hooks.error:release?
string | { }
overrides.hooks.error:slack?
string | { }
overrides.hooks.error:social?
string | { }
overrides.hooks.error:twitter?
string | { }
overrides.hooks.generate:changelog?
{ }
overrides.hooks.success:bump?
string | { }
overrides.hooks.success:changelog?
string | { }
overrides.hooks.success:commit-and-tag?
string | { }
overrides.hooks.success:provider-release?
string | { }
overrides.hooks.success:publish?
string | { }
overrides.hooks.success:push?
string | { }
overrides.hooks.success:release?
string | { }
overrides.hooks.success:slack?
string | { }
overrides.hooks.success:social?
string | { }
overrides.hooks.success:twitter?
string | { }
overrides.logLevel?
"error" | "default" | "silent" | "warning" | "normal" | "debug" | "trace" | "verbose"
Set log level
Default
'default'overrides.monorepo?
{ ignorePackageNames?: (string | undefined)[]; includePrivates?: boolean; packages?: (string | undefined)[]; versionMode?: VersionMode; }
Monorepo config
overrides.monorepo.ignorePackageNames?
(string | undefined)[]
Package names to ignore.
Default
[]overrides.monorepo.includePrivates?
boolean
Include private packages (with "private": true in package.json) in bump and changelog operations. Private packages remain excluded from publish, provider-release, and pr-comment regardless of this flag.
Default
falseoverrides.monorepo.packages?
(string | undefined)[]
Glob pattern matching for packages to bump.
overrides.monorepo.versionMode?
Version mode for the monorepo.
overrides.newVersion?
string
overrides.noAuthors?
boolean
overrides.prComment?
{ mode?: PrCommentMode; }
PR comment configuration
overrides.prComment.mode?
PR comment mode
Default
'append'overrides.projectName?
string
Project name Useful for tweet and slack posts
overrides.publish?
{ access?: "public" | "restricted"; args?: (string | undefined)[]; buildCmd?: string; otp?: string; packageManager?: PackageManager; packages?: (string | undefined)[]; private?: boolean; registry?: string; safetyCheck?: boolean; tag?: string; token?: string; }
Publish config
overrides.publish.access?
"public" | "restricted"
NPM access level (e.g. public or restricted)
overrides.publish.args?
(string | undefined)[]
overrides.publish.buildCmd?
string
Command to build your packages before publishing (e.g. pnpm build)
overrides.publish.otp?
string
NPM OTP (e.g. 123456)
overrides.publish.packageManager?
Package manager (e.g. pnpm, npm, yarn or bun)
overrides.publish.packages?
(string | undefined)[]
Glob pattern matching for packages to publish
overrides.publish.private?
boolean
overrides.publish.registry?
string
NPM registry URL (e.g. https://registry.npmjs.org/)
overrides.publish.safetyCheck?
boolean
Skip safety check
Default
trueoverrides.publish.tag?
string
NPM tag (e.g. latest)
overrides.publish.token?
string
NPM token (e.g. 123456) - only supported for pnpm and npm
overrides.release?
{ changelog?: boolean; clean?: boolean; commit?: boolean; gitTag?: boolean; noVerify?: boolean; prComment?: boolean; providerRelease?: boolean; publish?: boolean; push?: boolean; social?: boolean; }
Release config
overrides.release.changelog?
boolean
Generate changelog files (CHANGELOG.md)
Default
trueoverrides.release.clean?
boolean
Determine if the working directory is clean and if it is not clean, exit
Default
falseoverrides.release.commit?
boolean
Commit changes and create tag
Default
trueoverrides.release.gitTag?
boolean
Create tag
Default
trueoverrides.release.noVerify?
boolean
Skip git verification while committing by using --no-verify flag
Default
trueoverrides.release.prComment?
boolean
Post release announcements to social media platforms
Default
falseoverrides.release.providerRelease?
boolean
Publish release to your repository (github or gitlab)
Default
trueoverrides.release.publish?
boolean
Publish release to your registry
Default
trueoverrides.release.push?
boolean
Push changes to your repository (commit and tag(s))
Default
trueoverrides.release.social?
boolean
Post release announcements to social media platforms
Default
falseoverrides.repo?
{ domain?: string; provider?: GitProvider; repo?: string; token?: string; }
Repo config
overrides.repo.domain?
string
Git domain (e.g. github.com)
overrides.repo.provider?
Git provider (e.g. github or gitlab)
Default
'github'overrides.repo.repo?
string
Git repository (e.g. user/repo)
overrides.repo.token?
string
Git token
overrides.safetyCheck?
boolean
Global safety check. The safety check will verify if tokens or others required for release are set (depends on the release options)
Default
trueoverrides.scopeMap?
{[key: string]: string | undefined; }
overrides.signTags?
boolean
overrides.social?
{ changelogUrl?: string; slack?: { channel?: string; credentials?: { token?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; template?: string; }; twitter?: { credentials?: { accessToken?: ... | ...; accessTokenSecret?: ... | ...; apiKey?: ... | ...; apiKeySecret?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; postMaxLength?: number; template?: string; }; }
Social media configuration
overrides.social.changelogUrl?
string
URL to full changelog (e.g., https://example.com/changelog) This URL will be included in social media posts to allow users to view the complete changelog
overrides.social.slack?
{ channel?: string; credentials?: { token?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; template?: string; }
Slack configuration
overrides.social.slack.channel?
string
Slack channel ID or name (e.g., "#releases" or "C1234567890")
overrides.social.slack.credentials?
{ token?: ... | ...; }
Slack credentials (optional - falls back to environment variables)
overrides.social.slack.credentials.token?
... | ...
Slack Bot Token or User OAuth Token Required scopes: chat:write, chat:write.public (for public channels)
overrides.social.slack.enabled?
boolean
Enable Slack posting
Default
falseoverrides.social.slack.onlyStable?
boolean
Skip Slack posting for prerelease versions (alpha, beta, rc, etc.) Only stable versions will be posted to Slack
Default
trueoverrides.social.slack.template?
string
Custom message template Available variables: , , , ,
overrides.social.twitter?
{ credentials?: { accessToken?: ... | ...; accessTokenSecret?: ... | ...; apiKey?: ... | ...; apiKeySecret?: ... | ...; }; enabled?: boolean; onlyStable?: boolean; postMaxLength?: number; template?: string; }
Twitter configuration
overrides.social.twitter.credentials?
{ accessToken?: ... | ...; accessTokenSecret?: ... | ...; apiKey?: ... | ...; apiKeySecret?: ... | ...; }
Twitter credentials (optional - falls back to environment variables)
overrides.social.twitter.credentials.accessToken?
... | ...
Twitter Access Token
overrides.social.twitter.credentials.accessTokenSecret?
... | ...
Twitter Access Token Secret
overrides.social.twitter.credentials.apiKey?
... | ...
Twitter API Key (Consumer Key)
overrides.social.twitter.credentials.apiKeySecret?
... | ...
Twitter API Secret (Consumer Secret)
overrides.social.twitter.enabled?
boolean
Enable Twitter posting
Default
falseoverrides.social.twitter.onlyStable?
boolean
Skip Twitter posting for prerelease versions (alpha, beta, rc, etc.) Only stable versions will be posted to Twitter
Default
trueoverrides.social.twitter.postMaxLength?
number
Maximum length of the tweet
Default
280overrides.social.twitter.template?
string
Custom message template Available variables: , , , ,
Default
'🚀 {{projectName}} {{newVersion}} is out!\n\n{{changelog}}\n\n{{releaseUrl}}\n{{changelogUrl}}'overrides.templates?
{ changelogTitle?: string; commitBody?: string; commitMessage?: string; emptyChangelogContent?: string; slackMessage?: string; tagBody?: string; tagMessage?: string; twitterMessage?: string; }
Templates config
overrides.templates.changelogTitle?
string
Changelog section title template Available variables: , ,
Default
'{{oldVersion}}...{{newVersion}}'overrides.templates.commitBody?
string
Commit message body template. When defined, it is passed as the commit body.
Default in unified/selective modes: undefined (no body). Default in independent mode (when commitMessage and commitBody are not customized): ''.
Same variables as commitMessage.
overrides.templates.commitMessage?
string
Commit message template (title).
Default in unified/selective modes: 'chore(release): bump version to '. Default in independent mode (when not customized): 'chore(release): bump packages'.
Available variables:
— inindependentmode, comma-separated list of bumpedname@version(legacy behavior); otherwise the new version.— number of bumped packages.— comma-separated list of bumped package names.— comma-separated list of bumpedname@version.— version from the rootpackage.json.
overrides.templates.emptyChangelogContent?
string
Empty changelog content
Default
'No relevant changes for this release'overrides.templates.slackMessage?
string
Slack message template (optional - if not provided, uses rich blocks format) Available variables: , , , ,
Default
undefinedoverrides.templates.tagBody?
string
Not used with "independent" version mode
Default
'v{{newVersion}}'
Available variables: {{newVersion}}overrides.templates.tagMessage?
string
Tag message template
Default
'Bump version to {{newVersion}}'
Available variables: {{newVersion}}overrides.templates.twitterMessage?
string
Twitter message template Available variables: , , , ,
Default
'🚀 {{projectName}} {{newVersion}} is out!\n\n{{changelog}}\n\n{{releaseUrl}}\n{{changelogUrl}}'overrides.to?
string
End tag
overrides.tokens?
{ ai?: { claude-code?: { apiKey?: ... | ...; oauthToken?: ... | ...; }; }; github?: string; gitlab?: string; registry?: string; slack?: string; twitter?: { accessToken?: string; accessTokenSecret?: string; apiKey?: string; apiKeySecret?: string; }; }
API tokens configuration
overrides.tokens.ai?
{ claude-code?: { apiKey?: ... | ...; oauthToken?: ... | ...; }; }
AI provider credentials
overrides.tokens.ai.claude-code?
{ apiKey?: ... | ...; oauthToken?: ... | ...; }
overrides.tokens.ai.claude-code.apiKey?
... | ...
overrides.tokens.ai.claude-code.oauthToken?
... | ...
overrides.tokens.github?
string
GitHub token for creating releases Environment variables: GITHUB_TOKEN, GH_TOKEN, RELIZY_GITHUB_TOKEN
overrides.tokens.gitlab?
string
GitLab token for creating releases Environment variables: GITLAB_TOKEN, GITLAB_API_TOKEN, CI_JOB_TOKEN, RELIZY_GITLAB_TOKEN
overrides.tokens.registry?
string
registry token for publishing Environment variables: NPM_TOKEN, RELIZY_NPM_TOKEN, NODE_AUTH_TOKEN
overrides.tokens.slack?
string
Slack bot token for posting messages Environment variables: SLACK_TOKEN, RELIZY_SLACK_TOKEN
overrides.tokens.twitter?
{ accessToken?: string; accessTokenSecret?: string; apiKey?: string; apiKeySecret?: string; }
Twitter API credentials for posting tweets Environment variables: TWITTER_API_KEY, TWITTER_API_KEY_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET Or with RELIZY_ prefix: RELIZY_TWITTER_API_KEY, etc.
overrides.tokens.twitter.accessToken?
string
overrides.tokens.twitter.accessTokenSecret?
string
overrides.tokens.twitter.apiKey?
string
overrides.tokens.twitter.apiKeySecret?
string
overrides.types?
{[key: string]: false | { semver?: SemverBumpType; title?: string; } | undefined; }
Returns
Promise<ResolvedRelizyConfig>