Что такое Manual approval required?
Ошибка Manual approval required
возникает, когда CI/CD пайплайн останавливается и ожидает ручного одобрения для продолжения выполнения, что может замедлить процесс деплоя.
Причины возникновения
- Настроены gates для критических этапов
- Требуется одобрение для production деплоя
- Проблемы с правами доступа
- Ошибки в конфигурации approval gates
- Отсутствие автоматизации для одобрений
Как исправить ошибку
1. Настрой автоматические approval gates
1# .github/workflows/auto-approval.yml
2name: Auto Approval
3on: [push]
4
5jobs:
6 security-scan:
7 runs-on: ubuntu-latest
8 steps:
9 - uses: actions/checkout@v3
10 - name: Security scan
11 run: |
12 # Автоматическая проверка безопасности
13 npm audit --audit-level moderate
14 if [ $? -eq 0 ]; then
15 echo "Security check passed"
16 else
17 echo "Security issues found"
18 exit 1
19 fi
20
21 deploy:
22 runs-on: ubuntu-latest
23 needs: security-scan
24 if: github.ref == 'refs/heads/main'
25 steps:
26 - uses: actions/checkout@v3
27 - name: Auto deploy
28 run: |
29 echo "Auto deploying to production"
30 kubectl apply -f k8s/
2. Настрой условные approval gates
1# .github/workflows/conditional-approval.yml
2name: Conditional Approval
3on: [push]
4
5jobs:
6 check-risk:
7 runs-on: ubuntu-latest
8 outputs:
9 requires-approval: ${{ steps.risk-check.outputs.requires-approval }}
10 steps:
11 - uses: actions/checkout@v3
12 - name: Risk assessment
13 id: risk-check
14 run: |
15 # Оценка риска изменений
16 if [[ "${{ github.event.head_commit.message }}" == *"BREAKING"* ]]; then
17 echo "requires-approval=true" >> $GITHUB_OUTPUT
18 else
19 echo "requires-approval=false" >> $GITHUB_OUTPUT
20 fi
21
22 deploy:
23 runs-on: ubuntu-latest
24 needs: check-risk
25 if: needs.check-risk.outputs.requires-approval == 'false'
26 steps:
27 - uses: actions/checkout@v3
28 - name: Deploy
29 run: kubectl apply -f k8s/
Лучшие практики
- Автоматизируй approval gates где возможно
- Настрой условные approval gates
- Используй risk-based approvals
- Настрой уведомления для manual approvals