Получить сторонние лицензии, используя Go Get - PullRequest
2 голосов
/ 10 июля 2019

Допустим, у нас есть файл go.mod, который определяет сторонние зависимости. Есть ли возможность или способ на языке получить список сторонних лицензий, желательно без сторонних инструментов? К сожалению, я не могу поделиться каким-либо кодом, потому что я еще не нашел потенциальных решений.

Например, у нас есть:

module github.com/myGoProject

require (
    github.com/sirupsen/logrus v1.4.2
    github.com/stretchr/testify v1.2.2
)

Как я могу получить в качестве вывода:

MIT

MIT

1 Ответ

3 голосов
/ 10 июля 2019

Мне тоже пришлось сделать это недавно, и я не нашел никакого «официального» способа сделать это.Я использовал инструмент под названием go-license-detector против моих сторонних зависимостей, чтобы автоматизировать большую часть работы.

  1. Установить https://github.com/src-d/go-license-detector. Этот инструмент сканирует каталоги на наличие файлов лицензий и определяет, какую лицензию они используют.(вероятно):
  2. Загрузите исходный код для всех зависимостей сторонних библиотек, запустив go mod vendor.Это поместит весь исходный код для ваших зависимостей в каталог с именем vendor.
  3. cd в каталог вашего поставщика и запустите:

    license-detector `cat modules.txt |grep "^#" |cut -d' ' -f2`

Это будет запускать license-detector для каждого загруженного модуля и выводить список возможных лицензий для каждого модуля.Вы получите вывод, который выглядит следующим образом:

github.com/influxdata/influxdb
    91% MIT
github.com/influxdata/platform
    99% MIT
    84% MIT-feh
github.com/kr/logfmt
    100%    Unlicense
    98% MIT
    93% JSON
    84% MIT-feh

Обычно верхняя лицензия является правильной, но лучше дважды проверить каждую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...