Compare commits

..
12 Commits
Author SHA1 Message Date
bitbucket-pipelines 379e0f3257 chore: bump version and update CHANGELOG.md [skip ci] 2025-12-15 00:32:39 +00:00
JonathanGitFlowandjt 4a57dfd121 Merged in feature/new-command-improvements (pull request #51)
feature: new command improvements

Approved-by: Jonathan Teran
2025-12-15 00:32:13 +00:00
Jonathan Teran Carballo 01e938ebd9 feature: agrego opcion para incluir ticket en nombre de rama 2025-12-14 21:29:48 -03:00
Jonathan Teran Carballo 97b4a56ff7 feature: mostrar warning si la rama actual no es un entorno configurado 2025-12-14 13:46:09 -03:00
Jonathan Teran Carballo 24be50111d feature: hacer pull en rama actual antes de crear nueva rama 2025-12-14 13:43:23 -03:00
bitbucket-pipelines 897e9aa53b chore: bump version and update CHANGELOG.md [skip ci] 2025-12-14 16:39:20 +00:00
JonathanGitFlowandjt e4800d1054 Merged in bugfix/arreglos-pendientes (pull request #50)
bugfix: arreglos pendientes

Approved-by: Jonathan Teran
2025-12-14 16:38:55 +00:00
Jonathan Teran Carballo 0d95a978bf bugfix: verificar si la rama grupo trackea una rama remota antes de hacer pull 2025-12-14 13:32:23 -03:00
Jonathan Teran Carballo 0af5102fae bugfix: capturo interrupion por teclado para no mostrar stack trace 2025-12-14 13:25:31 -03:00
bitbucket-pipelines 2a21922a63 chore: bump version and update CHANGELOG.md [skip ci] 2025-12-14 15:22:19 +00:00
JonathanGitFlowandjt 12b2bc9a39 Merged in bugfix/merge-pr-title-generation (pull request #49)
bugfix: merge pr title generation

Approved-by: Jonathan Teran
2025-12-14 15:21:54 +00:00
Jonathan Teran Carballo b24b22a178 bugfix: generación de PR de ramas release 2025-12-14 12:20:32 -03:00
6 changed files with 51 additions and 2 deletions
+24
View File
@@ -1,3 +1,27 @@
## v1.8.0 - 2025-12-15
- **feature**: agrego opcion para incluir ticket en nombre de rama [[jteran](mailto:jteran@renatre.org.ar)] (01e938e)
- **feature**: mostrar warning si la rama actual no es un entorno configurado [[jteran](mailto:jteran@renatre.org.ar)] (97b4a56)
- **feature**: hacer pull en rama actual antes de crear nueva rama [[jteran](mailto:jteran@renatre.org.ar)] (24be501)
---
## v1.7.5 - 2025-12-14
- **bugfix**: verificar si la rama grupo trackea una rama remota antes de hacer pull [[jteran](mailto:jteran@renatre.org.ar)] (0d95a97)
- **bugfix**: capturo interrupion por teclado para no mostrar stack trace [[jteran](mailto:jteran@renatre.org.ar)] (0af5102)
---
## v1.7.4 - 2025-12-14
- **bugfix**: generación de PR de ramas release [[jteran](mailto:jteran@renatre.org.ar)] (b24b22a)
---
## v1.7.3 - 2025-12-14
- **bugfix**: listado de ramas para elegir grupo release no devolvia resultados [[jteran](mailto:jteran@renatre.org.ar)] (5600e5e)
+4
View File
@@ -80,6 +80,10 @@ class MergeCommand(Command):
def create_pull_request(self, token: str, branch: str, target: str):
changelog = Changelog()
title = branch.replace("/", ": ").replace("-", " ")
if title.startswith("release: "):
title = title[title.index(' ', title.index(' ') + 1) + 1:]
message = self.get_remote_api(token).create_pull_request(
branch,
+11 -1
View File
@@ -13,7 +13,11 @@ class NewCommand(Command):
def run(self, args: Namespace = Namespace()):
self.ensure_initialized()
self.ensure_right_branch()
branch = self.ensure_right_branch()
envs = self.flowconfig["flow.branches"].split(",")
if branch not in envs:
self.warning("La rama actual no corresponde a un entorno configurado.")
self.info("Se creará una nueva rama de trabajo sobre la rama actual.")
self.info("Debe seleccionar el tipo de cambio a realizar.")
@@ -21,6 +25,9 @@ class NewCommand(Command):
branch_type = self.choice("Tipos de cambio", BRANCH_TYPES)
new_branch = self._get_unique_branch_name(branch_type)
if "flow.remote" in self.flowconfig and Git.get_tracking_branch(branch):
Git("pull").exec(print="Actualizando rama actual")
if self.confirm(f"¿Crear rama '{new_branch}' sobre la rama actual?"):
Git("switch", new_branch, create=True).exec(print="Creando nueva rama")
@@ -37,6 +44,9 @@ class NewCommand(Command):
persistent=True,
)
ticket = self.prompt("[Opcional] Ingrese el ID del ticket (por ejemplo: ABC-123 o #123):")
ticket = ticket[1:] if ticket.startswith("#") else ticket
keywords = ticket + ' ' + keywords
keywords = filter(lambda k: len(k) > 0, keywords.split(" "))
branch = branch_type + "/" + "-".join(keywords)
+1 -1
View File
@@ -62,7 +62,7 @@ class ReleaseCommand(Command):
else:
group = next_env
if has_remote:
if has_remote and Git.get_tracking_branch(group):
Git("switch", group).exec(print="Cambiando a la rama objetivo")
Git("pull").exec(print="Sincronizando cambios la rama objetivo")
Git("switch", "-").exec(print="Volviendo a la rama original")
+8
View File
@@ -1,5 +1,6 @@
import subprocess
from git_flow import GitFlowError
from git_flow.io import *
@@ -80,6 +81,13 @@ class Git:
def is_repository() -> bool:
return Git("rev-parse", is_inside_work_tree=True).code() == 0
@staticmethod
def get_tracking_branch(branch: str) -> str | None:
try:
return Git("rev-parse", branch + "@{upstream}", abbrev_ref=True).firstline()
except subprocess.CalledProcessError:
return None
def __init__(self, subcommand: str, *args: str, **kwargs: str | int | bool | list[str] | None) -> None:
self.command = ["git", subcommand]
+3
View File
@@ -79,6 +79,9 @@ def main():
command.error(str(e))
except Exception as e:
command.error("Ocurrió un error inesperado: " + str(e))
except KeyboardInterrupt as e:
print()
command.error("Ejecución abortada")
return