python-semantic-release 9.3.1__py3-none-any.whl → 9.4.0__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-semantic-release
3
- Version: 9.3.1
3
+ Version: 9.4.0
4
4
  Summary: Automatic Semantic Versioning for Python projects
5
5
  Author-email: Rolf Erik Lekang <me@rolflekang.com>
6
6
  License: MIT
@@ -20,43 +20,43 @@ Requires-Python: >=3.8
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
22
  License-File: AUTHORS.rst
23
- Requires-Dist: click <9,>=8
23
+ Requires-Dist: click ~=8.0
24
24
  Requires-Dist: click-option-group ~=0.5
25
- Requires-Dist: gitpython <4,>=3.0.8
26
- Requires-Dist: requests <3,>=2.25
27
- Requires-Dist: jinja2 <4,>=3.1.2
28
- Requires-Dist: python-gitlab <5,>=2
25
+ Requires-Dist: gitpython ~=3.0
26
+ Requires-Dist: requests ~=2.25
27
+ Requires-Dist: jinja2 ~=3.1
28
+ Requires-Dist: python-gitlab ~=4.0
29
29
  Requires-Dist: tomlkit ~=0.11
30
- Requires-Dist: dotty-dict <2,>=1.3.0
31
- Requires-Dist: importlib-resources <7,>=5.7
32
- Requires-Dist: pydantic <3,>=2
33
- Requires-Dist: rich >=12.5.1
34
- Requires-Dist: shellingham >=1.5.0.post1
30
+ Requires-Dist: dotty-dict ~=1.3
31
+ Requires-Dist: importlib-resources ~=6.0
32
+ Requires-Dist: pydantic ~=2.0
33
+ Requires-Dist: rich ~=12.5
34
+ Requires-Dist: shellingham ~=1.5
35
35
  Provides-Extra: dev
36
- Requires-Dist: pre-commit ; extra == 'dev'
37
- Requires-Dist: tox ; extra == 'dev'
38
- Requires-Dist: ruff ==0.3.3 ; extra == 'dev'
36
+ Requires-Dist: pre-commit ~=3.5 ; extra == 'dev'
37
+ Requires-Dist: tox ~=4.11 ; extra == 'dev'
38
+ Requires-Dist: ruff ==0.3.4 ; extra == 'dev'
39
39
  Provides-Extra: docs
40
- Requires-Dist: Sphinx <=6.0.0 ; extra == 'docs'
41
- Requires-Dist: sphinxcontrib-apidoc ==0.3.0 ; extra == 'docs'
42
- Requires-Dist: sphinx-autobuild ==2021.03.14 ; extra == 'docs'
43
- Requires-Dist: furo >=2023.3.27 ; extra == 'docs'
40
+ Requires-Dist: Sphinx ~=6.0 ; extra == 'docs'
41
+ Requires-Dist: sphinxcontrib-apidoc ==0.5.0 ; extra == 'docs'
42
+ Requires-Dist: sphinx-autobuild ==2024.2.4 ; extra == 'docs'
43
+ Requires-Dist: furo ~=2023.3 ; extra == 'docs'
44
44
  Provides-Extra: mypy
45
- Requires-Dist: mypy ; extra == 'mypy'
46
- Requires-Dist: types-requests ; extra == 'mypy'
45
+ Requires-Dist: mypy ==1.8.0 ; extra == 'mypy'
46
+ Requires-Dist: types-requests ~=2.31.0 ; extra == 'mypy'
47
47
  Provides-Extra: test
48
- Requires-Dist: coverage[toml] <8,>=6 ; extra == 'test'
49
- Requires-Dist: pytest <8,>=7 ; extra == 'test'
48
+ Requires-Dist: coverage[toml] ~=7.0 ; extra == 'test'
49
+ Requires-Dist: pytest ~=7.0 ; extra == 'test'
50
50
  Requires-Dist: pytest-env ~=1.0 ; extra == 'test'
51
- Requires-Dist: pytest-xdist <4,>=2 ; extra == 'test'
52
- Requires-Dist: pytest-mock <4,>=3 ; extra == 'test'
51
+ Requires-Dist: pytest-xdist ~=3.0 ; extra == 'test'
52
+ Requires-Dist: pytest-mock ~=3.0 ; extra == 'test'
53
53
  Requires-Dist: pytest-lazy-fixture ~=0.6.3 ; extra == 'test'
