| 124 | } |
| 125 | |
| 126 | export interface BumpyConfig { |
| 127 | baseBranch: string; |
| 128 | access: 'public' | 'restricted'; |
| 129 | /** |
| 130 | * Prerelease channels, keyed by channel name. Each maps a long-lived branch |
| 131 | * to a prerelease line (version suffix + npm dist-tag). Shipped bump files |
| 132 | * are tracked in `.bumpy/<name>/`. Prerelease versions are never committed — |
| 133 | * they are derived from bump files, the registry, and git tags at publish time. |
| 134 | */ |
| 135 | channels: Record<string, ChannelConfig>; |
| 136 | /** |
| 137 | * Snapshot release settings. Snapshots publish the pending release plan transiently |
| 138 | * under a throwaway dist-tag (e.g. for previewing a PR from a private registry) without |
| 139 | * consuming bump files, writing changelogs, committing, or tagging. See `bumpy publish --snapshot`. |
| 140 | */ |
| 141 | snapshot: SnapshotConfig; |
| 142 | /** |
| 143 | * Customize the commit message used when versioning. |
| 144 | * A string starting with "./" is treated as a path to a module that exports |
| 145 | * a function receiving the release plan and returning a message string. |
| 146 | * Any other string is used as a static commit message. |
| 147 | * Omit to use the default: "Version packages\n\npkg@version..." |
| 148 | */ |
| 149 | versionCommitMessage?: string; |
| 150 | changelog: false | string | [string, Record<string, unknown>]; |
| 151 | fixed: string[][]; |
| 152 | linked: string[][]; |
| 153 | /** Glob patterns to filter which changed files count toward marking a package as changed */ |
| 154 | changedFilePatterns: string[]; |
| 155 | /** |
| 156 | * Top-level `package.json` fields whose change alone does NOT mark a package as |
| 157 | * changed (i.e. doesn't require a bump file). When `package.json` is the only changed |
| 158 | * file in a package, bumpy diffs it against the base branch and ignores changes |
| 159 | * confined to these fields. Default: `["devDependencies"]` — dev-only dependency |
| 160 | * updates (e.g. Dependabot) don't affect published output. Exception: a changed |
| 161 | * `devDependencies` entry that matches the package's `releaseTriggeringDevDeps` still |
| 162 | * counts, since it ships in the bundle. |
| 163 | */ |
| 164 | ignoredPackageJsonFields: string[]; |
| 165 | /** Package names/globs to exclude from version management */ |
| 166 | ignore: string[]; |
| 167 | /** Package names/globs to explicitly include (overrides private + ignore) */ |
| 168 | include: string[]; |
| 169 | updateInternalDependencies: 'patch' | 'minor' | 'out-of-range'; |
| 170 | dependencyBumpRules: Partial<Record<DepType, DependencyBumpRule | false>>; |
| 171 | privatePackages: { version: boolean; tag: boolean }; |
| 172 | /** |
| 173 | * Allow per-package custom commands (buildCommand, publishCommand, checkPublished) |
| 174 | * defined in package.json "bumpy" fields. |
| 175 | * Commands defined in the root config's `packages` map are always trusted. |
| 176 | * |
| 177 | * true = allow all packages to define custom commands |
| 178 | * string[] = allow only matching package names/globs |
| 179 | * false = only root-config commands are allowed (default) |
| 180 | */ |
| 181 | allowCustomCommands: boolean | string[]; |
| 182 | packages: Record<string, PackageConfig>; |
| 183 | publish: PublishConfig; |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…