release-please 12.5.0 → 13.0.0-candidate.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +4 -0
  3. package/build/src/bin/release-please.d.ts +55 -11
  4. package/build/src/bin/release-please.js +419 -152
  5. package/build/src/bootstrapper.d.ts +12 -0
  6. package/build/src/bootstrapper.js +60 -0
  7. package/build/src/changelog-notes/default.d.ts +17 -0
  8. package/build/src/changelog-notes/default.js +72 -0
  9. package/build/src/changelog-notes.d.ts +17 -0
  10. package/build/src/{updaters/java/readme.js → changelog-notes.js} +2 -7
  11. package/build/src/commit.d.ts +26 -0
  12. package/build/src/{util/to-conventional-changelog-format.js → commit.js} +97 -2
  13. package/build/src/errors/index.d.ts +0 -5
  14. package/build/src/errors/index.js +1 -10
  15. package/build/src/factory.d.ts +25 -37
  16. package/build/src/factory.js +160 -150
  17. package/build/src/github.d.ts +154 -884
  18. package/build/src/github.js +608 -1036
  19. package/build/src/manifest.d.ts +191 -47
  20. package/build/src/manifest.js +599 -487
  21. package/build/src/plugin.d.ts +20 -0
  22. package/build/src/{plugins/plugin.js → plugin.js} +10 -9
  23. package/build/src/plugins/cargo-workspace.d.ts +48 -18
  24. package/build/src/plugins/cargo-workspace.js +247 -328
  25. package/build/src/plugins/merge.d.ts +11 -0
  26. package/build/src/plugins/merge.js +83 -0
  27. package/build/src/plugins/node-workspace.d.ts +35 -17
  28. package/build/src/plugins/node-workspace.js +234 -271
  29. package/build/src/plugins/workspace.d.ts +102 -0
  30. package/build/src/plugins/workspace.js +170 -0
  31. package/build/src/pull-request.d.ts +10 -0
  32. package/build/src/{updaters/java/pom-xml.js → pull-request.js} +2 -7
  33. package/build/src/release-notes.d.ts +29 -0
  34. package/build/src/release-notes.js +71 -0
  35. package/build/src/release-pull-request.d.ts +13 -0
  36. package/build/src/release-pull-request.js +16 -0
  37. package/build/src/release.d.ts +6 -0
  38. package/build/src/release.js +16 -0
  39. package/build/src/repository.d.ts +5 -0
  40. package/build/src/repository.js +16 -0
  41. package/build/src/strategies/dart.d.ts +8 -0
  42. package/build/src/strategies/dart.js +63 -0
  43. package/build/src/strategies/elixir.d.ts +5 -0
  44. package/build/src/{releasers → strategies}/elixir.js +18 -14
  45. package/build/src/strategies/go-yoshi.d.ts +13 -0
  46. package/build/src/strategies/go-yoshi.js +106 -0
  47. package/build/src/strategies/go.d.ts +5 -0
  48. package/build/src/{releasers → strategies}/go.js +11 -12
  49. package/build/src/strategies/helm.d.ts +8 -0
  50. package/build/src/strategies/helm.js +63 -0
  51. package/build/src/strategies/java-yoshi.d.ts +24 -0
  52. package/build/src/strategies/java-yoshi.js +203 -0
  53. package/build/src/strategies/krm-blueprint.d.ts +7 -0
  54. package/build/src/{releasers → strategies}/krm-blueprint.js +26 -22
  55. package/build/src/strategies/node.d.ts +9 -0
  56. package/build/src/strategies/node.js +82 -0
  57. package/build/src/strategies/ocaml.d.ts +5 -0
  58. package/build/src/{releasers → strategies}/ocaml.js +34 -28
  59. package/build/src/strategies/php-yoshi.d.ts +10 -0
  60. package/build/src/strategies/php-yoshi.js +213 -0
  61. package/build/src/strategies/php.d.ts +6 -0
  62. package/build/src/{releasers → strategies}/php.js +24 -23
  63. package/build/src/strategies/python.d.ts +8 -0
  64. package/build/src/strategies/python.js +117 -0
  65. package/build/src/strategies/ruby-yoshi.d.ts +17 -0
  66. package/build/src/strategies/ruby-yoshi.js +116 -0
  67. package/build/src/strategies/ruby.d.ts +13 -0
  68. package/build/src/{releasers → strategies}/ruby.js +26 -27
  69. package/build/src/strategies/rust.d.ts +20 -0
  70. package/build/src/strategies/rust.js +120 -0
  71. package/build/src/strategies/simple.d.ts +5 -0
  72. package/build/src/{releasers → strategies}/simple.js +18 -14
  73. package/build/src/strategies/terraform-module.d.ts +7 -0
  74. package/build/src/{releasers → strategies}/terraform-module.js +29 -23
  75. package/build/src/strategy.d.ts +100 -0
  76. package/build/src/strategy.js +233 -0
  77. package/build/src/update.d.ts +23 -0
  78. package/build/src/{updaters/update.js → update.js} +1 -1
  79. package/build/src/updaters/changelog.d.ts +7 -10
  80. package/build/src/updaters/changelog.js +3 -9
  81. package/build/src/updaters/changelog.js.map +1 -1
  82. package/build/src/updaters/composite.d.ts +19 -0
  83. package/build/src/updaters/composite.js +42 -0
  84. package/build/src/updaters/dart/pubspec-yaml.d.ts +12 -0
  85. package/build/src/updaters/{pubspec-yaml.js → dart/pubspec-yaml.js} +13 -12
  86. package/build/src/updaters/default.d.ts +21 -0
  87. package/build/src/updaters/{version-txt.js → default.js} +16 -10
  88. package/build/src/updaters/dotnet/csproj.d.ts +12 -0
  89. package/build/src/updaters/{java/google-utils.js → dotnet/csproj.js} +16 -13
  90. package/build/src/updaters/elixir/elixir-mix-exs.d.ts +12 -0
  91. package/build/src/updaters/{elixir-mix-exs.js → elixir/elixir-mix-exs.js} +12 -10
  92. package/build/src/updaters/helm/chart-yaml.d.ts +10 -11
  93. package/build/src/updaters/helm/chart-yaml.js +12 -10
  94. package/build/src/updaters/java/java-update.d.ts +14 -0
  95. package/build/src/updaters/java/{java_update.js → java-update.js} +22 -22
  96. package/build/src/updaters/java/versions-manifest.d.ts +12 -2
  97. package/build/src/updaters/java/versions-manifest.js +20 -4
  98. package/build/src/updaters/krm/krm-blueprint-version.d.ts +10 -11
  99. package/build/src/updaters/krm/krm-blueprint-version.js +13 -12
  100. package/build/src/updaters/node/package-json.d.ts +12 -0
  101. package/build/src/updaters/{package-json.js → node/package-json.js} +14 -16
  102. package/build/src/updaters/node/package-lock-json.d.ts +8 -0
  103. package/build/src/updaters/node/package-lock-json.js +36 -0
  104. package/build/src/updaters/node/samples-package-json.d.ts +23 -0
  105. package/build/src/updaters/{samples-package-json.js → node/samples-package-json.js} +19 -8
  106. package/build/src/updaters/ocaml/dune-project.d.ts +10 -11
  107. package/build/src/updaters/ocaml/dune-project.js +11 -9
  108. package/build/src/updaters/ocaml/esy-json.d.ts +10 -11
  109. package/build/src/updaters/ocaml/esy-json.js +12 -10
  110. package/build/src/updaters/ocaml/opam.d.ts +10 -11
  111. package/build/src/updaters/ocaml/opam.js +11 -9
  112. package/build/src/updaters/php/php-client-version.d.ts +12 -0
  113. package/build/src/updaters/{php-client-version.js → php/php-client-version.js} +10 -9
  114. package/build/src/updaters/php/php-manifest.d.ts +13 -0
  115. package/build/src/updaters/{php-manifest.js → php/php-manifest.js} +17 -15
  116. package/build/src/updaters/php/root-composer-update-packages.d.ts +12 -0
  117. package/build/src/updaters/{root-composer-update-packages.js → php/root-composer-update-packages.js} +17 -16
  118. package/build/src/updaters/python/pyproject-toml.d.ts +10 -11
  119. package/build/src/updaters/python/pyproject-toml.js +13 -11
  120. package/build/src/updaters/python/python-file-with-version.d.ts +7 -11
  121. package/build/src/updaters/python/python-file-with-version.js +7 -8
  122. package/build/src/updaters/python/setup-cfg.d.ts +10 -11
  123. package/build/src/updaters/python/setup-cfg.js +10 -8
  124. package/build/src/updaters/python/setup-py.d.ts +10 -11
  125. package/build/src/updaters/python/setup-py.js +10 -8
  126. package/build/src/updaters/raw-content.d.ts +19 -0
  127. package/build/src/{plugins/index.js → updaters/raw-content.js} +23 -12
  128. package/build/src/updaters/release-please-config.d.ts +8 -0
  129. package/build/src/updaters/release-please-config.js +41 -0
  130. package/build/src/updaters/release-please-manifest.d.ts +2 -11
  131. package/build/src/updaters/release-please-manifest.js +11 -14
  132. package/build/src/updaters/ruby/version-rb.d.ts +12 -0
  133. package/build/src/updaters/{version-rb.js → ruby/version-rb.js} +10 -8
  134. package/build/src/updaters/rust/cargo-lock.d.ts +7 -11
  135. package/build/src/updaters/rust/cargo-lock.js +14 -16
  136. package/build/src/updaters/rust/cargo-toml.d.ts +7 -11
  137. package/build/src/updaters/rust/cargo-toml.js +19 -21
  138. package/build/src/updaters/terraform/module-version.d.ts +10 -11
  139. package/build/src/updaters/terraform/module-version.js +11 -9
  140. package/build/src/updaters/terraform/readme.d.ts +10 -11
  141. package/build/src/updaters/terraform/readme.js +11 -10
  142. package/build/src/updaters/terraform/readme.js.map +1 -1
  143. package/build/src/util/branch-name.d.ts +5 -4
  144. package/build/src/util/branch-name.js +13 -10
  145. package/build/src/{commit-split.d.ts → util/commit-split.d.ts} +2 -4
  146. package/build/src/{commit-split.js → util/commit-split.js} +4 -2
  147. package/build/src/util/indent-commit.d.ts +1 -1
  148. package/build/src/util/logger.d.ts +5 -2
  149. package/build/src/util/logger.js +9 -4
  150. package/build/src/util/pull-request-body.d.ts +20 -0
  151. package/build/src/util/pull-request-body.js +129 -0
  152. package/build/src/util/pull-request-title.d.ts +8 -6
  153. package/build/src/util/pull-request-title.js +20 -6
  154. package/build/src/util/tag-name.d.ts +9 -0
  155. package/build/src/util/tag-name.js +41 -0
  156. package/build/src/{updaters → util}/toml-edit.d.ts +0 -0
  157. package/build/src/{updaters → util}/toml-edit.js +0 -0
  158. package/build/src/version.d.ts +11 -0
  159. package/build/src/version.js +45 -0
  160. package/build/src/versioning-strategies/always-bump-patch.d.ts +7 -0
  161. package/build/src/{updaters/package-lock-json.js → versioning-strategies/always-bump-patch.js} +8 -11
  162. package/build/src/versioning-strategies/default.d.ts +15 -0
  163. package/build/src/versioning-strategies/default.js +67 -0
  164. package/build/src/versioning-strategies/dependency-manifest.d.ts +7 -0
  165. package/build/src/versioning-strategies/dependency-manifest.js +90 -0
  166. package/build/src/versioning-strategies/java-add-snapshot.d.ts +9 -0
  167. package/build/src/versioning-strategies/java-add-snapshot.js +53 -0
  168. package/build/src/versioning-strategies/java-snapshot.d.ts +9 -0
  169. package/build/src/versioning-strategies/java-snapshot.js +67 -0
  170. package/build/src/versioning-strategies/service-pack.d.ts +7 -0
  171. package/build/src/versioning-strategies/service-pack.js +40 -0
  172. package/build/src/versioning-strategy.d.ts +28 -0
  173. package/build/src/versioning-strategy.js +55 -0
  174. package/package.json +9 -8
  175. package/build/src/constants.d.ts +0 -6
  176. package/build/src/constants.js +0 -23
  177. package/build/src/conventional-commits.d.ts +0 -53
  178. package/build/src/conventional-commits.js +0 -167
  179. package/build/src/github-release.d.ts +0 -34
  180. package/build/src/github-release.js +0 -92
  181. package/build/src/graphql-to-commits.d.ts +0 -60
  182. package/build/src/graphql-to-commits.js +0 -112
  183. package/build/src/index.d.ts +0 -94
  184. package/build/src/index.js +0 -32
  185. package/build/src/plugins/index.d.ts +0 -5
  186. package/build/src/plugins/plugin.d.ts +0 -21
  187. package/build/src/release-pr.d.ts +0 -101
  188. package/build/src/release-pr.js +0 -461
  189. package/build/src/releasers/dart.d.ts +0 -9
  190. package/build/src/releasers/dart.js +0 -65
  191. package/build/src/releasers/elixir.d.ts +0 -5
  192. package/build/src/releasers/go-yoshi.d.ts +0 -10
  193. package/build/src/releasers/go-yoshi.js +0 -162
  194. package/build/src/releasers/go.d.ts +0 -6
  195. package/build/src/releasers/helm.d.ts +0 -9
  196. package/build/src/releasers/helm.js +0 -66
  197. package/build/src/releasers/index.d.ts +0 -7
  198. package/build/src/releasers/index.js +0 -76
  199. package/build/src/releasers/java/bump_type.d.ts +0 -4
  200. package/build/src/releasers/java/bump_type.js +0 -38
  201. package/build/src/releasers/java/stability.d.ts +0 -5
  202. package/build/src/releasers/java/stability.js +0 -37
  203. package/build/src/releasers/java/version.d.ts +0 -13
  204. package/build/src/releasers/java/version.js +0 -112
  205. package/build/src/releasers/java-backport.d.ts +0 -9
  206. package/build/src/releasers/java-backport.js +0 -43
  207. package/build/src/releasers/java-bom.d.ts +0 -16
  208. package/build/src/releasers/java-bom.js +0 -83
  209. package/build/src/releasers/java-lts.d.ts +0 -9
  210. package/build/src/releasers/java-lts.js +0 -47
  211. package/build/src/releasers/java-yoshi.d.ts +0 -28
  212. package/build/src/releasers/java-yoshi.js +0 -304
  213. package/build/src/releasers/krm-blueprint.d.ts +0 -6
  214. package/build/src/releasers/node.d.ts +0 -10
  215. package/build/src/releasers/node.js +0 -84
  216. package/build/src/releasers/ocaml.d.ts +0 -5
  217. package/build/src/releasers/php-yoshi.d.ts +0 -5
  218. package/build/src/releasers/php-yoshi.js +0 -191
  219. package/build/src/releasers/php.d.ts +0 -7
  220. package/build/src/releasers/python.d.ts +0 -11
  221. package/build/src/releasers/python.js +0 -127
  222. package/build/src/releasers/ruby-yoshi.d.ts +0 -5
  223. package/build/src/releasers/ruby-yoshi.js +0 -142
  224. package/build/src/releasers/ruby.d.ts +0 -11
  225. package/build/src/releasers/rust.d.ts +0 -30
  226. package/build/src/releasers/rust.js +0 -163
  227. package/build/src/releasers/simple.d.ts +0 -5
  228. package/build/src/releasers/terraform-module.d.ts +0 -6
  229. package/build/src/updaters/elixir-mix-exs.d.ts +0 -13
  230. package/build/src/updaters/java/google-utils.d.ts +0 -13
  231. package/build/src/updaters/java/java_update.d.ts +0 -13
  232. package/build/src/updaters/java/pom-xml.d.ts +0 -3
  233. package/build/src/updaters/java/readme.d.ts +0 -3
  234. package/build/src/updaters/java/readme.js.map +0 -1
  235. package/build/src/updaters/package-json.d.ts +0 -16
  236. package/build/src/updaters/package-lock-json.d.ts +0 -7
  237. package/build/src/updaters/php-client-version.d.ts +0 -13
  238. package/build/src/updaters/php-manifest.d.ts +0 -13
  239. package/build/src/updaters/pubspec-yaml.d.ts +0 -13
  240. package/build/src/updaters/root-composer-update-package.d.ts +0 -13
  241. package/build/src/updaters/root-composer-update-package.js +0 -45
  242. package/build/src/updaters/root-composer-update-packages.d.ts +0 -13
  243. package/build/src/updaters/samples-package-json.d.ts +0 -13
  244. package/build/src/updaters/update.d.ts +0 -20
  245. package/build/src/updaters/version-rb.d.ts +0 -13
  246. package/build/src/updaters/version-txt.d.ts +0 -12
  247. package/build/src/updaters/version.d.ts +0 -13
  248. package/build/src/updaters/version.js +0 -31
  249. package/build/src/util/checkpoint.d.ts +0 -6
  250. package/build/src/util/checkpoint.js +0 -33
  251. package/build/src/util/release-notes.d.ts +0 -7
  252. package/build/src/util/release-notes.js +0 -34
  253. package/build/src/util/to-conventional-changelog-format.d.ts +0 -2