54
- Requires-Dist: pytest-cov <5,>=4 ; extra == 'test'
55
- Requires-Dist: pytest-pretty <2,>=1.2.0 ; extra == 'test'
56
- Requires-Dist: pytest-clarity >=1.0.1 ; extra == 'test'
57
- Requires-Dist: responses ==0.23.3 ; extra == 'test'
58
- Requires-Dist: requests-mock <2,>=1.10.0 ; extra == 'test'
59
- Requires-Dist: types-pytest-lazy-fixture >=0.6.3.3 ; extra == 'test'
54
+ Requires-Dist: pytest-cov ~=5.0 ; extra == 'test'
55
+ Requires-Dist: pytest-pretty ~=1.2 ; extra == 'test'
56
+ Requires-Dist: pytest-clarity ~=1.0 ; extra == 'test'
57
+ Requires-Dist: responses ~=0.25.0 ; extra == 'test'
58
+ Requires-Dist: requests-mock ~=1.10 ; extra == 'test'
59
+ Requires-Dist: types-pytest-lazy-fixture ~=0.6.3 ; extra == 'test'
60
60
 
61
61
  Python Semantic Release
62
62
  ***********************
@@ -1,4 +1,4 @@
1
- semantic_release/__init__.py,sha256=FskRwovkP1zTcZTjLsLItxs24ykLO8-6VyZ_ffSU9EU,870
1
+ semantic_release/__init__.py,sha256=WXo3kBqr41p8SiuEqS2v7ET5zAKCTK4d5KJ7Zc0Sgs0,870
2
2
  semantic_release/__main__.py,sha256=vXOARLV7KHeVXgpOMU0Q-8wovpdsOrtTsycxulI5xIE,106
3
3
  semantic_release/const.py,sha256=Z1o2QNh60wSLeF-_1TemMBjU3ZXbV0XghnUFsbTVfOs,831
4
4
  semantic_release/enums.py,sha256=D5B_reQGGKQQT22HO5PUtvn2Bok3fkht6TfJtXkmAUg,1020
@@ -35,7 +35,7 @@ semantic_release/data/templates/release_notes.md.j2,sha256=27uIHgG6iYmqdMaoWFP5L
35
35
  semantic_release/hvcs/__init__.py,sha256=ulesZslSG4Lu8Iz3YzOrPXpdgvgbADq_MV17B-bSYQA,379
36
36
  semantic_release/hvcs/_base.py,sha256=VnsEz01W9t3DQ2QHGnsbuAB9jYfZT3hIXRRsCUnhS0g,5635
37
37
  semantic_release/hvcs/bitbucket.py,sha256=pGZksLht66zLJXbPIgRz4hntsa-F1A02xl4JNRCXE0o,4626
38
- semantic_release/hvcs/gitea.py,sha256=HpaqQQxbUiWLByzceFVkR6o_c60gT6HmFwsq4CPwJKY,8459
38
+ semantic_release/hvcs/gitea.py,sha256=FbS5AQTyjBTGk0RLR0Lky3TBoHGtLgjr83N1uje5bn4,9146
39
39
  semantic_release/hvcs/github.py,sha256=L29AaUmmtdJTNDJqD6ro3YVcDNr8OMwqTx5ofujOZz8,10710
40
40
  semantic_release/hvcs/gitlab.py,sha256=qSvNdQK40QM20-HDh3eIO6Rz8Lo3PEND_4kluugVx4w,6154
41
41
  semantic_release/hvcs/token_auth.py,sha256=ZjT56-NIPB4OKIt1qwHCu1TavXnrWFIBl9ARlg56hgU,663
@@ -45,10 +45,10 @@ semantic_release/version/algorithm.py,sha256=-9ulTy1z4u-jUvbc-FrvEdFL7Omc3O3HhaP
45
45
  semantic_release/version/declaration.py,sha256=f6Ld7hIhrqvDrRBapJHr-KDimuyo-4IG8009Zu9BIgU,7357
46
46
  semantic_release/version/translator.py,sha256=P1noIsVBn8u6zNOFjG0xKYOWapxqf_PHSMvMeLJ9kXg,3050
47
47
  semantic_release/version/version.py,sha256=6PCtSbLP88U1daoxnCwHc--YguZo4waGNLqJ5JfeczE,14175
