licensed 2.14.3 → 2.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33331f661a6431bafe0966bfc183f734c9775412a23a9d952b0c232482254899
4
- data.tar.gz: d6fc25e79d8ca274eb3ca1dbf22bc187fa6a0ac1547b08777aafde2fd71612dd
3
+ metadata.gz: 1042edfc8e49ab1430a73001612f260fb20f80931139649f8b8ae6f044d74463
4
+ data.tar.gz: 386c548165ed4c4ed1b5b78131635552c11ec03f6a09e8f75e328d1446b129a7
5
5
  SHA512:
6
- metadata.gz: 7572045fdc55e4c53fd5230baed547ff4d20aa7b5bcea226f7f57035eacdf335e2ec364e3df9ad9bce6222fe46fc134066979c6cbc8a42b283070bd0a6695f74
7
- data.tar.gz: cc6ed29bffe75f17dd0c25d449afa83f3122caf442bcad6582cbc07a93c28389e5c4543ea9dea5e67f94797a24e223658cf7e4671f165f0502e385424a8402c2
6
+ metadata.gz: c163d4d2bbffe0756b4aecfa353a99d8d3be92ea7fe5b536d00dc79b1581132b31bf69fd0947a85de095ec2d5604da547d175507a199427b1e74da25e8b63a03
7
+ data.tar.gz: 719df2438ad31e8e525f15ae2b9948f1fc3a0a83b5e72f2e109b10d498f65734d6ab49af99fb92486e31d4314a635a0a2d5bdca793bd51412804b76d9b48042a
@@ -3,12 +3,95 @@ name: Build and publish release assets
3
3
  on:
4
4
  release:
5
5
  types: [created]
6
+ workflow_dispatch:
7
+ inputs:
8
+ version:
9
+ description: 'Commit-like version of github/licensed to build package at'
10
+ required: true
11
+ release_tag:
12
+ description: 'Release tag to upload built packages to'
13
+ required: false
6
14
 
7
15
  jobs:
