├── .c8rc ├── .eslintignore ├── .eslintrc.json ├── .gitattributes ├── .github ├── .OwlBot.lock.yaml ├── .OwlBot.yaml ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── question.md ├── PULL_REQUEST_TEMPLATE.md ├── auto-approve.yml ├── auto-label.yaml ├── blunderbuss.yml ├── generated-files-bot.yml ├── header-checker-lint.yml ├── release-please.yml ├── release-trigger.yml ├── sync-repo-settings.yaml ├── trusted-contribution.yml └── workflows │ └── ci.yaml ├── .gitignore ├── .jsdoc.js ├── .kokoro ├── .gitattributes ├── common.cfg ├── continuous │ ├── node12 │ │ ├── common.cfg │ │ ├── lint.cfg │ │ ├── samples-test.cfg │ │ ├── system-test.cfg │ │ └── test.cfg │ └── node14 │ │ ├── common.cfg │ │ ├── lint.cfg │ │ ├── samples-test.cfg │ │ ├── system-test.cfg │ │ └── test.cfg ├── docs.sh ├── lint.sh ├── populate-secrets.sh ├── presubmit │ ├── node12 │ │ ├── common.cfg │ │ ├── samples-test.cfg │ │ ├── system-test.cfg │ │ └── test.cfg │ ├── node14 │ │ ├── common.cfg │ │ ├── samples-test.cfg │ │ ├── system-test.cfg │ │ └── test.cfg │ └── windows │ │ ├── common.cfg │ │ └── test.cfg ├── publish.sh ├── release │ ├── docs-devsite.cfg │ ├── docs-devsite.sh │ ├── docs.cfg │ ├── docs.sh │ └── publish.cfg ├── samples-test.sh ├── system-test.sh ├── test.bat ├── test.sh ├── trampoline.sh └── trampoline_v2.sh ├── .mocharc.js ├── .prettierignore ├── .prettierrc.js ├── .release-please-manifest.json ├── .repo-metadata.json ├── .trampolinerc ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── __snapshots__ ├── apis.js ├── app-json.js ├── base.js ├── bootstrapper.js ├── cargo-lock.js ├── cargo-toml.js ├── cargo-workspace.js ├── changelog-json.js ├── changelog.js ├── chart-yaml.js ├── cli.js ├── csproj.js ├── default-changelog-notes.js ├── dotnet-yoshi.js ├── dune-project.js ├── elixir-mix-exs.js ├── esy-json.js ├── gemfile-lock.js ├── generic-json.js ├── generic-toml.js ├── generic-xml.js ├── generic-yaml.js ├── generic.js ├── github-changelog-notes.js ├── github.js ├── go-yoshi.js ├── indent-commit.js ├── java-auth-versions.js ├── java-released.js ├── java-update.js ├── java-yoshi-mono-repo.js ├── krm-blueprint-version.js ├── linked-versions-group-title.js ├── linked-versions-workspace.js ├── linked-versions.js ├── manifest.js ├── maven-workspace.js ├── merge.js ├── metadata.js ├── module-bazel.js ├── module-version.js ├── node-workspace.js ├── node.js ├── opam.js ├── package-json.js ├── package-lock-json.js ├── php-client-version.js ├── php-composer-update-packages.js ├── php-yoshi.js ├── pom-xml.js ├── pubspec-yaml.js ├── pull-request-body.js ├── pull-request-overflow-handler.js ├── pyproject-toml.js ├── python-file-with-version.js ├── python.js ├── r-description.js ├── readme.js ├── root-composer-update-packages.js ├── ruby-yoshi.js ├── rust.js ├── samples-package-json.js ├── separate-pull-requests-workspace.js ├── setup-cfg.js ├── setup-py.js ├── sfdx-project-json.js ├── version-go.js ├── version-manifest.js └── version-rb.js ├── docs ├── cli.md ├── customizing.md ├── design.md ├── java-releases.md ├── java.md ├── manifest-releaser.md └── troubleshooting.md ├── linkinator.config.json ├── owlbot.py ├── package-lock.json ├── package.json ├── release-please-config.json ├── renovate.json ├── schemas ├── config.json └── manifest.json ├── screen.png ├── src ├── bin │ └── release-please.ts ├── bootstrapper.ts ├── changelog-notes.ts ├── changelog-notes │ ├── default.ts │ └── github.ts ├── commit.ts ├── errors │ └── index.ts ├── factories │ ├── changelog-notes-factory.ts │ ├── plugin-factory.ts │ └── versioning-strategy-factory.ts ├── factory.ts ├── github.ts ├── index.ts ├── manifest.ts ├── plugin.ts ├── plugins │ ├── cargo-workspace.ts │ ├── group-priority.ts │ ├── linked-versions.ts │ ├── maven-workspace.ts │ ├── merge.ts │ ├── node-workspace.ts │ ├── sentence-case.ts │ └── workspace.ts ├── pull-request.ts ├── release-pull-request.ts ├── release.ts ├── repository.ts ├── strategies │ ├── base.ts │ ├── bazel.ts │ ├── dart.ts │ ├── dotnet-yoshi.ts │ ├── elixir.ts │ ├── expo.ts │ ├── go-yoshi.ts │ ├── go.ts │ ├── helm.ts │ ├── java-yoshi-mono-repo.ts │ ├── java-yoshi.ts │ ├── java.ts │ ├── krm-blueprint.ts │ ├── maven.ts │ ├── node.ts │ ├── ocaml.ts │ ├── php-yoshi.ts │ ├── php.ts │ ├── python.ts │ ├── r.ts │ ├── ruby-yoshi.ts │ ├── ruby.ts │ ├── rust.ts │ ├── sfdx.ts │ ├── simple.ts │ └── terraform-module.ts ├── strategy.ts ├── update.ts ├── updaters │ ├── base-xml.ts │ ├── bazel │ │ └── module-bazel.ts │ ├── changelog-json.ts │ ├── changelog.ts │ ├── composite.ts │ ├── dart │ │ └── pubspec-yaml.ts │ ├── default.ts │ ├── dotnet │ │ ├── apis.ts │ │ └── csproj.ts │ ├── elixir │ │ └── elixir-mix-exs.ts │ ├── expo │ │ └── app-json.ts │ ├── generic-json.ts │ ├── generic-toml.ts │ ├── generic-xml.ts │ ├── generic-yaml.ts │ ├── generic.ts │ ├── go │ │ └── version-go.ts │ ├── helm │ │ └── chart-yaml.ts │ ├── java │ │ ├── java-released.ts │ │ ├── java-update.ts │ │ ├── pom-xml.ts │ │ └── versions-manifest.ts │ ├── krm │ │ └── krm-blueprint-version.ts │ ├── node │ │ ├── package-json.ts │ │ ├── package-lock-json.ts │ │ └── samples-package-json.ts │ ├── ocaml │ │ ├── dune-project.ts │ │ ├── esy-json.ts │ │ └── opam.ts │ ├── php │ │ ├── php-client-version.ts │ │ └── root-composer-update-packages.ts │ ├── python │ │ ├── pyproject-toml.ts │ │ ├── python-file-with-version.ts │ │ ├── setup-cfg.ts │ │ └── setup-py.ts │ ├── r │ │ ├── description.ts │ │ └── news.ts │ ├── raw-content.ts │ ├── release-please-config.ts │ ├── release-please-manifest.ts │ ├── ruby │ │ ├── common.ts │ │ ├── gemfile-lock.ts │ │ └── version-rb.ts │ ├── rust │ │ ├── cargo-lock.ts │ │ ├── cargo-toml.ts │ │ └── common.ts │ ├── sfdx │ │ └── sfdx-project-json.ts │ └── terraform │ │ ├── metadata-version.ts │ │ ├── module-version.ts │ │ └── readme.ts ├── util │ ├── branch-name.ts │ ├── coerce-option.ts │ ├── commit-exclude.ts │ ├── commit-split.ts │ ├── commit-utils.ts │ ├── filter-commits.ts │ ├── indent-commit.ts │ ├── json-stringify.ts │ ├── logger.ts │ ├── pull-request-body.ts │ ├── pull-request-overflow-handler.ts │ ├── pull-request-title.ts │ ├── signoff-commit-message.ts │ ├── tag-name.ts │ └── toml-edit.ts ├── version.ts ├── versioning-strategies │ ├── always-bump-major.ts │ ├── always-bump-minor.ts │ ├── always-bump-patch.ts │ ├── default.ts │ ├── dependency-manifest.ts │ ├── java-add-snapshot.ts │ ├── java-snapshot.ts │ ├── prerelease.ts │ └── service-pack.ts └── versioning-strategy.ts ├── templates ├── commit.hbs ├── header.hbs └── template.hbs ├── test ├── bootstrapper.ts ├── changelog-notes │ ├── default-changelog-notes.ts │ └── github-changelog-notes.ts ├── cli.ts ├── commits.ts ├── factories │ ├── changelog-notes-factory.ts │ ├── plugin-factory.ts │ └── versioning-strategy-factory.ts ├── factory.ts ├── fixtures │ ├── CHANGELOG-bug-140.md │ ├── CHANGELOG-new.md │ ├── CHANGELOG-old-new.md │ ├── CHANGELOG-old.md │ ├── CHANGELOG-php-yoshi.md │ ├── commit-messages │ │ ├── 1257-breaking-change.txt │ │ ├── breaking-body-content-after.txt │ │ ├── breaking-body.txt │ │ ├── bug-link.txt │ │ ├── dependabot.txt │ │ ├── git-trailers-with-breaking.txt │ │ ├── meta.txt │ │ ├── multi-line-breaking-body-list.txt │ │ ├── multi-line-breaking-body.txt │ │ ├── multiple-commits-single-message.txt │ │ ├── multiple-commits-with-separator.txt │ │ ├── multiple-messages.txt │ │ └── release-as.txt │ ├── commits-php.json │ ├── commits-since-many-files.json │ ├── commits-since-missing-branch.json │ ├── commits-since-no-files.json │ ├── commits-since-page-1.json │ ├── commits-since-page-2.json │ ├── commits-since-rebase.json │ ├── commits-since.json │ ├── commits-with-labels.json │ ├── commits-yoshi-php-monorepo.json │ ├── create-comment-response.json │ ├── github-data-api │ │ ├── 403-too-large-file-response.json │ │ ├── data-api-blobs-successful-response.json │ │ ├── data-api-blobs-successful-response2.json │ │ ├── data-api-trees-successful-response-recursive.json │ │ ├── data-api-trees-successful-response-subdir-pkg-a.json │ │ ├── data-api-trees-successful-response-subdir-pkg-b.json │ │ ├── data-api-trees-successful-response-subdir-pkg.json │ │ ├── data-api-trees-successful-response-truncated.json │ │ └── data-api-trees-successful-response.json │ ├── key.txt │ ├── latest-tag-alternate-branch.json │ ├── latest-tag-extra-pull-requests.json │ ├── latest-tag-monorepo.json │ ├── latest-tag-no-commits.json │ ├── latest-tag-python.json │ ├── latest-tag-renamed.json │ ├── latest-tag-sp-version.json │ ├── latest-tag-stable-branch.json │ ├── latest-tag.json │ ├── list-releases.json │ ├── manifest │ │ ├── config │ │ │ ├── changelog-host.json │ │ │ ├── changelog-path.json │ │ │ ├── changelog-type.json │ │ │ ├── complex-plugins.json │ │ │ ├── config.json │ │ │ ├── draft-pull-request.json │ │ │ ├── exclude-paths.json │ │ │ ├── extra-files-glob.json │ │ │ ├── extra-files.json │ │ │ ├── extra-labels.json │ │ │ ├── group-pr-title-pattern.json │ │ │ ├── group-priority.json │ │ │ ├── include-component-in-tag.json │ │ │ ├── include-v-in-tag.json │ │ │ ├── initial-version.json │ │ │ ├── labels.json │ │ │ ├── maven-workspace-plugins.json │ │ │ ├── node-workspace-plugins.json │ │ │ ├── plugins.json │ │ │ ├── root-release-type.json │ │ │ ├── search-depth.json │ │ │ ├── simple.json │ │ │ ├── tag-separator.json │ │ │ └── versioning.json │ │ ├── repo │ │ │ ├── node │ │ │ │ ├── pkg1 │ │ │ │ │ └── package.json │ │ │ │ └── pkg2 │ │ │ │ │ └── package.json │ │ │ ├── package.json │ │ │ └── python │ │ │ │ ├── setup.cfg │ │ │ │ ├── setup.py │ │ │ │ └── src │ │ │ │ ├── __init__.py │ │ │ │ └── foolib │ │ │ │ ├── __init__.py │ │ │ │ └── version.py │ │ └── versions │ │ │ ├── simple.json │ │ │ └── versions.json │ ├── merged-pull-requests-no-files.json │ ├── merged-pull-requests.json │ ├── plugins │ │ ├── cargo-workspace │ │ │ ├── Cargo.lock │ │ │ ├── Cargo.toml │ │ │ └── packages │ │ │ │ ├── rustA │ │ │ │ └── Cargo.toml │ │ │ │ ├── rustB │ │ │ │ └── Cargo.toml │ │ │ │ ├── rustC │ │ │ │ └── Cargo.toml │ │ │ │ ├── rustD │ │ │ │ └── Cargo.toml │ │ │ │ └── rustE │ │ │ │ └── Cargo.toml │ │ ├── maven-workspace │ │ │ ├── bom │ │ │ │ └── pom.xml │ │ │ ├── maven1 │ │ │ │ └── pom.xml │ │ │ ├── maven2 │ │ │ │ └── pom.xml │ │ │ ├── maven3 │ │ │ │ └── pom.xml │ │ │ ├── maven4 │ │ │ │ └── pom.xml │ │ │ ├── multi1 │ │ │ │ ├── bom │ │ │ │ │ └── pom.xml │ │ │ │ ├── pom.xml │ │ │ │ ├── primary │ │ │ │ │ └── pom.xml │ │ │ │ ├── sub1 │ │ │ │ │ └── pom.xml │ │ │ │ └── sub2 │ │ │ │ │ └── pom.xml │ │ │ └── multi2 │ │ │ │ ├── bom │ │ │ │ └── pom.xml │ │ │ │ ├── pom.xml │ │ │ │ ├── primary │ │ │ │ └── pom.xml │ │ │ │ ├── sub1 │ │ │ │ └── pom.xml │ │ │ │ └── sub2 │ │ │ │ └── pom.xml │ │ └── node-workspace │ │ │ ├── node1 │ │ │ └── package.json │ │ │ ├── node2 │ │ │ └── package.json │ │ │ ├── node3 │ │ │ └── package.json │ │ │ ├── node4 │ │ │ └── package.json │ │ │ ├── node5 │ │ │ └── package.json │ │ │ ├── package.json │ │ │ └── plugin1 │ │ │ └── package.json │ ├── pojos │ │ ├── commits-fix-scoped.json │ │ ├── commits-fix.json │ │ └── commits-release-as-scoped.json │ ├── pom-file-search-with-prefix.json │ ├── pom-file-search.json │ ├── release-notes │ │ ├── grouped.txt │ │ ├── initial-version.txt │ │ ├── legacy-php-yoshi.txt │ │ ├── mixed-componentless-manifest.txt │ │ ├── multiple-with-root.txt │ │ ├── multiple.txt │ │ ├── overflow.txt │ │ ├── single-manifest-pre-major.txt │ │ ├── single-manifest-prerelease.txt │ │ ├── single-manifest.txt │ │ ├── single-prerelease.txt │ │ └── single.txt │ ├── releases.json │ ├── repo-get-1.json │ ├── repo-get-2.json │ └── strategies │ │ ├── dart │ │ └── pubspec.yaml │ │ ├── dotnet-yoshi │ │ └── apis.json │ │ ├── elixir │ │ └── mix.exs │ │ ├── expo │ │ └── package.json │ │ ├── helm │ │ └── Chart.yaml │ │ ├── java-yoshi │ │ ├── .repo-metadata.json │ │ ├── changelog.json │ │ ├── versions-released.txt │ │ ├── versions-with-beta-artifacts.txt │ │ └── versions.txt │ │ ├── krm-blueprint │ │ └── nested-pkg │ │ │ ├── nested │ │ │ ├── nested-project.yaml │ │ │ └── nonKRM.yaml │ │ │ ├── no-attrib-bucket.yaml │ │ │ └── project.yaml │ │ ├── node │ │ ├── changelog.json │ │ ├── commits.json │ │ ├── npm-shrinkwrap.json │ │ └── package.json │ │ ├── ocaml │ │ ├── esy.json │ │ ├── other.json │ │ ├── sample.opam │ │ └── sample.opam.locked │ │ ├── python │ │ ├── changelog.json │ │ └── setup.py │ │ ├── rust-workspace │ │ ├── Cargo-crate1.toml │ │ ├── Cargo-crate2.toml │ │ ├── Cargo-workspace.toml │ │ └── Cargo.lock │ │ ├── rust │ │ ├── Cargo.lock │ │ └── Cargo.toml │ │ └── sfdx │ │ └── sfdx-project.json ├── github.ts ├── helpers.ts ├── manifest.ts ├── plugins │ ├── cargo-workspace.ts │ ├── compatibility │ │ ├── linked-versions-group-title.ts │ │ ├── linked-versions-workspace.ts │ │ └── separate-pull-requests-workspace.ts │ ├── group-priority.ts │ ├── linked-versions.ts │ ├── maven-workspace.ts │ ├── merge.ts │ ├── node-workspace.ts │ └── sentence-case.ts ├── schemas.ts ├── strategies │ ├── base.ts │ ├── bazel.ts │ ├── dart.ts │ ├── dotnet-yoshi.ts │ ├── elixir.ts │ ├── expo.ts │ ├── go-yoshi.ts │ ├── go.ts │ ├── helm.ts │ ├── java-yoshi-mono-repo.ts │ ├── java-yoshi.ts │ ├── java.ts │ ├── krm-blueprint.ts │ ├── maven.ts │ ├── node.ts │ ├── ocaml.ts │ ├── php-yoshi.ts │ ├── php.ts │ ├── python.ts │ ├── r.ts │ ├── ruby-yoshi.ts │ ├── ruby.ts │ ├── rust.ts │ ├── sfdx.ts │ ├── simple.ts │ └── terraform-module.ts ├── updaters │ ├── cargo-lock.ts │ ├── cargo-toml.ts │ ├── changelog-json.ts │ ├── changelog.ts │ ├── chart-yaml.ts │ ├── composite.ts │ ├── dotnet │ │ ├── apis.ts │ │ └── csproj.ts │ ├── dune-project.ts │ ├── elixir-mix-exs.ts │ ├── esy-json.ts │ ├── expo │ │ └── app-json.ts │ ├── fixtures │ │ ├── CHANGELOG-dotnet.md │ │ ├── CHANGELOG-fix.md │ │ ├── CHANGELOG-non-conforming.md │ │ ├── CHANGELOG-ruby.md │ │ ├── CHANGELOG.md │ │ ├── Cargo-invalid.lock │ │ ├── Cargo-workspace.toml │ │ ├── Cargo.lock │ │ ├── Cargo.toml │ │ ├── Foo.csproj │ │ ├── Gemfile.lock │ │ ├── MODULE-inline.bazel │ │ ├── MODULE-missing.bazel │ │ ├── MODULE-order.bazel │ │ ├── MODULE.bazel │ │ ├── Prerelease.csproj │ │ ├── README.md │ │ ├── ReleasedVersion.java │ │ ├── Version.java │ │ ├── __init__.py │ │ ├── composer-update-package.json │ │ ├── composer-update-packages.json │ │ ├── dotnet │ │ │ ├── SecurityCenter.V1.csproj │ │ │ └── apis.json │ │ ├── dune-project │ │ ├── esy.json │ │ ├── expo │ │ │ └── app.json │ │ ├── go │ │ │ └── version.go │ │ ├── helm │ │ │ └── Chart.yaml │ │ ├── java-auth-readme.md │ │ ├── java-auth-versions.txt │ │ ├── java-multiple-versions-readme.md │ │ ├── java-replacements-test.txt │ │ ├── krm │ │ │ ├── multiKRMwithFn.yaml │ │ │ └── simpleKRM.yaml │ │ ├── metadata.yaml │ │ ├── mix-attribute.exs │ │ ├── mix.exs │ │ ├── package-lock-v1.json │ │ ├── package-lock-v2.json │ │ ├── package-lock-v3-workspace.json │ │ ├── package-lock-v3.json │ │ ├── package-with-dependencies.json │ │ ├── package-with-protocol-dependencies.json │ │ ├── package.json │ │ ├── php │ │ │ ├── ServiceBuilder.php │ │ │ └── Version.php │ │ ├── pom-java-lts-snapshot.xml │ │ ├── pom-multiple-versions.xml │ │ ├── pom-submodule.xml │ │ ├── pom-trailing-newline.xml │ │ ├── pom-with-dependencies.xml │ │ ├── pom.xml │ │ ├── project │ │ │ └── __init__.py │ │ ├── pubspec.yaml │ │ ├── pubspec_with_build_no.yaml │ │ ├── pubspec_with_build_no_bad.yaml │ │ ├── pyproject-poetry.toml │ │ ├── pyproject-project.toml │ │ ├── pyproject.toml │ │ ├── r │ │ │ └── DESCRIPTION │ │ ├── renovate-shared-preset.json │ │ ├── sample.opam │ │ ├── samples-package-json-no-dep.json │ │ ├── samples-package.json │ │ ├── setup-big-version.cfg │ │ ├── setup.cfg │ │ ├── setup.py │ │ ├── sfdx-project.json │ │ ├── src │ │ │ └── project │ │ │ │ └── __init__.py │ │ ├── toml │ │ │ ├── invalid.txt │ │ │ └── v1.0.0.toml │ │ ├── version-with-long-patch.py │ │ ├── version-with-long-patch.rb │ │ ├── version-with-prerelease.rb │ │ ├── version.py │ │ ├── version.rb │ │ ├── versions-double-snapshot.txt │ │ ├── versions-release.txt │ │ ├── versions-suffix-with-snapshot.txt │ │ ├── versions-suffix-without-snapshot.txt │ │ ├── versions.tf │ │ ├── versions.txt │ │ └── yaml │ │ │ ├── invalid.txt │ │ │ └── multi.yaml │ ├── gemfile-lock.ts │ ├── generic-json.ts │ ├── generic-toml.ts │ ├── generic-xml.ts │ ├── generic-yaml.ts │ ├── generic.ts │ ├── java-auth-versions.ts │ ├── java-released.ts │ ├── java-update.ts │ ├── krm-blueprint-version.ts │ ├── metadata.ts │ ├── module-bazel.ts │ ├── module-version.ts │ ├── opam.ts │ ├── package-json.ts │ ├── package-lock-json.ts │ ├── php-client-version.ts │ ├── php-composer-update-packages.ts │ ├── pom-xml.ts │ ├── pubspec-yaml.ts │ ├── pyproject-toml.ts │ ├── python-file-with-version.ts │ ├── r-description.ts │ ├── readme.ts │ ├── root-composer-update-packages.ts │ ├── ruby │ │ └── common.ts │ ├── samples-package-json.ts │ ├── setup-cfg.ts │ ├── setup-py.ts │ ├── sfdx-project-json.ts │ ├── version-go.ts │ ├── version-manifest.ts │ └── version-rb.ts ├── util │ ├── branch-name.ts │ ├── coerce-option.ts │ ├── commit-exclude.ts │ ├── commit-split.ts │ ├── filter-commits.ts │ ├── indent-commit.ts │ ├── pull-request-body.ts │ ├── pull-request-overflow-handler.ts │ ├── pull-request-title.ts │ ├── signoff-commit-message.ts │ └── tag-name.ts ├── version.ts └── versioning-strategies │ ├── always-bump-major.ts │ ├── always-bump-minor.ts │ ├── default.ts │ ├── dependency-manifest.ts │ ├── java-add-snapshot.ts │ ├── java.ts │ └── prerelease.ts ├── tsconfig.json └── typings ├── config-chain.d.ts └── iarna__toml.d.ts /.c8rc: -------------------------------------------------------------------------------- 1 | { 2 | "report-dir": "./.coverage", 3 | "reporter": ["text", "lcov"], 4 | "exclude": [ 5 | "**/*-test", 6 | "**/.coverage", 7 | "**/apis", 8 | "**/benchmark", 9 | "**/docs", 10 | "**/samples", 11 | "**/scripts", 12 | "**/src/**/v*/**/*.js", 13 | "**/test", 14 | ".jsdoc.js", 15 | "**/.jsdoc.js", 16 | "karma.conf.js", 17 | "webpack-tests.config.js", 18 | "webpack.config.js" 19 | ] 20 | } 21 | 22 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/node_modules 2 | **/coverage 3 | test/fixtures 4 | build/ 5 | docs/ 6 | protos/ 7 | __snapshots__/ 8 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/gts", 3 | "rules": { 4 | "@typescript-eslint/no-unused-vars": [ 5 | "error", 6 | {"argsIgnorePattern": "^_", "varsIgnorePattern": "^_$"} 7 | ] 8 | }, 9 | "root": true 10 | } 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.ts text eol=lf 2 | *.js text eol=lf 3 | protos/* linguist-generated 4 | **/api-extractor.json linguist-language=JSON-with-Comments 5 | -------------------------------------------------------------------------------- /.github/.OwlBot.lock.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2023 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | docker: 15 | image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest 16 | digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a 17 | # created: 2023-11-15T20:00:24.246072277Z 18 | -------------------------------------------------------------------------------- /.github/.OwlBot.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | docker: 15 | image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest 16 | 17 | 18 | begin-after-commit-hash: 397c0bfd367a2427104f988d5329bc117caafd95 19 | 20 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Code owners file. 2 | # This file controls who is tagged for review for any given pull request. 3 | # 4 | # For syntax help see: 5 | # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax 6 | 7 | 8 | # The yoshi-nodejs team is the default owner for nodejs repositories. 9 | * @googleapis/yoshi-nodejs @googleapis/github-automation 10 | 11 | # The github automation team is the default owner for the auto-approve file. 12 | .github/auto-approve.yml @googleapis/github-automation 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | labels: 'type: bug, priority: p3' 5 | --- 6 | 7 | Thanks for stopping by to let us know something could be better! 8 | 9 | Please provide the following details. 10 | 11 | #### Environment details 12 | 13 | - OS: 14 | - Node.js version: 15 | - npm version: 16 | - `release-please` version: 17 | 18 | #### Steps to reproduce 19 | 20 | 1. ? 21 | 2. ? 22 | 23 | Making sure to follow these steps will guarantee the quickest resolution possible. 24 | 25 | Thanks! 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this library 4 | labels: 'type: feature request, priority: p3' 5 | --- 6 | 7 | Thanks for stopping by to let us know something could be better! 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | **Describe the solution you'd like** 12 | A clear and concise description of what you want to happen. 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | **Additional context** 16 | Add any other context or screenshots about the feature request here. 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: Ask a question 4 | labels: 'type: question, priority: p3' 5 | --- 6 | 7 | Thanks for stopping by to ask us a question! Please make sure to include: 8 | - What you're trying to do 9 | - What code you've already tried 10 | - Any error messages you're getting 11 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: 2 | - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/release-please/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea 3 | - [ ] Ensure the tests and linter pass 4 | - [ ] Code coverage does not decrease (if any source code was changed) 5 | - [ ] Appropriate docs were updated (if necessary) 6 | 7 | Fixes # 🦕 8 | -------------------------------------------------------------------------------- /.github/auto-approve.yml: -------------------------------------------------------------------------------- 1 | processes: 2 | - "NodeDependency" 3 | - "OwlBotTemplateChanges" 4 | -------------------------------------------------------------------------------- /.github/auto-label.yaml: -------------------------------------------------------------------------------- 1 | requestsize: 2 | enabled: true 3 | -------------------------------------------------------------------------------- /.github/blunderbuss.yml: -------------------------------------------------------------------------------- 1 | assign_issues: 2 | - chingor13 3 | assign_prs: 4 | - chingor13 5 | -------------------------------------------------------------------------------- /.github/generated-files-bot.yml: -------------------------------------------------------------------------------- 1 | generatedFiles: 2 | - path: '.kokoro/**' 3 | message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' 4 | - path: '.github/CODEOWNERS' 5 | message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' 6 | ignoreAuthors: 7 | - 'gcf-owl-bot[bot]' 8 | - 'yoshi-automation' 9 | -------------------------------------------------------------------------------- /.github/header-checker-lint.yml: -------------------------------------------------------------------------------- 1 | ignoreFiles: 2 | - '__snapshots__/**/*.js' -------------------------------------------------------------------------------- /.github/release-please.yml: -------------------------------------------------------------------------------- 1 | handleGHRelease: true 2 | manifest: true 3 | branches: 4 | - handleGHRelease: true 5 | releaseType: node 6 | branch: 12.x 7 | -------------------------------------------------------------------------------- /.github/release-trigger.yml: -------------------------------------------------------------------------------- 1 | enabled: true 2 | multiScmName: release-please 3 | -------------------------------------------------------------------------------- /.github/sync-repo-settings.yaml: -------------------------------------------------------------------------------- 1 | rebaseMergeAllowed: true 2 | squashMergeAllowed: true 3 | mergeCommitAllowed: false 4 | branchProtectionRules: 5 | - pattern: main 6 | isAdminEnforced: false 7 | requiredApprovingReviewCount: 1 8 | requiresCodeOwnerReviews: true 9 | requiresStrictStatusChecks: true 10 | requiredStatusCheckContexts: 11 | - cla/google 12 | - docs 13 | - lint 14 | - test (18) 15 | - windows 16 | - pattern: 12.x 17 | isAdminEnforced: false 18 | requiredApprovingReviewCount: 1 19 | requiresCodeOwnerReviews: true 20 | requiresStrictStatusChecks: true 21 | requiredStatusCheckContexts: 22 | - cla/google 23 | - docs 24 | - lint 25 | - test (12) 26 | - test (14) 27 | - test (15) 28 | - windows 29 | permissionRules: 30 | - team: yoshi-admins 31 | permission: admin 32 | - team: yoshi-nodejs-admins 33 | permission: admin 34 | - team: yoshi-nodejs 35 | permission: push 36 | -------------------------------------------------------------------------------- /.github/trusted-contribution.yml: -------------------------------------------------------------------------------- 1 | trustedContributors: [] 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .DS_Store 4 | build/ 5 | system-test/fixtures/gh/* 6 | .coverage 7 | __pycache__ 8 | package-lock.json 9 | debug.sh 10 | .idea/ 11 | -------------------------------------------------------------------------------- /.jsdoc.js: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | // 15 | 16 | 'use strict'; 17 | 18 | module.exports = { 19 | opts: { 20 | readme: './README.md', 21 | package: './package.json', 22 | template: './node_modules/jsdoc-fresh', 23 | recurse: true, 24 | verbose: true, 25 | destination: './docs/' 26 | }, 27 | plugins: [ 28 | 'plugins/markdown', 29 | 'jsdoc-region-tag' 30 | ], 31 | source: { 32 | excludePattern: '(^|\\/|\\\\)[._]', 33 | include: [ 34 | 'src' 35 | ], 36 | includePattern: '\\.js$' 37 | }, 38 | templates: { 39 | copyright: 'Copyright 2019 Google, LLC.', 40 | includeDate: false, 41 | sourceFiles: false, 42 | systemName: 'release-please', 43 | theme: 'lumen', 44 | default: { 45 | "outputSourceFiles": false 46 | } 47 | }, 48 | markdown: { 49 | idInHeadings: true 50 | } 51 | }; 52 | -------------------------------------------------------------------------------- /.kokoro/.gitattributes: -------------------------------------------------------------------------------- 1 | * linguist-generated=true 2 | -------------------------------------------------------------------------------- /.kokoro/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | # Build logs will be here 4 | action { 5 | define_artifacts { 6 | regex: "**/*sponge_log.xml" 7 | } 8 | } 9 | 10 | # Download trampoline resources. 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 12 | 13 | # Use the trampoline script to run in docker. 14 | build_file: "release-please/.kokoro/trampoline_v2.sh" 15 | 16 | # Configure the docker image for kokoro-trampoline. 17 | env_vars: { 18 | key: "TRAMPOLINE_IMAGE" 19 | value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" 20 | } 21 | env_vars: { 22 | key: "TRAMPOLINE_BUILD_FILE" 23 | value: "github/release-please/.kokoro/test.sh" 24 | } 25 | -------------------------------------------------------------------------------- /.kokoro/continuous/node12/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | # Build logs will be here 4 | action { 5 | define_artifacts { 6 | regex: "**/*sponge_log.xml" 7 | } 8 | } 9 | 10 | # Download trampoline resources. 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 12 | 13 | # Use the trampoline script to run in docker. 14 | build_file: "release-please/.kokoro/trampoline_v2.sh" 15 | 16 | # Configure the docker image for kokoro-trampoline. 17 | env_vars: { 18 | key: "TRAMPOLINE_IMAGE" 19 | value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" 20 | } 21 | env_vars: { 22 | key: "TRAMPOLINE_BUILD_FILE" 23 | value: "github/release-please/.kokoro/test.sh" 24 | } 25 | -------------------------------------------------------------------------------- /.kokoro/continuous/node12/lint.cfg: -------------------------------------------------------------------------------- 1 | env_vars: { 2 | key: "TRAMPOLINE_BUILD_FILE" 3 | value: "github/release-please/.kokoro/lint.sh" 4 | } 5 | -------------------------------------------------------------------------------- /.kokoro/continuous/node12/samples-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/samples-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/continuous/node12/system-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/system-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/continuous/node12/test.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googleapis/release-please/422df5a6a9d44a52c6c682563d1795b8fd246215/.kokoro/continuous/node12/test.cfg -------------------------------------------------------------------------------- /.kokoro/continuous/node14/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | # Build logs will be here 4 | action { 5 | define_artifacts { 6 | regex: "**/*sponge_log.xml" 7 | } 8 | } 9 | 10 | # Download trampoline resources. 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 12 | 13 | # Use the trampoline script to run in docker. 14 | build_file: "release-please/.kokoro/trampoline_v2.sh" 15 | 16 | # Configure the docker image for kokoro-trampoline. 17 | env_vars: { 18 | key: "TRAMPOLINE_IMAGE" 19 | value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" 20 | } 21 | env_vars: { 22 | key: "TRAMPOLINE_BUILD_FILE" 23 | value: "github/release-please/.kokoro/test.sh" 24 | } 25 | -------------------------------------------------------------------------------- /.kokoro/continuous/node14/lint.cfg: -------------------------------------------------------------------------------- 1 | env_vars: { 2 | key: "TRAMPOLINE_BUILD_FILE" 3 | value: "github/release-please/.kokoro/lint.sh" 4 | } 5 | -------------------------------------------------------------------------------- /.kokoro/continuous/node14/samples-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/samples-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/continuous/node14/system-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/system-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/continuous/node14/test.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googleapis/release-please/422df5a6a9d44a52c6c682563d1795b8fd246215/.kokoro/continuous/node14/test.cfg -------------------------------------------------------------------------------- /.kokoro/docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright 2018 Google LLC 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # https://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -eo pipefail 18 | 19 | export NPM_CONFIG_PREFIX=${HOME}/.npm-global 20 | 21 | cd $(dirname $0)/.. 22 | 23 | npm install 24 | 25 | npm run docs-test 26 | -------------------------------------------------------------------------------- /.kokoro/lint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright 2018 Google LLC 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # https://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -eo pipefail 18 | 19 | export NPM_CONFIG_PREFIX=${HOME}/.npm-global 20 | 21 | cd $(dirname $0)/.. 22 | 23 | npm install 24 | 25 | # Install and link samples 26 | if [ -f samples/package.json ]; then 27 | cd samples/ 28 | npm link ../ 29 | npm install 30 | cd .. 31 | fi 32 | 33 | npm run lint 34 | -------------------------------------------------------------------------------- /.kokoro/presubmit/node12/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | # Build logs will be here 4 | action { 5 | define_artifacts { 6 | regex: "**/*sponge_log.xml" 7 | } 8 | } 9 | 10 | # Download trampoline resources. 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 12 | 13 | # Use the trampoline script to run in docker. 14 | build_file: "release-please/.kokoro/trampoline_v2.sh" 15 | 16 | # Configure the docker image for kokoro-trampoline. 17 | env_vars: { 18 | key: "TRAMPOLINE_IMAGE" 19 | value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" 20 | } 21 | env_vars: { 22 | key: "TRAMPOLINE_BUILD_FILE" 23 | value: "github/release-please/.kokoro/test.sh" 24 | } 25 | -------------------------------------------------------------------------------- /.kokoro/presubmit/node12/samples-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/samples-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/presubmit/node12/system-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/system-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/presubmit/node12/test.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googleapis/release-please/422df5a6a9d44a52c6c682563d1795b8fd246215/.kokoro/presubmit/node12/test.cfg -------------------------------------------------------------------------------- /.kokoro/presubmit/node14/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | # Build logs will be here 4 | action { 5 | define_artifacts { 6 | regex: "**/*sponge_log.xml" 7 | } 8 | } 9 | 10 | # Download trampoline resources. 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 12 | 13 | # Use the trampoline script to run in docker. 14 | build_file: "release-please/.kokoro/trampoline_v2.sh" 15 | 16 | # Configure the docker image for kokoro-trampoline. 17 | env_vars: { 18 | key: "TRAMPOLINE_IMAGE" 19 | value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" 20 | } 21 | env_vars: { 22 | key: "TRAMPOLINE_BUILD_FILE" 23 | value: "github/release-please/.kokoro/test.sh" 24 | } 25 | -------------------------------------------------------------------------------- /.kokoro/presubmit/node14/samples-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/samples-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/presubmit/node14/system-test.cfg: -------------------------------------------------------------------------------- 1 | # Download resources for system tests (service account key, etc.) 2 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" 3 | 4 | env_vars: { 5 | key: "TRAMPOLINE_BUILD_FILE" 6 | value: "github/release-please/.kokoro/system-test.sh" 7 | } 8 | 9 | env_vars: { 10 | key: "SECRET_MANAGER_KEYS" 11 | value: "long-door-651-kokoro-system-test-service-account" 12 | } -------------------------------------------------------------------------------- /.kokoro/presubmit/node14/test.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googleapis/release-please/422df5a6a9d44a52c6c682563d1795b8fd246215/.kokoro/presubmit/node14/test.cfg -------------------------------------------------------------------------------- /.kokoro/presubmit/windows/common.cfg: -------------------------------------------------------------------------------- 1 | # Format: //devtools/kokoro/config/proto/build.proto 2 | 3 | -------------------------------------------------------------------------------- /.kokoro/presubmit/windows/test.cfg: -------------------------------------------------------------------------------- 1 | # Use the test file directly 2 | build_file: "release-please/.kokoro/test.bat" 3 | -------------------------------------------------------------------------------- /.kokoro/release/docs-devsite.cfg: -------------------------------------------------------------------------------- 1 | # service account used to publish up-to-date docs. 2 | before_action { 3 | fetch_keystore { 4 | keystore_resource { 5 | keystore_config_id: 73713 6 | keyname: "docuploader_service_account" 7 | } 8 | } 9 | } 10 | 11 | # doc publications use a Python image. 12 | env_vars: { 13 | key: "TRAMPOLINE_IMAGE" 14 | value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" 15 | } 16 | 17 | # Download trampoline resources. 18 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 19 | 20 | # Use the trampoline script to run in docker. 21 | build_file: "release-please/.kokoro/trampoline_v2.sh" 22 | 23 | env_vars: { 24 | key: "TRAMPOLINE_BUILD_FILE" 25 | value: "github/release-please/.kokoro/release/docs-devsite.sh" 26 | } 27 | -------------------------------------------------------------------------------- /.kokoro/release/docs-devsite.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright 2021 Google LLC 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # https://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -eo pipefail 18 | 19 | if [[ -z "$CREDENTIALS" ]]; then 20 | # if CREDENTIALS are explicitly set, assume we're testing locally 21 | # and don't set NPM_CONFIG_PREFIX. 22 | export NPM_CONFIG_PREFIX=${HOME}/.npm-global 23 | export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin" 24 | cd $(dirname $0)/../.. 25 | fi 26 | 27 | npm install 28 | npm install --no-save @google-cloud/cloud-rad@^0.4.0 29 | # publish docs to devsite 30 | npx @google-cloud/cloud-rad . cloud-rad 31 | -------------------------------------------------------------------------------- /.kokoro/release/docs.cfg: -------------------------------------------------------------------------------- 1 | # service account used to publish up-to-date docs. 2 | before_action { 3 | fetch_keystore { 4 | keystore_resource { 5 | keystore_config_id: 73713 6 | keyname: "docuploader_service_account" 7 | } 8 | } 9 | } 10 | 11 | # doc publications use a Python image. 12 | env_vars: { 13 | key: "TRAMPOLINE_IMAGE" 14 | value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" 15 | } 16 | 17 | # Download trampoline resources. 18 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" 19 | 20 | # Use the trampoline script to run in docker. 21 | build_file: "release-please/.kokoro/trampoline_v2.sh" 22 | 23 | env_vars: { 24 | key: "TRAMPOLINE_BUILD_FILE" 25 | value: "github/release-please/.kokoro/release/docs.sh" 26 | } 27 | -------------------------------------------------------------------------------- /.kokoro/test.bat: -------------------------------------------------------------------------------- 1 | @rem Copyright 2018 Google LLC. All rights reserved. 2 | @rem 3 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 4 | @rem you may not use this file except in compliance with the License. 5 | @rem You may obtain a copy of the License at 6 | @rem 7 | @rem http://www.apache.org/licenses/LICENSE-2.0 8 | @rem 9 | @rem Unless required by applicable law or agreed to in writing, software 10 | @rem distributed under the License is distributed on an "AS IS" BASIS, 11 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | @rem See the License for the specific language governing permissions and 13 | @rem limitations under the License. 14 | 15 | @echo "Starting Windows build" 16 | 17 | cd /d %~dp0 18 | cd .. 19 | 20 | @rem npm path is not currently set in our image, we should fix this next time 21 | @rem we upgrade Node.js in the image: 22 | SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm 23 | 24 | call nvm use v14.17.3 25 | call which node 26 | 27 | call npm install || goto :error 28 | call npm run test || goto :error 29 | 30 | goto :EOF 31 | 32 | :error 33 | exit /b 1 34 | -------------------------------------------------------------------------------- /.kokoro/trampoline.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright 2017 Google Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | # This file is not used any more, but we keep this file for making it 17 | # easy to roll back. 18 | # TODO: Remove this file from the template. 19 | 20 | set -eo pipefail 21 | 22 | # Always run the cleanup script, regardless of the success of bouncing into 23 | # the container. 24 | function cleanup() { 25 | chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh 26 | ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh 27 | echo "cleanup"; 28 | } 29 | trap cleanup EXIT 30 | 31 | $(dirname $0)/populate-secrets.sh # Secret Manager secrets. 32 | python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" 33 | -------------------------------------------------------------------------------- /.mocharc.js: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | const config = { 15 | 'enable-source-maps': true, 16 | 'throw-deprecation': true, 17 | timeout: 10000, 18 | recursive: true, 19 | }; 20 | if (process.env.MOCHA_THROW_DEPRECATION === 'false') { 21 | delete config['throw-deprecation']; 22 | } 23 | if (process.env.MOCHA_REPORTER) { 24 | config.reporter = process.env.MOCHA_REPORTER; 25 | } 26 | if (process.env.MOCHA_REPORTER_OUTPUT) { 27 | config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; 28 | } 29 | process.on('unhandledRejection', err => { 30 | console.error(err); 31 | process.exit(1); 32 | }); 33 | 34 | module.exports = config; 35 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/node_modules 2 | **/coverage 3 | test/fixtures 4 | build/ 5 | docs/ 6 | protos/ 7 | __snapshots__/ -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // https://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | module.exports = { 16 | ...require('gts/.prettierrc.json') 17 | } 18 | -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | ".": "17.0.0" 3 | } -------------------------------------------------------------------------------- /.repo-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "release-please", 3 | "name_pretty": "Release Please", 4 | "release_level": "stable", 5 | "language": "nodejs", 6 | "repo": "googleapis/release-please", 7 | "distribution_name": "release-please", 8 | "codeowner_team": "@googleapis/github-automation", 9 | "client_documentation": "https://cloud.google.com/nodejs/docs/reference/release-please/latest", 10 | "library_type": "OTHER" 11 | } 12 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). 4 | 5 | The Google Security Team will respond within 5 working days of your report on g.co/vulnz. 6 | 7 | We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. 8 | -------------------------------------------------------------------------------- /__snapshots__/app-json.js: -------------------------------------------------------------------------------- 1 | exports['AppJson updateContent updates the app versions 1'] = ` 2 | { 3 | "expo": { 4 | "owner": "some-owner", 5 | "name": "Some Name", 6 | "slug": "some-slug", 7 | "version": "3.2.1", 8 | "orientation": "portrait", 9 | "icon": "./assets/icon-inverse.png", 10 | "scheme": "someschema", 11 | "splash": { 12 | "image": "./assets/splash.png", 13 | "resizeMode": "cover", 14 | "backgroundColor": "#FFFFFF" 15 | }, 16 | "updates": { 17 | "fallbackToCacheTimeout": 0, 18 | "url": "some-url-here" 19 | }, 20 | "assetBundlePatterns": [ 21 | "**/*" 22 | ], 23 | "ios": { 24 | "bundleIdentifier": "com.somedomain", 25 | "buildNumber": "3.2.1", 26 | "supportsTablet": true, 27 | "config": { 28 | "usesNonExemptEncryption": false 29 | } 30 | }, 31 | "android": { 32 | "package": "com.somedomain", 33 | "versionCode": 440030201, 34 | "adaptiveIcon": { 35 | "foregroundImage": "./assets/icon-inverse.png", 36 | "backgroundColor": "#FFFFFF" 37 | } 38 | }, 39 | "web": { 40 | "favicon": "./assets/favicon.png" 41 | } 42 | } 43 | } 44 | 45 | ` 46 | -------------------------------------------------------------------------------- /__snapshots__/bootstrapper.js: -------------------------------------------------------------------------------- 1 | exports['Bootstrapper should open a PR 1'] = ` 2 | { 3 | "packages": { 4 | ".": { 5 | "release-type": "node" 6 | } 7 | }, 8 | "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" 9 | } 10 | ` 11 | -------------------------------------------------------------------------------- /__snapshots__/chart-yaml.js: -------------------------------------------------------------------------------- 1 | exports['ChartYaml updateContent updates version in Chart.yaml 1'] = ` 2 | # Copyright 2021 Google LLC 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # https://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | name: helm-test-repo 17 | version: 1.1.0 18 | apiVersion: v2 19 | # renovate: image=imageName 20 | appVersion: 2.0.0 21 | dependencies: 22 | - name: another-repo 23 | version: 0.15.3 24 | repository: "linkToHelmChartRepo" 25 | maintainers: 26 | - Abhinav Khanna 27 | 28 | ` 29 | -------------------------------------------------------------------------------- /__snapshots__/dune-project.js: -------------------------------------------------------------------------------- 1 | exports['DuneProject updateContent updates version in dune-project file 1'] = ` 2 | (lang dune 2.0) 3 | (name sample) 4 | (version 0.6.0) 5 | ` 6 | -------------------------------------------------------------------------------- /__snapshots__/elixir-mix-exs.js: -------------------------------------------------------------------------------- 1 | exports['Elixir updateContent updates inline version in mix.exs file 1'] = ` 2 | defmodule MixTestRepo.MixProject do 3 | use Mix.Project 4 | 5 | def project do 6 | [ 7 | app: :mix_test_repo, 8 | version: "0.6.0", 9 | elixir: "~> 1.12", 10 | start_permanent: Mix.env() == :prod, 11 | deps: deps() 12 | ] 13 | end 14 | 15 | def application do 16 | [] 17 | end 18 | 19 | defp deps do 20 | [] 21 | end 22 | end 23 | 24 | ` 25 | 26 | exports['Elixir updateContent updates module attribute version in mix.exs file 1'] = ` 27 | defmodule MixTestRepo.MixProject do 28 | use Mix.Project 29 | 30 | @version "0.6.0" 31 | 32 | def project do 33 | [ 34 | app: :mix_test_repo, 35 | version: @version, 36 | elixir: "~> 1.12", 37 | start_permanent: Mix.env() == :prod, 38 | deps: deps() 39 | ] 40 | end 41 | 42 | def application do 43 | [] 44 | end 45 | 46 | defp deps do 47 | [] 48 | end 49 | end 50 | 51 | ` 52 | -------------------------------------------------------------------------------- /__snapshots__/esy-json.js: -------------------------------------------------------------------------------- 1 | exports['EsyJson updateContent updates version in esy.json file 1'] = ` 2 | { 3 | "name": "sample", 4 | "version": "0.6.0", 5 | "description": "A sample esy file.", 6 | "author": "Example ", 7 | "license": "Apache-2.0", 8 | "dependencies": { 9 | "ocaml": "^4.9.0", 10 | "@opam/dune": "^2.7.1" 11 | }, 12 | "devDependencies": { 13 | "@opam/ocamlformat": "^0.15.0", 14 | "@opam/ocaml-lsp-server": "^1.1.0" 15 | }, 16 | "esy": { 17 | "build": "dune build -p binaryen" 18 | }, 19 | "scripts": { 20 | "test": "dune runtest", 21 | "format": "dune build @fmt --auto-promote" 22 | }, 23 | "installConfig": { 24 | "pnp": false 25 | }, 26 | "keywords": [ 27 | "sample", 28 | "ocaml" 29 | ] 30 | } 31 | 32 | ` 33 | -------------------------------------------------------------------------------- /__snapshots__/generic-json.js: -------------------------------------------------------------------------------- 1 | exports['GenericJson updateContent updates deep entry 1'] = ` 2 | { 3 | "name": "release-please", 4 | "version": "11.1.0", 5 | "lockfileVersion": 2, 6 | "requires": true, 7 | "packages": { 8 | "": { 9 | "name": "release-please", 10 | "version": "2.3.4" 11 | } 12 | } 13 | } 14 | 15 | ` 16 | 17 | exports['GenericJson updateContent updates matching entry 1'] = ` 18 | { 19 | "name": "sample", 20 | "version": "2.3.4", 21 | "description": "A sample esy file.", 22 | "author": "Example ", 23 | "license": "Apache-2.0", 24 | "dependencies": { 25 | "ocaml": "^4.9.0", 26 | "@opam/dune": "^2.7.1" 27 | }, 28 | "devDependencies": { 29 | "@opam/ocamlformat": "^0.15.0", 30 | "@opam/ocaml-lsp-server": "^1.1.0" 31 | }, 32 | "esy": { 33 | "build": "dune build -p binaryen" 34 | }, 35 | "scripts": { 36 | "test": "dune runtest", 37 | "format": "dune build @fmt --auto-promote" 38 | }, 39 | "installConfig": { 40 | "pnp": false 41 | }, 42 | "keywords": [ 43 | "sample", 44 | "ocaml" 45 | ] 46 | } 47 | 48 | ` 49 | 50 | exports['GenericJson updateContent updates substring in matching entry 1'] = ` 51 | { 52 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 53 | "extends": [ 54 | "github>abc/foo:xyz/sub#2.3.4", 55 | "github>abc/bar:xyz/sub#2.3.4" 56 | ] 57 | } 58 | 59 | ` 60 | -------------------------------------------------------------------------------- /__snapshots__/generic-yaml.js: -------------------------------------------------------------------------------- 1 | exports['GenericYaml updateContent updates deep entry in json 1'] = ` 2 | name: release-please 3 | version: 11.1.0 4 | lockfileVersion: 2 5 | requires: true 6 | packages: 7 | '': 8 | name: release-please 9 | version: 2.3.4 10 | 11 | ` 12 | 13 | exports['GenericYaml updateContent updates deep entry in yaml 1'] = ` 14 | name: helm-test-repo 15 | version: 1.0.0 16 | apiVersion: v2 17 | appVersion: 2.0.0 18 | dependencies: 19 | - name: another-repo 20 | version: 2.3.4 21 | repository: linkToHelmChartRepo 22 | maintainers: 23 | - Abhinav Khanna 24 | 25 | ` 26 | 27 | exports['GenericYaml updateContent updates matching entry 1'] = ` 28 | name: helm-test-repo 29 | version: 2.3.4 30 | apiVersion: v2 31 | appVersion: 2.0.0 32 | dependencies: 33 | - name: another-repo 34 | version: 0.15.3 35 | repository: linkToHelmChartRepo 36 | maintainers: 37 | - Abhinav Khanna 38 | 39 | ` 40 | 41 | exports['GenericYaml updateContent updates multi-document yaml 1'] = ` 42 | --- 43 | name: first 44 | version: 2.3.4 45 | --- 46 | name: second 47 | version: 2.3.4 48 | --- 49 | name: third 50 | version: 2.3.4 51 | 52 | ` 53 | -------------------------------------------------------------------------------- /__snapshots__/github-changelog-notes.js: -------------------------------------------------------------------------------- 1 | exports['GitHubChangelogNotes buildNotes should build release notes from GitHub 1'] = ` 2 | ## 1.2.3 (1983-10-10) 3 | 4 | ##Changes in Release v1.0.0 ... ##Contributors @monalisa 5 | ` 6 | -------------------------------------------------------------------------------- /__snapshots__/indent-commit.js: -------------------------------------------------------------------------------- 1 | exports['indentCommit handles carriage return 1'] = ` 2 | feat: my awesome commit message 3 | * testing one line 4 | * testing second line 5 | ` 6 | 7 | exports['indentCommit handles multiple lines of multi-line text 1'] = ` 8 | feat: my awesome commit message 9 | * testing one line 10 | this is a second line of text 11 | this is a third line 12 | * testing second line 13 | this is a second line 14 | ` 15 | 16 | exports['indentCommit only adds lines prefixed with * to CHANGELOG 1'] = ` 17 | feat: my awesome commit message 18 | * testing one line 19 | * testing second line 20 | ` 21 | -------------------------------------------------------------------------------- /__snapshots__/java-auth-versions.js: -------------------------------------------------------------------------------- 1 | exports['JavaAuthVersions updateContent updates multiple versions in versions.txt 1'] = ` 2 | # Format: 3 | # module:released-version:current-version 4 | 5 | google-auth-library:0.25.0:0.25.0 6 | google-auth-library-bom:0.16.2:0.16.2-99-SNAPSHOT 7 | google-auth-library-parent:0.16.2:0.16.2-alpha-SNAPSHOT 8 | google-auth-library-appengine:0.16.2:0.16.2 9 | google-auth-library-credentials:0.16.2:0.16.2 10 | google-auth-library-oauth2-http:0.16.2:0.16.2-SNAPSHOT 11 | 12 | ` 13 | 14 | exports['JavaAuthVersions updateContent updates versions.txt appropriately for SNAPSHOT release 1'] = ` 15 | # Format: 16 | # module:released-version:current-version 17 | 18 | google-auth-library:0.16.2:0.16.2-SNAPSHOT 19 | google-auth-library-bom:0.16.2:0.16.2-99-SNAPSHOT 20 | google-auth-library-parent:0.16.2:0.16.2-alpha-SNAPSHOT 21 | google-auth-library-appengine:0.16.2:0.16.2 22 | google-auth-library-credentials:0.16.2:0.16.2 23 | google-auth-library-oauth2-http:0.16.2:0.16.2-SNAPSHOT 24 | 25 | ` 26 | 27 | exports['JavaAuthVersions updateContent updates versions.txt appropriately for non-SNAPSHOT release 1'] = ` 28 | # Format: 29 | # module:released-version:current-version 30 | 31 | google-auth-library:0.25.0:0.25.0 32 | google-auth-library-bom:0.16.2:0.16.2-99-SNAPSHOT 33 | google-auth-library-parent:0.16.2:0.16.2-alpha-SNAPSHOT 34 | google-auth-library-appengine:0.16.2:0.16.2 35 | google-auth-library-credentials:0.16.2:0.16.2 36 | google-auth-library-oauth2-http:0.16.2:0.16.2 37 | 38 | ` 39 | -------------------------------------------------------------------------------- /__snapshots__/linked-versions-group-title.js: -------------------------------------------------------------------------------- 1 | exports['Plugin compatibility linked-versions and group-pull-request-title-pattern should find release to create 1'] = ` 2 | :robot: I have created a release *beep* *boop* 3 | --- 4 | 5 | 6 |
primary: 1.1.0 7 | 8 | ## [1.1.0](https://github.com/fake-owner/fake-repo/compare/primary-v1.0.0...primary-v1.1.0) (1983-10-10) 9 | 10 | 11 | ### Features 12 | 13 | * some feature ([aaaaaa](https://github.com/fake-owner/fake-repo/commit/aaaaaa)) 14 |
15 | 16 |
pkgA: 1.1.0 17 | 18 | ## [1.1.0](https://github.com/fake-owner/fake-repo/compare/pkgA-v1.0.0...pkgA-v1.1.0) (1983-10-10) 19 | 20 | 21 | ### Features 22 | 23 | * some feature ([aaaaaa](https://github.com/fake-owner/fake-repo/commit/aaaaaa)) 24 |
25 | 26 | --- 27 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). 28 | ` 29 | -------------------------------------------------------------------------------- /__snapshots__/linked-versions-workspace.js: -------------------------------------------------------------------------------- 1 | exports['Plugin compatibility linked-versions and workspace should version bump dependencies together 1'] = ` 2 | :robot: I have created a release *beep* *boop* 3 | --- 4 | 5 | 6 |
pkgA: 1.1.0 7 | 8 | ## [1.1.0](https://github.com/fake-owner/fake-repo/compare/pkgA-v1.0.0...pkgA-v1.1.0) (1983-10-10) 9 | 10 | 11 | ### Features 12 | 13 | * some feature ([aaaaaa](https://github.com/fake-owner/fake-repo/commit/aaaaaa)) 14 |
15 | 16 |
pkgB: 1.1.0 17 | 18 | ## [1.1.0](https://github.com/fake-owner/fake-repo/compare/pkgB-v1.0.0...pkgB-v1.1.0) (1983-10-10) 19 | 20 | 21 | ### Miscellaneous Chores 22 | 23 | * **pkgB:** Synchronize my group versions 24 | 25 | 26 | ### Dependencies 27 | 28 | * The following workspace dependencies were updated 29 | * dependencies 30 | * pkgA bumped from 1.0.0 to 1.1.0 31 |
32 | 33 | --- 34 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). 35 | ` 36 | -------------------------------------------------------------------------------- /__snapshots__/metadata.js: -------------------------------------------------------------------------------- 1 | exports['metadata.yaml updateContent updates version in metadata.yaml 1'] = ` 2 | apiVersion: blueprints.cloud.google.com/v1alpha1 3 | kind: BlueprintMetadata 4 | metadata: 5 | name: foo 6 | spec: 7 | info: 8 | title: bar 9 | version: 2.1.0 10 | 11 | ` 12 | -------------------------------------------------------------------------------- /__snapshots__/module-version.js: -------------------------------------------------------------------------------- 1 | exports['versions.tf updateContent updates version in versions.tf 1'] = ` 2 | /** 3 | * Copyright 2020 Google LLC 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | terraform { 19 | required_version = ">=0.13, <0.14" 20 | 21 | required_providers { 22 | google = ">= 3.44.0, <4.0.0" 23 | } 24 | 25 | provider_meta "google" { 26 | module_name = "foo/bar/baz/v2.1.0" 27 | } 28 | 29 | provider_meta "google-beta" { 30 | module_name = "foo/bar/baz/v2.1.0" 31 | } 32 | } 33 | 34 | ` 35 | -------------------------------------------------------------------------------- /__snapshots__/node.js: -------------------------------------------------------------------------------- 1 | exports['Node buildReleasePullRequest updates changelog.json if present 1'] = ` 2 | { 3 | "entries": [ 4 | { 5 | "changes": [ 6 | { 7 | "type": "fix", 8 | "sha": "845db1381b3d5d20151cad2588f85feb", 9 | "message": "update dependency com.google.cloud:google-cloud-storage to v1.120.0", 10 | "issues": [], 11 | "scope": "deps" 12 | }, 13 | { 14 | "type": "chore", 15 | "sha": "b3f8966b023b8f21ce127142aa91841c", 16 | "message": "update a very important dep", 17 | "issues": [], 18 | "breakingChangeNote": "update a very important dep" 19 | }, 20 | { 21 | "type": "fix", 22 | "sha": "08ca01180a91c0a1ba8992b491db9212", 23 | "message": "update dependency com.google.cloud:google-cloud-spanner to v1.50.0", 24 | "issues": [], 25 | "scope": "deps" 26 | } 27 | ], 28 | "version": "1.0.0", 29 | "language": "JAVASCRIPT", 30 | "artifactName": "node-test-repo", 31 | "id": "abc-123-efd-qwerty", 32 | "createTime": "2023-01-05T16:42:33.446Z" 33 | } 34 | ], 35 | "updateTime": "2023-01-05T16:42:33.446Z" 36 | } 37 | ` 38 | -------------------------------------------------------------------------------- /__snapshots__/opam.js: -------------------------------------------------------------------------------- 1 | exports['Opam updateContent updates version in opam file 1'] = ` 2 | opam-version: "2.0" 3 | version: "0.6.0" 4 | synopsis: "A sample opam file" 5 | maintainer: "example@example.org" 6 | author: "Example" 7 | license: "Apache-2.0" 8 | homepage: "https://github.com/googleapis/release-please" 9 | dev-repo: "git+https://github.comgoogleapis/release-please.git" 10 | bug-reports: "https://github.com/googleapis/release-please/issues" 11 | build: [ 12 | [ "dune" "subst" ] {pinned} 13 | [ "dune" "build" "-p" name "-j" jobs ] 14 | ] 15 | depends: [ 16 | "ocaml" {>= "4.09"} 17 | "dune" {>= "2.7.1"} 18 | ] 19 | 20 | ` 21 | -------------------------------------------------------------------------------- /__snapshots__/php-composer-update-packages.js: -------------------------------------------------------------------------------- 1 | exports['PHPComposer updateContent does not update a version when version is the same 1'] = ` 2 | {"version":"1.0.0","replace":{"my/package":"1.0.0"}} 3 | ` 4 | 5 | exports['PHPComposer updateContent update all versions in composer.json 1'] = ` 6 | {"version":"1.0.0","replace":{"my/package":"1.0.0"}} 7 | ` 8 | 9 | exports['PHPComposer updateContent update replace package in composer.json when package is missing 1'] = ` 10 | {"replace":{"my/package":"1.0.0"}} 11 | ` 12 | 13 | exports['PHPComposer updateContent update replace package in composer.json when package is set in version map 1'] = ` 14 | {"replace":{"my/package":"1.0.0"}} 15 | ` 16 | 17 | exports['PHPComposer updateContent update root version in composer.json 1'] = ` 18 | {"version":"1.0.0"} 19 | ` 20 | -------------------------------------------------------------------------------- /__snapshots__/pubspec-yaml.js: -------------------------------------------------------------------------------- 1 | exports['PubspecYaml updateContent leaves malformatted build numbers alone in pubspec.yaml file 1'] = ` 2 | name: hello_world 3 | description: Hello World 4 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 5 | 6 | version: 0.6.0+abc 7 | 8 | environment: 9 | sdk: '>=2.12.0 <3.0.0' 10 | 11 | ` 12 | 13 | exports['PubspecYaml updateContent updates version in pubspec.yaml file 1'] = ` 14 | name: hello_world 15 | description: Hello World 16 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 17 | 18 | version: 0.6.0 19 | 20 | environment: 21 | sdk: '>=2.12.0 <3.0.0' 22 | 23 | ` 24 | 25 | exports['PubspecYaml updateContent updates version with build number in pubspec.yaml file 1'] = ` 26 | name: hello_world 27 | description: Hello World 28 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 29 | 30 | version: 0.6.0+13 31 | 32 | environment: 33 | sdk: '>=2.12.0 <3.0.0' 34 | 35 | ` 36 | -------------------------------------------------------------------------------- /__snapshots__/pyproject-toml.js: -------------------------------------------------------------------------------- 1 | exports['pyproject-poetry.toml updateContent updates version in pyproject-poetry.toml 1'] = ` 2 | [tool.poetry] 3 | name = 'project' 4 | version = "0.6.0" 5 | 6 | ` 7 | 8 | exports['pyproject-project.toml updateContent updates version in pyproject-project.toml 1'] = ` 9 | [project] 10 | name = 'project' 11 | version = "0.6.0" 12 | 13 | ` 14 | -------------------------------------------------------------------------------- /__snapshots__/python.js: -------------------------------------------------------------------------------- 1 | exports['Python buildUpdates updates changelog.json if present 1'] = ` 2 | { 3 | "entries": [ 4 | { 5 | "changes": [ 6 | { 7 | "type": "fix", 8 | "sha": "845db1381b3d5d20151cad2588f85feb", 9 | "message": "update dependency com.google.cloud:google-cloud-storage to v1.120.0", 10 | "issues": [], 11 | "scope": "deps" 12 | }, 13 | { 14 | "type": "chore", 15 | "sha": "b3f8966b023b8f21ce127142aa91841c", 16 | "message": "update a very important dep", 17 | "issues": [], 18 | "breakingChangeNote": "update a very important dep" 19 | }, 20 | { 21 | "type": "fix", 22 | "sha": "08ca01180a91c0a1ba8992b491db9212", 23 | "message": "update dependency com.google.cloud:google-cloud-spanner to v1.50.0", 24 | "issues": [], 25 | "scope": "deps" 26 | } 27 | ], 28 | "version": "0.1.0", 29 | "language": "PYTHON", 30 | "artifactName": "google-cloud-automl", 31 | "id": "abc-123-efd-qwerty", 32 | "createTime": "2023-01-05T16:42:33.446Z" 33 | } 34 | ], 35 | "updateTime": "2023-01-05T16:42:33.446Z" 36 | } 37 | ` 38 | -------------------------------------------------------------------------------- /__snapshots__/r-description.js: -------------------------------------------------------------------------------- 1 | exports['DESCRIPTION updateContent updates version in DESCRIPTION file 1'] = ` 2 | Package: mypackage 3 | Title: What the Package Does (One Line, Title Case) 4 | Version: 1.2.3 5 | Authors@R: 6 | person("First", "Last", , "first.last@example.com", role = c("aut", "cre"), 7 | comment = c(ORCID = "YOUR-ORCID-ID")) 8 | Description: What the package does (one paragraph). 9 | License: GPL-3 10 | Encoding: UTF-8 11 | Roxygen: list(markdown = TRUE) 12 | RoxygenNote: 7.3.2 13 | 14 | ` 15 | -------------------------------------------------------------------------------- /__snapshots__/readme.js: -------------------------------------------------------------------------------- 1 | exports['README.md updateContent updates version in README.md 1'] = ` 2 | # Terraform Module 3 | 4 | ## Usage 5 | 6 | \`\`\`hcl 7 | module "vpc" { 8 | source = "terraform-google-modules/mine/google" 9 | version = "~> 2.1" 10 | } 11 | \`\`\` 12 | 13 | ` 14 | -------------------------------------------------------------------------------- /__snapshots__/ruby-yoshi.js: -------------------------------------------------------------------------------- 1 | exports['RubyYoshi buildReleasePullRequest returns release PR changes with semver patch bump 1'] = ` 2 | :robot: I have created a release *beep* *boop* 3 | --- 4 | 5 | 6 | ### 0.123.5 / 1983-10-10 7 | 8 | #### Bug Fixes 9 | 10 | * update dependency com.google.cloud:google-cloud-spanner to v1.50.0 11 | * update dependency com.google.cloud:google-cloud-storage to v1.120.0 ([#1234](https://github.com/googleapis/ruby-test-repo/issues/1234)) 12 | 13 | --- 14 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). 15 | ` 16 | -------------------------------------------------------------------------------- /__snapshots__/rust.js: -------------------------------------------------------------------------------- 1 | exports['Rust buildReleasePullRequest detects a default component 1'] = ` 2 | :robot: I have created a release *beep* *boop* 3 | --- 4 | 5 | 6 | ## [0.123.5](https://github.com/googleapis/rust-test-repo/compare/rust-test-repo-v0.123.4...crate1-v0.123.5) (1983-10-10) 7 | 8 | 9 | ### Bug Fixes 10 | 11 | * **deps:** update dependency com.google.cloud:google-cloud-spanner to v1.50.0 ([08ca011](https://github.com/googleapis/rust-test-repo/commit/08ca01180a91c0a1ba8992b491db9212)) 12 | * **deps:** update dependency com.google.cloud:google-cloud-storage to v1.120.0 ([845db13](https://github.com/googleapis/rust-test-repo/commit/845db1381b3d5d20151cad2588f85feb)) 13 | 14 | --- 15 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). 16 | ` 17 | -------------------------------------------------------------------------------- /__snapshots__/samples-package-json.js: -------------------------------------------------------------------------------- 1 | exports['SamplesPackageJson updateContent does not fail when top level package does not exist in dependencies 1'] = ` 2 | { 3 | "name": "@google-cloud/firestore-samples", 4 | "version": "0.0.1", 5 | "private": true, 6 | "license": "Apache-2.0", 7 | "author": "Google Inc.", 8 | "repository": "googleapis/nodejs-firestore", 9 | "engines": { 10 | "node": ">=8" 11 | }, 12 | "scripts": { 13 | "test": "mocha system-test/*.js --timeout 600000" 14 | }, 15 | "devDependencies": { 16 | "mocha": "^6.0.0" 17 | } 18 | } 19 | 20 | ` 21 | 22 | exports['SamplesPackageJson updateContent updates package version in dependencies 1'] = ` 23 | { 24 | "name": "@google-cloud/firestore-samples", 25 | "version": "0.0.1", 26 | "private": true, 27 | "license": "Apache-2.0", 28 | "author": "Google Inc.", 29 | "repository": "googleapis/nodejs-firestore", 30 | "engines": { 31 | "node": ">=8" 32 | }, 33 | "scripts": { 34 | "test": "mocha system-test/*.js --timeout 600000" 35 | }, 36 | "dependencies": { 37 | "@google-cloud/firestore": "^14.0.0" 38 | }, 39 | "devDependencies": { 40 | "mocha": "^6.0.0" 41 | } 42 | } 43 | 44 | ` 45 | -------------------------------------------------------------------------------- /__snapshots__/sfdx-project-json.js: -------------------------------------------------------------------------------- 1 | exports['SfdxProjectJson updateContent updates version in sfdx-project.json 1'] = ` 2 | { 3 | "packageDirectories": [ 4 | { 5 | "default": true, 6 | "versionNumber": "2.3.4.NEXT" 7 | } 8 | ], 9 | "name": "sfdx-test-repo" 10 | } 11 | 12 | ` 13 | -------------------------------------------------------------------------------- /__snapshots__/version-go.js: -------------------------------------------------------------------------------- 1 | exports['version.go updateContent updates version in version.go 1'] = ` 2 | // Copyright 2021 Google LLC 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | package api 17 | 18 | const Version = "0.59.0" 19 | ` 20 | -------------------------------------------------------------------------------- /__snapshots__/version-manifest.js: -------------------------------------------------------------------------------- 1 | exports['VersionManifest updateContent updates versions.txt with an artifact id is another ones suffix with snapshot 1'] = ` 2 | # Format: 3 | # module:released-version:current-version 4 | 5 | google-cloud-admin:2.3.4:2.3.4 6 | admin:3.4.5:3.4.5 7 | ` 8 | 9 | exports['VersionManifest updateContent updates versions.txt with an artifact id is another ones suffix without snapshot 1'] = ` 10 | # Format: 11 | # module:released-version:current-version 12 | 13 | google-cloud-admin:2.3.6:2.3.6 14 | admin:3.4.3:3.4.3 15 | ` 16 | 17 | exports['VersionManifest updateContent updates versions.txt with snapshot released version 1'] = ` 18 | # Format: 19 | # module:released-version:current-version 20 | 21 | google-cloud-trace:0.109.0:0.109.0 22 | grpc-google-cloud-trace-v1:0.74.0:0.74.0 23 | grpc-google-cloud-trace-v2:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 24 | proto-google-cloud-trace-v1:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 25 | proto-google-cloud-trace-v2:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 26 | ` 27 | -------------------------------------------------------------------------------- /docs/java.md: -------------------------------------------------------------------------------- 1 | # Java and Maven Strategies 2 | 3 | This strategy generates SNAPSHOT versions after each release. Snapshot is created as a separate "release" Pull Request, which updates all affected files, but does not create an actual release or tag. 4 | 5 | Snapshot bumps have `autorelease: snapshot` label. 6 | 7 | ## `java` Strategy 8 | 9 | General-purpose Java strategy, that does not update any files on its own. 10 | 11 | Uses `extra-files` to bump versions in actual files. For a typical Maven project, use the `maven` strategy instead. 12 | 13 | ## `maven` Strategy 14 | 15 | Updates all found `pom.xml` files (recursively) using `pom` updater. 16 | 17 | ## `pom` Updater 18 | 19 | Updates `/project/version` to the current version automatically. 20 | 21 | If the version is not set, it tries to update `/project/parent/version`, assuming it is a submodule which inherits the version from its parent and should be bumped too. 22 | If this behavior is not intended, use the `generic` or `xml` updater via `extra-files`. 23 | -------------------------------------------------------------------------------- /linkinator.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "recurse": true, 3 | "skip": [ 4 | "https://codecov.io/gh/googleapis/", 5 | "www.googleapis.com", 6 | "img.shields.io" 7 | ], 8 | "silent": true, 9 | "concurrency": 10 10 | } 11 | -------------------------------------------------------------------------------- /owlbot.py: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Intentionally left blank. This is a standalone node repo. 16 | -------------------------------------------------------------------------------- /release-please-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", 3 | "release-type": "node", 4 | "include-component-in-tag": false, 5 | "packages": { 6 | ".": { 7 | "extra-files": [ 8 | "src/index.ts" 9 | ] 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base", 4 | "docker:disable", 5 | ":disableDependencyDashboard" 6 | ], 7 | "pinVersions": false, 8 | "rebaseStalePrs": true, 9 | "schedule": [ 10 | "after 9am and before 3pm" 11 | ], 12 | "gitAuthor": null, 13 | "packageRules": [ 14 | { 15 | "extends": "packages:linters", 16 | "groupName": "linters" 17 | } 18 | ], 19 | "ignoreDeps": ["typescript"] 20 | } 21 | -------------------------------------------------------------------------------- /schemas/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "title": "release-please manifest config versions", 4 | "description": "Schema for defining manifest versions file", 5 | "type": "object", 6 | "additionalProperties": { 7 | "type": "string" 8 | } 9 | } -------------------------------------------------------------------------------- /screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googleapis/release-please/422df5a6a9d44a52c6c682563d1795b8fd246215/screen.png -------------------------------------------------------------------------------- /src/changelog-notes/github.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {ChangelogNotes, BuildNotesOptions} from '../changelog-notes'; 16 | import {ConventionalCommit} from '../commit'; 17 | import {GitHub} from '../github'; 18 | 19 | export class GitHubChangelogNotes implements ChangelogNotes { 20 | private github: GitHub; 21 | constructor(github: GitHub) { 22 | this.github = github; 23 | } 24 | async buildNotes( 25 | _commits: ConventionalCommit[], 26 | options: BuildNotesOptions 27 | ): Promise { 28 | const body = await this.github.generateReleaseNotes( 29 | options.currentTag, 30 | options.targetBranch, 31 | options.previousTag 32 | ); 33 | const date = new Date().toLocaleDateString('en-CA'); 34 | const header = `## ${options.version} (${date})`; 35 | return `${header}\n\n${body}`; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/pull-request.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | export interface PullRequest { 16 | readonly headBranchName: string; 17 | readonly baseBranchName: string; 18 | readonly number: number; 19 | readonly mergeCommitOid?: string; 20 | readonly title: string; 21 | readonly body: string; 22 | readonly labels: string[]; 23 | readonly files: string[]; 24 | readonly sha?: string; 25 | } 26 | -------------------------------------------------------------------------------- /src/release-pull-request.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Update} from './update'; 16 | import {Version} from './version'; 17 | import {PullRequestBody} from './util/pull-request-body'; 18 | import {PullRequestTitle} from './util/pull-request-title'; 19 | 20 | export interface ReleasePullRequest { 21 | readonly title: PullRequestTitle; 22 | readonly body: PullRequestBody; 23 | readonly labels: string[]; 24 | readonly headRefName: string; 25 | readonly version?: Version; 26 | readonly draft: boolean; 27 | readonly group?: string; 28 | updates: Update[]; 29 | } 30 | -------------------------------------------------------------------------------- /src/release.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {TagName} from './util/tag-name'; 16 | 17 | export interface Release { 18 | readonly name?: string; 19 | readonly tag: TagName; 20 | readonly sha: string; 21 | readonly notes: string; 22 | } 23 | -------------------------------------------------------------------------------- /src/repository.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | export interface Repository { 16 | readonly owner: string; 17 | readonly repo: string; 18 | readonly defaultBranch: string; 19 | } 20 | -------------------------------------------------------------------------------- /src/strategies/go.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // Generic 16 | import {Changelog} from '../updaters/changelog'; 17 | import {BaseStrategy, BuildUpdatesOptions} from './base'; 18 | import {Update} from '../update'; 19 | 20 | export class Go extends BaseStrategy { 21 | protected async buildUpdates( 22 | options: BuildUpdatesOptions 23 | ): Promise { 24 | const updates: Update[] = []; 25 | const version = options.newVersion; 26 | 27 | updates.push({ 28 | path: this.addPath(this.changelogPath), 29 | createIfMissing: true, 30 | updater: new Changelog({ 31 | version, 32 | changelogEntry: options.changelogEntry, 33 | }), 34 | }); 35 | 36 | return updates; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/updaters/bazel/module-bazel.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates a Bazel Module file. 19 | */ 20 | export class ModuleBazel extends DefaultUpdater { 21 | updateContent(content: string): string { 22 | const match = content.match( 23 | /module[\s\S]*?\([\s\S]*?version\s*=\s*(['"])(.*?)\1/m 24 | ); 25 | if (!match) { 26 | return content; 27 | } 28 | const [fullMatch, , version] = match; 29 | const module = fullMatch.replace(version, this.version.toString()); 30 | return content.replace(fullMatch, module); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/dotnet/csproj.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | const VERSION_ATTR_REGEX = /\d+\.\d+\.\d+(-[^+]+)?(\+.*)?<\/Version>/; 18 | 19 | /** 20 | * Updates a .NET .csproj. 21 | */ 22 | export class CsProj extends DefaultUpdater { 23 | /** 24 | * Given initial file contents, return updated contents. 25 | * @param {string} content The initial content 26 | * @returns {string} The updated content 27 | */ 28 | updateContent(content: string): string { 29 | return content.replace( 30 | VERSION_ATTR_REGEX, 31 | `${this.version}` 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/updaters/generic-xml.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Version} from '../version'; 16 | import {BaseXml} from './base-xml'; 17 | import * as xpath from 'xpath'; 18 | 19 | export class GenericXml extends BaseXml { 20 | private readonly xpath: string; 21 | private readonly version: Version; 22 | 23 | constructor(xpath: string, version: Version) { 24 | super(); 25 | this.xpath = xpath; 26 | this.version = version; 27 | } 28 | 29 | protected updateDocument(document: Document): boolean { 30 | const version = this.version.toString(); 31 | let updated = false; 32 | for (const node of xpath.select(this.xpath, document) as Node[]) { 33 | if (node.textContent !== version) { 34 | node.textContent = version; 35 | updated = true; 36 | } 37 | } 38 | return updated; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/updaters/go/version-go.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | export class VersionGo extends DefaultUpdater { 18 | updateContent(content: string): string { 19 | return content.replace( 20 | /const Version = "[0-9]+\.[0-9]+\.[0-9](-\w+)?"/, 21 | `const Version = "${this.version.toString()}"` 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/updaters/ocaml/dune-project.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {logger as defaultLogger, Logger} from '../../util/logger'; 16 | import {DefaultUpdater} from '../default'; 17 | 18 | /** 19 | * Updates an OCaml dune-project file. 20 | */ 21 | export class DuneProject extends DefaultUpdater { 22 | /** 23 | * Given initial file contents, return updated contents. 24 | * @param {string} content The initial content 25 | * @returns {string} The updated content 26 | */ 27 | updateContent(content: string, logger: Logger = defaultLogger): string { 28 | const oldVersion = content.match(/^\(version ([A-Za-z0-9_\-+.~]+)\)$/m); 29 | if (oldVersion) { 30 | logger.info(`updating from ${oldVersion[1]} to ${this.version}`); 31 | } 32 | return content.replace( 33 | /^\(version ([A-Za-z0-9_\-+.~]+)\)$/m, 34 | `(version ${this.version})` 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/updaters/ocaml/esy-json.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {logger as defaultLogger, Logger} from '../../util/logger'; 16 | import {jsonStringify} from '../../util/json-stringify'; 17 | import {DefaultUpdater} from '../default'; 18 | 19 | /** 20 | * Updates an OCaml esy.json file. 21 | */ 22 | export class EsyJson extends DefaultUpdater { 23 | /** 24 | * Given initial file contents, return updated contents. 25 | * @param {string} content The initial content 26 | * @returns {string} The updated content 27 | */ 28 | updateContent(content: string, logger: Logger = defaultLogger): string { 29 | const parsed = JSON.parse(content); 30 | logger.info(`updating from ${parsed.version} to ${this.version}`); 31 | parsed.version = this.version.toString(); 32 | return jsonStringify(parsed, content); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/updaters/ocaml/opam.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {logger as defaultLogger, Logger} from '../../util/logger'; 16 | import {DefaultUpdater} from '../default'; 17 | 18 | /** 19 | * Updates an OCaml .opam file 20 | */ 21 | export class Opam extends DefaultUpdater { 22 | /** 23 | * Given initial file contents, return updated contents. 24 | * @param {string} content The initial content 25 | * @returns {string} The updated content 26 | */ 27 | updateContent(content: string, logger: Logger = defaultLogger): string { 28 | const oldVersion = content.match(/^version: "([A-Za-z0-9_\-+.~]+)"$/m); 29 | if (oldVersion) { 30 | logger.info(`updating from ${oldVersion[1]} to ${this.version}`); 31 | } 32 | return content.replace( 33 | /^version: "[A-Za-z0-9_\-+.~]+"$/m, 34 | `version: "${this.version}"` 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/updaters/php/php-client-version.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates a php file that has a constant VERSION defined. 19 | */ 20 | export class PHPClientVersion extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /const VERSION = '[0-9]+\.[0-9]+\.[0-9]+'/, 29 | `const VERSION = '${this.version}'` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/python/python-file-with-version.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Python file with a __version__ property (or attribute, or whatever). 19 | */ 20 | export class PythonFileWithVersion extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /(__version__ ?= ?["'])[0-9]+\.[0-9]+\.[0-9]+(?:-\w+)?(["'])/, 29 | `$1${this.version}$2` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/python/setup-cfg.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates a setup.cfg file 19 | */ 20 | export class SetupCfg extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /(version ?= ?)[0-9]+\.[0-9]+\.[0-9]+(?:-\w+)?/, 29 | `$1${this.version}` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/python/setup-py.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates a setup.py file. 19 | */ 20 | export class SetupPy extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /(version ?= ?["'])[0-9]+\.[0-9]+\.[0-9]+(?:-\w+)?(["'])/, 29 | `$1${this.version}$2` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/r/description.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates the DESCRIPTION file of an R package. 19 | */ 20 | export class DescriptionUpdater extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /^Version:\s*[0-9]+\.[0-9]+\.[0-9]+(?:\.[0-9]+)?\s*$/m, 29 | `Version: ${this.version}` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/updaters/raw-content.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Updater} from '../update'; 16 | 17 | /** 18 | * This updater ignores previous content and writes the provided 19 | * content verbatim. 20 | */ 21 | export class RawContent implements Updater { 22 | rawContent: string; 23 | /** 24 | * Create a new RawContent instance 25 | * @param {string} rawContent The raw content to set as the contents. 26 | */ 27 | constructor(rawContent: string) { 28 | this.rawContent = rawContent; 29 | } 30 | 31 | /** 32 | * Given initial file contents, return updated contents. 33 | * @param {string} content The initial content 34 | * @returns {string} The updated content 35 | */ 36 | updateContent(_content: string | undefined): string { 37 | return this.rawContent; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/updaters/release-please-manifest.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {jsonStringify} from '../util/json-stringify'; 16 | import {DefaultUpdater} from './default'; 17 | 18 | export class ReleasePleaseManifest extends DefaultUpdater { 19 | updateContent(content: string): string { 20 | const parsed: Record = content ? JSON.parse(content) : {}; 21 | for (const [path, version] of this.versionsMap!) { 22 | parsed[path] = version.toString(); 23 | } 24 | if (content) { 25 | return jsonStringify(parsed, content); 26 | } else { 27 | return JSON.stringify(parsed, null, 2); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/updaters/ruby/version-rb.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | import {RUBY_VERSION_REGEX, stringifyRubyVersion} from './common'; 17 | 18 | const RUBY_VERSION_RB_REGEX = new RegExp( 19 | `(["'])(${RUBY_VERSION_REGEX.source})(["'])` 20 | ); 21 | 22 | /** 23 | * Updates a versions.rb file which is expected to have a version string. 24 | */ 25 | export class VersionRB extends DefaultUpdater { 26 | /** 27 | * Given initial file contents, return updated contents. 28 | * @param {string} content The initial content 29 | * @returns {string} The updated content 30 | */ 31 | updateContent(content: string): string { 32 | return content.replace( 33 | RUBY_VERSION_RB_REGEX, 34 | `$1${stringifyRubyVersion(this.version)}$1` 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/updaters/terraform/module-version.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {logger as defaultLogger, Logger} from '../../util/logger'; 16 | import {DefaultUpdater} from '../default'; 17 | 18 | /** 19 | * Updates a Terraform Module versions.tf file. 20 | */ 21 | export class ModuleVersion extends DefaultUpdater { 22 | /** 23 | * Given initial file contents, return updated contents. 24 | * @param {string} content The initial content 25 | * @returns {string} The updated content 26 | */ 27 | updateContent(content: string, logger: Logger = defaultLogger): string { 28 | const oldVersion = content.match(/v[0-9]+\.[0-9]+\.[0-9]+(-\w+)?/); 29 | if (oldVersion) { 30 | logger.info(`updating from ${oldVersion} to v${this.version}`); 31 | } 32 | return content.replace( 33 | /v[0-9]+\.[0-9]+\.[0-9]+(-\w+)?/g, 34 | `v${this.version}` 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/updaters/terraform/readme.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {DefaultUpdater} from '../default'; 16 | 17 | /** 18 | * Updates a Terraform module's README. 19 | */ 20 | export class ReadMe extends DefaultUpdater { 21 | /** 22 | * Given initial file contents, return updated contents. 23 | * @param {string} content The initial content 24 | * @returns {string} The updated content 25 | */ 26 | updateContent(content: string): string { 27 | return content.replace( 28 | /version = "~> [\d]+.[\d]+"/, 29 | `version = "~> ${this.version.major}.${this.version.minor}"` 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/util/coerce-option.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync, statSync, Stats} from 'fs'; 16 | 17 | // if an option looks like a file path, assume it's a 18 | // path to a key and load it. 19 | export function coerceOption(option: string): string { 20 | if (option.match(/[\\/]/)) { 21 | try { 22 | const stat: Stats = statSync(option); 23 | if (stat.isDirectory()) return option; 24 | else return readFileSync(option, 'utf8').trim(); 25 | } catch (err) { 26 | // simply fallback to returning the original option. 27 | } 28 | } 29 | return option; 30 | } 31 | -------------------------------------------------------------------------------- /src/util/commit-utils.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2023 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | export const normalizePaths = (paths: string[]) => { 16 | return paths.map(path => { 17 | // normalize so that all paths have leading and trailing slashes for 18 | // non-overlap validation. 19 | // NOTE: GitHub API always returns paths using the `/` separator, 20 | // regardless of what platform the client code is running on 21 | let newPath = path.replace(/\/$/, ''); 22 | newPath = newPath.replace(/^\//, ''); 23 | newPath = newPath.replace(/$/, '/'); 24 | newPath = newPath.replace(/^/, '/'); 25 | // store them with leading and trailing slashes removed. 26 | newPath = newPath.replace(/\/$/, ''); 27 | newPath = newPath.replace(/^\//, ''); 28 | return newPath; 29 | }); 30 | }; 31 | -------------------------------------------------------------------------------- /src/util/indent-commit.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Commit} from '../commit'; 16 | 17 | export function indentCommit(commit: Commit): string { 18 | const reduced: string[] = []; 19 | let inList = false; 20 | commit.message.split(/\r?\n/).forEach((line, i) => { 21 | if (i !== 0) line = ` ${line}`; 22 | else reduced.push(line); 23 | 24 | if (/^\s*\*/.test(line)) { 25 | inList = true; 26 | reduced.push(line); 27 | } else if (/^ +[\w]/.test(line) && inList) { 28 | reduced[reduced.length - 1] = `${reduced[reduced.length - 1]}\n${line}`; 29 | } else { 30 | inList = false; 31 | } 32 | }); 33 | return reduced.join('\n'); 34 | } 35 | -------------------------------------------------------------------------------- /src/util/json-stringify.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import detectIndent = require('detect-indent'); 16 | 17 | export function jsonStringify( 18 | parsed: object, 19 | content: string, 20 | replacer?: (string | number)[] 21 | ): string { 22 | return `${content.slice(0, content.indexOf('{'))}${JSON.stringify( 23 | parsed, 24 | replacer, 25 | detectIndent(content.trim()).indent 26 | )}${content.slice(content.lastIndexOf('}') + 1)}`; 27 | } 28 | -------------------------------------------------------------------------------- /src/versioning-strategies/always-bump-major.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Version} from '../version'; 16 | import {ConventionalCommit} from '../commit'; 17 | import {DefaultVersioningStrategy} from './default'; 18 | import {VersionUpdater, MajorVersionUpdate} from '../versioning-strategy'; 19 | 20 | /** 21 | * This VersioningStrategy always bumps the major version. 22 | */ 23 | export class AlwaysBumpMajor extends DefaultVersioningStrategy { 24 | determineReleaseType( 25 | _version: Version, 26 | _commits: ConventionalCommit[] 27 | ): VersionUpdater { 28 | return new MajorVersionUpdate(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/versioning-strategies/always-bump-minor.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Version} from '../version'; 16 | import {ConventionalCommit} from '../commit'; 17 | import {DefaultVersioningStrategy} from './default'; 18 | import {VersionUpdater, MinorVersionUpdate} from '../versioning-strategy'; 19 | 20 | /** 21 | * This VersioningStrategy always bumps the minor version. 22 | */ 23 | export class AlwaysBumpMinor extends DefaultVersioningStrategy { 24 | determineReleaseType( 25 | _version: Version, 26 | _commits: ConventionalCommit[] 27 | ): VersionUpdater { 28 | return new MinorVersionUpdate(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/versioning-strategies/always-bump-patch.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {Version} from '../version'; 16 | import {ConventionalCommit} from '../commit'; 17 | import {DefaultVersioningStrategy} from './default'; 18 | import {VersionUpdater, PatchVersionUpdate} from '../versioning-strategy'; 19 | 20 | /** 21 | * This VersioningStrategy always bumps the patch version. This 22 | * strategy is useful for backport branches. 23 | */ 24 | export class AlwaysBumpPatch extends DefaultVersioningStrategy { 25 | determineReleaseType( 26 | _version: Version, 27 | _commits: ConventionalCommit[] 28 | ): VersionUpdater { 29 | return new PatchVersionUpdate(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /templates/commit.hbs: -------------------------------------------------------------------------------- 1 | * {{#if subject}} {{~subject}} {{~else}} {{~header}} {{~/if}}{{#if body}} 2 | {{body}}{{~/if}} 3 | -------------------------------------------------------------------------------- /templates/header.hbs: -------------------------------------------------------------------------------- 1 | ### {{#if @root.linkCompare~}} 2 | [{{version}}]({{compareUrlFormat}}) 3 | {{~else}} 4 | {{~version}} 5 | {{~/if}} 6 | {{~#if title}} "{{title}}" 7 | {{~/if}} 8 | {{~#if date}} / {{date}} 9 | {{/if}} 10 | -------------------------------------------------------------------------------- /templates/template.hbs: -------------------------------------------------------------------------------- 1 | {{> header}} 2 | {{#if noteGroups}} 3 | {{#each noteGroups}} 4 | 5 | #### ⚠ {{title}} 6 | 7 | {{#each notes}} 8 | * {{#if commit.scope}}**{{commit.scope}}:** {{/if}}{{text}} 9 | {{/each}} 10 | {{/each}} 11 | {{/if}} 12 | {{#each commitGroups}} 13 | 14 | {{#if title}} 15 | #### {{title}} 16 | 17 | {{/if}} 18 | {{#each commits}} 19 | {{> commit root=@root}}{{/each}}{{/each}} -------------------------------------------------------------------------------- /test/fixtures/CHANGELOG-bug-140.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | ## [5.0.0](https://www.github.com/bcoe/c8/compare/v4.1.5...v5.0.0) (2019-05-20) 6 | 7 | 8 | ### ⚠ BREAKING CHANGES 9 | 10 | * temp directory now defaults to setting for report directory 11 | 12 | ### Features 13 | 14 | * default temp directory to report directory ([#102](https://www.github.com/bcoe/c8/issues/102)) ([8602f4a](https://www.github.com/bcoe/c8/commit/8602f4a)) 15 | * load .nycrc/.nycrc.json to simplify migration ([#100](https://www.github.com/bcoe/c8/issues/100)) ([bd7484f](https://www.github.com/bcoe/c8/commit/bd7484f)) 16 | 17 | ### [4.1.5](https://github.com/bcoe/c8/compare/v4.1.4...v4.1.5) (2019-05-11) 18 | 19 | 20 | ### Bug Fixes 21 | 22 | * exit with code 1 when report output fails ([#92](https://github.com/bcoe/c8/issues/92)) ([a27b694](https://github.com/bcoe/c8/commit/a27b694)) 23 | * remove the unmaintained mkdirp dependency ([#91](https://github.com/bcoe/c8/issues/91)) ([a465b65](https://github.com/bcoe/c8/commit/a465b65)) 24 | 25 | 26 | 27 | ## [4.1.4](https://github.com/bcoe/c8/compare/v4.1.3...v4.1.4) (2019-05-03) 28 | 29 | 30 | ### Bug Fixes 31 | 32 | * we were not exiting with 1 if mkdir failed ([#89](https://github.com/bcoe/c8/issues/89)) ([fb02ed6](https://github.com/bcoe/c8/commit/fb02ed6)) 33 | -------------------------------------------------------------------------------- /test/fixtures/CHANGELOG-new.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | [npm history][1] 4 | 5 | [1]: https://www.npmjs.com/package/release-please?activeTab=versions 6 | 7 | ## [1.2.0](https://www.github.com/googleapis/release-please/compare/v1.1.0...v1.2.0) (2019-05-10) 8 | 9 | 10 | ### Bug Fixes 11 | 12 | * candidate issue should only be updated every 15 minutes. ([#70](https://www.github.com/googleapis/release-please/issues/70)) ([edcd1f7](https://www.github.com/googleapis/release-please/commit/edcd1f7)) 13 | 14 | 15 | ### Features 16 | 17 | * add GitHub action for generating candidate issue ([#69](https://www.github.com/googleapis/release-please/issues/69)) ([6373aed](https://www.github.com/googleapis/release-please/commit/6373aed)) 18 | * checkbox based releases ([#77](https://www.github.com/googleapis/release-please/issues/77)) ([1e4193c](https://www.github.com/googleapis/release-please/commit/1e4193c)) 19 | -------------------------------------------------------------------------------- /test/fixtures/commit-messages/1257-breaking-change.txt: -------------------------------------------------------------------------------- 1 | fix: some fix (#1234) 2 | 3 | * fix: this becomes the new breaking change comment 4 | 5 | * fix: breaking change 6 | 7 | BREAKING CHANGE: my comment 8 | 9 | * fix: this breaks the footer parser -------------------------------------------------------------------------------- /test/fixtures/commit-messages/breaking-body-content-after.txt: -------------------------------------------------------------------------------- 1 | chore: upgrade to Node 7 2 | 3 | BREAKING CHANGE: we were on Node 6 4 | 5 | I should be removed -------------------------------------------------------------------------------- /test/fixtures/commit-messages/breaking-body.txt: -------------------------------------------------------------------------------- 1 | feat: some feature 2 | 3 | extended body 4 | 5 | BREAKING CHANGE: this is actually a breaking change -------------------------------------------------------------------------------- /test/fixtures/commit-messages/bug-link.txt: -------------------------------------------------------------------------------- 1 | fix: some fix 2 | 3 | Fixes #123 -------------------------------------------------------------------------------- /test/fixtures/commit-messages/git-trailers-with-breaking.txt: -------------------------------------------------------------------------------- 1 | fix: some fix 2 | 3 | some body 4 | PiperOrigin-RevId: 12345 5 | Source-Link: https://github.com/googleapis/googleapis/commit/abc123 6 | BREAKING CHANGE: this is actually a breaking change -------------------------------------------------------------------------------- /test/fixtures/commit-messages/meta.txt: -------------------------------------------------------------------------------- 1 | meta: multiple commits. 2 | 3 | Details. 4 | 5 | Some clarifying facts. 6 | 7 | fix: fixes bug #733 8 | feat(recaptchaenterprise): migrate microgenerator 9 | Committer: @miraleung 10 | PiperOrigin-RevId: 345559154 11 | BREAKING-CHANGE: for some reason this migration is breaking. 12 | Source-Link: googleapis/googleapis@5e0dcb2 13 | 14 | fix(securitycenter): fixes security center. 15 | Committer: @miraleung 16 | PiperOrigin-RevId: 345559182 17 | Source-Link: googleapis/googleapis@e5eef86 -------------------------------------------------------------------------------- /test/fixtures/commit-messages/multi-line-breaking-body-list.txt: -------------------------------------------------------------------------------- 1 | chore: upgrade to Node 7 2 | 3 | BREAKING CHANGE: we were on Node 6 4 | - deleted API foo 5 | - deleted API bar -------------------------------------------------------------------------------- /test/fixtures/commit-messages/multi-line-breaking-body.txt: -------------------------------------------------------------------------------- 1 | chore: upgrade to Node 7 2 | 3 | BREAKING CHANGE: we were on Node 6 4 | second line 5 | third line -------------------------------------------------------------------------------- /test/fixtures/commit-messages/multiple-commits-single-message.txt: -------------------------------------------------------------------------------- 1 | feat: adds v4 UUID to crypto 2 | 3 | This adds support for v4 UUIDs to the library. 4 | 5 | fix(utils): unicode no longer throws exception 6 | 7 | - some more stuff 8 | 9 | feat(utils): update encode to support unicode 10 | 11 | - does stuff 12 | - more stuff 13 | -------------------------------------------------------------------------------- /test/fixtures/commit-messages/multiple-messages.txt: -------------------------------------------------------------------------------- 1 | feat: some feature 2 | 3 | fix: some bugfix -------------------------------------------------------------------------------- /test/fixtures/commit-messages/release-as.txt: -------------------------------------------------------------------------------- 1 | meta: correct release 2 | 3 | Release-As: v3.0.0 -------------------------------------------------------------------------------- /test/fixtures/commits-since-missing-branch.json: -------------------------------------------------------------------------------- 1 | { 2 | "repository": { 3 | "ref": null 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /test/fixtures/github-data-api/403-too-large-file-response.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "This API returns blobs up to 1 MB in size. The requested blob is too large to fetch via the API, but you can use the Git Data API to request blobs up to 100 MB in size.", 3 | "errors": [ 4 | { 5 | "resource": "Blob", 6 | "field": "data", 7 | "code": "too_large" 8 | } 9 | ], 10 | "documentation_url": "https://docs.github.com/rest/reference/repos#get-repository-content" 11 | } 12 | -------------------------------------------------------------------------------- /test/fixtures/github-data-api/data-api-blobs-successful-response2.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "d4ca94189e160a70677ece805ad0cadcaf7edfd5", 3 | "node_id": "MDQ6QmxvYjE4MzQ5OTQ2NDpkNGNhOTQxODllMTYwYTcwNjc3ZWNlODA1YWQwY2FkY2FmN2VkZmQ1", 4 | "size": 14, 5 | "url": "https://api.github.com/repos/googleapis/release-please/git/blobs/d4ca94189e160a70677ece805ad0cadcaf7edfd5", 6 | "content": "ZW5hYmxlZDogdHJ1ZQo=\n", 7 | "encoding": "base64" 8 | } -------------------------------------------------------------------------------- /test/fixtures/github-data-api/data-api-trees-successful-response-subdir-pkg-a.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "1143a47be42513c0acc64165cf5da91810ab7edc", 3 | "url": "https://api.github.com/repos/testOwner/testRepo/git/trees/1143a47be42513c0acc64165cf5da91810ab7edc", 4 | "tree": [ 5 | { 6 | "path": "foo.json", 7 | "mode": "100644", 8 | "type": "blob", 9 | "sha": "2f3d2c47bf49f81aca0df9ffc49524a213a2dc33", 10 | "size": 1352120, 11 | "url": "https://api.github.com/repos/testOwner/testRepo/git/blobs/2f3d2c47bf49f81aca0df9ffc49524a213a2dc33" 12 | } 13 | ], 14 | "truncated": false 15 | } -------------------------------------------------------------------------------- /test/fixtures/github-data-api/data-api-trees-successful-response-subdir-pkg-b.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "0acc64165cf5da91810ab7edc1143a47be42513c", 3 | "url": "https://api.github.com/repos/testOwner/testRepo/git/trees/1143a47be42513c0acc64165cf5da91810ab7edc", 4 | "tree": [ 5 | { 6 | "path": "foo.json", 7 | "mode": "100644", 8 | "type": "blob", 9 | "sha": "47bf49f81aca0df9ffc49524a213a2dc332f3d2c", 10 | "size": 1352120, 11 | "url": "https://api.github.com/repos/testOwner/testRepo/git/blobs/47bf49f81aca0df9ffc49524a213a2dc332f3d2c" 12 | } 13 | ], 14 | "truncated": false 15 | } -------------------------------------------------------------------------------- /test/fixtures/github-data-api/data-api-trees-successful-response-subdir-pkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "cc64165cf5da91810ab7edc1143a47be42513c0a", 3 | "url": "https://api.github.com/repos/testOwner/testRepo/git/trees/0ab7edc1143a47be42513c0acc64165cf5da9181", 4 | "tree": [ 5 | { 6 | "path": "a", 7 | "mode": "040000", 8 | "type": "tree", 9 | "sha": "1143a47be42513c0acc64165cf5da91810ab7edc", 10 | "url": "https://api.github.com/repos/testOwner/testRepo/git/trees/1143a47be42513c0acc64165cf5da91810ab7edc" 11 | }, 12 | { 13 | "path": "b", 14 | "mode": "040000", 15 | "type": "tree", 16 | "sha": "0acc64165cf5da91810ab7edc1143a47be42513c", 17 | "url": "https://api.github.com/repos/testOwner/testRepo/git/trees/0acc64165cf5da91810ab7edc1143a47be42513c" 18 | } 19 | ], 20 | "truncated": false 21 | } -------------------------------------------------------------------------------- /test/fixtures/key.txt: -------------------------------------------------------------------------------- 1 | abc123 2 | -------------------------------------------------------------------------------- /test/fixtures/latest-tag-no-commits.json: -------------------------------------------------------------------------------- 1 | { 2 | "repository": { 3 | "ref": { 4 | "target": { 5 | "history": { 6 | "nodes": [], 7 | "pageInfo": { 8 | "hasNextPage": false, 9 | "endCursor": "e6daec403626c9987c7af0d97b34f324cd84320a 12" 10 | } 11 | } 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/changelog-host.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "changelog-host": "https://example.com", 4 | "packages": { 5 | ".": { 6 | "component": "root" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils", 10 | "changelog-host": "https://override.example.com" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/changelog-path.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "changelog-path": "docs/foo.md", 4 | "packages": { 5 | ".": { 6 | "component": "root" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils", 10 | "changelog-path": "docs/bar.md" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/changelog-type.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "changelog-type": "github", 4 | "packages": { 5 | ".": { 6 | "component": "root" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils", 10 | "changelog-type": "default" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/complex-plugins.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "plugins": [ 4 | { 5 | "type": "linked-versions", 6 | "groupName": "grouped components", 7 | "components": ["pkg2", "pkg3"] 8 | } 9 | ], 10 | "packages": { 11 | "pkg1": { 12 | "component": "pkg1" 13 | }, 14 | "pkg2": { 15 | "component": "pkg2" 16 | }, 17 | "pkg3": { 18 | "component": "pkg3" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "bootstrap-sha": "12426076b2f8b66a0ea0af2fa77e566d99bfb649", 3 | "packages": { 4 | "packages/bot-config-utils": { 5 | "release-type": "node" 6 | }, 7 | "packages/cron-utils": { 8 | "release-type": "node" 9 | }, 10 | "packages/gcf-utils": { 11 | "release-type": "node" 12 | }, 13 | "packages/label-utils": { 14 | "release-type": "node" 15 | }, 16 | "packages/object-selector": { 17 | "release-type": "node" 18 | }, 19 | "packages/release-brancher": { 20 | "release-type": "node" 21 | }, 22 | "packages/mono-repo-publish": { 23 | "release-type": "node" 24 | }, 25 | "packages/datastore-lock": { 26 | "release-type": "node" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/draft-pull-request.json: -------------------------------------------------------------------------------- 1 | { 2 | "draft-pull-request": true, 3 | "packages": { 4 | ".": {}, 5 | "node-packages": { 6 | "draft-pull-request": false 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/exclude-paths.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "label": "custom: pending", 4 | "release-label": "custom: tagged", 5 | "exclude-paths": ["path-ignore"], 6 | "packages": { 7 | ".": { 8 | "component": "root", 9 | "exclude-paths": ["path-root-ignore"] 10 | }, 11 | "node-lib": { 12 | "component": "node-lib" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/extra-files-glob.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "tag-separator": "/", 4 | "extra-files": [ 5 | "default.txt", 6 | { 7 | "type": "json", 8 | "path": "path/default.json", 9 | "jsonpath": "$.version" 10 | } 11 | ], 12 | "packages": { 13 | ".": { 14 | "component": "root", 15 | "tag-separator": "-" 16 | }, 17 | "packages/bot-config-utils": { 18 | "component": "bot-config-utils", 19 | "extra-files": [ 20 | "foo.txt", 21 | { 22 | "type": "json", 23 | "path": "**/*.json", 24 | "glob": true, 25 | "jsonpath": "$.version" 26 | } 27 | ] 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/extra-files.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "tag-separator": "/", 4 | "extra-files": [ 5 | "default.txt", 6 | { 7 | "type": "json", 8 | "path": "path/default.json", 9 | "jsonpath": "$.version" 10 | } 11 | ], 12 | "packages": { 13 | ".": { 14 | "component": "root", 15 | "tag-separator": "-" 16 | }, 17 | "packages/bot-config-utils": { 18 | "component": "bot-config-utils", 19 | "extra-files": [ 20 | "foo.txt", 21 | { 22 | "type": "json", 23 | "path": "path/bar.json", 24 | "jsonpath": "$.version" 25 | } 26 | ] 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/extra-labels.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "label": "custom: pending", 4 | "release-label": "custom: tagged", 5 | "extra-label": "lang: java", 6 | "packages": { 7 | ".": { 8 | "component": "root" 9 | }, 10 | "node-lib": { 11 | "component": "node-lib", 12 | "extra-label": "lang: nodejs" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/group-pr-title-pattern.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "group-pull-request-title-pattern": "chore${scope}: release${component} v${version}", 4 | "packages": { 5 | ".": { 6 | "component": "root" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils" 10 | }, 11 | "packages/cron-utils": { 12 | "component": "cron-utils", 13 | "pull-request-title-pattern": "chore${scope}: send it v${version}" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/group-priority.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "java", 3 | "packages": { 4 | ".": { 5 | "component": "root", 6 | "tag-separator": "-" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils" 10 | } 11 | }, 12 | "plugins": [ 13 | { 14 | "type": "group-priority", 15 | "groups": ["snapshot"] 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/include-component-in-tag.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "include-component-in-tag": true, 4 | "packages": { 5 | ".": { 6 | "component": "root", 7 | "include-component-in-tag": false 8 | }, 9 | "packages/bot-config-utils": { 10 | "component": "bot-config-utils" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/include-v-in-tag.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "include-v-in-tag": true, 4 | "packages": { 5 | ".": { 6 | "component": "root", 7 | "include-v-in-tag": false 8 | }, 9 | "packages/bot-config-utils": { 10 | "component": "bot-config-utils" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/initial-version.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": { 3 | "packages/foo": {} 4 | }, 5 | "release-type": "node", 6 | "initial-version": "0.1.0" 7 | } 8 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/labels.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "label": "custom: pending", 4 | "release-label": "custom: tagged", 5 | "packages": { 6 | ".": { 7 | "component": "root" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/maven-workspace-plugins.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "plugins": [ 4 | { 5 | "type": "maven-workspace", 6 | "considerAllArtifacts": true 7 | } 8 | ], 9 | "packages": { 10 | "pkg1": { 11 | "component": "pkg1" 12 | }, 13 | "pkg2": { 14 | "component": "pkg2" 15 | }, 16 | "pkg3": { 17 | "component": "pkg3" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/node-workspace-plugins.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "node", 3 | "plugins": [ 4 | { 5 | "type": "node-workspace", 6 | "considerAllArtifacts": true, 7 | "updatePeerDependencies": true 8 | } 9 | ], 10 | "packages": { 11 | "pkg1": { 12 | "component": "pkg1" 13 | }, 14 | "pkg2": { 15 | "component": "pkg2" 16 | }, 17 | "pkg3": { 18 | "component": "pkg3" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/plugins.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "plugins": [ 4 | "node-workspace", 5 | "cargo-workspace" 6 | ], 7 | "packages": { 8 | ".": { 9 | "component": "root" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/root-release-type.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "java-yoshi", 3 | "packages": { 4 | ".": { 5 | "package-name": "foo" 6 | }, 7 | "node-package": { 8 | "release-type": "node" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/search-depth.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-search-depth": 10, 3 | "commit-search-depth": 50, 4 | "packages": { 5 | ".": { 6 | "release-type": "simple" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/simple.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": { 3 | ".": { 4 | "release-type": "simple" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/tag-separator.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "tag-separator": "/", 4 | "packages": { 5 | ".": { 6 | "component": "root", 7 | "tag-separator": "-" 8 | }, 9 | "packages/bot-config-utils": { 10 | "component": "bot-config-utils" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/config/versioning.json: -------------------------------------------------------------------------------- 1 | { 2 | "release-type": "simple", 3 | "versioning": "always-bump-patch", 4 | "packages": { 5 | ".": { 6 | "component": "root" 7 | }, 8 | "packages/bot-config-utils": { 9 | "component": "bot-config-utils", 10 | "versioning": "default" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/node/pkg1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@node/pkg1", 3 | "version": "0.123.4" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/node/pkg2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@node/pkg2", 3 | "version": "0.1.2", 4 | "dependencies": { 5 | "@node/pkg1": "^0.123.4" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "googleapis", 3 | "version": "3.3.3" 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/python/setup.cfg: -------------------------------------------------------------------------------- 1 | version=1.2.3 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/python/setup.py: -------------------------------------------------------------------------------- 1 | version = "1.2.3" 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/python/src/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '1.2.3' 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/python/src/foolib/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '1.2.3' 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest/repo/python/src/foolib/version.py: -------------------------------------------------------------------------------- 1 | __version__ = "1.2.3" 2 | -------------------------------------------------------------------------------- /test/fixtures/manifest/versions/simple.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "1.0.0" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/manifest/versions/versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages/bot-config-utils": "4.0.0", 3 | "packages/cron-utils": "3.0.1", 4 | "packages/datastore-lock": "3.0.0", 5 | "packages/gcf-utils": "13.0.2", 6 | "packages/label-utils": "2.0.2", 7 | "packages/mono-repo-publish": "1.2.2", 8 | "packages/object-selector": "2.0.0", 9 | "packages/release-brancher": "1.3.1" 10 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "pkgA" 5 | version = "1.1.1" 6 | dependencies = [] 7 | 8 | [[package]] 9 | name = "pkgB" 10 | version = "2.2.2" 11 | dependencies = ["pkgA"] 12 | 13 | [[package]] 14 | name = "pkgC" 15 | version = "3.3.3" 16 | dependencies = ["pkgB"] -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["packages/rustA", "packages/rustB", "packages/rustC", "packages/rustD", "packages/rustE"] -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/packages/rustA/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pkgA" 3 | version = "1.1.1" 4 | 5 | [dependencies] 6 | tracing = "1.0.0" -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/packages/rustB/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pkgB" 3 | version = "2.2.2" 4 | 5 | [dependencies] 6 | pkgA = { version = "1.1.1", path = "../pkgA" } 7 | tracing = "1.0.0" -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/packages/rustC/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pkgC" 3 | version = "3.3.3" 4 | 5 | [dependencies] 6 | pkgB = { version = "2.2.2", path = "../pkgB" } 7 | rustls = "1.0.0" -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/packages/rustD/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pkgD" 3 | version = "1.2.3" 4 | 5 | [dependencies] 6 | tracing = "1.0.0" -------------------------------------------------------------------------------- /test/fixtures/plugins/cargo-workspace/packages/rustE/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pkgE" 3 | version = "3.3.3" 4 | 5 | [dependencies] 6 | 7 | [target.'cfg(foobar)'.dependencies] 8 | pkgA = { version = "1.1.1", path = "../pkgA" } -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/bom/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | my-bom 5 | 1.2.3 6 | 7 | 8 | 9 | com.google.example 10 | multi1-bom 11 | 1.1.1 12 | pom 13 | import 14 | 15 | 16 | com.google.example 17 | multi1-sub1 18 | 2.2.2 19 | 20 | 21 | com.google.example 22 | multi1-sub2 23 | 3.3.3 24 | 25 | 26 | com.google.example 27 | multi2-sub1 28 | 5.5.5 29 | 30 | 31 | com.google.example 32 | multi2-sub2 33 | 6.6.6 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/maven1/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | maven1 5 | 1.1.1 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/maven2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | maven2 5 | 2.2.2 6 | 7 | 8 | 9 | com.google.guava 10 | guava 11 | 12 | 13 | 14 | com.google.example 15 | maven1 16 | 1.1.1 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/maven3/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | maven3 5 | 3.3.3 6 | 7 | 8 | 9 | com.google.guava 10 | guava 11 | 12 | 13 | 14 | com.google.example 15 | maven2 16 | 2.2.2 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/maven4/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | maven4 5 | 4.4.4 6 | 7 | 8 | 9 | com.google.guava 10 | guava 11 | 12 | 13 | 14 | com.google.example 15 | maven3 16 | 3.3.3 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi1/bom/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi1-bom 5 | 1.1.1 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi1/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi1-parent 5 | 1.1.1 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi1/primary/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi1 5 | 1.1.1 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi1/sub1/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi1-sub1 5 | 2.2.2 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi1/sub2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi1-sub2 5 | 3.3.3 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi2/bom/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi2-bom 5 | 4.4.4 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi2-parent 5 | 4.4.4 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi2/primary/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi2 5 | 4.4.4 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi2/sub1/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi2-sub1 5 | 5.5.5 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/maven-workspace/multi2/sub2/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.example 4 | multi2-sub2 5 | 6.6.6 6 | -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/node1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/pkgA", 3 | "version": "3.3.3", 4 | "dependencies": { 5 | "anotherExternal": "^4.3.1" 6 | } 7 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/node2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/pkgB", 3 | "version": "2.2.2", 4 | "dependencies": { 5 | "@here/pkgA": "3.3.3", 6 | "anotherExternal": "^4.3.1" 7 | } 8 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/node3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/pkgC", 3 | "version": "1.1.1", 4 | "dependencies": { 5 | "@here/pkgB": "2.2.2", 6 | "anotherExternal": "^4.3.1" 7 | } 8 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/node4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/pkgD", 3 | "version": "4.4.4", 4 | "dependencies": { 5 | "anotherExternal": "^4.3.1" 6 | } 7 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/node5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/pkgE", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "@here/pkgA": "workspace:^", 6 | "anotherExternal": "^4.3.1" 7 | } 8 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/root", 3 | "version": "5.5.5", 4 | "dependencies": { 5 | "@here/pkgA": "^3.3.3", 6 | "@here/pkgD": "^4.4.4" 7 | } 8 | } -------------------------------------------------------------------------------- /test/fixtures/plugins/node-workspace/plugin1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@here/plugin1", 3 | "version": "4.4.4", 4 | "peerDependencies": { 5 | "@here/pkgA": "^3.3.3" 6 | } 7 | } -------------------------------------------------------------------------------- /test/fixtures/pojos/commits-fix-scoped.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sha": "fcd1c890dc1526f4d62ceedad561f498195c8939", 4 | "message": "fix(storage): some storage fix", 5 | "files": [] 6 | }, 7 | { 8 | "sha": "1f9663cf08ab1cf3b68d95dee4dc99b7c4aac373", 9 | "message": "fix(core): some core fix", 10 | "files": [] 11 | }, 12 | { 13 | "sha": "3006009a2b1b2cb4bd5108c0f469c410759f3a6a", 14 | "message": "chore: update common templates", 15 | "files": [] 16 | } 17 | ] -------------------------------------------------------------------------------- /test/fixtures/pojos/commits-fix.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sha": "fcd1c890dc1526f4d62ceedad561f498195c8939", 4 | "message": "fix(deps): update dependency com.google.cloud:google-cloud-storage to v1.120.0", 5 | "files": [] 6 | }, 7 | { 8 | "sha": "1f9663cf08ab1cf3b68d95dee4dc99b7c4aac373", 9 | "message": "fix(deps): update dependency com.google.cloud:google-cloud-spanner to v1.50.0", 10 | "files": [] 11 | }, 12 | { 13 | "sha": "3006009a2b1b2cb4bd5108c0f469c410759f3a6a", 14 | "message": "chore: update common templates", 15 | "files": [] 16 | } 17 | ] -------------------------------------------------------------------------------- /test/fixtures/pojos/commits-release-as-scoped.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sha": "fcd1c890dc1526f4d62ceedad561f498195c8939", 4 | "message": "fix(storage): some storage fix\n\nRelease-As: 1.0.0", 5 | "files": ["storage/foo.go"] 6 | }, 7 | { 8 | "sha": "1f9663cf08ab1cf3b68d95dee4dc99b7c4aac373", 9 | "message": "fix(core): some core fix", 10 | "files": [] 11 | }, 12 | { 13 | "sha": "3006009a2b1b2cb4bd5108c0f469c410759f3a6a", 14 | "message": "chore: update common templates", 15 | "files": [] 16 | } 17 | ] -------------------------------------------------------------------------------- /test/fixtures/pom-file-search-with-prefix.json: -------------------------------------------------------------------------------- 1 | { 2 | "sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", 3 | "url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312", 4 | "tree": [ 5 | { 6 | "path": "appengine/pom.xml", 7 | "mode": "100644", 8 | "type": "blob", 9 | "size": 30, 10 | "sha": "44b4fc6d56897b048c772eb4087f854f46256132", 11 | "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" 12 | }, 13 | { 14 | "path": "appengine/foo/pom.xml", 15 | "mode": "040000", 16 | "type": "tree", 17 | "sha": "f484d249c660418515fb01c2b9662073663c242e", 18 | "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e" 19 | }, 20 | { 21 | "path": "appengine-other/pom.xml", 22 | "mode": "040000", 23 | "type": "tree", 24 | "sha": "418515fb01c2b9662073663c242ef484d249c660", 25 | "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/418515fb01c2b9662073663c242ef484d249c660" 26 | } 27 | ], 28 | "truncated": false 29 | } -------------------------------------------------------------------------------- /test/fixtures/release-notes/grouped.txt: -------------------------------------------------------------------------------- 1 | :robot: I have created a release *beep* *boop* 2 | --- 3 | 4 | 5 |
1.0.1 6 | 7 | ## [1.0.1](https://github.com/testOwner/testRepo/compare/v1.0.0...v1.0.1) (2022-07-16) 8 | 9 | 10 | ### Bug Fixes 11 | 12 | * **chat:** add missing ellipsis to start log message ([00a2995](https://github.com/testOwner/testRepo/commit/00a299552dcee16479b987043beadbf846097126)) 13 |
14 | 15 |
chat: 1.0.1 16 | 17 | ## [1.0.1](https://github.com/testOwner/testRepo/compare/chat-v1.0.0...chat-v1.0.1) (2022-07-16) 18 | 19 | 20 | ### Bug Fixes 21 | 22 | * **chat:** add missing ellipsis to start log message ([00a2995](https://github.com/testOwner/testRepo/commit/00a299552dcee16479b987043beadbf846097126)) 23 |
24 | 25 | --- 26 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/release-notes/initial-version.txt: -------------------------------------------------------------------------------- 1 | chore(main): release 0.1.0 (#10) 2 | 3 | :robot: I have created a release *beep* *boop* 4 | --- 5 | 6 | 7 | ## 0.1.0 (2022-01-20) 8 | 9 | 10 | ### Features 11 | 12 | * initial generation ([f09aade](https://github.com/googleapis/java-eventarc-publishing/commit/f09aade83d98d32a7a886dac2bf495c4cc15a8db)) 13 | 14 | 15 | ### Dependencies 16 | 17 | * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#20](https://github.com/googleapis/java-eventarc-publishing/issues/20)) ([7bea63a](https://github.com/googleapis/java-eventarc-publishing/commit/7bea63a9ddd3c9d0def80d8571b5f1ab8a8eca70)) 18 | 19 | --- 20 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/release-notes/mixed-componentless-manifest.txt: -------------------------------------------------------------------------------- 1 | :robot: I have created a release \*beep\* \*boop\* 2 | --- 3 |
3.2.0 4 | 5 | 6 | ### Features 7 | 8 | * upgrade to gcf-utils@12 ([#2262](https://www.github.com/googleapis/repo-automation-bots/issues/2262)) ([bd04376](https://www.github.com/googleapis/repo-automation-bots/commit/bd043767ae59a4eed450f1d18741111dc4c3f8e8)) 9 |
10 |
@google-automations/label-utils: 1.1.0 11 | 12 | 13 | ### Features 14 | 15 | * upgrade to gcf-utils@12 ([#2262](https://www.github.com/googleapis/repo-automation-bots/issues/2262)) ([bd04376](https://www.github.com/googleapis/repo-automation-bots/commit/bd043767ae59a4eed450f1d18741111dc4c3f8e8)) 16 |
17 | 18 | 19 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/release-notes/overflow.txt: -------------------------------------------------------------------------------- 1 | This release is too large to preview in the pull request body. View the full release notes here: https://github.com/test-owner/test-repo/blob/my-head-branch--release-notes/release-notes.md 2 | -------------------------------------------------------------------------------- /test/fixtures/release-notes/single-manifest-pre-major.txt: -------------------------------------------------------------------------------- 1 | :robot: I have created a release \*beep\* \*boop\* 2 | --- 3 |
@google-cloud/release-brancher: 0.2.0 4 | 5 | 6 | ### Bug Fixes 7 | 8 | * **release-brancher:** use "ci:" (non-releasable) in init ([#2622](https://www.github.com/googleapis/repo-automation-bots/issues/2622)) ([c4b3ac5](https://www.github.com/googleapis/repo-automation-bots/commit/c4b3ac5e50f9579202a614c655e79eaf4bca362e)) 9 |
10 | 11 | 12 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/release-notes/single-manifest-prerelease.txt: -------------------------------------------------------------------------------- 1 | :robot: I have created a release \*beep\* \*boop\* 2 | --- 3 |
@google-cloud/release-brancher: 1.3.1-beta1 4 | 5 | 6 | ### Bug Fixes 7 | 8 | * **release-brancher:** use "ci:" (non-releasable) in init ([#2622](https://www.github.com/googleapis/repo-automation-bots/issues/2622)) ([c4b3ac5](https://www.github.com/googleapis/repo-automation-bots/commit/c4b3ac5e50f9579202a614c655e79eaf4bca362e)) 9 |
10 | 11 | 12 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/release-notes/single-manifest.txt: -------------------------------------------------------------------------------- 1 | :robot: I have created a release \*beep\* \*boop\* 2 | --- 3 |
@google-cloud/release-brancher: 1.3.1 4 | 5 | 6 | ### Bug Fixes 7 | 8 | * **release-brancher:** use "ci:" (non-releasable) in init ([#2622](https://www.github.com/googleapis/repo-automation-bots/issues/2622)) ([c4b3ac5](https://www.github.com/googleapis/repo-automation-bots/commit/c4b3ac5e50f9579202a614c655e79eaf4bca362e)) 9 |
10 | 11 | 12 | This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). -------------------------------------------------------------------------------- /test/fixtures/strategies/dart/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: hello_world 2 | description: Hello World 3 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 4 | 5 | version: 0.5.0+12 6 | 7 | environment: 8 | sdk: '>=2.12.0 <3.0.0' 9 | -------------------------------------------------------------------------------- /test/fixtures/strategies/elixir/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule MixTestRepo.MixProject do 2 | use Mix.Project 3 | 4 | def project do 5 | [ 6 | app: :mix_test_repo, 7 | version: "0.5.0", 8 | elixir: "~> 1.12", 9 | start_permanent: Mix.env() == :prod, 10 | deps: deps() 11 | ] 12 | end 13 | 14 | def application do 15 | [] 16 | end 17 | 18 | defp deps do 19 | [] 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/fixtures/strategies/expo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-test-repo", 3 | "version": "0.123.4", 4 | "repository": { 5 | "url": "git@github.com:samples/node-test-repo.git" 6 | }, 7 | "dependencies": { 8 | "expo": "44.0.0" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/fixtures/strategies/helm/Chart.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | name: helm-test-repo 16 | version: 1.0.0 17 | apiVersion: v2 18 | appVersion: 2.0.0 19 | dependencies: 20 | - name: another-repo 21 | version: 0.15.3 22 | repository: "linkToHelmChartRepo" 23 | maintainers: 24 | - Abhinav Khanna -------------------------------------------------------------------------------- /test/fixtures/strategies/java-yoshi/.repo-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "api_shortname": "appengine", 3 | "name_pretty": "App Engine Admin API", 4 | "product_documentation": "https://cloud.google.com/appengine/docs/admin-api/", 5 | "api_description": "you to manage your App Engine applications.", 6 | "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-appengine-admin/latest/overview", 7 | "release_level": "stable", 8 | "transport": "grpc", 9 | "language": "java", 10 | "repo": "googleapis/google-cloud-java", 11 | "repo_short": "java-appengine-admin", 12 | "distribution_name": "cloud.google.com:foo", 13 | "api_id": "appengine.googleapis.com", 14 | "library_type": "GAPIC_AUTO", 15 | "requires_billing": true, 16 | "codeowner_team": "@googleapis/aap-dpes" 17 | } 18 | -------------------------------------------------------------------------------- /test/fixtures/strategies/java-yoshi/changelog.json: -------------------------------------------------------------------------------- 1 | { 2 | "entries": [] 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/strategies/java-yoshi/versions-released.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.0-beta:0.108.0-beta 5 | grpc-google-cloud-trace-v1:0.73.0:0.73.0 6 | grpc-google-cloud-trace-v2:0.73.0:0.73.0 7 | proto-google-cloud-trace-v1:0.73.0:0.73.0 8 | proto-google-cloud-trace-v2:0.73.0:0.73.0 -------------------------------------------------------------------------------- /test/fixtures/strategies/java-yoshi/versions-with-beta-artifacts.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.0-beta:0.108.1-beta-SNAPSHOT 5 | grpc-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 6 | grpc-google-cloud-trace-v1beta1:0.73.0:0.73.1-SNAPSHOT 7 | proto-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 8 | proto-google-cloud-trace-v2beta1:0.73.0:0.73.1-SNAPSHOT -------------------------------------------------------------------------------- /test/fixtures/strategies/java-yoshi/versions.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.0-beta:0.108.1-beta-SNAPSHOT 5 | grpc-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 6 | grpc-google-cloud-trace-v2:0.73.0:0.73.1-SNAPSHOT 7 | proto-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 8 | proto-google-cloud-trace-v2:0.73.0:0.73.1-SNAPSHOT -------------------------------------------------------------------------------- /test/fixtures/strategies/krm-blueprint/nested-pkg/nested/nested-project.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 16 | kind: Project 17 | metadata: 18 | name: project-id # {"$kpt-set":"project-id"} 19 | namespace: projects # {"$kpt-set":"projects-namespace"} 20 | annotations: 21 | cnrm.cloud.google.com/auto-create-network: "false" 22 | cnrm.cloud.google.com/blueprint: cnrm/landing-zone:project/v3.0.0 23 | config.kubernetes.io/function: | 24 | container: 25 | image: gcr.io/yakima-eap/folder-ref:latest 26 | spec: 27 | name: project-id # {"$kpt-set":"project-id"} 28 | billingAccountRef: 29 | external: "AAAAAA-BBBBBB-CCCCCC" # {"$kpt-set":"billing-account-id"} 30 | folderRef: 31 | name: name.of.folder # {"$kpt-set":"folder-name"} 32 | namespace: hierarchy # {"$kpt-set":"folder-namespace"} -------------------------------------------------------------------------------- /test/fixtures/strategies/krm-blueprint/nested-pkg/nested/nonKRM.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | timeout: 900s 16 | steps: 17 | - id: 'lint-tests' 18 | name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS' 19 | args: ['/usr/local/bin/test_lint.sh'] 20 | tags: 21 | - 'ci' 22 | - 'lint' 23 | substitutions: 24 | _DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools' 25 | _DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '0.13' 26 | options: 27 | machineType: 'N1_HIGHCPU_8' 28 | env: 29 | - ENABLE_PARALLEL=1 -------------------------------------------------------------------------------- /test/fixtures/strategies/krm-blueprint/nested-pkg/no-attrib-bucket.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | apiVersion: storage.cnrm.cloud.google.com/v1beta1 16 | kind: StorageBucket 17 | metadata: 18 | name: blueprints-project-bucket # {"$ref":"#/definitions/io.k8s.cli.substitutions.bucket-name"} 19 | namespace: config-control # {"$kpt-set":"namespace"} 20 | annotations: 21 | cnrm.cloud.google.com/force-destroy: "false" 22 | cnrm.cloud.google.com/project-id: blueprints-project # {"$kpt-set":"project-id"} 23 | spec: 24 | storageClass: standard # {"$kpt-set":"storage-class"} 25 | uniformBucketLevelAccess: true 26 | versioning: 27 | enabled: false -------------------------------------------------------------------------------- /test/fixtures/strategies/krm-blueprint/nested-pkg/project.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 16 | kind: Project 17 | metadata: 18 | name: project-id # {"$kpt-set":"project-id"} 19 | namespace: projects # {"$kpt-set":"projects-namespace"} 20 | annotations: 21 | cnrm.cloud.google.com/auto-create-network: "false" 22 | cnrm.cloud.google.com/blueprint: cnrm/landing-zone:project/v3.0.0 23 | config.kubernetes.io/function: | 24 | container: 25 | image: gcr.io/yakima-eap/folder-ref:latest 26 | spec: 27 | name: project-id # {"$kpt-set":"project-id"} 28 | billingAccountRef: 29 | external: "AAAAAA-BBBBBB-CCCCCC" # {"$kpt-set":"billing-account-id"} 30 | folderRef: 31 | name: name.of.folder # {"$kpt-set":"folder-name"} 32 | namespace: hierarchy # {"$kpt-set":"folder-namespace"} -------------------------------------------------------------------------------- /test/fixtures/strategies/node/changelog.json: -------------------------------------------------------------------------------- 1 | { 2 | "repository": "google-cloud-node", 3 | "entries": [] 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/strategies/node/npm-shrinkwrap.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-test-repo", 3 | "version": "0.123.4", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": {} 7 | } 8 | -------------------------------------------------------------------------------- /test/fixtures/strategies/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-test-repo", 3 | "version": "0.123.4", 4 | "repository": { 5 | "url": "git@github.com:samples/node-test-repo.git" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/fixtures/strategies/ocaml/esy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sample", 3 | "version": "0.5.0", 4 | "description": "A sample esy file.", 5 | "author": "Example ", 6 | "license": "Apache-2.0", 7 | "dependencies": { 8 | "ocaml": "^4.9.0", 9 | "@opam/dune": "^2.7.1" 10 | }, 11 | "devDependencies": { 12 | "@opam/ocamlformat": "^0.15.0", 13 | "@opam/ocaml-lsp-server": "^1.1.0" 14 | }, 15 | "esy": { 16 | "build": "dune build -p binaryen" 17 | }, 18 | "scripts": { 19 | "test": "dune runtest", 20 | "format": "dune build @fmt --auto-promote" 21 | }, 22 | "installConfig": { 23 | "pnp": false 24 | }, 25 | "keywords": [ 26 | "sample", 27 | "ocaml" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /test/fixtures/strategies/ocaml/other.json: -------------------------------------------------------------------------------- 1 | { 2 | "foo": "bar" 3 | } 4 | -------------------------------------------------------------------------------- /test/fixtures/strategies/ocaml/sample.opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | version: "0.5.0" 3 | synopsis: "A sample opam file" 4 | maintainer: "example@example.org" 5 | author: "Example" 6 | license: "Apache-2.0" 7 | homepage: "https://github.com/googleapis/release-please" 8 | dev-repo: "git+https://github.comgoogleapis/release-please.git" 9 | bug-reports: "https://github.com/googleapis/release-please/issues" 10 | build: [ 11 | [ "dune" "subst" ] {pinned} 12 | [ "dune" "build" "-p" name "-j" jobs ] 13 | ] 14 | depends: [ 15 | "ocaml" {>= "4.09"} 16 | "dune" {>= "2.7.1"} 17 | ] 18 | -------------------------------------------------------------------------------- /test/fixtures/strategies/ocaml/sample.opam.locked: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | version: "0.5.0" 3 | synopsis: "A sample opam file" 4 | maintainer: "example@example.org" 5 | author: "Example" 6 | license: "Apache-2.0" 7 | homepage: "https://github.com/googleapis/release-please" 8 | dev-repo: "git+https://github.comgoogleapis/release-please.git" 9 | bug-reports: "https://github.com/googleapis/release-please/issues" 10 | build: [ 11 | [ "dune" "subst" ] {pinned} 12 | [ "dune" "build" "-p" name "-j" jobs ] 13 | ] 14 | depends: [ 15 | "ocaml" {= "4.12.2"} 16 | "dune" {= "3.0.3"} 17 | ] 18 | -------------------------------------------------------------------------------- /test/fixtures/strategies/python/changelog.json: -------------------------------------------------------------------------------- 1 | { 2 | "repository": "google-cloud-foo", 3 | "entries": [] 4 | } 5 | -------------------------------------------------------------------------------- /test/fixtures/strategies/rust-workspace/Cargo-crate1.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "crate1" 3 | version = "0.123.4" 4 | -------------------------------------------------------------------------------- /test/fixtures/strategies/rust-workspace/Cargo-crate2.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "crate2" 3 | version = "0.4.321" 4 | 5 | [dependencies] 6 | crate1 = { version = "0.123.4", path = "../crate1" } 7 | 8 | -------------------------------------------------------------------------------- /test/fixtures/strategies/rust-workspace/Cargo-workspace.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "crates/crate1", 4 | "crates/crate2" 5 | ] 6 | 7 | -------------------------------------------------------------------------------- /test/fixtures/strategies/rust-workspace/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "crate1" 5 | version = "0.123.4" 6 | dependencies = [] 7 | 8 | [[package]] 9 | name = "crate2" 10 | version = "0.4.321" 11 | dependencies = [ 12 | "crate1", 13 | ] -------------------------------------------------------------------------------- /test/fixtures/strategies/rust/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "rust_test_repo" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /test/fixtures/strategies/rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust_test_repo" 3 | version = "0.1.0" 4 | -------------------------------------------------------------------------------- /test/fixtures/strategies/sfdx/sfdx-project.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageDirectories": [ 3 | { 4 | "default": true, 5 | "versionNumber": "1.0.0.NEXT" 6 | } 7 | ], 8 | "name": "sfdx-test-repo" 9 | } 10 | -------------------------------------------------------------------------------- /test/updaters/chart-yaml.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {ChartYaml} from '../../src/updaters/helm/chart-yaml'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures'; 23 | 24 | describe('ChartYaml', () => { 25 | describe('updateContent', () => { 26 | it('updates version in Chart.yaml', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './helm/Chart.yaml'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new ChartYaml({ 32 | version: Version.parse('1.1.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /test/updaters/esy-json.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {EsyJson} from '../../src/updaters/ocaml/esy-json'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures'; 23 | 24 | describe('EsyJson', () => { 25 | describe('updateContent', () => { 26 | it('updates version in esy.json file', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './esy.json'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new EsyJson({ 32 | version: Version.parse('0.6.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /test/updaters/fixtures/CHANGELOG-dotnet.md: -------------------------------------------------------------------------------- 1 | # Version history 2 | 3 | ## Version 1.0.0-alpha00, released 2022-06-24 4 | 5 | Initial release. 6 | -------------------------------------------------------------------------------- /test/updaters/fixtures/CHANGELOG-fix.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | [npm history][1] 4 | 5 | [1]: https://www.npmjs.com/package/@google-cloud/os-login?activeTab=versions 6 | 7 | ### [0.3.3](https://www.github.com/googleapis/nodejs-os-login/compare/v0.3.2...v0.3.3) (2019-04-30) 8 | 9 | 10 | ### Bug Fixes 11 | 12 | * include 'x-goog-request-params' header in requests ([#167](https://www.github.com/googleapis/nodejs-os-login/issues/167)) ([074051d](https://www.github.com/googleapis/nodejs-os-login/commit/074051d)) 13 | 14 | ## v0.3.2 15 | 16 | 03-18-2019 13:47 PDT 17 | -------------------------------------------------------------------------------- /test/updaters/fixtures/CHANGELOG-non-conforming.md: -------------------------------------------------------------------------------- 1 | # Version 1.0.0-alpha01, released 2022-06-25 2 | 3 | Second alpha release. 4 | 5 | # Version 1.0.0-alpha00, released 2022-06-24 6 | 7 | Initial release. 8 | -------------------------------------------------------------------------------- /test/updaters/fixtures/CHANGELOG-ruby.md: -------------------------------------------------------------------------------- 1 | # Release History 2 | 3 | ### 0.5.0 / 2019-07-08 4 | 5 | * Support overriding service host and port 6 | 7 | ### 0.4.2 / 2019-06-11 8 | 9 | * Add VERSION constant 10 | 11 | ### 0.4.1 / 2019-04-29 12 | 13 | * Add AUTHENTICATION.md guide. 14 | * Extract gRPC header values from request. 15 | 16 | ### 0.4.0 / 2019-03-11 17 | 18 | * Add v1beta1 API version 19 | 20 | ### 0.3.0 / 2018-12-10 21 | 22 | * Add support for Regional Clusters. 23 | * Client methods deprecate many positional arguments in 24 | favor of name/parent named argument. 25 | * Maintains backwards compatibility. 26 | 27 | ### 0.2.2 / 2018-09-20 28 | 29 | * Update documentation. 30 | * Change documentation URL to googleapis GitHub org. 31 | 32 | ### 0.2.1 / 2018-09-10 33 | 34 | * Update documentation. 35 | 36 | ### 0.2.0 / 2018-08-21 37 | 38 | * Move Credentials location: 39 | * Add Google::Cloud::Container::V1::Credentials 40 | * Remove Google::Cloud::Container::Credentials 41 | * Update dependencies. 42 | * Update documentation. 43 | 44 | ### 0.1.0 / 2017-12-26 45 | 46 | * Initial release 47 | -------------------------------------------------------------------------------- /test/updaters/fixtures/Cargo-invalid.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "delf" 5 | version = "0.1.0" 6 | dependencies = [] 7 | 8 | [[package]] 9 | woops = true 10 | 11 | [[package]] 12 | woops = false 13 | -------------------------------------------------------------------------------- /test/updaters/fixtures/Cargo-workspace.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "crates/crate1", 4 | "crates/crate2" 5 | ] 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/updaters/fixtures/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-test-repo" 3 | version = "12.0.0" 4 | 5 | # To learn about other keys, check out Cargo's documentation 6 | 7 | [dependencies] 8 | normal-dep = "1.2.3" 9 | 10 | [dev-dependencies] 11 | dev-dep = { version = "1.2.3" } 12 | dev-dep-2 = { path = "../dev-dep-2" } 13 | 14 | [build-dependencies] 15 | # this is using a private registry 16 | build-dep = { version = "1.2.3", registry = "private", path = ".." } # trailing comment 17 | 18 | [target.'cfg(windows)'.dev-dependencies] 19 | windows-dep = { version = "1.2.3", registry = "private", path = ".." } 20 | 21 | [target.'cfg(unix)'.dependencies] 22 | unix-dep = { version = "1.2.3", registry = "private", path = ".." } 23 | 24 | [target.'cfg(target_arch = "x86")'.dependencies] 25 | x86-dep = { version = "1.2.3", registry = "private", path = ".." } 26 | 27 | [target.'cfg(target_arch = "x86_64")'.dependencies] 28 | x86-64-dep = { version = "1.2.3", registry = "private", path = ".." } 29 | 30 | [target.'cfg(foobar)'.dependencies] 31 | foobar-dep = "1.2.3" 32 | -------------------------------------------------------------------------------- /test/updaters/fixtures/Gemfile.lock: -------------------------------------------------------------------------------- 1 | PATH 2 | remote: . 3 | specs: 4 | foo (0.1.0) 5 | 6 | GEM 7 | remote: https://rubygems.org/ 8 | specs: 9 | ast (2.4.2) 10 | foobar (1.0.1) 11 | diff-lcs (1.5.0) 12 | json (2.6.3) 13 | parallel (1.22.1) 14 | parser (3.1.3.0) 15 | ast (~> 2.4.1) 16 | rainbow (3.1.1) 17 | rake (13.0.6) 18 | regexp_parser (2.6.1) 19 | rexml (3.3.9) 20 | rspec (3.12.0) 21 | rspec-core (~> 3.12.0) 22 | rspec-expectations (~> 3.12.0) 23 | rspec-mocks (~> 3.12.0) 24 | rspec-core (3.12.0) 25 | rspec-support (~> 3.12.0) 26 | rspec-expectations (3.12.0) 27 | diff-lcs (>= 1.2.0, < 2.0) 28 | rspec-support (~> 3.12.0) 29 | rspec-mocks (3.12.0) 30 | diff-lcs (>= 1.2.0, < 2.0) 31 | rspec-support (~> 3.12.0) 32 | rspec-support (3.12.0) 33 | rubocop (1.39.0) 34 | json (~> 2.3) 35 | parallel (~> 1.10) 36 | parser (>= 3.1.2.1) 37 | rainbow (>= 2.2.2, < 4.0) 38 | regexp_parser (>= 1.8, < 3.0) 39 | rexml (>= 3.3.9, < 4.0) 40 | rubocop-ast (>= 1.23.0, < 2.0) 41 | ruby-progressbar (~> 1.7) 42 | unicode-display_width (>= 1.4.0, < 3.0) 43 | rubocop-ast (1.24.0) 44 | parser (>= 3.1.1.0) 45 | ruby-progressbar (1.11.0) 46 | unicode-display_width (2.3.0) 47 | 48 | PLATFORMS 49 | ruby 50 | 51 | DEPENDENCIES 52 | bundler 53 | foo! 54 | foobar 55 | rake 56 | rspec 57 | rubocop 58 | 59 | BUNDLED WITH 60 | 2.3.26 61 | -------------------------------------------------------------------------------- /test/updaters/fixtures/MODULE-inline.bazel: -------------------------------------------------------------------------------- 1 | module(name = "rules_cc", version = "0.0.4") 2 | 3 | bazel_dep(name = "bazel_skylib", version = "1.3.0") 4 | bazel_dep(name = "platforms", version = "0.0.7") 5 | 6 | cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") 7 | use_repo(cc_configure, "local_config_cc_toolchains") 8 | 9 | register_toolchains("@local_config_cc_toolchains//:all") 10 | 11 | bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True) -------------------------------------------------------------------------------- /test/updaters/fixtures/MODULE-missing.bazel: -------------------------------------------------------------------------------- 1 | bazel_dep(name = "bazel_skylib", version = "1.3.0") 2 | bazel_dep(name = "platforms", version = "0.0.7") 3 | 4 | cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") 5 | use_repo(cc_configure, "local_config_cc_toolchains") 6 | 7 | register_toolchains("@local_config_cc_toolchains//:all") 8 | 9 | bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True) -------------------------------------------------------------------------------- /test/updaters/fixtures/MODULE-order.bazel: -------------------------------------------------------------------------------- 1 | bazel_dep(name = "bazel_skylib", version = "1.3.0") 2 | bazel_dep(name = "platforms", version = "0.0.7") 3 | 4 | cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") 5 | use_repo(cc_configure, "local_config_cc_toolchains") 6 | 7 | module(name = "rules_cc", version = "0.0.4") 8 | 9 | register_toolchains("@local_config_cc_toolchains//:all") 10 | 11 | bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True) -------------------------------------------------------------------------------- /test/updaters/fixtures/MODULE.bazel: -------------------------------------------------------------------------------- 1 | module( 2 | name = "rules_cc", 3 | version = "0.0.4", 4 | compatibility_level = 1, 5 | ) 6 | 7 | bazel_dep(name = "bazel_skylib", version = "1.3.0") 8 | bazel_dep(name = "platforms", version = "0.0.7") 9 | 10 | cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") 11 | use_repo(cc_configure, "local_config_cc_toolchains") 12 | 13 | register_toolchains("@local_config_cc_toolchains//:all") 14 | 15 | bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True) -------------------------------------------------------------------------------- /test/updaters/fixtures/README.md: -------------------------------------------------------------------------------- 1 | # Terraform Module 2 | 3 | ## Usage 4 | 5 | ```hcl 6 | module "vpc" { 7 | source = "terraform-google-modules/mine/google" 8 | version = "~> 2.0" 9 | } 10 | ``` 11 | -------------------------------------------------------------------------------- /test/updaters/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '3.2.1' 2 | -------------------------------------------------------------------------------- /test/updaters/fixtures/dune-project: -------------------------------------------------------------------------------- 1 | (lang dune 2.0) 2 | (name sample) 3 | (version 0.5.0) -------------------------------------------------------------------------------- /test/updaters/fixtures/esy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sample", 3 | "version": "0.5.0", 4 | "description": "A sample esy file.", 5 | "author": "Example ", 6 | "license": "Apache-2.0", 7 | "dependencies": { 8 | "ocaml": "^4.9.0", 9 | "@opam/dune": "^2.7.1" 10 | }, 11 | "devDependencies": { 12 | "@opam/ocamlformat": "^0.15.0", 13 | "@opam/ocaml-lsp-server": "^1.1.0" 14 | }, 15 | "esy": { 16 | "build": "dune build -p binaryen" 17 | }, 18 | "scripts": { 19 | "test": "dune runtest", 20 | "format": "dune build @fmt --auto-promote" 21 | }, 22 | "installConfig": { 23 | "pnp": false 24 | }, 25 | "keywords": [ 26 | "sample", 27 | "ocaml" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /test/updaters/fixtures/expo/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "owner": "some-owner", 4 | "name": "Some Name", 5 | "slug": "some-slug", 6 | "version": "1.2.3", 7 | "orientation": "portrait", 8 | "icon": "./assets/icon-inverse.png", 9 | "scheme": "someschema", 10 | "splash": { 11 | "image": "./assets/splash.png", 12 | "resizeMode": "cover", 13 | "backgroundColor": "#FFFFFF" 14 | }, 15 | "updates": { 16 | "fallbackToCacheTimeout": 0, 17 | "url": "some-url-here" 18 | }, 19 | "assetBundlePatterns": [ 20 | "**/*" 21 | ], 22 | "ios": { 23 | "bundleIdentifier": "com.somedomain", 24 | "buildNumber": "1.2.3", 25 | "supportsTablet": true, 26 | "config": { 27 | "usesNonExemptEncryption": false 28 | } 29 | }, 30 | "android": { 31 | "package": "com.somedomain", 32 | "versionCode": 440010203, 33 | "adaptiveIcon": { 34 | "foregroundImage": "./assets/icon-inverse.png", 35 | "backgroundColor": "#FFFFFF" 36 | } 37 | }, 38 | "web": { 39 | "favicon": "./assets/favicon.png" 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /test/updaters/fixtures/go/version.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package api 16 | 17 | const Version = "0.58.0" -------------------------------------------------------------------------------- /test/updaters/fixtures/helm/Chart.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | name: helm-test-repo 16 | version: 1.0.0 17 | apiVersion: v2 18 | # renovate: image=imageName 19 | appVersion: 2.0.0 20 | dependencies: 21 | - name: another-repo 22 | version: 0.15.3 23 | repository: "linkToHelmChartRepo" 24 | maintainers: 25 | - Abhinav Khanna -------------------------------------------------------------------------------- /test/updaters/fixtures/java-auth-readme.md: -------------------------------------------------------------------------------- 1 | ## Quickstart 2 | 3 | If you are using Maven, add this to your pom.xml file (notice that you can replace 4 | `google-auth-library-oauth2-http` with any of `google-auth-library-credentials` and 5 | `google-auth-library-appengine`, depending on your application needs): 6 | 7 | [//]: # ({x-version-update-start:google-auth-library-oauth2-http:released}) 8 | 9 | ```xml 10 | 11 | com.google.auth 12 | google-auth-library-oauth2-http 13 | 0.16.2 14 | 15 | ``` 16 | [//]: # ({x-version-update-end}) 17 | 18 | 19 | If you are using Gradle, add this to your dependencies 20 | 21 | [//]: # ({x-version-update-start:google-auth-library-oauth2-http:released}) 22 | ```Groovy 23 | compile 'com.google.auth:google-auth-library-oauth2-http:0.16.2' 24 | ``` 25 | [//]: # ({x-version-update-end}) 26 | 27 | If you are using SBT, add this to your dependencies 28 | 29 | [//]: # ({x-version-update-start:google-auth-library-oauth2-http:released}) 30 | ```Scala 31 | libraryDependencies += "com.google.auth" % "google-auth-library-oauth2-http" % "0.16.2" 32 | ``` 33 | [//]: # ({x-version-update-end}) 34 | -------------------------------------------------------------------------------- /test/updaters/fixtures/java-auth-versions.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-auth-library:0.16.2:0.16.2-SNAPSHOT 5 | google-auth-library-bom:0.16.2:0.16.2-99-SNAPSHOT 6 | google-auth-library-parent:0.16.2:0.16.2-alpha-SNAPSHOT 7 | google-auth-library-appengine:0.16.2:0.16.2 8 | google-auth-library-credentials:0.16.2:0.16.2 9 | google-auth-library-oauth2-http:0.16.2:0.16.2 10 | -------------------------------------------------------------------------------- /test/updaters/fixtures/java-replacements-test.txt: -------------------------------------------------------------------------------- 1 | # this is an inline current entry and should always be replaced 2 | 1.2.3 # {x-version-update:module-name:current} 3 | 4 | # this is a block current entry and should always be replaced 5 | # {x-version-update-start:module-name:current} 6 | 2.3.4 7 | 3.4.5 8 | # {x-version-update-end} 9 | 10 | # this is an inline released entry and should be replaced for non-snapshot releases 11 | 1.2.3 # {x-version-update:module-name:released} 12 | 13 | # this is a block released entry and should be replaced for non-snapshot releases 14 | # {x-version-update-start:module-name:released} 15 | 2.3.4 16 | 3.4.5 17 | # {x-version-update-end} 18 | -------------------------------------------------------------------------------- /test/updaters/fixtures/krm/simpleKRM.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2021 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 16 | kind: Project 17 | metadata: 18 | name: project-id # {"$kpt-set":"project-id"} 19 | namespace: projects # {"$kpt-set":"projects-namespace"} 20 | annotations: 21 | cnrm.cloud.google.com/auto-create-network: "false" 22 | cnrm.cloud.google.com/blueprint: cnrm/landing-zone:project/v0.2.0 23 | spec: 24 | name: project-id # {"$kpt-set":"project-id"} 25 | billingAccountRef: 26 | external: "AAAAAA-BBBBBB-CCCCCC" # {"$kpt-set":"billing-account-id"} 27 | folderRef: 28 | name: name.of.folder # {"$kpt-set":"folder-name"} 29 | namespace: hierarchy # {"$kpt-set":"folder-namespace"} 30 | -------------------------------------------------------------------------------- /test/updaters/fixtures/metadata.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: blueprints.cloud.google.com/v1alpha1 2 | kind: BlueprintMetadata 3 | metadata: 4 | name: foo 5 | spec: 6 | info: 7 | title: bar 8 | version: 2.0.0 9 | -------------------------------------------------------------------------------- /test/updaters/fixtures/mix-attribute.exs: -------------------------------------------------------------------------------- 1 | defmodule MixTestRepo.MixProject do 2 | use Mix.Project 3 | 4 | @version "0.5.0" 5 | 6 | def project do 7 | [ 8 | app: :mix_test_repo, 9 | version: @version, 10 | elixir: "~> 1.12", 11 | start_permanent: Mix.env() == :prod, 12 | deps: deps() 13 | ] 14 | end 15 | 16 | def application do 17 | [] 18 | end 19 | 20 | defp deps do 21 | [] 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /test/updaters/fixtures/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule MixTestRepo.MixProject do 2 | use Mix.Project 3 | 4 | def project do 5 | [ 6 | app: :mix_test_repo, 7 | version: "0.5.0", 8 | elixir: "~> 1.12", 9 | start_permanent: Mix.env() == :prod, 10 | deps: deps() 11 | ] 12 | end 13 | 14 | def application do 15 | [] 16 | end 17 | 18 | defp deps do 19 | [] 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-lock-v1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "release-please", 3 | "version": "11.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true 6 | } 7 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-lock-v2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "release-please", 3 | "version": "11.1.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "release-please", 9 | "version": "11.1.0" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-lock-v3-workspace.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "release-please", 3 | "version": "11.1.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "release-please", 9 | "version": "11.1.0" 10 | }, 11 | "node_modules/release-please-foo": { 12 | "resolved": "packages/foo", 13 | "link": true 14 | }, 15 | "node_modules/release-please-bar": { 16 | "resolved": "packages/bar", 17 | "link": true 18 | }, 19 | "packages/foo": { 20 | "name": "release-please-foo", 21 | "version": "1.0.0", 22 | "dependencies": { 23 | "release-please-bar": "1.0.0" 24 | } 25 | }, 26 | "packages/bar": { 27 | "name": "release-please-bar", 28 | "version": "1.0.0" 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-lock-v3.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "release-please", 3 | "version": "11.1.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "release-please", 9 | "version": "11.1.0" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-with-dependencies.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yargs-parser", 3 | "version": "13.0.0", 4 | "description": "the mighty option parser used by yargs", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "nyc mocha test/*.js", 8 | "posttest": "standard", 9 | "coverage": "nyc report --reporter=text-lcov | coveralls", 10 | "release": "standard-version" 11 | }, 12 | "repository": { 13 | "url": "git@github.com:yargs/yargs-parser.git" 14 | }, 15 | "keywords": [ 16 | "argument", 17 | "parser", 18 | "yargs", 19 | "command", 20 | "cli", 21 | "parsing", 22 | "option", 23 | "args", 24 | "argument" 25 | ], 26 | "author": "Ben Coe ", 27 | "license": "ISC", 28 | "devDependencies": { 29 | "chai": "^4.2.0", 30 | "coveralls": "^3.0.2", 31 | "mocha": "^5.2.0", 32 | "nyc": "^13.0.1", 33 | "standard": "^12.0.1" 34 | }, 35 | "dependencies": { 36 | "camelcase": "^5.0.0", 37 | "decamelize": "^1.2.0" 38 | }, 39 | "optionalDependencies": { 40 | "foo": "~0.0.7" 41 | }, 42 | "peerDependencies": { 43 | "bar": ">= 1.0.0" 44 | }, 45 | "files": [ 46 | "lib", 47 | "index.js" 48 | ], 49 | "engine": { 50 | "node": ">=6" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package-with-protocol-dependencies.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yargs-parser", 3 | "version": "13.0.0", 4 | "description": "the mighty option parser used by yargs", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "nyc mocha test/*.js", 8 | "posttest": "standard", 9 | "coverage": "nyc report --reporter=text-lcov | coveralls", 10 | "release": "standard-version" 11 | }, 12 | "repository": { 13 | "url": "git@github.com:yargs/yargs-parser.git" 14 | }, 15 | "keywords": [ 16 | "argument", 17 | "parser", 18 | "yargs", 19 | "command", 20 | "cli", 21 | "parsing", 22 | "option", 23 | "args", 24 | "argument" 25 | ], 26 | "author": "Ben Coe ", 27 | "license": "ISC", 28 | "devDependencies": { 29 | "chai": "^4.2.0", 30 | "coveralls": "^3.0.2", 31 | "mocha": "^5.2.0", 32 | "nyc": "workspace:*", 33 | "standard": "link:../standard" 34 | }, 35 | "dependencies": { 36 | "camelcase": "^5.0.0", 37 | "decamelize": "portal:../decamelize" 38 | }, 39 | "optionalDependencies": { 40 | "foo": "~0.0.7" 41 | }, 42 | "peerDependencies": { 43 | "bar": "workspace:^" 44 | }, 45 | "files": [ 46 | "lib", 47 | "index.js" 48 | ], 49 | "engine": { 50 | "node": ">=6" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /test/updaters/fixtures/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yargs-parser", 3 | "version": "13.0.0", 4 | "description": "the mighty option parser used by yargs", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "nyc mocha test/*.js", 8 | "posttest": "standard", 9 | "coverage": "nyc report --reporter=text-lcov | coveralls", 10 | "release": "standard-version" 11 | }, 12 | "repository": { 13 | "url": "git@github.com:yargs/yargs-parser.git" 14 | }, 15 | "keywords": [ 16 | "argument", 17 | "parser", 18 | "yargs", 19 | "command", 20 | "cli", 21 | "parsing", 22 | "option", 23 | "args", 24 | "argument" 25 | ], 26 | "author": "Ben Coe ", 27 | "license": "ISC", 28 | "devDependencies": { 29 | "chai": "^4.2.0", 30 | "coveralls": "^3.0.2", 31 | "mocha": "^5.2.0", 32 | "nyc": "^13.0.1", 33 | "standard": "^12.0.1" 34 | }, 35 | "dependencies": { 36 | "camelcase": "^5.0.0", 37 | "decamelize": "^1.2.0" 38 | }, 39 | "files": [ 40 | "lib", 41 | "index.js" 42 | ], 43 | "engine": { 44 | "node": ">=6" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /test/updaters/fixtures/php/ServiceBuilder.php: -------------------------------------------------------------------------------- 1 | 4 | 4.0.0 5 | com.google.api.grpc 6 | proto-google-cloud-trace-v1 7 | 0.73.1-SNAPSHOT 8 | proto-google-cloud-trace-v1 9 | PROTO library for proto-google-cloud-trace-v1 10 | 11 | com.google.cloud 12 | google-cloud-trace-parent 13 | 0.108.1-beta-SNAPSHOT 14 | 15 | 16 | 17 | com.google.protobuf 18 | protobuf-java 19 | 20 | 21 | com.google.api.grpc 22 | proto-google-common-protos 23 | 24 | 25 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pom-submodule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.google.auth 7 | google-auth-library-parent 8 | 0.16.2 9 | 10 | 11 | google-auth-library-appengine 12 | 13 | -------------------------------------------------------------------------------- /test/updaters/fixtures/project/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '3.2.1' 2 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: hello_world 2 | description: Hello World 3 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 4 | 5 | version: 0.5.0 6 | 7 | environment: 8 | sdk: '>=2.12.0 <3.0.0' 9 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pubspec_with_build_no.yaml: -------------------------------------------------------------------------------- 1 | name: hello_world 2 | description: Hello World 3 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 4 | 5 | version: 0.5.0+12 6 | 7 | environment: 8 | sdk: '>=2.12.0 <3.0.0' 9 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pubspec_with_build_no_bad.yaml: -------------------------------------------------------------------------------- 1 | name: hello_world 2 | description: Hello World 3 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 4 | 5 | version: 0.5.0+abc 6 | 7 | environment: 8 | sdk: '>=2.12.0 <3.0.0' 9 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pyproject-poetry.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = 'project' 3 | version = '3.2.1' 4 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pyproject-project.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = 'project' 3 | version = '3.2.1' 4 | -------------------------------------------------------------------------------- /test/updaters/fixtures/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = 'project' 3 | version = '3.2.1' 4 | -------------------------------------------------------------------------------- /test/updaters/fixtures/r/DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: mypackage 2 | Title: What the Package Does (One Line, Title Case) 3 | Version: 0.0.1 4 | Authors@R: 5 | person("First", "Last", , "first.last@example.com", role = c("aut", "cre"), 6 | comment = c(ORCID = "YOUR-ORCID-ID")) 7 | Description: What the package does (one paragraph). 8 | License: GPL-3 9 | Encoding: UTF-8 10 | Roxygen: list(markdown = TRUE) 11 | RoxygenNote: 7.3.2 12 | -------------------------------------------------------------------------------- /test/updaters/fixtures/renovate-shared-preset.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "github>abc/foo:xyz/sub#1.2.3", 5 | "github>abc/bar:xyz/sub#1.2.3" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /test/updaters/fixtures/sample.opam: -------------------------------------------------------------------------------- 1 | opam-version: "2.0" 2 | version: "0.5.0" 3 | synopsis: "A sample opam file" 4 | maintainer: "example@example.org" 5 | author: "Example" 6 | license: "Apache-2.0" 7 | homepage: "https://github.com/googleapis/release-please" 8 | dev-repo: "git+https://github.comgoogleapis/release-please.git" 9 | bug-reports: "https://github.com/googleapis/release-please/issues" 10 | build: [ 11 | [ "dune" "subst" ] {pinned} 12 | [ "dune" "build" "-p" name "-j" jobs ] 13 | ] 14 | depends: [ 15 | "ocaml" {>= "4.09"} 16 | "dune" {>= "2.7.1"} 17 | ] 18 | -------------------------------------------------------------------------------- /test/updaters/fixtures/samples-package-json-no-dep.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@google-cloud/firestore-samples", 3 | "version": "0.0.1", 4 | "private": true, 5 | "license": "Apache-2.0", 6 | "author": "Google Inc.", 7 | "repository": "googleapis/nodejs-firestore", 8 | "engines": { 9 | "node": ">=8" 10 | }, 11 | "scripts": { 12 | "test": "mocha system-test/*.js --timeout 600000" 13 | }, 14 | "devDependencies": { 15 | "mocha": "^6.0.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/updaters/fixtures/samples-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@google-cloud/firestore-samples", 3 | "version": "0.0.1", 4 | "private": true, 5 | "license": "Apache-2.0", 6 | "author": "Google Inc.", 7 | "repository": "googleapis/nodejs-firestore", 8 | "engines": { 9 | "node": ">=8" 10 | }, 11 | "scripts": { 12 | "test": "mocha system-test/*.js --timeout 600000" 13 | }, 14 | "dependencies": { 15 | "@google-cloud/firestore": "^1.3.0" 16 | }, 17 | "devDependencies": { 18 | "mocha": "^6.0.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/updaters/fixtures/sfdx-project.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageDirectories": [ 3 | { 4 | "default": true, 5 | "versionNumber": "1.0.0.NEXT" 6 | } 7 | ], 8 | "name": "sfdx-test-repo" 9 | } 10 | -------------------------------------------------------------------------------- /test/updaters/fixtures/src/project/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '3.2.1' 2 | -------------------------------------------------------------------------------- /test/updaters/fixtures/toml/invalid.txt: -------------------------------------------------------------------------------- 1 | invalid = 2 | -------------------------------------------------------------------------------- /test/updaters/fixtures/toml/v1.0.0.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | version = '1.0.0' 3 | 4 | [v1spec] 5 | # taken from toml.io#Arrays examples 6 | integers = [ 1, 2, 3 ] 7 | colors = [ "red", "yellow", "green" ] 8 | nested_arrays_of_ints = [ [ 1, 2 ], [3, 4, 5] ] 9 | nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ] 10 | string_array = [ "all", 'strings', """are the same""", '''type''' ] 11 | 12 | [heterogenous] 13 | # Mixed-type arrays are allowed 14 | numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ] 15 | contributors = [ 16 | "Foo Bar ", 17 | { name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" } 18 | ] 19 | -------------------------------------------------------------------------------- /test/updaters/fixtures/version-with-long-patch.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | __version__ = '0.5.10' 16 | -------------------------------------------------------------------------------- /test/updaters/fixtures/version-with-long-patch.rb: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | module Google 16 | module Cloud 17 | module Bigtable 18 | VERSION = "0.6.10".freeze 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/updaters/fixtures/version-with-prerelease.rb: -------------------------------------------------------------------------------- 1 | # Copyright 2022 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | module Google 16 | module Cloud 17 | module Bigtable 18 | VERSION = "10.0.0.alpha1".freeze 19 | end 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /test/updaters/fixtures/version.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | __version__ = '0.5.0' 16 | -------------------------------------------------------------------------------- /test/updaters/fixtures/version.rb: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Google LLC 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # https://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | module Google 17 | module Cloud 18 | module Bigtable 19 | VERSION = "0.5.0".freeze 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /test/updaters/fixtures/versions-double-snapshot.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.1-beta-SNAPSHOT:0.108.1-beta-SNAPSHOT 5 | grpc-google-cloud-trace-v1:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 6 | grpc-google-cloud-trace-v2:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 7 | proto-google-cloud-trace-v1:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT 8 | proto-google-cloud-trace-v2:0.73.1-SNAPSHOT:0.73.1-SNAPSHOT -------------------------------------------------------------------------------- /test/updaters/fixtures/versions-release.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.0-beta:0.108.0-beta 5 | grpc-google-cloud-trace-v1:0.73.0:0.73.0 6 | grpc-google-cloud-trace-v2:0.73.0:0.73.0 7 | proto-google-cloud-trace-v1:0.73.0:0.73.0 8 | proto-google-cloud-trace-v2:0.73.0:0.73.0 -------------------------------------------------------------------------------- /test/updaters/fixtures/versions-suffix-with-snapshot.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-admin:2.3.5:2.3.5 5 | admin:3.4.2:3.4.2 -------------------------------------------------------------------------------- /test/updaters/fixtures/versions-suffix-without-snapshot.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-admin:2.3.0:2.3.1-SNAPSHOT 5 | admin:3.4.0:3.4.1-SNAPSHOT -------------------------------------------------------------------------------- /test/updaters/fixtures/versions.tf: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | terraform { 18 | required_version = ">=0.13, <0.14" 19 | 20 | required_providers { 21 | google = ">= 3.44.0, <4.0.0" 22 | } 23 | 24 | provider_meta "google" { 25 | module_name = "foo/bar/baz/v1.0.0" 26 | } 27 | 28 | provider_meta "google-beta" { 29 | module_name = "foo/bar/baz/v1.0.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /test/updaters/fixtures/versions.txt: -------------------------------------------------------------------------------- 1 | # Format: 2 | # module:released-version:current-version 3 | 4 | google-cloud-trace:0.108.0-beta:0.108.1-beta-SNAPSHOT 5 | grpc-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 6 | grpc-google-cloud-trace-v2:0.73.0:0.73.1-SNAPSHOT 7 | proto-google-cloud-trace-v1:0.73.0:0.73.1-SNAPSHOT 8 | proto-google-cloud-trace-v2:0.73.0:0.73.1-SNAPSHOT -------------------------------------------------------------------------------- /test/updaters/fixtures/yaml/invalid.txt: -------------------------------------------------------------------------------- 1 | boo: invalid:yaml: 2 | -------------------------------------------------------------------------------- /test/updaters/fixtures/yaml/multi.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: first 3 | version: 0.0.1 4 | --- 5 | name: second 6 | version: 0.2.0 7 | --- 8 | name: third 9 | version: 3.0.0 10 | -------------------------------------------------------------------------------- /test/updaters/opam.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {Opam} from '../../src/updaters/ocaml/opam'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures'; 23 | 24 | describe('Opam', () => { 25 | describe('updateContent', () => { 26 | it('updates version in opam file', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './sample.opam'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new Opam({ 32 | version: Version.parse('0.6.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /test/updaters/readme.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2020 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {ReadMe} from '../../src/updaters/terraform/readme'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures'; 23 | 24 | describe('README.md', () => { 25 | describe('updateContent', () => { 26 | it('updates version in README.md', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './README.md'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new ReadMe({ 32 | version: Version.parse('2.1.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /test/updaters/setup-py.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2019 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {SetupPy} from '../../src/updaters/python/setup-py'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures'; 23 | 24 | describe('setup.py', () => { 25 | describe('updateContent', () => { 26 | it('updates version in setup.py', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './setup.py'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new SetupPy({ 32 | version: Version.parse('0.6.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /test/updaters/version-go.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | import {readFileSync} from 'fs'; 16 | import {resolve} from 'path'; 17 | import * as snapshot from 'snap-shot-it'; 18 | import {describe, it} from 'mocha'; 19 | import {VersionGo} from '../../src/updaters/go/version-go'; 20 | import {Version} from '../../src/version'; 21 | 22 | const fixturesPath = './test/updaters/fixtures/go'; 23 | 24 | describe('version.go', () => { 25 | describe('updateContent', () => { 26 | it('updates version in version.go', async () => { 27 | const oldContent = readFileSync( 28 | resolve(fixturesPath, './version.go'), 29 | 'utf8' 30 | ).replace(/\r\n/g, '\n'); 31 | const version = new VersionGo({ 32 | version: Version.parse('0.59.0'), 33 | }); 34 | const newContent = version.updateContent(oldContent); 35 | snapshot(newContent); 36 | }); 37 | }); 38 | }); 39 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/gts/tsconfig-google.json", 3 | "compilerOptions": { 4 | "allowSyntheticDefaultImports": true, 5 | "lib": ["es2018", "dom"], 6 | "rootDir": ".", 7 | "outDir": "build", 8 | "typeRoots": ["./typings", "./node_modules/@types"] 9 | }, 10 | "include": [ 11 | "typings/**/*.d.ts", 12 | "src/**/*.ts", 13 | "test/**/*.ts", 14 | "system-test/*.ts" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /typings/config-chain.d.ts: -------------------------------------------------------------------------------- 1 | // Copyright 2023 Google LLC 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // This files is needed because `lerna-lite` uses config-chain and there isn't a @types/config-chain available. 16 | declare module 'config-chain' { 17 | export class ConfigChain {} 18 | } 19 | --------------------------------------------------------------------------------