license_finder-rubyzip3 7.2.1.1

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.
Files changed (196) hide show
  1. checksums.yaml +7 -0
  2. data/.force-build +0 -0
  3. data/.github/dependabot.yml +16 -0
  4. data/.gitignore +13 -0
  5. data/.pre-commit-hooks.yaml +10 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +84 -0
  8. data/CHANGELOG.md +1066 -0
  9. data/CONTRIBUTING.md +122 -0
  10. data/Dockerfile +275 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE +22 -0
  13. data/README.md +597 -0
  14. data/Rakefile +77 -0
  15. data/TODO.md +12 -0
  16. data/VERSION +1 -0
  17. data/appveyor.yml +21 -0
  18. data/bin/license_finder +6 -0
  19. data/bin/license_finder_pip.py +43 -0
  20. data/ci/pipelines/pull-request.yml.erb +138 -0
  21. data/ci/pipelines/release.yml.erb +176 -0
  22. data/ci/scripts/containerize-tests.sh +14 -0
  23. data/ci/scripts/pushscript.sh +31 -0
  24. data/ci/scripts/run-rubocop.sh +15 -0
  25. data/ci/scripts/run-tests.sh +41 -0
  26. data/ci/scripts/test.ps1 +81 -0
  27. data/ci/scripts/updateChangelog.sh +84 -0
  28. data/ci/tasks/build-and-push-gem.yml +10 -0
  29. data/ci/tasks/build-windows.yml +6 -0
  30. data/ci/tasks/build.yml +16 -0
  31. data/ci/tasks/rubocop.yml +15 -0
  32. data/ci/tasks/run-tests.yml +10 -0
  33. data/ci/tasks/update-changelog.yml +18 -0
  34. data/dlf +21 -0
  35. data/examples/Gemfile +4 -0
  36. data/examples/custom_erb_template.rb +24 -0
  37. data/examples/extract_license_data.rb +63 -0
  38. data/examples/sample_template.erb +7 -0
  39. data/lib/license_finder/cli/approvals.rb +28 -0
  40. data/lib/license_finder/cli/base.rb +113 -0
  41. data/lib/license_finder/cli/dependencies.rb +44 -0
  42. data/lib/license_finder/cli/ignored_dependencies.rb +32 -0
  43. data/lib/license_finder/cli/ignored_groups.rb +32 -0
  44. data/lib/license_finder/cli/inherited_decisions.rb +50 -0
  45. data/lib/license_finder/cli/licenses.rb +31 -0
  46. data/lib/license_finder/cli/main.rb +229 -0
  47. data/lib/license_finder/cli/makes_decisions.rb +38 -0
  48. data/lib/license_finder/cli/patched_thor.rb +33 -0
  49. data/lib/license_finder/cli/permitted_licenses.rb +32 -0
  50. data/lib/license_finder/cli/project_name.rb +32 -0
  51. data/lib/license_finder/cli/restricted_licenses.rb +32 -0
  52. data/lib/license_finder/cli.rb +20 -0
  53. data/lib/license_finder/configuration.rb +197 -0
  54. data/lib/license_finder/core.rb +121 -0
  55. data/lib/license_finder/decision_applier.rb +70 -0
  56. data/lib/license_finder/decisions.rb +334 -0
  57. data/lib/license_finder/decisions_factory.rb +13 -0
  58. data/lib/license_finder/diff.rb +51 -0
  59. data/lib/license_finder/license/any_matcher.rb +15 -0
  60. data/lib/license_finder/license/definitions.rb +498 -0
  61. data/lib/license_finder/license/header_matcher.rb +17 -0
  62. data/lib/license_finder/license/matcher.rb +24 -0
  63. data/lib/license_finder/license/none_matcher.rb +11 -0
  64. data/lib/license_finder/license/template.rb +19 -0
  65. data/lib/license_finder/license/templates/0BSD.txt +10 -0
  66. data/lib/license_finder/license/templates/AGPL3.txt +661 -0
  67. data/lib/license_finder/license/templates/Apache1_1.txt +16 -0
  68. data/lib/license_finder/license/templates/Apache2.txt +170 -0
  69. data/lib/license_finder/license/templates/Artistic.txt +128 -0
  70. data/lib/license_finder/license/templates/BSD.txt +24 -0
  71. data/lib/license_finder/license/templates/CC01.txt +30 -0
  72. data/lib/license_finder/license/templates/CC01_alt.txt +31 -0
  73. data/lib/license_finder/license/templates/CDDL1.txt +131 -0
  74. data/lib/license_finder/license/templates/CDDL1_1.txt +123 -0
  75. data/lib/license_finder/license/templates/CPL1.txt +217 -0
  76. data/lib/license_finder/license/templates/EPL1.txt +86 -0
  77. data/lib/license_finder/license/templates/EPL2.txt +80 -0
  78. data/lib/license_finder/license/templates/GPLv2.txt +339 -0
  79. data/lib/license_finder/license/templates/GPLv3.txt +674 -0
  80. data/lib/license_finder/license/templates/ISC.txt +2 -0
  81. data/lib/license_finder/license/templates/LGPL.txt +165 -0
  82. data/lib/license_finder/license/templates/LGPL2_1.txt +169 -0
  83. data/lib/license_finder/license/templates/MIT.txt +9 -0
  84. data/lib/license_finder/license/templates/MPL1_1.txt +469 -0
  85. data/lib/license_finder/license/templates/MPL2.txt +373 -0
  86. data/lib/license_finder/license/templates/NewBSD.txt +21 -0
  87. data/lib/license_finder/license/templates/OFL.txt +91 -0
  88. data/lib/license_finder/license/templates/Python.txt +47 -0
  89. data/lib/license_finder/license/templates/Ruby.txt +52 -0
  90. data/lib/license_finder/license/templates/SimplifiedBSD.txt +19 -0
  91. data/lib/license_finder/license/templates/Unlicense.txt +24 -0
  92. data/lib/license_finder/license/templates/WTFPL.txt +14 -0
  93. data/lib/license_finder/license/templates/Zlib.txt +17 -0
  94. data/lib/license_finder/license/text.rb +49 -0
  95. data/lib/license_finder/license.rb +123 -0
  96. data/lib/license_finder/license_aggregator.rb +59 -0
  97. data/lib/license_finder/logger.rb +69 -0
  98. data/lib/license_finder/manual_licenses.rb +79 -0
  99. data/lib/license_finder/package.rb +195 -0
  100. data/lib/license_finder/package_delta.rb +61 -0
  101. data/lib/license_finder/package_manager.rb +183 -0
  102. data/lib/license_finder/package_managers/bower.rb +37 -0
  103. data/lib/license_finder/package_managers/bundler.rb +110 -0
  104. data/lib/license_finder/package_managers/cargo.rb +38 -0
  105. data/lib/license_finder/package_managers/carthage.rb +68 -0
  106. data/lib/license_finder/package_managers/cocoa_pods.rb +66 -0
  107. data/lib/license_finder/package_managers/composer.rb +63 -0
  108. data/lib/license_finder/package_managers/conan.rb +70 -0
  109. data/lib/license_finder/package_managers/conda.rb +131 -0
  110. data/lib/license_finder/package_managers/dep.rb +45 -0
  111. data/lib/license_finder/package_managers/dotnet.rb +86 -0
  112. data/lib/license_finder/package_managers/erlangmk.rb +50 -0
  113. data/lib/license_finder/package_managers/glide.rb +42 -0
  114. data/lib/license_finder/package_managers/go_15vendorexperiment.rb +87 -0
  115. data/lib/license_finder/package_managers/go_dep.rb +80 -0
  116. data/lib/license_finder/package_managers/go_modules.rb +93 -0
  117. data/lib/license_finder/package_managers/go_workspace.rb +117 -0
  118. data/lib/license_finder/package_managers/govendor.rb +73 -0
  119. data/lib/license_finder/package_managers/gradle.rb +99 -0
  120. data/lib/license_finder/package_managers/gvt.rb +69 -0
  121. data/lib/license_finder/package_managers/maven.rb +69 -0
  122. data/lib/license_finder/package_managers/mix.rb +131 -0
  123. data/lib/license_finder/package_managers/npm.rb +70 -0
  124. data/lib/license_finder/package_managers/nuget.rb +159 -0
  125. data/lib/license_finder/package_managers/pip.rb +70 -0
  126. data/lib/license_finder/package_managers/pipenv.rb +63 -0
  127. data/lib/license_finder/package_managers/pnpm.rb +126 -0
  128. data/lib/license_finder/package_managers/pub.rb +86 -0
  129. data/lib/license_finder/package_managers/rebar.rb +65 -0
  130. data/lib/license_finder/package_managers/sbt.rb +46 -0
  131. data/lib/license_finder/package_managers/spm.rb +93 -0
  132. data/lib/license_finder/package_managers/trash.rb +43 -0
  133. data/lib/license_finder/package_managers/yarn.rb +195 -0
  134. data/lib/license_finder/package_utils/activation.rb +40 -0
  135. data/lib/license_finder/package_utils/conan_info_parser.rb +77 -0
  136. data/lib/license_finder/package_utils/conan_info_parser_v2.rb +82 -0
  137. data/lib/license_finder/package_utils/gradle_dependency_finder.rb +15 -0
  138. data/lib/license_finder/package_utils/license_files.rb +51 -0
  139. data/lib/license_finder/package_utils/licensing.rb +40 -0
  140. data/lib/license_finder/package_utils/maven_dependency_finder.rb +57 -0
  141. data/lib/license_finder/package_utils/notice_files.rb +51 -0
  142. data/lib/license_finder/package_utils/possible_license_file.rb +33 -0
  143. data/lib/license_finder/package_utils/pypi.rb +43 -0
  144. data/lib/license_finder/package_utils/sbt_dependency_finder.rb +15 -0
  145. data/lib/license_finder/packages/bower_package.rb +45 -0
  146. data/lib/license_finder/packages/bundler_package.rb +33 -0
  147. data/lib/license_finder/packages/cargo_package.rb +28 -0
  148. data/lib/license_finder/packages/carthage_package.rb +18 -0
  149. data/lib/license_finder/packages/cocoa_pods_package.rb +22 -0
  150. data/lib/license_finder/packages/composer_package.rb +13 -0
  151. data/lib/license_finder/packages/conan_package.rb +23 -0
  152. data/lib/license_finder/packages/conda_package.rb +74 -0
  153. data/lib/license_finder/packages/erlangmk_package.rb +112 -0
  154. data/lib/license_finder/packages/go_package.rb +30 -0
  155. data/lib/license_finder/packages/gradle_package.rb +30 -0
  156. data/lib/license_finder/packages/manual_package.rb +27 -0
  157. data/lib/license_finder/packages/maven_package.rb +39 -0
  158. data/lib/license_finder/packages/merged_package.rb +44 -0
  159. data/lib/license_finder/packages/mix_package.rb +13 -0
  160. data/lib/license_finder/packages/npm_package.rb +219 -0
  161. data/lib/license_finder/packages/nuget_package.rb +13 -0
  162. data/lib/license_finder/packages/pip_package.rb +50 -0
  163. data/lib/license_finder/packages/pnpm_package.rb +13 -0
  164. data/lib/license_finder/packages/pubspec_package.rb +18 -0
  165. data/lib/license_finder/packages/rebar_package.rb +13 -0
  166. data/lib/license_finder/packages/sbt_package.rb +22 -0
  167. data/lib/license_finder/packages/spm_package.rb +18 -0
  168. data/lib/license_finder/packages/yarn_package.rb +13 -0
  169. data/lib/license_finder/platform.rb +15 -0
  170. data/lib/license_finder/printer.rb +39 -0
  171. data/lib/license_finder/project_finder.rb +62 -0
  172. data/lib/license_finder/report.rb +34 -0
  173. data/lib/license_finder/reports/csv_report.rb +108 -0
  174. data/lib/license_finder/reports/diff_report.rb +29 -0
  175. data/lib/license_finder/reports/erb_report.rb +62 -0
  176. data/lib/license_finder/reports/html_report.rb +13 -0
  177. data/lib/license_finder/reports/json_report.rb +31 -0
  178. data/lib/license_finder/reports/junit_report.rb +23 -0
  179. data/lib/license_finder/reports/markdown_report.rb +9 -0
  180. data/lib/license_finder/reports/merged_report.rb +16 -0
  181. data/lib/license_finder/reports/templates/bootstrap.css +9 -0
  182. data/lib/license_finder/reports/templates/html_report.erb +113 -0
  183. data/lib/license_finder/reports/templates/junit_report.erb +41 -0
  184. data/lib/license_finder/reports/templates/markdown_report.erb +49 -0
  185. data/lib/license_finder/reports/templates/xml_report.erb +19 -0
  186. data/lib/license_finder/reports/text_report.rb +12 -0
  187. data/lib/license_finder/reports/xml_report.rb +23 -0
  188. data/lib/license_finder/scanner.rb +83 -0
  189. data/lib/license_finder/shared_helpers/cmd.rb +13 -0
  190. data/lib/license_finder/shared_helpers/common_path.rb +29 -0
  191. data/lib/license_finder/version.rb +6 -0
  192. data/lib/license_finder.rb +14 -0
  193. data/license_finder.gemspec +79 -0
  194. data/release/instructions.md +8 -0
  195. data/swift-all-keys.asc +240 -0
  196. metadata +604 -0