16
+ vars:
17
+ name: "Gather values for remainder of steps"
18
+ runs-on: ubuntu-latest
19
+ outputs:
20
+ version: ${{ steps.get_version.outputs.result }}
21
+ upload_url: ${{ steps.get_url.outputs.result }}
22
+ ref: ${{ steps.get_ref.outputs.result }}
23
+ steps:
24
+ - id: get_version
25
+ name: Get package version
26
+ uses: actions/github-script@v3
27
+ with:
28
+ github-token: ${{ secrets.GITHUB_TOKEN }}
29
+ result-encoding: string
30
+ script: |
31
+ let version = "${{ github.event.release.tag_name }}"
32
+ if (!version) {
33
+ version = "${{ github.event.inputs.version }}"
34
+ }
35
+
36
+ if (!version) {
37
+ throw new Error("unable to find package build version")
38
+ }
39
+
40
+ return version
41
+
42
+ - id: get_url
43
+ name: Get release upload url
44
+ uses: actions/github-script@v3
45
+ with:
46
+ github-token: ${{ secrets.GITHUB_TOKEN }}
47
+ result-encoding: string
48
+ script: |
49
+ let uploadUrl = "${{ github.event.release.upload_url}}"
50
+ const tag = "${{ github.event.inputs.release_tag }}"
51
+ if (!uploadUrl && tag) {
52
+ const { data: release } = await github.repos.getReleaseByTag({
53
+ ...context.repo,
54
+ tag
55
+ })
56
+
57
+ if (!release.upload_url) {
58
+ throw new Error("unable to find a release upload url")
59
+ }
60
+
61
+ uploadUrl = release.upload_url
62
+ }
63
+
64
+ return uploadUrl
65
+
66
+ - id: get_ref
67
+ name: Get checkout ref for custom build scripts
68
+ uses: actions/github-script@v3
69
+ with:
70
+ github-token: ${{ secrets.GITHUB_TOKEN }}
71
+ result-encoding: string
72
+ script: |
73
+ let ref = "${{ github.event.release.tag_name }}"
74
+ if (!ref) {
75
+ ref = "${{ github.event.ref }}".replace(/refs\/[^\/]+\//, '')
76
+ }
77
+
78
+ if (!ref) {
79
+ throw new Error("unable to find a ref for action")
80
+ }
81
+
82
+ return ref
83
+
8
84
  package_linux:
85
+ needs: vars
9
86
  runs-on: ubuntu-latest
10
87
  steps:
11
88
  - uses: actions/checkout@v2
89
+ with:
90
+ # checkout at the ref for the action, separate from the target build version
91
+ # this allows running build scripts independent of the target version
92
+ ref: ${{needs.vars.outputs.ref}}
93
+ fetch-depth: 0
94
+
12
95
  - name: Set up Ruby 2.6
13
96
  uses: actions/setup-ruby@v1
14
97
  with:
@@ -17,17 +100,24 @@ jobs:
17
100
  - name: Build package
18
101
  run: script/packages/linux
19
102
  env:
20
- VERSION: ${{github.event.release.tag_name}}
103
+ VERSION: ${{needs.vars.outputs.version}}
21
104
 
22
105
  - uses: actions/upload-artifact@v2
23
106
  with:
24
- name: ${{github.event.release.tag_name}}-linux
25
- path: pkg/${{github.event.release.tag_name}}/licensed-${{github.event.release.tag_name}}-linux-x64.tar.gz
107
+ name: ${{needs.vars.outputs.version}}-linux
108
+ path: pkg/${{needs.vars.outputs.version}}/licensed-${{needs.vars.outputs.version}}-linux-x64.tar.gz
26
109
 
27
110
  package_mac:
111
+ needs: vars
28
112
  runs-on: macOS-latest
29
113
  steps:
30
114
  - uses: actions/checkout@v2
115
+ with:
116
+ # checkout at the ref for the action, separate from the target build version
117
+ # this allows running build scripts independent of the target version
118
+ ref: ${{needs.vars.outputs.ref}}
119
+ fetch-depth: 0
120
+
31
121
  - name: Set up Ruby 2.6
32
122
  uses: actions/setup-ruby@v1
33
123
  with:
@@ -36,33 +126,39 @@ jobs:
36
126
  - name: Build package
37
127
  run: script/packages/mac
38
128
  env:
39
- VERSION: ${{github.event.release.tag_name}}
129
+ VERSION: ${{needs.vars.outputs.version}}
40
130
 
41
131
  - uses: actions/upload-artifact@v2
42
132
  with:
43
- name: ${{github.event.release.tag_name}}-darwin
44
- path: pkg/${{github.event.release.tag_name}}/licensed-${{github.event.release.tag_name}}-darwin-x64.tar.gz
133
+ name: ${{needs.vars.outputs.version}}-darwin
134
+ path: pkg/${{needs.vars.outputs.version}}/licensed-${{needs.vars.outputs.version}}-darwin-x64.tar.gz
45
135
 
46
136
  build_gem:
137
+ needs: vars
47
138
  runs-on: ubuntu-latest
48
139
  steps:
49
140
  - uses: actions/checkout@v2
141
+ with:
142
+ # building a gem doesn't use a different ref from the version input
143
+ ref: ${{needs.vars.outputs.version}}
144
+
50
145
  - name: Set up Ruby 2.6
51
146
  uses: actions/setup-ruby@v1
52
147
  with:
53
148
  ruby-version: 2.6.x
54
149
 
55
150
  - name: Build gem
56
- run: gem build licensed.gemspec -o licensed-${{github.event.release.tag_name}}.gem
151
+ run: gem build licensed.gemspec -o licensed-${{needs.vars.outputs.version}}.gem
57
152
 
58
153
  - uses: actions/upload-artifact@v2
59
154
  with:
60
- name: ${{github.event.release.tag_name}}-gem
61
- path: licensed-${{github.event.release.tag_name}}.gem
155
+ name: ${{needs.vars.outputs.version}}-gem
156
+ path: licensed-${{needs.vars.outputs.version}}.gem
62
157
 
63
158
  upload_packages:
159
+ if: ${{ needs.vars.outputs.upload_url != '' }}
64
160
  runs-on: ubuntu-latest
65
- needs: [package_linux, package_mac, build_gem]
161
+ needs: [vars, package_linux, package_mac, build_gem]
66
162
 
67
163
  steps:
68
164
  - name: Set up Ruby 2.6
@@ -73,26 +169,26 @@ jobs:
73
169
  - name: Download linux package
74
170
  uses: actions/download-artifact@v2
75
171
  with:
76
- name: ${{github.event.release.tag_name}}-linux
172
+ name: ${{needs.vars.outputs.version}}-linux
77
173
 
78
174
  - name: Download macOS package
79
175
  uses: actions/download-artifact@v2
80
176
  with:
81
- name: ${{github.event.release.tag_name}}-darwin
177
+ name: ${{needs.vars.outputs.version}}-darwin
82
178
 
83
179
  - name: Download gem
84
180
  uses: actions/download-artifact@v2
85
181
  with:
86
- name: ${{github.event.release.tag_name}}-gem
182
+ name: ${{needs.vars.outputs.version}}-gem
87
183
 
88
184
  - name: Publish linux package
89
185
  uses: actions/upload-release-asset@v1
90
186
  env:
91
187
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92
188
  with:
93
- upload_url: ${{ github.event.release.upload_url }}
94
- asset_path: ./licensed-${{github.event.release.tag_name}}-linux-x64.tar.gz
95
- asset_name: licensed-${{github.event.release.tag_name}}-linux-x64.tar.gz
189
+ upload_url: ${{ needs.vars.outputs.upload_url }}
190
+ asset_path: ./licensed-${{needs.vars.outputs.version}}-linux-x64.tar.gz
191
+ asset_name: licensed-${{needs.vars.outputs.version}}-linux-x64.tar.gz
96
192
  asset_content_type: application/gzip
97
193
 
98
194
  - name: Publish mac package
@@ -100,9 +196,9 @@ jobs:
100
196
  env:
101
197
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
102
198
  with:
103
- upload_url: ${{ github.event.release.upload_url }}
104
- asset_path: ./licensed-${{github.event.release.tag_name}}-darwin-x64.tar.gz
105
- asset_name: licensed-${{github.event.release.tag_name}}-darwin-x64.tar.gz
199
+ upload_url: ${{ needs.vars.outputs.upload_url }}
200
+ asset_path: ./licensed-${{needs.vars.outputs.version}}-darwin-x64.tar.gz
201
+ asset_name: licensed-${{needs.vars.outputs.version}}-darwin-x64.tar.gz
106
202
  asset_content_type: application/gzip
107
203
 
108
204
  - name: Publish gem to RubyGems
@@ -114,4 +210,4 @@ jobs:
114
210
  gem push $GEM
115
211
  env:
116
212
  RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
117
- GEM: licensed-${{github.event.release.tag_name}}.gem
213
+ GEM: licensed-${{needs.vars.outputs.version}}.gem
data/CHANGELOG.md CHANGED
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## 2.14.4
10
+ 2021-02-09
11
+
12
+ ## Added
13
+ - `list` and `cache` commands optionally print output in JSON or YML formats using the `--format/-f` flag (https://github.com/github/licensed/pull/334)
14
+ - `list` command will include detected license keys using the `--licenses/-l` flag (https://github.com/github/licensed/pull/334)
15
+
9
16
  ## 2.14.3
10
17
  2020-12-11
11
18
 
@@ -379,4 +386,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
379
386
 
380
387
  Initial release :tada:
381
388
 
382
- [Unreleased]: https://github.com/github/licensed/compare/2.14.3...HEAD
389
+ [Unreleased]: https://github.com/github/licensed/compare/2.14.4...HEAD
@@ -12,3 +12,4 @@ RUN gem update --system && gem update bundler
12
12
  ENV CPPFLAGS="-P"
13
13
  ENV RUBYC="/usr/local/bin/rubyc"
14
14
  ENV LANG=C.UTF-8
15
+ ENV SSL_CERT_DIR="/etc/ssl/certs"
data/lib/licensed/cli.rb CHANGED
@@ -12,9 +12,11 @@ module Licensed
12
12
  desc: "Path to licensed configuration file"
13
13
  method_option :sources, aliases: "-s", type: :array,
14
14
  desc: "Individual source(s) to evaluate. Must also be enabled via configuration."
15
+ method_option :format, aliases: "-f", enum: ["yaml", "json"],
16
+ desc: "Output format"
15
17
  def cache
16
18
  run Licensed::Commands::Cache.new(config: config),
17
- force: options[:force], sources: options[:sources]
19
+ force: options[:force], sources: options[:sources], reporter: options[:format]
18
20
  end
19
21
 
20
22
  desc "status", "Check status of dependencies' cached licenses"
@@ -33,8 +35,12 @@ module Licensed
33
35
  desc: "Path to licensed configuration file"
34
36
  method_option :sources, aliases: "-s", type: :array,
35
37
  desc: "Individual source(s) to evaluate. Must also be enabled via configuration."
38
+ method_option :format, aliases: "-f", enum: ["yaml", "json"],
39
+ desc: "Output format"
40
+ method_option :licenses, aliases: "-l", type: :boolean,
41
+ desc: "Include detected licenses in output"
36
42
  def list
37
- run Licensed::Commands::List.new(config: config), sources: options[:sources]
43
+ run Licensed::Commands::List.new(config: config), sources: options[:sources], reporter: options[:format], licenses: options[:licenses]
38
44
  end
39
45
 
40
46
  desc "notices", "Generate a NOTICE file from cached records"
@@ -41,6 +41,13 @@ module Licensed
41
41
  #
42
42
  # Returns true.
43
43
  def evaluate_dependency(app, source, dependency, report)
44
+ report["dependency"] = dependency.name
45
+ report["version"] = dependency.version
46
+
47
+ if options[:licenses]
48
+ report["license"] = dependency.license_key
49
+ end
50
+
44
51
  true
45
52
  end
46
53
  end
@@ -75,7 +75,9 @@ module Licensed
75
75
  def report_dependency(dependency)
76
76
  super do |report|
77
77
  result = yield report
78
- shell.info " #{dependency.name} (#{dependency.version})"
78
+ info = "#{dependency.name} (#{dependency.version})"
79
+ info = "#{info}: #{report["license"]}" if report["license"]
80
+ shell.info " #{info}"
79
81
 
80
82
  result
81
83
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Licensed
3
- VERSION = "2.14.3".freeze
3
+ VERSION = "2.14.4".freeze
4
4
 
5
5
  def self.previous_major_versions
6
6
  major_version = Gem::Version.new(Licensed::VERSION).segments.first
@@ -34,6 +34,9 @@ build_linux_local() {
34
34
  sudo apt-get update
35
35
  sudo apt-get install -y --no-install-recommends cmake make gcc pkg-config squashfs-tools curl bison git rsync
36
36
 
37
+ sudo gem update --system
38
+ sudo gem update bundler
39
+
37
40
  RUBYC="$BASE_DIR/bin/rubyc-linux"
38
41
  if [ ! -f "$RUBYC" ]; then
39
42
  mkdir -p "$(dirname "$RUBYC")"
@@ -42,6 +45,7 @@ build_linux_local() {
42
45
  fi
43
46
 
44
47
  export CPPFLAGS="-P"
48
+ export SSL_CERT_DIR="/etc/ssl/certs"
45
49
  export RUBYC
46
50
  "$BASE_DIR"/script/packages/build
47
51
  }
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.14.3
4
+ version: 2.14.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-12-13 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: licensee