Compare commits

..
3 Commits
Author SHA1 Message Date
bitbucket-pipelines f5e683a1da chore: bump version and update CHANGELOG.md [skip ci] 2025-11-29 16:22:03 +00:00
JonathanGitFlowandjt fb9b8b57f6 Merged in feature/release-branch-groups (pull request #39)
feature: release branch groups

Approved-by: Jonathan Teran
2025-11-29 16:21:39 +00:00
jt c47afffa14 feature: agrego opcion para agrupar ramas release 2025-11-29 13:20:33 -03:00
3 changed files with 32 additions and 8 deletions
+9
View File
@@ -1,3 +1,12 @@
## v1.6.0 - 2025-11-29
### Commits
- **feature**: agrego opcion para agrupar ramas release [[jonathan.nerat](mailto:jonathan.nerat@gmail.com)] (c47afff)
---
## v1.5.2 - 2025-11-28
### Commits
+20 -5
View File
@@ -1,4 +1,4 @@
from argparse import Namespace
from argparse import ArgumentParser, Namespace
from git_flow import COMMIT_TYPES, GitFlowError
from git_flow.command.base import Command
from git_flow.git import Git
@@ -11,6 +11,15 @@ class ReleaseCommand(Command):
def description(self) -> str:
return """Realiza el merge de la rama, o crea el PR para hacerlo si tiene un remoto configurado"""
def setup_parser(self, parser: ArgumentParser) -> ArgumentParser:
parser.add_argument(
"--group",
nargs="?",
help="Agrupar release",
)
return parser
def run(self, args: Namespace = Namespace()):
self.ensure_initialized()
@@ -34,10 +43,16 @@ class ReleaseCommand(Command):
else f"release/{next_env}/{branch}"
)
group = args.group
if not group and self.confirm("¿Desea agrupar este release con otra rama?"):
group = self.choice("Grupo release: ", Git.get_branches("release/" + next_env + "/"))
else:
group = next_env
if has_remote:
Git("pull").exec(print="Sincronizando cambios de la rama")
Git("switch", next_env).exec(print="Cambiando al siguiente entorno")
Git("pull").exec(print="Sincronizando cambios del entorno")
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")
base = Git.get_first_fork_point(branch, env)
@@ -62,6 +77,6 @@ class ReleaseCommand(Command):
else:
Git("switch", next_branch, create=True).exec(print="Creando rama release")
Git("rebase", base, next_branch, onto=next_env).exec(
Git("rebase", base, next_branch, onto=group).exec(
print="Moviendo cambios hacia el siguiente ambiente"
)
+3 -3
View File
@@ -50,8 +50,8 @@ class Git:
return Git("rev-parse", "HEAD", abbrev_ref=True).firstline()
@staticmethod
def get_branches():
return Git._get_references("heads")
def get_branches(prefix: str = ""):
return Git._get_references("heads/" + prefix)
@staticmethod
def status():
@@ -79,7 +79,7 @@ class Git:
@staticmethod
def _get_references(kind: str):
prefix = "refs/" + kind + "/"
prefix = "refs/" + kind
return list(map(
lambda r: r.removeprefix(prefix),
Git("for-each-ref", prefix + "*", format="%(refname)").lines(),