48
- python_semantic_release-9.3.1.dist-info/AUTHORS.rst,sha256=XOReVvpymEFUPsS2QPH97jlfJBVrxwS2eu8-jVAe4gk,230
49
- python_semantic_release-9.3.1.dist-info/LICENSE,sha256=NE85nszX252sdQdu0xgS9qwfYES0k8qS6gW3uO4jRGE,1083
50
- python_semantic_release-9.3.1.dist-info/METADATA,sha256=5qM5BEHU7GNT6jkoRTluZCmmrJUJDtrWOKHbbwJUmII,5365
51
- python_semantic_release-9.3.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
52
- python_semantic_release-9.3.1.dist-info/entry_points.txt,sha256=qojUBx_Ywf4u7KgP6NWlDaBDymZVUGQ7m5wF2duC2F0,95
53
- python_semantic_release-9.3.1.dist-info/top_level.txt,sha256=qYA24nyg3eP-ti5UW7Vuj2aXVmM0wqVHx4mREdRZNAA,17
54
- python_semantic_release-9.3.1.dist-info/RECORD,,
48
+ python_semantic_release-9.4.0.dist-info/AUTHORS.rst,sha256=XOReVvpymEFUPsS2QPH97jlfJBVrxwS2eu8-jVAe4gk,230
49
+ python_semantic_release-9.4.0.dist-info/LICENSE,sha256=NE85nszX252sdQdu0xgS9qwfYES0k8qS6gW3uO4jRGE,1083
50
+ python_semantic_release-9.4.0.dist-info/METADATA,sha256=GU4p2nEh2IoCvk4nUGldohgzWQyMTCxfWAD8eAXbyyw,5335
51
+ python_semantic_release-9.4.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
52
+ python_semantic_release-9.4.0.dist-info/entry_points.txt,sha256=qojUBx_Ywf4u7KgP6NWlDaBDymZVUGQ7m5wF2duC2F0,95
53
+ python_semantic_release-9.4.0.dist-info/top_level.txt,sha256=qYA24nyg3eP-ti5UW7Vuj2aXVmM0wqVHx4mREdRZNAA,17
54
+ python_semantic_release-9.4.0.dist-info/RECORD,,
@@ -24,7 +24,7 @@ from semantic_release.version import (
24
24
  tags_and_versions,
25
25
  )
26
26
 
27
- __version__ = "9.3.1"
27
+ __version__ = "9.4.0"
28
28
 
29
29
 
30
30
  def setup_hook(argv: list[str]) -> None:
@@ -8,6 +8,7 @@ import mimetypes
8
8
  import os
9
9
 
10
10
  from requests import HTTPError
11
+ from urllib3.util.url import Url, parse_url
11
12
 
12
13
  from semantic_release.helpers import logged_function
13
14
  from semantic_release.hvcs._base import HvcsBase
@@ -49,13 +50,32 @@ class Gitea(HvcsBase):
49
50
  ) -> None:
50
51
  self._remote_url = remote_url
51
52
 
52
- self.hvcs_domain = hvcs_domain or os.getenv(
53
- "GITEA_SERVER_URL", self.DEFAULT_DOMAIN
54
- ).replace("https://", "")
53
+ domain_url = parse_url(
54
+ hvcs_domain or os.getenv("GITEA_SERVER_URL", "") or self.DEFAULT_DOMAIN
55
+ )
56
+
57
+ # Strip any scheme, query or fragment from the domain
58
+ self.hvcs_domain = Url(
59
+ host=domain_url.host, port=domain_url.port, path=domain_url.path
60
+ ).url.rstrip("/")
61
+
62
+ api_domain_parts = parse_url(
63
+ hvcs_api_domain
64
+ or os.getenv("GITEA_API_URL", "")
65
+ or Url(
66
+ # infer from Domain url and append the default api path
67
+ scheme=domain_url.scheme,
68
+ host=self.hvcs_domain,
69
+ path=self.DEFAULT_API_PATH,
70
+ ).url
71
+ )
55
72
 
56
- self.hvcs_api_domain = hvcs_api_domain or os.getenv(
57
- "GITEA_API_URL", self.DEFAULT_API_DOMAIN
58
- ).replace("https://", "")
73
+ # Strip any scheme, query or fragment from the api domain
74
+ self.hvcs_api_domain = Url(
75
+ host=api_domain_parts.host,
76
+ port=api_domain_parts.port,
77
+ path=api_domain_parts.path,
78
+ ).url.rstrip("/")
59
79
 
60
80
  self.api_url = f"https://{self.hvcs_api_domain}"
61
81