diff --git a/CHANGELOG.md b/CHANGELOG.md index c58fc49..3830e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,50 @@ +## Domingo, 2 de Noviembre de 2025, 14:00 + +- Autor: [Jonathan Teran Carballo](mailto:jonathan.nerat@gmail.com) +- Rama: `docs/change-changelog-format` + +### Commits + +- **bugfix**: arreglo concatenacion de lineas de changelog (8f30dc6) + - git-flow (M) +- **docs**: agrego link a respuesta de PR creado (2bf8dbc) + - git-flow (M) +- **docs**: cambio descripcion de PR para que solo contenga los commits (1de6a64) + - git-flow (M) + - lib/io.py (M) +- **docs**: cambio header de changelog, arreglo generacion de descripcion de Prs (eba73fe) + - git-flow (M) + +--- + +- **docs**: agrego link a respuesta de PR creado (2bf8dbc) + - git-flow (M) +- **docs**: cambio descripcion de PR para que solo contenga los commits (1de6a64) + - git-flow (M) + - lib/io.py (M) +- **docs**: cambio header de changelog, arreglo generacion de descripcion de Prs (eba73fe) + - git-flow (M) + +--- + +- **docs**: cambio descripcion de PR para que solo contenga los commits (1de6a64) + - git-flow (M) + - lib/io.py (M) +- **docs**: cambio header de changelog, arreglo generacion de descripcion de Prs (eba73fe) + - git-flow (M) + +--- + +## Domingo, 2 de Noviembre de 2025, 13:47 + +- Autor: [Jonathan Teran Carballo](mailto:jonathan.nerat@gmail.com) +- Rama: `docs/change-changelog-format` +### Commits +- **docs**: cambio header de changelog, arreglo generacion de descripcion de Prs (eba73fe) + - git-flow (M) + +--- + ## Domingo, 2 de Noviembre de 2025, 13:40 ### Autor diff --git a/git-flow b/git-flow index 73d0ebc..3e49964 100755 --- a/git-flow +++ b/git-flow @@ -479,7 +479,7 @@ def update_changelog(branch: str, target: str): return True -def generate_changelog_entry(branch: str, target: str): +def get_changelog_header_lines(branch: str): name = Git("config", "user.name").firstline() email = Git("config", "user.email").firstline() @@ -488,20 +488,18 @@ def generate_changelog_entry(branch: str, target: str): month = now.strftime("%B").capitalize() timestamp = now.strftime(f"{weekday}, %e de {month} de %Y, %H:%M") - entry_lines = [ + return [ f"## {timestamp}", "", - "### Autor", - "", - f"- Usuario: **{name}**", - f"- Email: **{email}**", + f"- Autor: [{name}](mailto:{email})", + f"- Rama: `{branch}`", "", "### Commits", - "", - f"Rama: **{branch}**", "" ] +def get_changelog_content_lines(target: str): + lines = [] commits = Git("log", target + "..", first_parent=True, format="%h", merges=False).lines() for commit in commits: @@ -514,28 +512,35 @@ def generate_changelog_entry(branch: str, target: str): commit_type = message[:index] commit_message = message[index+1:] - entry_lines.append(f"- **{commit_type}**: {commit_message} ({commit})") + lines.append(f"- **{commit_type}**: {commit_message} ({commit})") diff_tree = Git("diff-tree", commit, r=True, commit_id=False, name_status=True).lines() for diff in diff_tree: [status, filename] = diff.split("\t") - entry_lines.append(f"\t- {filename} ({status})") + lines.append(f"\t- {filename} ({status})") - entry_lines += [ + return lines + +def get_changelog_footer_lines(): + return [ "", "---", "", "" ] +def generate_changelog_entry(branch: str, target: str): + entry_lines = get_changelog_header_lines(branch) + entry_lines += get_changelog_content_lines(target) + entry_lines += get_changelog_footer_lines() + return "\n".join(entry_lines) def create_pull_request(service: str, repository: str, source: str, destination: str): endpoint = get_api_endpoint(service, repository, "/pullrequests") title = source.replace("/", ": ").replace("-", " ") - lines = generate_changelog_entry(source, destination).splitlines() - description = "\n".join(lines[3:-4]) + description = "\n".join(get_changelog_content_lines(destination)) headers = get_headers() json = { @@ -549,7 +554,8 @@ def create_pull_request(service: str, repository: str, source: str, destination: request = requests.post(endpoint, headers=headers, json=json) if request.ok: - print("PR creado exitosamente.") + json = request.json() + print_success("PR creado exitosamente: " + json['links']['html']['href']) else: print_error("Ocurrió un error al crear el PR: " + request.text) diff --git a/lib/io.py b/lib/io.py index 9676ef3..dd9951a 100644 --- a/lib/io.py +++ b/lib/io.py @@ -54,6 +54,9 @@ def print_error(message: str): def print_warning(message: str): print(f"{COLOR_YELLOW}[wrn] {message}{COLOR_RESET}") +def print_success(message: str): + print(f"{COLOR_GREEN}[ok!] {message}{COLOR_RESET}") + def print_info(message: str): print(f"{COLOR_BLUE}[inf] {message}{COLOR_RESET}")