@@ -13,170 +13,180 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.factory = void 0;
16
+ exports.buildPlugin = exports.buildStrategy = exports.getVersioningStrategyTypes = exports.getReleaserTypes = void 0;
17
+ const go_1 = require("./strategies/go");
18
+ const go_yoshi_1 = require("./strategies/go-yoshi");
19
+ const java_yoshi_1 = require("./strategies/java-yoshi");
20
+ const krm_blueprint_1 = require("./strategies/krm-blueprint");
21
+ const ocaml_1 = require("./strategies/ocaml");
22
+ const php_1 = require("./strategies/php");
23
+ const php_yoshi_1 = require("./strategies/php-yoshi");
24
+ const python_1 = require("./strategies/python");
25
+ const ruby_1 = require("./strategies/ruby");
26
+ const ruby_yoshi_1 = require("./strategies/ruby-yoshi");
27
+ const rust_1 = require("./strategies/rust");
28
+ const simple_1 = require("./strategies/simple");
29
+ const terraform_module_1 = require("./strategies/terraform-module");
30
+ const helm_1 = require("./strategies/helm");
31
+ const elixir_1 = require("./strategies/elixir");
32
+ const dart_1 = require("./strategies/dart");
33
+ const node_1 = require("./strategies/node");
34
+ const default_1 = require("./versioning-strategies/default");
35
+ const always_bump_patch_1 = require("./versioning-strategies/always-bump-patch");
36
+ const service_pack_1 = require("./versioning-strategies/service-pack");
37
+ const dependency_manifest_1 = require("./versioning-strategies/dependency-manifest");
38
+ const node_workspace_1 = require("./plugins/node-workspace");
39
+ const cargo_workspace_1 = require("./plugins/cargo-workspace");
17
40
  // Factory shared by GitHub Action and CLI for creating Release PRs
