From 3c7251f49f79a1fc2d74144a1873ad8429991b20 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Mon, 16 Mar 2026 10:34:16 -0300 Subject: [PATCH] feat: implementar script de rescate para pull requests y corregir entorno --- .gitea/workflows/release-please.yaml | 46 ++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release-please.yaml b/.gitea/workflows/release-please.yaml index 244ef9e..c068f40 100644 --- a/.gitea/workflows/release-please.yaml +++ b/.gitea/workflows/release-please.yaml @@ -16,15 +16,57 @@ jobs: - name: Checkout uses: actions/checkout@v4 - # 1. Usar PAT, que ya tiene todos los permisos + # 1. Ejecutar Release Please (Con inyección de entorno) - name: Release Please id: release uses: https://repo.eldiaservicios.com/dmolinari/gitea-release-please-action@main + # Le pasamos el token por entorno para evitar el 401 de Octokit + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN }} with: token: ${{ secrets.RELEASE_PLEASE_TOKEN }} release-type: simple - # 2. Generar notas con IA Local + # 2. Si Release Please falla al hacer el PR (Error 401), lo hacemos nosotros nativamente + - name: Rescate - Crear Pull Request Manualmente + if: failure() + env: + GITEA_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN }} + REPO: ${{ github.repository }} + run: | + node -e ' + async function run() { + const giteaUrl = "https://repo.eldiaservicios.com/api/v1"; + const repo = process.env.REPO; + const token = process.env.GITEA_TOKEN; + + console.log("Intentando rescatar el proceso y crear el PR nativamente..."); + + const prRes = await fetch(`${giteaUrl}/repos/${repo}/pulls`, { + method: "POST", + headers: { + "Authorization": `token ${token}`, + "Content-Type": "application/json" + }, + body: JSON.stringify({ + head: "release-please--branches--main", + base: "main", + title: "chore(main): release", + body: "🤖 Pull Request generado automáticamente por el sistema de CI/CD. (Rescatado por script)" + }) + }); + + if (prRes.ok) { + console.log("✅ ¡Pull Request creado exitosamente por el script de rescate!"); + } else { + console.log("❌ Falló el rescate:", await prRes.text()); + process.exit(1); + } + } + run().catch(err => { console.error(err); process.exit(1); }); + ' + + # 3. Generar notas con IA Local - name: Generar notas con IA Local if: ${{ steps.release.outputs.release_created }} env: