Skip to content

Pending tasks in issues #12

Pending tasks in issues

Pending tasks in issues #12

Workflow file for this run

name: Pending tasks in issues
on:
workflow_dispatch:
jobs:
pending-tasks:
runs-on: ubuntu-latest
steps:
- name: Checkout del repositorio
uses: actions/checkout@v2
- name: Configurar Python
uses: actions/setup-python@v2
with:
python-version: 3.x # Especifica la versión de Python que necesites
- name: Instalar dependencias
run: |
python -m pip install --upgrade pip
pip install PyGithub
- name: Ejecutar script de búsqueda y actualizar issue
env:
TOKEN: ${{ secrets.NOVUM_PRIVATE_REPOS }}
run: |
python - <<EOF
import os
from github import Github
from datetime import datetime
TOKEN = os.environ['TOKEN']
# Nombre de usuario y nombre del repositorio
OWNER = 'Telefonica'
REPO = 'mistica-design'
TARGET_ISSUE_NUMBER = 2490
# URL base del repositorio
REPO_URL = f'https://github.com/{OWNER}/{REPO}'
# Crea una instancia de la clase Github usando tu token de acceso
g = Github(TOKEN)
# Obtiene el repositorio
repo = g.get_repo(f'{OWNER}/{REPO}')
# Busca las issues cerradas en el repositorio
closed_issues = repo.get_issues(state='closed')
# Lista para almacenar las issues con checkboxes desactivados
issues_con_checkboxes_desactivados = []
# Itera sobre las issues cerradas
for issue in closed_issues:
# Verifica que el cuerpo de la issue no sea None
if issue.body is not None and '- [ ]' in issue.body:
issues_con_checkboxes_desactivados.append(issue)
continue
# Obtiene los comentarios de la issue
comments = issue.get_comments()
# Busca checkboxes desactivados en los comentarios
for comment in comments:
if '- [ ]' in comment.body:
issues_con_checkboxes_desactivados.append(issue)
break
# Imprime el listado de issues con checkboxes desactivados
print("Issues con checkboxes desactivados:")
for issue in issues_con_checkboxes_desactivados:
issue_url = f'{REPO_URL}/issues/{issue.number}'
print(f"Issue #{issue.number}: {issue.title} ({issue_url})")
# Crear tabla en formato markdown
table_header = "| Issue | Name | Last Modification |\n"
table_separator = "|-------------|-----------|------------------|\n"
table_rows = ""
for issue in issues_con_checkboxes_desactivados:
issue_link = f"[#{issue.number}]({REPO_URL}/issues/{issue.number})"
issue_name = issue.title.replace("|", "\\|") # Escapar pipes en el título
last_modified = issue.updated_at.strftime("%Y-%m-%d %H:%M")
table_rows += f"| {issue_link} | {issue_name} | {last_modified} |\n"
# Crear el nuevo body de la issue
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S UTC")
new_body = f"""
{table_header}{table_separator}{table_rows}
---
*This report shows closed issues that still contain unchecked checkboxes (- [ ]) in their description or comments.*
*Total issues found: {len(issues_con_checkboxes_desactivados)}*
"""
# Actualizar la issue #2490
try:
target_issue = repo.get_issue(TARGET_ISSUE_NUMBER)
target_issue.edit(body=new_body)
print(f"\n✅ Issue #{TARGET_ISSUE_NUMBER} updated successfully!")
print(f"Total issues with unchecked checkboxes: {len(issues_con_checkboxes_desactivados)}")
except Exception as e:
print(f"\n❌ Error updating issue #{TARGET_ISSUE_NUMBER}: {str(e)}")
EOF