18
41
  // and GitHub Releases:
19
- const release_pr_1 = require("./release-pr");
20
- const github_release_1 = require("./github-release");
21
- const releasers_1 = require("./releasers");
22
- const github_1 = require("./github");
23
- const constants_1 = require("./constants");
24
- const manifest_1 = require("./manifest");
25
- // eslint-disable-next-line @typescript-eslint/no-var-requires
26
- const parseGithubRepoUrl = require('parse-github-repo-url');
27
- function isManifestCmd(cmdOpts) {
28
- const { command, options } = cmdOpts;
29
- return ((command === 'manifest-pr' || command === 'manifest-release') &&
30
- typeof options === 'object');
31
- }
32
- function isGitHubReleaseCmd(cmdOpts) {
33
- const { command, options } = cmdOpts;
34
- return command === 'github-release' && typeof options === 'object';
42
+ // add any new releasers you create to this type as well as the `releasers`
43
+ // object below.
44
+ const allReleaseTypes = [
45
+ 'dart',
46
+ 'elixir',
47
+ 'go',
48
+ 'go-yoshi',
49
+ 'helm',
50
+ 'java-backport',
51
+ 'java-bom',
52
+ 'java-lts',
53
+ 'java-yoshi',
54
+ 'krm-blueprint',
55
+ 'node',
56
+ 'ocaml',
57
+ 'php',
58
+ 'php-yoshi',
59
+ 'python',
60
+ 'ruby',
61
+ 'ruby-yoshi',
62
+ 'rust',
63
+ 'simple',
64
+ 'terraform-module',
65
+ ];
66
+ const releasers = {
67
+ go: options => new go_1.Go(options),
68
+ 'go-yoshi': options => new go_yoshi_1.GoYoshi(options),
69
+ 'krm-blueprint': options => new krm_blueprint_1.KRMBlueprint(options),
70
+ node: options => new node_1.Node(options),
71
+ ocaml: options => new ocaml_1.OCaml(options),
72
+ php: options => new php_1.PHP(options),
73
+ 'php-yoshi': options => new php_yoshi_1.PHPYoshi(options),
74
+ python: options => new python_1.Python(options),
75
+ rust: options => new rust_1.Rust(options),
76
+ simple: options => new simple_1.Simple(options),
77
+ 'terraform-module': options => new terraform_module_1.TerraformModule(options),
78
+ helm: options => new helm_1.Helm(options),
79
+ elixir: options => new elixir_1.Elixir(options),
80
+ dart: options => new dart_1.Dart(options),
81
+ };
82
+ function getReleaserTypes() {
83
+ return allReleaseTypes;
35
84
  }
36
- function isReleasePRCmd(cmdOpts) {
37
- const { command, options } = cmdOpts;
38
- return ((command === 'release-pr' || command === 'latest-tag') &&
39
- typeof options === 'object');
85
+ exports.getReleaserTypes = getReleaserTypes;
86
+ function getVersioningStrategyTypes() {
87
+ return allVersioningTypes;
40
88
  }
41
- function runCommand(command, options) {
42
- const errMsg = `Invalid command(${command}) with options(${JSON.stringify(options)})`;
43
- let result;
44
- const cmdOpts = { command, options };
45
- if (isManifestCmd(cmdOpts)) {
46
- const m = manifest(cmdOpts.options);
47
- if (cmdOpts.command === 'manifest-pr') {
48
- result = exports.factory.call(m, 'pullRequest');
89
+ exports.getVersioningStrategyTypes = getVersioningStrategyTypes;
90
+ async function buildStrategy(options) {
91
+ var _a;
92
+ const targetBranch = (_a = options.targetBranch) !== null && _a !== void 0 ? _a : options.github.repository.defaultBranch;
93
+ const versioningStrategy = buildVersioningStrategy({
94
+ type: options.versioning,
95
+ bumpMinorPreMajor: options.bumpMinorPreMajor,
96
+ bumpPatchForMinorPreMajor: options.bumpPatchForMinorPreMajor,
97
+ });
98
+ const strategyOptions = {
99
+ github: options.github,
100
+ targetBranch,
101
+ path: options.path,
102
+ bumpMinorPreMajor: options.bumpMinorPreMajor,
103
+ bumpPatchForMinorPreMajor: options.bumpPatchForMinorPreMajor,
104
+ component: options.component,
105
+ packageName: options.packageName,
106
+ changelogPath: options.changelogPath,
107
+ changelogSections: options.changelogSections,
108
+ versioningStrategy,
109
+ skipGitHubRelease: options.skipGithubRelease,
110
+ releaseAs: options.releaseAs,
111
+ includeComponentInTag: options.includeComponentInTag,
112
+ };
113
+ switch (options.releaseType) {
114
+ case 'ruby': {
115
+ return new ruby_1.Ruby({
116
+ ...strategyOptions,
117
+ versionFile: options.versionFile,
118
+ });
49
119
  }
50
- else if (cmdOpts.command === 'manifest-release') {
51
- result = exports.factory.call(m, 'githubRelease');
120
+ case 'ruby-yoshi': {
121
+ return new ruby_yoshi_1.RubyYoshi({
122
+ ...strategyOptions,
123
+ versionFile: options.versionFile,
124
+ });
52
125
  }
53
- else {
54
- throw new Error(errMsg);
126
+ case 'java-yoshi': {
127
+ return new java_yoshi_1.JavaYoshi({
128
+ ...strategyOptions,
129
+ extraFiles: options.extraFiles,
130
+ });
55
131
  }
56
- }
57
- else if (isGitHubReleaseCmd(cmdOpts)) {
58
- result = exports.factory.call(githubRelease(cmdOpts.options), 'run');
59
- }
60
- else if (isReleasePRCmd(cmdOpts)) {
61
- const releasePr = releasePR(cmdOpts.options);
62
- if (cmdOpts.command === 'release-pr') {
63
- result = exports.factory.call(releasePr, 'run');
132
+ case 'java-backport': {
133
+ return new java_yoshi_1.JavaYoshi({
134
+ ...strategyOptions,
135
+ extraFiles: options.extraFiles,
136
+ versioningStrategy: new always_bump_patch_1.AlwaysBumpPatch(),
137
+ });
64
138
  }
65
- else if (cmdOpts.command === 'latest-tag') {
66
- result = exports.factory.call(releasePr, 'latestTag');
139
+ case 'java-bom': {
140
+ return new java_yoshi_1.JavaYoshi({
141
+ ...strategyOptions,
142
+ extraFiles: options.extraFiles,
143
+ versioningStrategy: new dependency_manifest_1.DependencyManifest({
144
+ bumpMinorPreMajor: options.bumpMinorPreMajor,
145
+ bumpPatchForMinorPreMajor: options.bumpPatchForMinorPreMajor,
146
+ }),
147
+ });
67
148
  }
68
- else {
69
- throw new Error(errMsg);
149
+ case 'java-lts': {
150
+ return new java_yoshi_1.JavaYoshi({
151
+ ...strategyOptions,
152
+ extraFiles: options.extraFiles,
153
+ versioningStrategy: new service_pack_1.ServicePackVersioningStrategy(),
154
+ });
155
+ }
156
+ default: {
157
+ const builder = releasers[options.releaseType];
158
+ if (builder) {
159
+ return builder(strategyOptions);
160
+ }
161
+ throw new Error(`Unknown release type: ${options.releaseType}`);
70
162
  }
71
163
  }
72
- else {
73
- throw new Error(errMsg);
74
- }
75
- return result;
76
164
  }
77
- function call(instance, method) {
78
- if (!(method in instance)) {
79
- throw new Error(`No such method(${method}) on ${instance.constructor.name}`);
80
- }
81
- let result;
82
- if (instance instanceof manifest_1.Manifest) {
83
- result = instance[method]();
84
- }
85
- else if (instance instanceof release_pr_1.ReleasePR) {
86
- result = instance[method]();
87
- }
88
- else if (instance instanceof github_release_1.GitHubRelease) {
89
- result = instance[method]();
90
- }
91
- else {
92
- throw new Error('Unknown instance.');
165
+ exports.buildStrategy = buildStrategy;
166
+ const allVersioningTypes = [
167
+ 'default',
168
+ 'always-bump-patch',
169
+ 'service-pack',
170
+ ];
171
+ function buildVersioningStrategy(options) {
172
+ switch (options.type) {
173
+ case 'always-bump-patch':
174
+ return new always_bump_patch_1.AlwaysBumpPatch(options);
175
+ case 'service-pack':
176
+ return new service_pack_1.ServicePackVersioningStrategy(options);
177
+ default:
178
+ return new default_1.DefaultVersioningStrategy(options);
93
179
  }
94
- return result;
95
180
  }
96
- function getLabels(label) {
97
- return label ? label.split(',') : constants_1.DEFAULT_LABELS;
98
- }
99
- function getGitHubFactoryOpts(options) {
100
- const { repoUrl, defaultBranch, fork, token, apiUrl, octokitAPIs, ...remaining } = options;
101
- return [
102
- {
103
- repoUrl,
104
- defaultBranch,
105
- fork,
106
- token,
107
- apiUrl,
108
- octokitAPIs,
109
- },
110
- remaining,
111
- ];
112
- }
113
- function manifest(options) {
114
- const [GHFactoryOptions, ManifestFactoryOptions] = getGitHubFactoryOpts(options);
115
- const github = gitHubInstance(GHFactoryOptions);
116
- return new manifest_1.Manifest({ github, ...ManifestFactoryOptions });
117
- }
118
- function githubRelease(options) {
119
- const [GHFactoryOptions, GHRAndRPFactoryOptions] = getGitHubFactoryOpts(options);
120
- const github = gitHubInstance(GHFactoryOptions);
121
- const { releaseType, label, path, packageName, bumpMinorPreMajor, releaseAs, snapshot, monorepoTags, changelogSections, changelogPath, lastPackageVersion, versionFile, ...GHRFactoryOptions } = GHRAndRPFactoryOptions;
122
- const labels = getLabels(label);
123
- const releasePR = new (releasePRClass(releaseType))({
124
- github,
125
- labels,
126
- path,
127
- packageName,
128
- bumpMinorPreMajor,
129
- releaseAs,
130
- snapshot,
131
- monorepoTags,
132
- changelogSections,
133
- changelogPath,
134
- lastPackageVersion,
135
- versionFile,
136
- });
137
- return new github_release_1.GitHubRelease({ github, releasePR, ...GHRFactoryOptions });
138
- }
139
- function releasePR(options) {
140
- const [GHFactoryOptions, RPFactoryOptions] = getGitHubFactoryOpts(options);
141
- const github = gitHubInstance(GHFactoryOptions);
142
- const { releaseType, label, latestTagName, latestTagSha, latestTagVersion, ...RPConstructorOptions } = RPFactoryOptions;
143
- let latestTag = undefined;
144
- if (latestTagName && latestTagSha && latestTagVersion) {
145
- latestTag = {
146
- name: latestTagName,
147
- sha: latestTagSha,
148
- version: latestTagVersion,
149
- };
181
+ function buildPlugin(options) {
182
+ switch (options.type) {
183
+ case 'cargo-workspace':
184
+ return new cargo_workspace_1.CargoWorkspace(options.github, options.targetBranch, options.repositoryConfig, options);
185
+ case 'node-workspace':
186
+ return new node_workspace_1.NodeWorkspace(options.github, options.targetBranch, options.repositoryConfig, options);
187
+ default:
188
+ throw new Error(`Unknown plugin type: ${options.type}`);
150
189
  }
151
- const labels = getLabels(label);
152
- return new (exports.factory.releasePRClass(releaseType))({
153
- github,
154
- labels,
155
- latestTag,
156
- ...RPConstructorOptions,
157
- });
158
- }
159
- function gitHubInstance(options) {
160
- const { repoUrl, ...remaining } = options;
161
- const [owner, repo] = parseGithubRepoUrl(repoUrl);
162
- return new github_1.GitHub({
163
- owner,
164
- repo,
165
- ...remaining,
166
- });
167
190
  }
168
- function releasePRClass(releaseType) {
169
- const releasers = releasers_1.getReleasers();
170
- const releaser = releaseType ? releasers[releaseType] : release_pr_1.ReleasePR;
171
- return releaser;
172
- }
173
- exports.factory = {
174
- gitHubInstance,
175
- githubRelease,
176
- manifest,
177
- releasePR,
178
- releasePRClass,
179
- call,
180
- runCommand,
181
- };
191
+ exports.buildPlugin = buildPlugin;
182
192
  //# sourceMappingURL=factory.js.map