Pending tasks in issues #12
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |