Что такое License check failed?

Ошибка License check failed возникает, когда автоматическая проверка лицензий зависимостей или кода обнаруживает несовместимые или запрещенные лицензии.

Причины возникновения

  • Зависимости с несовместимыми лицензиями
  • Отсутствие лицензионных файлов
  • Нарушения лицензионных требований
  • Проблемы с коммерческими лицензиями
  • Несоответствие лицензии проекта
  • Проблемы с attribution requirements
  • Нарушения copyleft лицензий

Как отладить ошибку

  1. Проверь отчет лицензий - изучи детальные результаты проверки
  2. Проверь зависимости - найди проблемные пакеты
  3. Проверь лицензию проекта - убедись в корректности
  4. Проверь требования лицензий - изучи условия использования
  5. Проверь коммерческие ограничения - убедись в совместимости

Как исправить ошибку

1. Настрой проверку лицензий

1# Установка licensecheck для Python
2pip install licensecheck
3
4# Проверка лицензий зависимостей
5licensecheck --summary
6
7# Проверка с исключениями
8licensecheck --allow-licenses MIT,Apache-2.0,BSD-3-Clause
1// Установка license-checker для Node.js
2npm install -g license-checker
3
4# Проверка лицензий
5license-checker --summary
6
7# Проверка с исключениями
8license-checker --allowOnly "MIT;Apache-2.0;BSD-3-Clause"

2. Настрой CI/CD для проверки лицензий

 1# .github/workflows/license-check.yml
 2name: License Check
 3on: [push, pull_request]
 4
 5jobs:
 6  license-check:
 7    runs-on: ubuntu-latest
 8    steps:
 9    - uses: actions/checkout@v3
10    
11    - name: Set up Python
12      uses: actions/setup-python@v4
13      with:
14        python-version: '3.11'
15    
16    - name: Install licensecheck
17      run: pip install licensecheck
18    
19    - name: Check licenses
20      run: |
21        licensecheck --summary
22        licensecheck --allow-licenses MIT,Apache-2.0,BSD-3-Clause,GPL-3.0

3. Создай файл исключений лицензий

 1# .licensecheckrc
 2allowed_licenses:
 3  - MIT
 4  - Apache-2.0
 5  - BSD-3-Clause
 6  - GPL-3.0
 7  - LGPL-3.0
 8
 9excluded_packages:
10  - package-with-special-license
11  - legacy-package

4. Настрой автоматическое обновление лицензий

 1# .github/workflows/update-licenses.yml
 2name: Update Licenses
 3on:
 4  schedule:
 5    - cron: '0 0 * * 1'  # Каждый понедельник
 6
 7jobs:
 8  update:
 9    runs-on: ubuntu-latest
10    steps:
11    - uses: actions/checkout@v3
12    
13    - name: Update license information
14      run: |
15        # Обновление информации о лицензиях
16        pip install pip-licenses
17        pip-licenses --format=markdown > LICENSES.md

5. Настрой проверку лицензий в Docker

 1# Dockerfile с проверкой лицензий
 2FROM python:3.11-slim
 3
 4WORKDIR /app
 5COPY requirements.txt .
 6
 7# Установка и проверка лицензий
 8RUN pip install licensecheck && \
 9    pip install -r requirements.txt && \
10    licensecheck --allow-licenses MIT,Apache-2.0,BSD-3-Clause
11
12COPY . .
13CMD ["python", "app.py"]

Как мониторить подобные ошибки

  • Настрой алерты на license check failures
  • Мониторь изменения лицензий зависимостей
  • Отслеживай новые зависимости с проблемными лицензиями
  • Настрой автоматические проверки при обновлениях
  • Используй дашборды для анализа лицензий

FAQ

В: Как настроить разные правила лицензий для разных проектов?

О: Учитывай тип проекта (коммерческий/открытый), требования клиентов, корпоративные политики.

В: Что делать с legacy зависимостями с проблемными лицензиями?

О: Постепенно заменяй на альтернативы, создавай план миграции, документируй решения.

В: Как автоматизировать проверку лицензий?

О: Используй CI/CD инструменты, настрой автоматические проверки, применяй pre-commit hooks.

Лучшие практики

  • Регулярно проверяй лицензии зависимостей
  • Документируй политики лицензирования
  • Используй автоматические проверки
  • Поддерживай актуальную информацию о лицензиях
  • Настрой мониторинг изменений лицензий
  • Обучай команду вопросам лицензирования