From 51a80ccb6fb1092a1e6921e6962c35683de87c53 Mon Sep 17 00:00:00 2001 From: dimkk Date: Sat, 3 Jan 2026 21:15:45 +0300 Subject: [PATCH] fix --- .gitea/workflows/ai-solve-issue.yml | 77 ++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 23 deletions(-) diff --git a/.gitea/workflows/ai-solve-issue.yml b/.gitea/workflows/ai-solve-issue.yml index e847468..524803e 100644 --- a/.gitea/workflows/ai-solve-issue.yml +++ b/.gitea/workflows/ai-solve-issue.yml @@ -16,19 +16,14 @@ on: jobs: solve: - # Для автоматического запуска по метке + # Запускать при ручном триггере ИЛИ при добавлении метки ai-solve if: | (gitea.event_name == 'workflow_dispatch') || - (gitea.event_name == 'issues' && contains(gitea.event.issue.labels.*.name, 'ai-solve')) + (gitea.event_name == 'issues' && contains(gitea.event.labels.*.name, 'ai-solve')) runs-on: opencode steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.GGITEA_TOKEN }} - - name: Debug environment run: | echo "=== Debug Info ===" @@ -41,36 +36,72 @@ jobs: echo "event.labels: ${{ toJSON(gitea.event.labels) }}" echo "=== End Debug ===" + - name: Setup issue data + id: setup + run: | + echo "Determining issue number based on event type..." + + if [[ "${{ gitea.event_name }}" == "workflow_dispatch" ]]; then + # Ручной запуск - берем из inputs + ISSUE_NUMBER="${{ gitea.event.inputs.issue_number }}" + echo "Manual run - Issue number: $ISSUE_NUMBER" + elif [[ "${{ gitea.event_name }}" == "issues" ]]; then + # Автоматический запуск - берем из события issue + ISSUE_NUMBER="${{ gitea.event.issue.number }}" + echo "Auto run - Issue number: $ISSUE_NUMBER" + else + echo "Unknown event type: ${{ gitea.event_name }}" + exit 1 + fi + + echo "issue_number=$ISSUE_NUMBER" >> $GITHUB_OUTPUT + echo "event_type=${{ gitea.event_name }}" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GGITEA_TOKEN }} + - name: Solve Issue env: GGITEA_URL: ${{ secrets.GGITEA_URL }} GGITEA_TOKEN: ${{ secrets.GGITEA_TOKEN }} - # Правильные пути для Gitea REPO_OWNER: ${{ gitea.repository_owner }} REPO_NAME: ${{ gitea.repository }} - # Номер issue в зависимости от типа триггера - ISSUE_NUMBER: ${{ gitea.event.inputs.issue_number || gitea.event.issue.number }} - # Дополнительная информация - EVENT_TYPE: ${{ gitea.event_name }} - ISSUE_TITLE: ${{ gitea.event.issue.title || '' }} - ISSUE_BODY: ${{ gitea.event.issue.body || '' }} + ISSUE_NUMBER: ${{ steps.setup.outputs.issue_number }} + EVENT_TYPE: ${{ steps.setup.outputs.event_type }} run: | echo "=== Starting AI Issue Solver ===" echo "Event type: $EVENT_TYPE" echo "Repository: $REPO_OWNER/$REPO_NAME" echo "Issue number: $ISSUE_NUMBER" - echo "Issue title: $ISSUE_TITLE" - # Проверяем доступность solve-issue - if ! command -v solve-issue &> /dev/null; then - echo "ERROR: solve-issue command not found!" - echo "Available commands in PATH:" - echo "$PATH" | tr ':' '\n' - command -v ls + # Проверяем наличие команды solve-issue + if ! command -v solve-issue >/dev/null 2>&1; then + echo "❌ ERROR: solve-issue command not found in PATH!" + echo "Current PATH: $PATH" + echo "Trying to find solve-issue..." + find / -name "solve-issue" -type f 2>/dev/null | head -5 exit 1 fi - # Запускаем решатель - solve-issue + echo "✅ solve-issue found at: $(which solve-issue)" + echo "📋 Command info:" + solve-issue --help || echo "No help available" + + echo "🚀 Executing solve-issue..." + # Запускаем с таймаутом на случай зависания + timeout 600 solve-issue + + EXIT_CODE=$? + if [ $EXIT_CODE -eq 0 ]; then + echo "✅ solve-issue completed successfully" + elif [ $EXIT_CODE -eq 124 ]; then + echo "⏰ solve-issue timed out after 10 minutes" + exit 1 + else + echo "❌ solve-issue failed with exit code: $EXIT_CODE" + exit $EXIT_CODE + fi echo "=== AI Issue Solver finished ===" \ No newline at end of file