Merge pull request 'bugfix: return empty on remote tag error' (#28) from bugfix/return-empty-on-remote-tag-error into main
Publish to PyPI / Publish-to-PyPI (push) Failing after 8s

Reviewed-on: #28
This commit was merged in pull request #28.
This commit is contained in:
jt
2026-09-21 13:45:48 +00:00
2 changed files with 26 additions and 31 deletions
+6 -3
View File
@@ -1,3 +1,5 @@
import sys
from git_flow import (
BRANCH_TYPES,
REPOSITORY_TOKEN_FILENAME,
@@ -163,7 +165,7 @@ def get_commit_message(commit_types: list[str] = COMMIT_TYPES) -> str:
def io_error(message: str, title: Optional[str] = None):
_io_status(message, "✖ Error: ", "red", title)
_io_status(message, "✖ Error: ", "red", title, file=sys.stderr)
def io_warning(message: str, title: Optional[str] = None):
@@ -178,7 +180,7 @@ def io_success(message: str, title: Optional[str] = None):
_io_status(message, "✔ Success: ", "green", title)
def _io_status(message: str, prefix: str, style: str, title: Optional[str] = None):
def _io_status(message: str, prefix: str, style: str, title: Optional[str] = None, file=None):
if title:
rich.print(
rich.panel.Panel(
@@ -187,7 +189,8 @@ def _io_status(message: str, prefix: str, style: str, title: Optional[str] = Non
style=style,
expand=False,
title_align="left",
)
),
file=file
)
else:
rich.print(f"[{style}]{prefix}{message}[/{style}]")
+20 -28
View File
@@ -32,7 +32,15 @@ def tag(token: Optional[str] = None):
if ci and not token:
raise GitFlowError("No hay token disponible")
merge_commit = get_last_merge_commit()
merge_commit = Git(
"log", first_parent=True, merges=True, max_count=1, format="%H"
).firstline()
if not merge_commit:
if not ci:
raise GitFlowError("No hay merges a taggear.")
return
# Con varios entornos cada uno versiona por separado (v1.0.0-prod), con uno solo no hace falta
suffix = f"-{target}" if len(base.environments) > 1 else ""
@@ -55,23 +63,25 @@ def tag(token: Optional[str] = None):
)
if not next_tag:
base.io_info(
"Los cambios realizados no implican un salto de versión, se mantiene la anterior."
)
if not ci:
base.io_info(
"Los cambios realizados no implican un salto de versión, se mantiene la anterior."
)
return
changelog = Changelog()
changelog.update(next_tag, commits)
Git("add", Changelog.FILENAME).exec(print="Agregando nuevo CHANGELOG.md")
Git("commit", message=Changelog.COMMIT_MESSAGE).exec(print="Creando commit")
Git("add", Changelog.FILENAME).exec(print=None if ci else "Agregando nuevo CHANGELOG.md")
Git("commit", message=Changelog.COMMIT_MESSAGE).exec(print=None if ci else "Creando commit")
tag_commit = Git("show", "HEAD", patch=False, format="%h").firstline()
if ci:
Git("push").exec(print="Subiendo commit al remoto para taggearlo")
base.io_success(base.get_remote_api(token).create_tag(next_tag, tag_commit))
Git("tag", next_tag, tag_commit).exec(print="Creando tag localmente")
Git("push").exec()
base.get_remote_api(token).create_tag(next_tag, tag_commit)
print(next_tag)
else:
Git("tag", next_tag, tag_commit).exec(print="Creando tag localmente")
def get_token_and_ci(token: Optional[str]):
@@ -81,24 +91,6 @@ def get_token_and_ci(token: Optional[str]):
return (base.ensure_repository_token(), False)
def get_last_merge_commit():
commit = Git(
"log", first_parent=True, merges=True, max_count=1, format="%H"
).firstline()
if not commit:
raise GitFlowError("No hay merges a taggear.")
return commit
def check_not_tagged(commit: str):
tag = Git("describe", commit, tags=True, exact_match=True).firstline(check=False)
if tag:
raise GitFlowError("El commit a taggear ya tiene tag: " + tag)
def get_next_tag_from_commits(
commits: list[str], suffix: str, current_tag: str | None
) -> str | None: