python-semantic-release 9.21.1__tar.gz → 9.21.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_semantic_release-9.21.1/src/python_semantic_release.egg-info → python_semantic_release-9.21.2}/PKG-INFO +6 -4
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/github-actions.rst +10 -10
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/pyproject.toml +15 -9
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2/src/python_semantic_release.egg-info}/PKG-INFO +6 -4
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/requires.txt +4 -3
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/helpers.py +12 -2
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_1_channel.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_2_channels.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_3_channels.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/test_repo_4_channels.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_1_channel.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/test_repo_2_channels.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_dual_version_support_w_prereleases.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/test_repo_trunk_w_prereleases.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_build.py +1 -1
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/test_helpers.py +29 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/AUTHORS.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/LICENSE +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/MANIFEST.in +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/README.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/Makefile +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/algorithm.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/cronjobs.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/index.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/travis.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/changelog_templates.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/commands.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/commit_parsing.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/conf.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/configuration.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/contributing.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/contributors.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/index.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/make.bat +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/migrating_from_v7.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/multibranch_releases.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/psr_changelog.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/strict_mode.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/troubleshooting.rst +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/setup.cfg +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/SOURCES.txt +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/dependency_links.txt +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/entry_points.txt +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/python_semantic_release.egg-info/top_level.txt +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/__main__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/changelog/context.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/changelog/release_history.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/changelog/template.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/changelog_writer.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/cli_context.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/changelog.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/generate_config.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/main.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/publish.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/commands/version.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/config.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/const.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/github_actions_output.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/masking_filter.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/_base.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/angular.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/conventional.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/emoji.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/scipy.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/tag.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/token.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/commit_parser/util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/const.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_header.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_init.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changelog_update.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/changes.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/first_release.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/macros.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/unreleased_changes.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.components/versioned_changes.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/.release_notes.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/md/CHANGELOG.md.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_header.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_init.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changelog_update.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/changes.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/first_release.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/macros.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/unreleased_changes.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/.components/versioned_changes.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/data/templates/angular/rst/CHANGELOG.rst.j2 +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/enums.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/errors.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/gitproject.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/globals.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/_base.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/bitbucket.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/gitea.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/github.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/gitlab.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/remote_hvcs_base.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/token_auth.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/hvcs/util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/py.typed +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/algorithm.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declaration.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/enum.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/i_version_replacer.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/pattern.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/declarations/toml.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/translator.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/version/version.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/conftest.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/const.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_custom_parser.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_parsing.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_changelog/test_changelog_release_notes.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_config/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_config/test_generate_config.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_publish/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_publish/test_publish.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/conftest.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/git_flow/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/github_flow/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/bump_version/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_bump.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_changelog.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_changelog_custom_commit_msg.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_github_actions.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_print.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_release_notes.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_stamp.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/cmd_version/test_version_strict.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/conftest.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/test_help.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/e2e/test_main.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/commit_parsers.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/example_project.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/git_repo.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_1_release_channel.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_2_release_channels.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_3_release_channels.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/git_flow/repo_w_4_release_channels.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/repo_w_default_release.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/github_flow/repo_w_release_channels.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/repo_initial_commit.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_dual_version_support_w_prereleases.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_no_tags.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_prereleases.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/repos/trunk_based_dev/repo_w_tags.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/fixtures/scipy.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/conftest.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/conftest.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_changelog_context.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_default_changelog.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_release_history.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_release_notes.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_template.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/changelog/test_template_render.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_config.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_github_actions_output.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_masking_filter.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/cli/test_version.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_conventional.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_emoji.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_parsed_commit.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_scipy.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/commit_parser/test_util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test__base.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_bitbucket.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_gitea.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_github.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_gitlab.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_token_auth.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/hvcs/test_util.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/__init__.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/test_pattern_declaration.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/declarations/test_toml_declaration.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_algorithm.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_translator.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/unit/semantic_release/version/test_version.py +0 -0
- {python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/tests/util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.21.
|
|
3
|
+
Version: 9.21.2
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -17,17 +17,18 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Requires-Python: >=3.8
|
|
21
22
|
Description-Content-Type: text/x-rst
|
|
22
23
|
License-File: LICENSE
|
|
23
24
|
License-File: AUTHORS.rst
|
|
24
|
-
Requires-Dist: click~=8.0
|
|
25
|
+
Requires-Dist: click~=8.1.0
|
|
25
26
|
Requires-Dist: click-option-group~=0.5
|
|
26
27
|
Requires-Dist: gitpython~=3.0
|
|
27
28
|
Requires-Dist: requests~=2.25
|
|
28
29
|
Requires-Dist: jinja2~=3.1
|
|
29
30
|
Requires-Dist: python-gitlab<6.0.0,>=4.0.0
|
|
30
|
-
Requires-Dist: tomlkit~=0.
|
|
31
|
+
Requires-Dist: tomlkit~=0.13.0
|
|
31
32
|
Requires-Dist: dotty-dict~=1.3
|
|
32
33
|
Requires-Dist: importlib-resources~=6.0
|
|
33
34
|
Requires-Dist: pydantic~=2.0
|
|
@@ -36,6 +37,7 @@ Requires-Dist: shellingham~=1.5
|
|
|
36
37
|
Requires-Dist: Deprecated~=1.2
|
|
37
38
|
Provides-Extra: build
|
|
38
39
|
Requires-Dist: build~=1.2; extra == "build"
|
|
40
|
+
Requires-Dist: tomlkit~=0.13.0; extra == "build"
|
|
39
41
|
Provides-Extra: docs
|
|
40
42
|
Requires-Dist: Sphinx~=6.0; extra == "docs"
|
|
41
43
|
Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
|
|
@@ -44,7 +46,7 @@ Requires-Dist: furo~=2024.1; extra == "docs"
|
|
|
44
46
|
Provides-Extra: test
|
|
45
47
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
46
48
|
Requires-Dist: filelock~=3.15; extra == "test"
|
|
47
|
-
Requires-Dist:
|
|
49
|
+
Requires-Dist: flatdict2~=4.0; extra == "test"
|
|
48
50
|
Requires-Dist: freezegun~=1.5; extra == "test"
|
|
49
51
|
Requires-Dist: pyyaml~=6.0; extra == "test"
|
|
50
52
|
Requires-Dist: pytest~=8.3; extra == "test"
|
|
@@ -337,7 +337,7 @@ before the :ref:`version <cmd-version>` subcommand.
|
|
|
337
337
|
|
|
338
338
|
.. code:: yaml
|
|
339
339
|
|
|
340
|
-
- uses: python-semantic-release/python-semantic-release@v9.21.
|
|
340
|
+
- uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
341
341
|
with:
|
|
342
342
|
root_options: "-vv --noop"
|
|
343
343
|
|
|
@@ -576,7 +576,7 @@ before the :ref:`publish <cmd-publish>` subcommand.
|
|
|
576
576
|
|
|
577
577
|
.. code:: yaml
|
|
578
578
|
|
|
579
|
-
- uses: python-semantic-release/publish-action@v9.21.
|
|
579
|
+
- uses: python-semantic-release/publish-action@v9.21.1
|
|
580
580
|
with:
|
|
581
581
|
root_options: "-vv --noop"
|
|
582
582
|
|
|
@@ -698,7 +698,7 @@ to the GitHub Release Assets as well.
|
|
|
698
698
|
run: |
|
|
699
699
|
set +o pipefail
|
|
700
700
|
|
|
701
|
-
UPSTREAM_BRANCH_NAME="$(git status -sb | head -n 1 |
|
|
701
|
+
UPSTREAM_BRANCH_NAME="$(git status -sb | head -n 1 | awk -F '\\.\\.\\.' '{print $2}' | cut -d ' ' -f1)"
|
|
702
702
|
printf '%s\n' "Upstream branch name: $UPSTREAM_BRANCH_NAME"
|
|
703
703
|
|
|
704
704
|
set -o pipefail
|
|
@@ -728,14 +728,14 @@ to the GitHub Release Assets as well.
|
|
|
728
728
|
- name: Action | Semantic Version Release
|
|
729
729
|
id: release
|
|
730
730
|
# Adjust tag with desired version if applicable.
|
|
731
|
-
uses: python-semantic-release/python-semantic-release@v9.21.
|
|
731
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
732
732
|
with:
|
|
733
733
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
734
734
|
git_committer_name: "github-actions"
|
|
735
735
|
git_committer_email: "actions@users.noreply.github.com"
|
|
736
736
|
|
|
737
737
|
- name: Publish | Upload to GitHub Release Assets
|
|
738
|
-
uses: python-semantic-release/publish-action@v9.21.
|
|
738
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
739
739
|
if: steps.release.outputs.released == 'true'
|
|
740
740
|
with:
|
|
741
741
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -794,7 +794,7 @@ The equivalent GitHub Action configuration would be:
|
|
|
794
794
|
|
|
795
795
|
- name: Action | Semantic Version Release
|
|
796
796
|
# Adjust tag with desired version if applicable.
|
|
797
|
-
uses: python-semantic-release/python-semantic-release@v9.21.
|
|
797
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
798
798
|
with:
|
|
799
799
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
800
800
|
force: patch
|
|
@@ -844,14 +844,14 @@ Publish Action.
|
|
|
844
844
|
|
|
845
845
|
- name: Release submodule 1
|
|
846
846
|
id: release-submod-1
|
|
847
|
-
uses: python-semantic-release/python-semantic-release@v9.21.
|
|
847
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
848
848
|
with:
|
|
849
849
|
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
850
850
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
851
851
|
|
|
852
852
|
- name: Release submodule 2
|
|
853
853
|
id: release-submod-2
|
|
854
|
-
uses: python-semantic-release/python-semantic-release@v9.21.
|
|
854
|
+
uses: python-semantic-release/python-semantic-release@v9.21.1
|
|
855
855
|
with:
|
|
856
856
|
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
857
857
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -863,7 +863,7 @@ Publish Action.
|
|
|
863
863
|
# ------------------------------------------------------------------- #
|
|
864
864
|
|
|
865
865
|
- name: Publish | Upload package 1 to GitHub Release Assets
|
|
866
|
-
uses: python-semantic-release/publish-action@v9.21.
|
|
866
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
867
867
|
if: steps.release-submod-1.outputs.released == 'true'
|
|
868
868
|
with:
|
|
869
869
|
directory: ${{ env.SUBMODULE_1_DIR }}
|
|
@@ -871,7 +871,7 @@ Publish Action.
|
|
|
871
871
|
tag: ${{ steps.release-submod-1.outputs.tag }}
|
|
872
872
|
|
|
873
873
|
- name: Publish | Upload package 2 to GitHub Release Assets
|
|
874
|
-
uses: python-semantic-release/publish-action@v9.21.
|
|
874
|
+
uses: python-semantic-release/publish-action@v9.21.1
|
|
875
875
|
if: steps.release-submod-2.outputs.released == 'true'
|
|
876
876
|
with:
|
|
877
877
|
directory: ${{ env.SUBMODULE_2_DIR }}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
# Ref: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
2
|
-
# and https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
|
3
1
|
[build-system]
|
|
4
2
|
requires = ["setuptools >= 75.3.0, < 81.0.0", "wheel ~= 0.42"]
|
|
5
3
|
build-backend = "setuptools.build_meta"
|
|
6
4
|
|
|
7
5
|
[project]
|
|
8
6
|
name = "python-semantic-release"
|
|
9
|
-
version = "9.21.
|
|
7
|
+
version = "9.21.2"
|
|
10
8
|
description = "Automatic Semantic Versioning for Python projects"
|
|
11
9
|
requires-python = ">=3.8"
|
|
12
10
|
license = { text = "MIT" }
|
|
@@ -19,17 +17,18 @@ classifiers = [
|
|
|
19
17
|
"Programming Language :: Python :: 3.11",
|
|
20
18
|
"Programming Language :: Python :: 3.12",
|
|
21
19
|
"Programming Language :: Python :: 3.13",
|
|
20
|
+
"Programming Language :: Python :: 3.14",
|
|
22
21
|
]
|
|
23
22
|
readme = "README.rst"
|
|
24
23
|
authors = [{ name = "Rolf Erik Lekang", email = "me@rolflekang.com" }]
|
|
25
24
|
dependencies = [
|
|
26
|
-
"click ~= 8.0",
|
|
25
|
+
"click ~= 8.1.0",
|
|
27
26
|
"click-option-group ~= 0.5",
|
|
28
27
|
"gitpython ~= 3.0",
|
|
29
28
|
"requests ~= 2.25",
|
|
30
29
|
"jinja2 ~= 3.1",
|
|
31
30
|
"python-gitlab >= 4.0.0, < 6.0.0",
|
|
32
|
-
"tomlkit ~= 0.
|
|
31
|
+
"tomlkit ~= 0.13.0",
|
|
33
32
|
"dotty-dict ~= 1.3",
|
|
34
33
|
"importlib-resources ~= 6.0",
|
|
35
34
|
"pydantic ~= 2.0",
|
|
@@ -52,7 +51,8 @@ repository = "http://github.com/python-semantic-release/python-semantic-release.
|
|
|
52
51
|
|
|
53
52
|
[project.optional-dependencies]
|
|
54
53
|
build = [
|
|
55
|
-
"build ~= 1.2"
|
|
54
|
+
"build ~= 1.2",
|
|
55
|
+
"tomlkit ~= 0.13.0",
|
|
56
56
|
]
|
|
57
57
|
docs = [
|
|
58
58
|
"Sphinx ~= 6.0",
|
|
@@ -63,7 +63,7 @@ docs = [
|
|
|
63
63
|
test = [
|
|
64
64
|
"coverage[toml] ~= 7.0",
|
|
65
65
|
"filelock ~= 3.15",
|
|
66
|
-
"
|
|
66
|
+
"flatdict2 ~= 4.0",
|
|
67
67
|
"freezegun ~= 1.5",
|
|
68
68
|
"pyyaml ~= 6.0",
|
|
69
69
|
"pytest ~= 8.3",
|
|
@@ -91,6 +91,7 @@ mypy = [
|
|
|
91
91
|
]
|
|
92
92
|
|
|
93
93
|
|
|
94
|
+
|
|
94
95
|
[tool.setuptools]
|
|
95
96
|
include-package-data = true
|
|
96
97
|
|
|
@@ -197,7 +198,7 @@ module = "tests.*"
|
|
|
197
198
|
disallow_untyped_defs = false
|
|
198
199
|
|
|
199
200
|
[[tool.mypy.overrides]]
|
|
200
|
-
module = "
|
|
201
|
+
module = "flatdict2"
|
|
201
202
|
ignore_missing_imports = true
|
|
202
203
|
|
|
203
204
|
[[tool.mypy.overrides]]
|
|
@@ -433,7 +434,12 @@ mode = "update"
|
|
|
433
434
|
template_dir = "config/release-templates"
|
|
434
435
|
|
|
435
436
|
[tool.semantic_release.branches.main]
|
|
436
|
-
match = "(main|master)"
|
|
437
|
+
match = "^(main|master)$"
|
|
438
|
+
prerelease = false
|
|
439
|
+
prerelease_token = "rc"
|
|
440
|
+
|
|
441
|
+
[tool.semantic_release.branches.maintenance]
|
|
442
|
+
match = "^releases/v9"
|
|
437
443
|
prerelease = false
|
|
438
444
|
prerelease_token = "rc"
|
|
439
445
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-semantic-release
|
|
3
|
-
Version: 9.21.
|
|
3
|
+
Version: 9.21.2
|
|
4
4
|
Summary: Automatic Semantic Versioning for Python projects
|
|
5
5
|
Author-email: Rolf Erik Lekang <me@rolflekang.com>
|
|
6
6
|
License: MIT
|
|
@@ -17,17 +17,18 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
21
|
Requires-Python: >=3.8
|
|
21
22
|
Description-Content-Type: text/x-rst
|
|
22
23
|
License-File: LICENSE
|
|
23
24
|
License-File: AUTHORS.rst
|
|
24
|
-
Requires-Dist: click~=8.0
|
|
25
|
+
Requires-Dist: click~=8.1.0
|
|
25
26
|
Requires-Dist: click-option-group~=0.5
|
|
26
27
|
Requires-Dist: gitpython~=3.0
|
|
27
28
|
Requires-Dist: requests~=2.25
|
|
28
29
|
Requires-Dist: jinja2~=3.1
|
|
29
30
|
Requires-Dist: python-gitlab<6.0.0,>=4.0.0
|
|
30
|
-
Requires-Dist: tomlkit~=0.
|
|
31
|
+
Requires-Dist: tomlkit~=0.13.0
|
|
31
32
|
Requires-Dist: dotty-dict~=1.3
|
|
32
33
|
Requires-Dist: importlib-resources~=6.0
|
|
33
34
|
Requires-Dist: pydantic~=2.0
|
|
@@ -36,6 +37,7 @@ Requires-Dist: shellingham~=1.5
|
|
|
36
37
|
Requires-Dist: Deprecated~=1.2
|
|
37
38
|
Provides-Extra: build
|
|
38
39
|
Requires-Dist: build~=1.2; extra == "build"
|
|
40
|
+
Requires-Dist: tomlkit~=0.13.0; extra == "build"
|
|
39
41
|
Provides-Extra: docs
|
|
40
42
|
Requires-Dist: Sphinx~=6.0; extra == "docs"
|
|
41
43
|
Requires-Dist: sphinxcontrib-apidoc==0.5.0; extra == "docs"
|
|
@@ -44,7 +46,7 @@ Requires-Dist: furo~=2024.1; extra == "docs"
|
|
|
44
46
|
Provides-Extra: test
|
|
45
47
|
Requires-Dist: coverage[toml]~=7.0; extra == "test"
|
|
46
48
|
Requires-Dist: filelock~=3.15; extra == "test"
|
|
47
|
-
Requires-Dist:
|
|
49
|
+
Requires-Dist: flatdict2~=4.0; extra == "test"
|
|
48
50
|
Requires-Dist: freezegun~=1.5; extra == "test"
|
|
49
51
|
Requires-Dist: pyyaml~=6.0; extra == "test"
|
|
50
52
|
Requires-Dist: pytest~=8.3; extra == "test"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
click~=8.0
|
|
1
|
+
click~=8.1.0
|
|
2
2
|
click-option-group~=0.5
|
|
3
3
|
gitpython~=3.0
|
|
4
4
|
requests~=2.25
|
|
5
5
|
jinja2~=3.1
|
|
6
6
|
python-gitlab<6.0.0,>=4.0.0
|
|
7
|
-
tomlkit~=0.
|
|
7
|
+
tomlkit~=0.13.0
|
|
8
8
|
dotty-dict~=1.3
|
|
9
9
|
importlib-resources~=6.0
|
|
10
10
|
pydantic~=2.0
|
|
@@ -14,6 +14,7 @@ Deprecated~=1.2
|
|
|
14
14
|
|
|
15
15
|
[build]
|
|
16
16
|
build~=1.2
|
|
17
|
+
tomlkit~=0.13.0
|
|
17
18
|
|
|
18
19
|
[dev]
|
|
19
20
|
pre-commit~=3.5
|
|
@@ -35,7 +36,7 @@ types-pyyaml~=6.0
|
|
|
35
36
|
[test]
|
|
36
37
|
coverage[toml]~=7.0
|
|
37
38
|
filelock~=3.15
|
|
38
|
-
|
|
39
|
+
flatdict2~=4.0
|
|
39
40
|
freezegun~=1.5
|
|
40
41
|
pyyaml~=6.0
|
|
41
42
|
pytest~=8.3
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/helpers.py
RENAMED
|
@@ -10,7 +10,7 @@ from functools import lru_cache, reduce, wraps
|
|
|
10
10
|
from pathlib import Path, PurePosixPath
|
|
11
11
|
from re import IGNORECASE, compile as regexp
|
|
12
12
|
from typing import TYPE_CHECKING, Any, Callable, NamedTuple, Sequence, TypeVar
|
|
13
|
-
from urllib.parse import urlsplit
|
|
13
|
+
from urllib.parse import urlsplit, urlunsplit
|
|
14
14
|
|
|
15
15
|
if TYPE_CHECKING: # pragma: no cover
|
|
16
16
|
from re import Pattern
|
|
@@ -215,6 +215,16 @@ class ParsedGitUrl(NamedTuple):
|
|
|
215
215
|
repo_name: str
|
|
216
216
|
|
|
217
217
|
|
|
218
|
+
def _hide_credentials_in_url(url: str) -> str:
|
|
219
|
+
url_parts = urlsplit(url)
|
|
220
|
+
|
|
221
|
+
if not url_parts.scheme or "@" not in url_parts.netloc:
|
|
222
|
+
return url
|
|
223
|
+
|
|
224
|
+
_, _, host = url_parts.netloc.rpartition("@")
|
|
225
|
+
return urlunsplit(url_parts._replace(netloc=f"<credentials>@{host}"))
|
|
226
|
+
|
|
227
|
+
|
|
218
228
|
@lru_cache(maxsize=512)
|
|
219
229
|
def parse_git_url(url: str) -> ParsedGitUrl:
|
|
220
230
|
"""
|
|
@@ -242,7 +252,7 @@ def parse_git_url(url: str) -> ParsedGitUrl:
|
|
|
242
252
|
|
|
243
253
|
Raises ValueError if the url can't be parsed.
|
|
244
254
|
"""
|
|
245
|
-
log.debug("Parsing git url %r", url)
|
|
255
|
+
log.debug("Parsing git url %r", _hide_credentials_in_url(url))
|
|
246
256
|
|
|
247
257
|
# Normalizers are a list of tuples of (pattern, replacement)
|
|
248
258
|
normalizers = [
|
|
@@ -10,7 +10,7 @@ from unittest import mock
|
|
|
10
10
|
import pytest
|
|
11
11
|
import shellingham
|
|
12
12
|
import tomlkit
|
|
13
|
-
from
|
|
13
|
+
from flatdict2 import FlatDict
|
|
14
14
|
from pytest_lazy_fixtures.lazy_fixture import lf as lazy_fixture
|
|
15
15
|
|
|
16
16
|
from semantic_release.cli.commands.main import main
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from typing import Iterable
|
|
2
|
+
from unittest.mock import patch
|
|
2
3
|
|
|
3
4
|
import pytest
|
|
4
5
|
|
|
@@ -120,6 +121,34 @@ def test_parse_valid_git_urls(url: str, expected: ParsedGitUrl):
|
|
|
120
121
|
assert expected == parse_git_url(url)
|
|
121
122
|
|
|
122
123
|
|
|
124
|
+
def test_parse_git_url_does_not_log_credentials():
|
|
125
|
+
"""Test that credentials in git urls are masked before logging."""
|
|
126
|
+
username = "x-oauth-basic"
|
|
127
|
+
secret = "ghp_secret_token"
|
|
128
|
+
url = f"https://{username}:{secret}@github.example.com/owner/project.git"
|
|
129
|
+
|
|
130
|
+
expected_parsed_url = ParsedGitUrl(
|
|
131
|
+
"https",
|
|
132
|
+
f"{username}:{secret}@github.example.com",
|
|
133
|
+
"owner",
|
|
134
|
+
"project",
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
parse_git_url.cache_clear()
|
|
138
|
+
with patch("semantic_release.helpers.log") as mock_log:
|
|
139
|
+
actual_parsed_url = parse_git_url(url)
|
|
140
|
+
|
|
141
|
+
assert expected_parsed_url == actual_parsed_url
|
|
142
|
+
assert mock_log.debug.called
|
|
143
|
+
|
|
144
|
+
for debug_call in mock_log.debug.call_args_list:
|
|
145
|
+
args = debug_call[0]
|
|
146
|
+
formatted_msg = args[0] % args[1:] if len(args) > 1 else str(args[0])
|
|
147
|
+
assert secret not in formatted_msg
|
|
148
|
+
assert username not in formatted_msg
|
|
149
|
+
assert "<credentials>@github.example.com" in formatted_msg
|
|
150
|
+
|
|
151
|
+
|
|
123
152
|
@pytest.mark.parametrize(
|
|
124
153
|
"url",
|
|
125
154
|
[
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/index.rst
RENAMED
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/automatic-releases/travis.rst
RENAMED
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/changelog_templates.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/migrating_from_v7.rst
RENAMED
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/docs/multibranch_releases.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/__init__.py
RENAMED
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/config.py
RENAMED
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/const.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/cli/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_semantic_release-9.21.1 → python_semantic_release-9.21.2}/src/semantic_release/const.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|