Compare commits
6 Commits
staging
...
51a80ccb6f
| Author | SHA1 | Date | |
|---|---|---|---|
| 51a80ccb6f | |||
| ef0a082d18 | |||
| e343d27001 | |||
| 4912f9a9b1 | |||
| d47522543d | |||
| dff87b6c7a |
@@ -2,19 +2,106 @@
|
||||
name: AI Issue Solver
|
||||
|
||||
on:
|
||||
# Ручной запуск
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
issue_number:
|
||||
description: 'Issue number to solve'
|
||||
required: true
|
||||
type: number
|
||||
|
||||
# Автоматический запуск по метке
|
||||
issues:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
solve:
|
||||
if: github.event.label.name == 'ai-solve'
|
||||
# Запускать при ручном триггере ИЛИ при добавлении метки ai-solve
|
||||
if: |
|
||||
(gitea.event_name == 'workflow_dispatch') ||
|
||||
(gitea.event_name == 'issues' && contains(gitea.event.labels.*.name, 'ai-solve'))
|
||||
|
||||
runs-on: opencode
|
||||
|
||||
steps:
|
||||
- name: Debug environment
|
||||
run: |
|
||||
echo "=== Debug Info ==="
|
||||
echo "Gitea context:"
|
||||
echo "event_name: ${{ gitea.event_name }}"
|
||||
echo "repository: ${{ gitea.repository }}"
|
||||
echo "repository_owner: ${{ gitea.repository_owner }}"
|
||||
echo "event.issue: ${{ toJSON(gitea.event.issue) }}"
|
||||
echo "event.inputs: ${{ toJSON(gitea.event.inputs) }}"
|
||||
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:
|
||||
GITEA_URL: ${{ secrets.GITEA_URL }}
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
REPO_OWNER: ${{ github.repository_owner }}
|
||||
REPO_NAME: ${{ github.event.repository.name }}
|
||||
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
run: solve-issue
|
||||
GGITEA_URL: ${{ secrets.GGITEA_URL }}
|
||||
GGITEA_TOKEN: ${{ secrets.GGITEA_TOKEN }}
|
||||
REPO_OWNER: ${{ gitea.repository_owner }}
|
||||
REPO_NAME: ${{ gitea.repository }}
|
||||
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"
|
||||
|
||||
# Проверяем наличие команды 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
|
||||
|
||||
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 ==="
|
||||
Reference in New Issue
Block a user