feat: Agregar comando list-open-issues a gitea_cli_helper.py
- Nuevo comando para listar todos los issues abiertos - Muestra número, título, autor, fecha y URL - Útil para verificar el estado de los issues - Documentado en GEMINI.md con ejemplos
This commit is contained in:
parent
4891c1d6b3
commit
9c32be4c28
28
GEMINI.md
28
GEMINI.md
|
@ -90,6 +90,34 @@ El script también verifica:
|
||||||
- Si el PR está cerrado sin mergear (error)
|
- Si el PR está cerrado sin mergear (error)
|
||||||
- Si el PR tiene conflictos o no es mergeable (error)
|
- Si el PR tiene conflictos o no es mergeable (error)
|
||||||
|
|
||||||
|
#### 6. Listar Issues Abiertos
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python gitea_cli_helper.py list-open-issues
|
||||||
|
```
|
||||||
|
|
||||||
|
Lista todos los issues abiertos del repositorio, mostrando:
|
||||||
|
- Número del issue
|
||||||
|
- Título
|
||||||
|
- Etiquetas (si las tiene)
|
||||||
|
- Autor y fecha de creación
|
||||||
|
- URL del issue
|
||||||
|
|
||||||
|
**Ejemplo de salida:**
|
||||||
|
```
|
||||||
|
Issues abiertos (3):
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
#15: [Extensión Opcional] Integración con Calendario para Citas
|
||||||
|
Autor: luis_portillo | Creado: 2025-07-12
|
||||||
|
URL: https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory/issues/15
|
||||||
|
|
||||||
|
#14: [Extensión Opcional] Portal Web para Pacientes/Médicos
|
||||||
|
Autor: luis_portillo | Creado: 2025-07-12
|
||||||
|
URL: https://gitea.grupoconsiti.com/luis_portillo/clinical_laboratory/issues/14
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Total: 2 issues abiertos
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,42 @@ def close_issue(issue_number):
|
||||||
_make_gitea_request("PATCH", endpoint, payload)
|
_make_gitea_request("PATCH", endpoint, payload)
|
||||||
print(f"Issue #{issue_number} cerrado exitosamente.")
|
print(f"Issue #{issue_number} cerrado exitosamente.")
|
||||||
|
|
||||||
|
def list_open_issues():
|
||||||
|
"""Lists all open issues in the repository."""
|
||||||
|
endpoint = f"repos/{GITEA_USERNAME}/{GITEA_REPO_NAME}/issues"
|
||||||
|
print(f"Obteniendo issues abiertos del repositorio {GITEA_REPO_NAME}...")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Get open issues (state=open is default)
|
||||||
|
issues = _make_gitea_request("GET", endpoint + "?state=open")
|
||||||
|
|
||||||
|
if not issues:
|
||||||
|
print("No hay issues abiertos en este momento.")
|
||||||
|
return
|
||||||
|
|
||||||
|
print(f"\nIssues abiertos ({len(issues)}):")
|
||||||
|
print("-" * 80)
|
||||||
|
|
||||||
|
for issue in issues:
|
||||||
|
# Format issue information
|
||||||
|
number = issue.get('number', 'N/A')
|
||||||
|
title = issue.get('title', 'Sin título')
|
||||||
|
author = issue.get('user', {}).get('login', 'Desconocido')
|
||||||
|
created = issue.get('created_at', '').split('T')[0] if issue.get('created_at') else 'N/A'
|
||||||
|
labels = [label.get('name', '') for label in issue.get('labels', [])]
|
||||||
|
labels_str = f" [{', '.join(labels)}]" if labels else ""
|
||||||
|
|
||||||
|
print(f"#{number}: {title}{labels_str}")
|
||||||
|
print(f" Autor: {author} | Creado: {created}")
|
||||||
|
print(f" URL: {issue.get('html_url', 'N/A')}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
print("-" * 80)
|
||||||
|
print(f"Total: {len(issues)} issues abiertos")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error al obtener los issues: {e}")
|
||||||
|
|
||||||
def merge_pull_request(pr_number, merge_method="merge"):
|
def merge_pull_request(pr_number, merge_method="merge"):
|
||||||
"""Merges a pull request (only allowed to dev branch)."""
|
"""Merges a pull request (only allowed to dev branch)."""
|
||||||
# First, get PR information to check the base branch
|
# First, get PR information to check the base branch
|
||||||
|
@ -184,6 +220,9 @@ def main():
|
||||||
merge_pr_parser.add_argument("--pr-number", type=int, required=True, help="Número del pull request.")
|
merge_pr_parser.add_argument("--pr-number", type=int, required=True, help="Número del pull request.")
|
||||||
merge_pr_parser.add_argument("--merge-method", choices=["merge", "squash", "rebase"], default="merge",
|
merge_pr_parser.add_argument("--merge-method", choices=["merge", "squash", "rebase"], default="merge",
|
||||||
help="Método de merge: merge, squash o rebase (default: merge).")
|
help="Método de merge: merge, squash o rebase (default: merge).")
|
||||||
|
|
||||||
|
# Subparser para listar issues abiertos
|
||||||
|
list_issues_parser = subparsers.add_parser("list-open-issues", help="Lista todos los issues abiertos del repositorio.")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
@ -197,6 +236,8 @@ def main():
|
||||||
close_issue(args.issue_number)
|
close_issue(args.issue_number)
|
||||||
elif args.command == "merge-pr":
|
elif args.command == "merge-pr":
|
||||||
merge_pull_request(args.pr_number, args.merge_method)
|
merge_pull_request(args.pr_number, args.merge_method)
|
||||||
|
elif args.command == "list-open-issues":
|
||||||
|
list_open_issues()
|
||||||
else:
|
else:
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user