data/appveyor.yml ADDED
@@ -0,0 +1,21 @@
1
+ environment:
2
+ HOME: $(HOMEDRIVE)$(HOMEPATH)
3
+ GOPATH: $(HOME)\go
4
+ PATH: $(PATH);$(GOPATH)\bin;$(HOME)\rebar;$(HOME)\gradle\bin
5
+
6
+ install:
7
+ - bundle install
8
+
9
+ build_script:
10
+ - rake build
11
+
12
+ # Prerequisites for running tests.
13
+ before_test:
14
+ - rake install
15
+ - bash --login -c "ci/install_godep.sh"
16
+ - bash --login -c "ci/install_bower.sh"
17
+ - bash --login -c "ci/install_rebar.sh"
18
+ - bash --login -c "ci/install_gradle.sh"
19
+
20
+ test_script:
21
+ - rake spec
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'license_finder'
5
+
6
+ LicenseFinder::CLI::Main.start
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env python
2
+ import json
3
+ import sys
4
+
5
+ try:
6
+ from pip._internal.req import parse_requirements
7
+ except ImportError:
8
+ from pip.req import parse_requirements
9
+
10
+ try:
11
+ # since pip 19.3
12
+ from pip._internal.network.session import PipSession
13
+ except ImportError:
14
+ try:
15
+ # since pip 10
16
+ from pip._internal.download import PipSession
17
+ except ImportError:
18
+ from pip.download import PipSession
19
+
20
+ from pip._vendor import pkg_resources
21
+ from pip._vendor.six import print_
22
+
23
+
24
+ reqs = []
25
+ for req in parse_requirements(sys.argv[1], session=PipSession()):
26
+ try:
27
+ if req.req is not None and (req.markers is None or req.markers.evaluate()):
28
+ reqs.append(pkg_resources.Requirement.parse(str(req.req)))
29
+ except AttributeError:
30
+ # Since pip 20.1 (pip now takes care of markers at the resolve step)
31
+ if req.requirement is not None:
32
+ reqs.append(pkg_resources.Requirement.parse(str(req.requirement)))
33
+
34
+ transform = lambda dist: {
35
+ 'name': dist.project_name,
36
+ 'version': dist.version,
37
+ 'location': dist.location,
38
+ 'dependencies': list(map(lambda dependency: dependency.project_name, dist.requires())),
39
+ }
40
+
41
+
42
+ packages = [transform(dist) for dist in pkg_resources.working_set.resolve(reqs)]
43
+ print_(json.dumps(packages))
@@ -0,0 +1,138 @@
1
+ <% setup_slack = defined?(slack_url) && defined?(slack_channel) %>
2
+ <% ruby_versions = ruby_versions.split(',') %>
3
+
4
+ resource_types:
5
+ - name: pull-request
6
+ type: docker-image
7
+ source:
8
+ repository: teliaoss/github-pr-resource
9
+
10
+ <% if setup_slack %>
11
+ - name: slack-notification
12
+ type: registry-image
13
+ source:
14
+ repository: cfcommunity/slack-notification-resource
15
+ tag: latest
16
+ username: ((license-finder-docker-username))
17
+ password: ((license-finder-docker-password))
18
+ <% end %>
19
+
20
+ resources:
21
+ - name: lf-git
22
+ type: git
23
+ source:
24
+ uri: git@github.com:pivotal/LicenseFinder.git
25
+ private_key: ((github-cf-osl-bot-private-key))
26
+ branch: master
27
+
28
+ - name: github-pull-request
29
+ type: pull-request
30
+ check_every: 24h
31
+ webhook_token: ((github-pull-request-webhook-token))
32
+ source:
33
+ repository: pivotal/LicenseFinder
34
+ access_token: ((github-api-pull-request-token))
35
+
36
+ - name: dockerhub-pr
37
+ type: docker-image
38
+ source:
39
+ tag: edge-pr
40
+ repository: licensefinder/license_finder
41
+ email: ((license-finder-docker-email))
42
+ username: ((license-finder-docker-username))
43
+ password: ((license-finder-docker-password))
44
+
45
+ <% if setup_slack %>
46
+ - name: slack-alert
47
+ type: slack-notification
48
+ source:
49
+ url: <%= slack_url %>
50
+ <% end %>
51
+
52
+ jobs:
53
+ - name: build-docker-image
54
+ public: true
55
+ plan:
56
+ - get: github-pull-request
57
+ version: every
58
+ trigger: true
59
+ - put: dockerhub-pr
60
+ params:
61
+ build: github-pull-request
62
+ on_success:
63
+ put: github-pull-request
64
+ params:
65
+ path: github-pull-request
66
+ status: success
67
+ context: build-docker-image
68
+ on_failure:
69
+ put: github-pull-request
70
+ params:
71
+ path: github-pull-request
72
+ status: failure
73
+ context: build-docker-image
74
+ <% ruby_versions.each do |ruby_version| %>
75
+ - name: PR-ruby-<%= ruby_version %>-linux
76
+ public: true
77
+ plan:
78
+ - in_parallel:
79
+ - get: github-pull-request
80
+ passed: [build-docker-image]
81
+ version: every
82
+ - get: dockerhub-pr
83
+ passed: [build-docker-image]
84
+ trigger: true
85
+ - get: lf-git
86
+ - task: ruby-<%= ruby_version %>
87
+ privileged: true
88
+ image: dockerhub-pr
89
+ file: lf-git/ci/tasks/run-tests.yml
90
+ params:
91
+ RUBY_VERSION_UNDER_TEST: <%= ruby_version %>
92
+ input_mapping: { LicenseFinder: github-pull-request }
93
+ on_success:
94
+ put: github-pull-request
95
+ params:
96
+ path: github-pull-request
97
+ status: success
98
+ context: ruby-<%= ruby_version %>
99
+ on_failure:
100
+ put: github-pull-request
101
+ params:
102
+ path: github-pull-request
103
+ status: failure
104
+ context: ruby-<%= ruby_version %>
105
+ <% if setup_slack %>
106
+ on_failure:
107
+ put: slack-alert
108
+ params:
109
+ channel: '<%= slack_channel %>'
110
+ icon_emoji: ':crying_cat_face:'
111
+ text: '<%= "License Finder build failed. Build: https://norsk.cf-app.com/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME" %>'
112
+ <% end %>
113
+ <% end %>
114
+
115
+ - name: PR-rubocop
116
+ public: true
117
+ plan:
118
+ - in_parallel:
119
+ - get: github-pull-request
120
+ trigger: true
121
+ version: every
122
+ - get: lf-git
123
+ - task: run-rubocop
124
+ privileged: true
125
+ file: lf-git/ci/tasks/rubocop.yml
126
+ input_mapping: { LicenseFinder: github-pull-request }
127
+ on_success:
128
+ put: github-pull-request
129
+ params:
130
+ path: github-pull-request
131
+ status: success
132
+ context: run-rubocop
133
+ on_failure:
134
+ put: github-pull-request
135
+ params:
136
+ path: github-pull-request
137
+ status: failure
138
+ context: run-rubocop
@@ -0,0 +1,176 @@
1
+ <% setup_slack = defined?(slack_url) && defined?(slack_channel) %>
2
+ <% ruby_versions = ruby_versions.split(',') %>
3
+
4
+ resource_types:
5
+ <% if setup_slack %>
6
+ - name: slack-notification
7
+ type: registry-image
8
+ source:
9
+ repository: cfcommunity/slack-notification-resource
10
+ tag: latest
11
+ username: ((license-finder-docker-username))
12
+ password: ((license-finder-docker-password))
13
+ <% end %>
14
+
15
+ resources:
16
+ - name: lf-git
17
+ type: git
18
+ source:
19
+ uri: git@github.com:pivotal/LicenseFinder.git
20
+ private_key: ((github-cf-osl-bot-private-key))
21
+ branch: master
22
+ ignore_paths: [VERSION, CHANGELOG.md]
23
+
24
+ - name: semver-version
25
+ type: semver
26
+ source:
27
+ driver: gcs
28
+ bucket: lf-semver-version
29
+ key: version
30
+ json_key: ((lf-bucket-credentials))
31
+
32
+ - name: dockerhub-edge
33
+ type: docker-image
34
+ source:
35
+ tag: edge
36
+ repository: licensefinder/license_finder
37
+ email: ((license-finder-docker-email))
38
+ username: ((license-finder-docker-username))
39
+ password: ((license-finder-docker-password))
40
+
41
+ - name: dockerhub
42
+ type: docker-image
43
+ source:
44
+ repository: licensefinder/license_finder
45
+ email: ((license-finder-docker-email))
46
+ username: ((license-finder-docker-username))
47
+ password: ((license-finder-docker-password))
48
+
49
+ - name: lf-release
50
+ type: github-release
51
+ check_every: 24h
52
+ source:
53
+ owner: pivotal
54
+ repository: LicenseFinder
55
+ access_token: ((github-api-root-token))
56
+
57
+ <% if setup_slack %>
58
+ - name: slack-alert
59
+ type: slack-notification
60
+ source:
61
+ url: <%= slack_url %>
62
+ <% end %>
63
+
64
+ jobs:
65
+ - name: build-docker-image
66
+ public: true
67
+ plan:
68
+ - get: lf-git
69
+ trigger: true
70
+ - put: dockerhub-edge
71
+ params:
72
+ build: lf-git
73
+
74
+ <% ruby_versions.each do |ruby_version| %>
75
+ - name: ruby-<%= ruby_version %>
76
+ public: true
77
+ plan:
78
+ - get: dockerhub-edge
79
+ passed: [build-docker-image]
80
+ trigger: true
81
+ - get: LicenseFinder
82
+ resource: lf-git
83
+ passed: [build-docker-image]
84
+ version: every
85
+ - task: ruby-<%= ruby_version %>
86
+ privileged: true
87
+ image: dockerhub-edge
88
+ file: LicenseFinder/ci/tasks/run-tests.yml
89
+ params:
90
+ RUBY_VERSION_UNDER_TEST: <%= ruby_version %>
91
+
92
+ <% if setup_slack %>
93
+ on_failure:
94
+ put: slack-alert
95
+ params:
96
+ channel: '<%= slack_channel %>'
97
+ icon_emoji: ':crying_cat_face:'
98
+ text: '<%= "License Finder build failed. Build: https://norsk.cf-app.com/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME" %>'
99
+ <% end %>
100
+ <% end %>
101
+
102
+ - name: rubocop
103
+ public: true
104
+ plan:
105
+ - get: dockerhub-edge
106
+ passed: [build-docker-image]
107
+ trigger: true
108
+ - get: LicenseFinder
109
+ resource: lf-git
110
+ version: every
111
+ passed: [build-docker-image]
112
+ - task: run-rubocop
113
+ privileged: true
114
+ file: LicenseFinder/ci/tasks/rubocop.yml
115
+ input_mapping: { LicenseFinder: LicenseFinder }
116
+
117
+ - name: bump-major
118
+ plan:
119
+ - get: semver-version
120
+ params: {bump: major}
121
+ - put: semver-version
122
+ params: {file: semver-version/version}
123
+
124
+
125
+ - name: bump-minor
126
+ plan:
127
+ - get: semver-version
128
+ params: {bump: minor}
129
+ - put: semver-version
130
+ params: {file: semver-version/version}
131
+
132
+ - name: bump-patch
133
+ plan:
134
+ - get: semver-version
135
+ params: {bump: patch}
136
+ - put: semver-version
137
+ params: {file: semver-version/version}
138
+
139
+ - name: release
140
+ disable_manual_trigger: true
141
+ plan:
142
+ - get: lf-git
143
+ passed: [<%= "#{ruby_versions.map{ |version| "ruby-#{version}" unless version == "jruby-9.3.1.0" }.compact.join(', ') }, rubocop" %>]
144
+ - get: semver-version
145
+ trigger: true
146
+ - get: dockerhub
147
+ params:
148
+ save: true
149
+ - get: lf-release
150
+ - task: update-changelog
151
+ image: dockerhub
152
+ params:
153
+ GIT_USERNAME: ((github-api-user))
154
+ GIT_EMAIL: ((github-api-email))
155
+ file: lf-git/ci/tasks/update-changelog.yml
156
+ - put: dockerhub
157
+ params:
158
+ build: lf-git-changed
159
+ tag: version/version.txt
160
+ tag_as_latest: true
161
+ - put: lf-git
162
+ params:
163
+ repository: lf-git-changed
164
+ - task: build-and-push-gem
165
+ image: dockerhub
166
+ params:
167
+ GIT_USERNAME: ((github-api-user))
168
+ GIT_EMAIL: ((github-api-email))
169
+ GIT_PRIVATE_KEY: ((github-cf-osl-bot-private-key))
170
+ GEM_API_KEY: ((license-finder-gem-api-key))
171
+ file: lf-git/ci/tasks/build-and-push-gem.yml
172
+ - put: lf-release
173
+ params:
174
+ name: version/tag.txt
175
+ tag: version/tag.txt
176
+ body: version/changelog.txt
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ apk update && apk add git
6
+ source /opt/resource/common.sh
7
+ start_docker 3 3
8
+
9
+ pushd LicenseFinder
10
+ docker build . -t licensefinder/license_finder
11
+
12
+ docker run -v $PWD:/lf -it licensefinder/license_finder /bin/bash \
13
+ -exli /lf/ci/scripts/run-tests.sh "$RUBY_VERSION_UNDER_TEST"
14
+ popd
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ echo -e "---\n:rubygems_api_key: $GEM_API_KEY" > ~/.local/share/gem/credentials
3
+ chmod 0600 ~/.local/share/gem/credentials
4
+
5
+ build_version="$(cat semver-version/version)"
6
+ cd lf-git
7
+ built_gem="pkg/license_finder-$build_version.gem"
8
+
9
+ git config --global user.email $GIT_EMAIL
10
+ git config --global user.name $GIT_USERNAME
11
+
12
+ git config --global push.default simple
13
+
14
+ git checkout master
15
+
16
+ mkdir ~/.ssh
17
+ ssh-keyscan github.com >> ~/.ssh/known_hosts
18
+ eval "$(ssh-agent -s)"
19
+ echo "$GIT_PRIVATE_KEY" > ~/.ssh/id_rsa
20
+ chmod 600 ~/.ssh/id_rsa
21
+ ssh-add -k ~/.ssh/id_rsa
22
+
23
+ if [ -z "$(gem fetch license_finder -v $build_version 2>&1 | grep ERROR)" ]; then
24
+ echo "LicenseFinder-$build_version already exists on Rubygems"
25
+ else
26
+ rake release
27
+ fi
28
+
29
+ export EXIT_STATUS=$?
30
+ kill $(ps aux | grep ssh-agent | head -n 1 | awk '{print $2}')
31
+ exit $EXIT_STATUS
@@ -0,0 +1,15 @@
1
+ #!/bin/bash -e
2
+
3
+ cd LicenseFinder
4
+
5
+ gem update --system
6
+ bundle install --without runtime default
7
+
8
+ rubocop_version=`cat Gemfile.lock | grep ' rubocop' | awk -F'[\(*\)]' '{print $2;exit}'`
9
+ rubocop_performance_version=`cat Gemfile.lock | grep ' rubocop-performance' | awk -F'[\(*\)]' '{print $2;exit}'`
10
+
11
+ gem install rubocop --version $rubocop_version
12
+ gem install rubocop-performance --version $rubocop_performance_version
13
+
14
+ echo "Running Rubocop ..."
15
+ /usr/local/bundle/bin/rubocop --require rubocop-performance
@@ -0,0 +1,41 @@
1
+ #!/bin/bash -elx
2
+
3
+ set -o pipefail
4
+
5
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
6
+ PROJECT_ROOT="$( dirname "$( dirname $DIR )" )"
7
+
8
+ pushd "$PROJECT_ROOT"
9
+ DISABLE_BINARY=""
10
+ if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" ]]; then
11
+ DISABLE_BINARY="--disable-binary"
12
+ fi
13
+
14
+ # This is needed for 2.7 but also works for 2.6. For 2.6, you can also downgrade the openssl version to 1.1.1l-1ubuntu1.4 in the dockerfile with allowing downgrades for apt install -y libssl-dev=1.1.1l-1ubuntu1.4
15
+ if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" || $RUBY_VERSION_UNDER_TEST == "2.7.8" ]]; then
16
+ OPEN_SSL_FLAG="--with-openssl-dir=/usr/share/rvm/usr/"
17
+ rvm pkg install openssl
18
+ fi
19
+
20
+ rvm install --default $RUBY_VERSION_UNDER_TEST $DISABLE_BINARY $OPEN_SSL_FLAG
21
+ ruby --version
22
+
23
+ export GOPATH=$HOME/go
24
+ if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" || $RUBY_VERSION_UNDER_TEST == "2.7.8" ]]; then
25
+ export RUBYOPT='-E utf-8 -W0'
26
+ gem install "rubygems-update:<3.5.0" --no-document
27
+ gem update --system --conservative
28
+ else
29
+ export RUBYOPT='-E utf-8'
30
+ gem update --system
31
+ fi
32
+
33
+ gem install bundler
34
+ bundle install
35
+ bundle pristine
36
+
37
+ rake install
38
+ rake spec
39
+
40
+ rake features
41
+ popd
@@ -0,0 +1,81 @@
1
+ Set-PSDebug -strict # "set -u"
2
+ $ErrorActionPreference = "Stop" # "set -e" for cmdlet errors
3
+
4
+ # avoid overly narrow default linewrap
5
+ $term = (get-host).ui.rawui
6
+ $size = $term.buffersize
7
+ $size.width = 128
8
+ $term.buffersize = $size
9
+ $size = $term.windowsize
10
+ $size.width = 128
11
+ $term.windowsize = $size
12
+
13
+ function stream-cmd {
14
+ param ($command, $arguments)
15
+ $cmdline = "$($command) $($arguments)"
16
+ cmd /c $cmdline
17
+ if (-not ($?)) {
18
+ throw "$($cmdline) failed"
19
+ }
20
+ }
21
+
22
+ function prepend-path {
23
+ param ($dir)
24
+ $env:PATH = $dir + ";" + $env:PATH
25
+ }
26
+
27
+ function prepare-vm {
28
+ iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
29
+ choco install -y git ruby nodejs golang python2 erlang gradle maven
30
+
31
+ $env:JAVA_HOME = 'C:\Program Files\Java\jdk1.8.0_144'
32
+ prepend-path 'C:\Program Files\Java\jdk1.8.0_144\bin'
33
+ prepend-path 'C:\tools\go\bin'
34
+ prepend-path 'C:\Program Files\Git\bin'
35
+ prepend-path 'C:\Program Files\erl9.0\bin'
36
+ stream-cmd "rmdir" "/s /q C:\rebar"
37
+ stream-cmd "git" "clone https://github.com/rebar/rebar C:\rebar"
38
+ stream-cmd "cd c:\rebar & .\bootstrap.bat" ""
39
+ stream-cmd "cp" "c:\rebar\rebar c:\tools"
40
+ stream-cmd "cp" "c:\rebar\rebar.cmd c:\tools"
41
+ prepend-path 'C:\tools'
42
+ mkdir -Force 'C:\Go'
43
+ mkdir -Force 'C:\Windows\system32\config\systemprofile\AppData\Local\Temp'
44
+ $env:GOPATH = 'C:\Go'
45
+ prepend-path 'C:\Go\bin'
46
+ stream-cmd "go" "get -d github.com/tools/godep"
47
+ prepend-path 'C:\Python27\Scripts'
48
+ prepend-path 'C:\Program Files\nodejs'
49
+ stream-cmd "npm" "install bower -g"
50
+ cp 'C:\Windows\System32\config\systemprofile\AppData\Roaming\npm\bower.cmd' 'C:\Program Files\nodejs'
51
+ cp -r 'C:\Windows\System32\config\systemprofile\AppData\Roaming\npm\node_modules\bower\*' 'C:\Program Files\nodejs\node_modules\bower' -Force
52
+ prepend-path 'C:\Ruby23\bin'
53
+ prepend-path 'C:\ProgramData\chocolatey\lib\gradle\tools\gradle-3.4.1\bin'
54
+ prepend-path 'C:\ProgramData\chocolatey\lib\maven\apache-maven-3.5.0\bin'
55
+ }
56
+
57
+ function set-env-vars {
58
+ prepend-path 'C:\Program Files\Java\jdk1.8.0_144\bin'
59
+ prepend-path 'C:\tools\go\bin'
60
+ prepend-path 'C:\Program Files\Git\bin'
61
+ prepend-path 'C:\Program Files\erl9.0\bin'
62
+ prepend-path 'C:\tools'
63
+ prepend-path 'C:\Go\bin'
64
+ prepend-path 'C:\Python27\Scripts'
65
+ prepend-path 'C:\Program Files\nodejs'
66
+ prepend-path 'C:\Ruby23\bin'
67
+ }
68
+
69
+ function run-tests {
70
+ set-env-vars
71
+ push-location LicenseFinder
72
+ stream-cmd "gem" "install bundler"
73
+ stream-cmd "bundle" "install"
74
+ stream-cmd "bundle" "exec rake install"
75
+ stream-cmd "bundle" "exec rake spec"
76
+ stream-cmd "bundle" "exec rake features"
77
+ pop-location
78
+ }
79
+
80
+ prepare-vm
81
+ run-tests
@@ -0,0 +1,84 @@
1
+ #!/bin/bash --login
2
+
3
+ set -e
4
+
5
+ git clone lf-git lf-git-changed
6
+
7
+ CHANGELOG_FILE="CHANGELOG.md"
8
+ VERSION_FILE="VERSION"
9
+
10
+ COMMIT_URL="https://github.com/pivotal/LicenseFinder/commit/"
11
+
12
+ TAGS=( "Added" "ADDED" "Fixed" "FIXED" "Changed" "CHANGED" "Deprecated" "DEPRECATED" "Removed" "REMOVED" "Security" "SECURITY" )
13
+ CONTRIBUTORS=( "Shane Lattanzio" "Li Tai" "Vikram Yadav" "Mark Fiorvanti" "Serafima Ostrovskaya" "Yoon Jean Kim" "Tony Wong" "Parv Mital" )
14
+
15
+ OLD="v$(cat ./lf-release/version)"
16
+ VERSION="$(cat semver-version/version)"
17
+ VERSION_TAG="v$VERSION"
18
+
19
+ # Add version title information
20
+ LOG=$(echo "# [$VERSION] / $(date +%Y-%m-%d)\n")
21
+
22
+ cd lf-git-changed
23
+
24
+ for ((i = 0; i < ${#TAGS[@]}; i++)); do
25
+ if [[ $i -gt 0 ]]; then
26
+ TAG_COMPARE=$(echo "${TAGS[$i]}" | grep -qi "${TAGS[$i - 1]}" && echo same || echo different)
27
+ HEADER_EXISTS=$(echo "$LOG" | grep -qi "${TAGS[$i - 1]}" && echo exists || echo dne)
28
+ fi
29
+
30
+ GIT_LOG=$'\n'$(git log "$OLD"...HEAD --pretty=format:"%H%n%s - [%h]($COMMIT_URL%H) - %an%n%n"| grep -E "\[${TAGS[$i]}\] .*" | sort | sed -e "s/\[${TAGS[$i]}\]/\*/g")
31
+
32
+ # Only add section information if it has content
33
+ if [[ $i -ne $[${#TAGS[@]}-1] && $GIT_LOG =~ "." && $i -gt 0 && "$TAG_COMPARE" == "same" && "$HEADER_EXISTS" == "exists" ]]; then
34
+ LOG="$LOG""$GIT_LOG\n"
35
+ elif [[ $GIT_LOG =~ "." ]]; then
36
+ if [[ $i -gt 0 && "$TAG_COMPARE" == "same" && "$HEADER_EXISTS" == "dne" ]]; then
37
+ LOG="$LOG"$'\n'$(echo "### ${TAGS[$i - 1]}")"$GIT_LOG\n"
38
+ else
39
+ LOG="$LOG"$'\n'$(echo "### ${TAGS[$i]}")"$GIT_LOG\n"
40
+ fi
41
+ fi
42
+ done
43
+
44
+ # Strip Pivotal contributors
45
+ for ((i = 0; i < ${#CONTRIBUTORS[@]}; i++)); do
46
+ LOG=$(echo "$LOG" | sed -e "s/-* ${CONTRIBUTORS[$i]}//g")
47
+ done
48
+
49
+ # Prepend new version information at the top of the file
50
+ echo -e "$LOG\n$(cat $CHANGELOG_FILE)" > $CHANGELOG_FILE
51
+
52
+ # Append version hyperlink to the end of the file
53
+ echo -e "[$VERSION]: https://github.com/pivotal/LicenseFinder/compare/$OLD...$VERSION_TAG" >> $CHANGELOG_FILE
54
+
55
+ # Update version file in git
56
+ echo $VERSION > $VERSION_FILE
57
+
58
+ git config --global user.email $GIT_EMAIL
59
+ git config --global user.name $GIT_USERNAME
60
+
61
+ git add $CHANGELOG_FILE
62
+ git add $VERSION_FILE
63
+
64
+ git commit -m "Update changelog for version: $VERSION"
65
+
66
+ echo "New version: $VERSION"
67
+ echo "Current version: $OLD"
68
+
69
+ if [ "$VERSION" == "$OLD" ]; then
70
+ echo "Error: Version in VERSION file is identical to latest release on github"
71
+ exit 1
72
+ fi
73
+
74
+ body=$(cat "$CHANGELOG_FILE" | sed -n "/# \[$VERSION\]/,/# \[[\d\.]*/p" | sed '$d' | tail -n +2)
75
+
76
+ echo "$VERSION_TAG" > ../version/tag.txt
77
+ echo "$VERSION" > ../version/version.txt
78
+ echo "$body" > ../version/changelog.txt
79
+
80
+ echo "Tag: $VERSION_TAG"
81
+ echo "Version: $VERSION"
82
+ echo "Body: $body"
83
+
84
+ exit 0
@@ -0,0 +1,10 @@
1
+ ---
2
+ platform: linux
3
+ inputs:
4
+ - name: lf-git
5
+ - name: semver-version
6
+ run:
7
+ path: bash
8
+ args:
9
+ - "-lc"
10
+ - lf-git/ci/scripts/pushscript.sh
@@ -0,0 +1,6 @@
1
+ platform: windows
2
+ inputs:
3
+ - name: LicenseFinder
4
+ run:
5
+ path: powershell
6
+ args: ["-File", "LicenseFinder/ci/scripts/test.ps1"]
@@ -0,0 +1,16 @@
1
+ platform: linux
2
+
3
+ image_resource:
4
+ type: docker-image
5
+ source:
6
+ repository: concourse/docker-image-resource
7
+ tag: latest
8
+
9
+ inputs:
10
+ - name: LicenseFinder
11
+
12
+ run:
13
+ path: ./LicenseFinder/ci/scripts/containerize-tests.sh
14
+
15
+ params:
16
+ RUBY_VERSION_UNDER_TEST: