licensed 2.6.2 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +67 -71
- data/CHANGELOG.md +10 -1
- data/README.md +12 -6
- data/docs/configuration.md +6 -0
- data/lib/licensed/configuration.rb +3 -1
- data/lib/licensed/dependency.rb +26 -3
- data/lib/licensed/sources/go.rb +5 -0
- data/lib/licensed/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2b964bfef1d9dd5d12c96a4586a4e1815d530a744c09484b548e1505a01a22
|
4
|
+
data.tar.gz: a14d76ad21ab8fb742f698eb0ca90702fb154184b5e887313f8f7a7f894a6437
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46689f9c144234c03de03c3adc9ee8cf11042d51047bcd83321eac9e1fd9d03a974f0f1757777da831e105e784153d06a4f48ea57b4cbda8079c0221074212f5
|
7
|
+
data.tar.gz: 5e1fe805637db57b6d16b0cc0f6ff8dfe3d56fd5aa1d70ffc19c06cc41764afe98b20917697de45ca338a22fe3aa1fcfa2491e9c9f90db393b4b35d38de34dc4
|
data/.github/workflows/test.yml
CHANGED
@@ -81,10 +81,6 @@ jobs:
|
|
81
81
|
with:
|
82
82
|
path: vendor/gems
|
83
83
|
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
84
|
-
- uses: actions/cache@preview
|
85
|
-
with:
|
86
|
-
path: test/fixtures/cabal/dist-newstyle
|
87
|
-
key: ${{ runner.os }}-fixtures-cabal-${{ matrix.ghc }}-${{ matrix.cabal }}-${{ hashFiles(format('{0}{1}', github.workspace, '/test/fixtures/cabal/app.cabal')) }}
|
88
84
|
- name: Bootstrap
|
89
85
|
run: script/bootstrap
|
90
86
|
- name: Set up fixtures
|
@@ -92,6 +88,33 @@ jobs:
|
|
92
88
|
- name: Run tests
|
93
89
|
run: script/test cabal
|
94
90
|
|
91
|
+
composer:
|
92
|
+
runs-on: ubuntu-latest
|
93
|
+
strategy:
|
94
|
+
matrix:
|
95
|
+
php: [ '5.6', '7.1', '7.2', '7.3' ]
|
96
|
+
steps:
|
97
|
+
- uses: actions/checkout@master
|
98
|
+
- name: Setup php
|
99
|
+
uses: nanasess/setup-php@v1.0.2
|
100
|
+
with:
|
101
|
+
php-version: ${{ matrix.php }}
|
102
|
+
- name: Set up Ruby
|
103
|
+
uses: actions/setup-ruby@v1
|
104
|
+
with:
|
105
|
+
ruby-version: 2.6.x
|
106
|
+
- run: bundle lock
|
107
|
+
- uses: actions/cache@preview
|
108
|
+
with:
|
109
|
+
path: vendor/gems
|
110
|
+
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
111
|
+
- name: Bootstrap
|
112
|
+
run: script/bootstrap
|
113
|
+
- name: Set up fixtures
|
114
|
+
run: script/source-setup/composer
|
115
|
+
- name: Run tests
|
116
|
+
run: script/test composer
|
117
|
+
|
95
118
|
core:
|
96
119
|
runs-on: ubuntu-latest
|
97
120
|
strategy:
|
@@ -168,33 +191,6 @@ jobs:
|
|
168
191
|
- name: Run tests
|
169
192
|
run: script/test go
|
170
193
|
|
171
|
-
npm:
|
172
|
-
runs-on: ubuntu-latest
|
173
|
-
strategy:
|
174
|
-
matrix:
|
175
|
-
node_version: [ 8, 10, 12 ]
|
176
|
-
steps:
|
177
|
-
- uses: actions/checkout@master
|
178
|
-
- name: Setup node
|
179
|
-
uses: actions/setup-node@v1
|
180
|
-
with:
|
181
|
-
node-version: ${{ matrix.node_version }}
|
182
|
-
- name: Set up Ruby
|
183
|
-
uses: actions/setup-ruby@v1
|
184
|
-
with:
|
185
|
-
ruby-version: 2.6.x
|
186
|
-
- run: bundle lock
|
187
|
-
- uses: actions/cache@preview
|
188
|
-
with:
|
189
|
-
path: vendor/gems
|
190
|
-
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
191
|
-
- name: Bootstrap
|
192
|
-
run: script/bootstrap
|
193
|
-
- name: Set up fixtures
|
194
|
-
run: script/source-setup/npm
|
195
|
-
- name: Run tests
|
196
|
-
run: script/test npm
|
197
|
-
|
198
194
|
gradle:
|
199
195
|
runs-on: ubuntu-latest
|
200
196
|
steps:
|
@@ -215,18 +211,10 @@ jobs:
|
|
215
211
|
- name: Run tests
|
216
212
|
run: script/test gradle
|
217
213
|
|
218
|
-
|
214
|
+
manifest:
|
219
215
|
runs-on: ubuntu-latest
|
220
|
-
strategy:
|
221
|
-
matrix:
|
222
|
-
python: [ '2.x', '3.x' ]
|
223
216
|
steps:
|
224
217
|
- uses: actions/checkout@master
|
225
|
-
- name: Setup python
|
226
|
-
uses: actions/setup-python@v1
|
227
|
-
with:
|
228
|
-
python-version: ${{ matrix.python }}
|
229
|
-
architecture: x64
|
230
218
|
- name: Set up Ruby
|
231
219
|
uses: actions/setup-ruby@v1
|
232
220
|
with:
|
@@ -238,22 +226,21 @@ jobs:
|
|
238
226
|
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
239
227
|
- name: Bootstrap
|
240
228
|
run: script/bootstrap
|
241
|
-
- name: Install virtualenv
|
242
|
-
run: pip install virtualenv
|
243
|
-
- name: Set up fixtures
|
244
|
-
run: script/source-setup/pip
|
245
229
|
- name: Run tests
|
246
|
-
run: script/test
|
230
|
+
run: script/test manifest
|
247
231
|
|
248
|
-
|
232
|
+
mix:
|
249
233
|
runs-on: ubuntu-latest
|
234
|
+
strategy:
|
235
|
+
matrix:
|
236
|
+
otp: [21.x, 22.x]
|
237
|
+
elixir: [1.8.x, 1.9.x]
|
250
238
|
steps:
|
251
239
|
- uses: actions/checkout@master
|
252
|
-
-
|
253
|
-
uses: actions/setup-python@v1
|
240
|
+
- uses: actions/setup-elixir@v1.0.0
|
254
241
|
with:
|
255
|
-
|
256
|
-
|
242
|
+
otp-version: ${{matrix.otp}}
|
243
|
+
elixir-version: ${{matrix.elixir}}
|
257
244
|
- name: Set up Ruby
|
258
245
|
uses: actions/setup-ruby@v1
|
259
246
|
with:
|
@@ -265,24 +252,22 @@ jobs:
|
|
265
252
|
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
266
253
|
- name: Bootstrap
|
267
254
|
run: script/bootstrap
|
268
|
-
- name: Install pipenv
|
269
|
-
run: pip install pipenv
|
270
255
|
- name: Set up fixtures
|
271
|
-
run: script/source-setup/
|
256
|
+
run: script/source-setup/mix
|
272
257
|
- name: Run tests
|
273
|
-
run: script/test
|
258
|
+
run: script/test mix
|
274
259
|
|
275
|
-
|
260
|
+
npm:
|
276
261
|
runs-on: ubuntu-latest
|
277
262
|
strategy:
|
278
263
|
matrix:
|
279
|
-
|
264
|
+
node_version: [ 8, 10, 12 ]
|
280
265
|
steps:
|
281
266
|
- uses: actions/checkout@master
|
282
|
-
- name: Setup
|
283
|
-
uses:
|
267
|
+
- name: Setup node
|
268
|
+
uses: actions/setup-node@v1
|
284
269
|
with:
|
285
|
-
|
270
|
+
node-version: ${{ matrix.node_version }}
|
286
271
|
- name: Set up Ruby
|
287
272
|
uses: actions/setup-ruby@v1
|
288
273
|
with:
|
@@ -295,22 +280,22 @@ jobs:
|
|
295
280
|
- name: Bootstrap
|
296
281
|
run: script/bootstrap
|
297
282
|
- name: Set up fixtures
|
298
|
-
run: script/source-setup/
|
283
|
+
run: script/source-setup/npm
|
299
284
|
- name: Run tests
|
300
|
-
run: script/test
|
285
|
+
run: script/test npm
|
301
286
|
|
302
|
-
|
287
|
+
pip:
|
303
288
|
runs-on: ubuntu-latest
|
304
289
|
strategy:
|
305
290
|
matrix:
|
306
|
-
|
307
|
-
elixir: [1.8.x, 1.9.x]
|
291
|
+
python: [ '2.x', '3.x' ]
|
308
292
|
steps:
|
309
293
|
- uses: actions/checkout@master
|
310
|
-
-
|
294
|
+
- name: Setup python
|
295
|
+
uses: actions/setup-python@v1
|
311
296
|
with:
|
312
|
-
|
313
|
-
|
297
|
+
python-version: ${{ matrix.python }}
|
298
|
+
architecture: x64
|
314
299
|
- name: Set up Ruby
|
315
300
|
uses: actions/setup-ruby@v1
|
316
301
|
with:
|
@@ -322,15 +307,22 @@ jobs:
|
|
322
307
|
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
323
308
|
- name: Bootstrap
|
324
309
|
run: script/bootstrap
|
310
|
+
- name: Install virtualenv
|
311
|
+
run: pip install virtualenv
|
325
312
|
- name: Set up fixtures
|
326
|
-
run: script/source-setup/
|
313
|
+
run: script/source-setup/pip
|
327
314
|
- name: Run tests
|
328
|
-
run: script/test
|
315
|
+
run: script/test pip
|
329
316
|
|
330
|
-
|
317
|
+
pipenv:
|
331
318
|
runs-on: ubuntu-latest
|
332
319
|
steps:
|
333
320
|
- uses: actions/checkout@master
|
321
|
+
- name: Setup python
|
322
|
+
uses: actions/setup-python@v1
|
323
|
+
with:
|
324
|
+
python-version: '3.x'
|
325
|
+
architecture: x64
|
334
326
|
- name: Set up Ruby
|
335
327
|
uses: actions/setup-ruby@v1
|
336
328
|
with:
|
@@ -342,5 +334,9 @@ jobs:
|
|
342
334
|
key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles(format('{0}{1}', github.workspace, '/Gemfile.lock')) }}
|
343
335
|
- name: Bootstrap
|
344
336
|
run: script/bootstrap
|
337
|
+
- name: Install pipenv
|
338
|
+
run: pip install pipenv
|
339
|
+
- name: Set up fixtures
|
340
|
+
run: script/source-setup/pipenv
|
345
341
|
- name: Run tests
|
346
|
-
run: script/test
|
342
|
+
run: script/test pipenv
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## 2.7.0
|
10
|
+
2019-11-10
|
11
|
+
|
12
|
+
### Added
|
13
|
+
- License text is automatically generated for known licenses when not otherwise available (https://github.com/github/licensed/pull/223)
|
14
|
+
|
15
|
+
### Changed
|
16
|
+
- Ignoring dependencies uses glob pattern matching (https://github.com/github/licensed/pull/225)
|
17
|
+
|
9
18
|
## 2.6.2
|
10
19
|
2019-11-03
|
11
20
|
|
@@ -246,4 +255,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
246
255
|
|
247
256
|
Initial release :tada:
|
248
257
|
|
249
|
-
[Unreleased]: https://github.com/github/licensed/compare/2.
|
258
|
+
[Unreleased]: https://github.com/github/licensed/compare/2.7.0...HEAD
|
data/README.md
CHANGED
@@ -21,6 +21,18 @@ See the [migration documentation](./docs/migrating_to_newer_versions.md) for mor
|
|
21
21
|
|
22
22
|
## Installation
|
23
23
|
|
24
|
+
### Dependencies
|
25
|
+
|
26
|
+
Licensed uses the `libgit2` bindings for Ruby provided by `rugged`. `rugged` requires `cmake` and `pkg-config` which you may need to install before you can install Licensed.
|
27
|
+
|
28
|
+
> Ubuntu
|
29
|
+
|
30
|
+
sudo apt-get install cmake pkg-config
|
31
|
+
|
32
|
+
> OS X
|
33
|
+
|
34
|
+
brew install cmake pkg-config
|
35
|
+
|
24
36
|
### With a Gemfile
|
25
37
|
|
26
38
|
Add this line to your application's Gemfile:
|
@@ -48,12 +60,6 @@ $ ./licensed list
|
|
48
60
|
|
49
61
|
For system wide usage, install licensed to a location on `$PATH`, e.g. `/usr/local/bin`.
|
50
62
|
|
51
|
-
#### Dependencies
|
52
|
-
|
53
|
-
Licensed uses the `libgit2` bindings for Ruby provided by `rugged`. `rugged` has its own dependencies - `cmake` and `pkg-config` - which you may need to install before you can install Licensed.
|
54
|
-
|
55
|
-
For example, on macOS with Homebrew: `brew install cmake pkg-config` and on Ubuntu: `apt-get install cmake pkg-config`.
|
56
|
-
|
57
63
|
## Usage
|
58
64
|
|
59
65
|
- `licensed list`: Output enumerated dependencies only.
|
data/docs/configuration.md
CHANGED
@@ -95,6 +95,12 @@ ignored:
|
|
95
95
|
bower:
|
96
96
|
- some-internal-package
|
97
97
|
|
98
|
+
go:
|
99
|
+
# ignore all go packages from import paths starting with github.com/internal-package
|
100
|
+
# see the `File.fnmatch?` documentation for details on how patterns are matched.
|
101
|
+
# comparisons use the FNM_CASEFOLD and FNM_PATHNAME flags
|
102
|
+
- github.com/internal-package/**/*
|
103
|
+
|
98
104
|
# These dependencies have been reviewed.
|
99
105
|
# They need to be cached and checked, but do not have a license found that matches the allowed configured licenses.
|
100
106
|
reviewed:
|
@@ -75,7 +75,9 @@ module Licensed
|
|
75
75
|
|
76
76
|
# Is the given dependency ignored?
|
77
77
|
def ignored?(dependency)
|
78
|
-
Array(self["ignored"][dependency["type"]]).
|
78
|
+
Array(self["ignored"][dependency["type"]]).any? do |pattern|
|
79
|
+
File.fnmatch?(pattern, dependency["name"], File::FNM_PATHNAME | File::FNM_CASEFOLD)
|
80
|
+
end
|
79
81
|
end
|
80
82
|
|
81
83
|
# Is the license of the dependency allowed?
|
data/lib/licensed/dependency.rb
CHANGED
@@ -72,9 +72,12 @@ module Licensed
|
|
72
72
|
# Returns the license text content from all matched sources
|
73
73
|
# except the package file, which doesn't contain license text.
|
74
74
|
def license_contents
|
75
|
-
matched_files.reject { |f| f == package_file }
|
76
|
-
|
77
|
-
|
75
|
+
files = matched_files.reject { |f| f == package_file }
|
76
|
+
.group_by(&:content)
|
77
|
+
.map { |content, files| { "sources" => license_content_sources(files), "text" => content } }
|
78
|
+
|
79
|
+
files << generated_license_contents if files.empty?
|
80
|
+
files.compact
|
78
81
|
end
|
79
82
|
|
80
83
|
# Returns legal notices found at the dependency path
|
@@ -133,5 +136,25 @@ module Licensed
|
|
133
136
|
"license" => license_key
|
134
137
|
})
|
135
138
|
end
|
139
|
+
|
140
|
+
# Returns a generated license content source and text for the dependency's
|
141
|
+
# license if it exists and is not "other"
|
142
|
+
def generated_license_contents
|
143
|
+
return unless license
|
144
|
+
return if license.key == "other"
|
145
|
+
|
146
|
+
# strip copyright clauses and any extra newlines
|
147
|
+
# many package managers don't provide enough information to
|
148
|
+
# autogenerate a copyright clause
|
149
|
+
text = license.text.lines
|
150
|
+
.reject { |l| l =~ Licensee::Matchers::Copyright::REGEX }
|
151
|
+
.join
|
152
|
+
.gsub(/\n\n\n/, "\n\n")
|
153
|
+
|
154
|
+
{
|
155
|
+
"sources" => "Auto-generated #{license.spdx_id} license text",
|
156
|
+
"text" => text
|
157
|
+
}
|
158
|
+
end
|
136
159
|
end
|
137
160
|
end
|
data/lib/licensed/sources/go.rb
CHANGED
@@ -85,11 +85,16 @@ module Licensed
|
|
85
85
|
|
86
86
|
# true if go standard packages includes the import path as given
|
87
87
|
return true if go_std_packages.include?(import_path)
|
88
|
+
return true if go_std_packages.include?("vendor/#{import_path}")
|
88
89
|
|
89
90
|
# additional checks are only for vendored dependencies - return false
|
90
91
|
# if package isn't vendored
|
91
92
|
return false unless vendored_path?(import_path)
|
92
93
|
|
94
|
+
# return true if any of the go standard packages matches against
|
95
|
+
# the non-vendored import path
|
96
|
+
return true if go_std_packages.include?(non_vendored_import_path(import_path))
|
97
|
+
|
93
98
|
# modify the import path to look like the import path `go list` returns for vendored std packages
|
94
99
|
vendor_path = import_path.sub("#{root_package["ImportPath"]}/", "")
|
95
100
|
go_std_packages.include?(vendor_path) || go_std_packages.include?(vendor_path.sub("golang.org", "golang_org"))
|
data/lib/licensed/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: licensed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: licensee
|