gitlab-license_finder 6.14.2.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 (180) hide show
  1. checksums.yaml +7 -0
  2. data/.force-build +0 -0
  3. data/.gitignore +13 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +70 -0
  6. data/CHANGELOG.md +981 -0
  7. data/CONTRIBUTING.md +121 -0
  8. data/Dockerfile +249 -0
  9. data/Gemfile +2 -0
  10. data/LICENSE +22 -0
  11. data/README.md +555 -0
  12. data/Rakefile +77 -0
  13. data/TODO.md +12 -0
  14. data/VERSION +1 -0
  15. data/appveyor.yml +21 -0
  16. data/bin/license_finder +6 -0
  17. data/bin/license_finder_pip.py +43 -0
  18. data/ci/pipelines/pull-request.yml.erb +141 -0
  19. data/ci/pipelines/release.yml.erb +200 -0
  20. data/ci/scripts/containerize-tests.sh +14 -0
  21. data/ci/scripts/pushscript.sh +32 -0
  22. data/ci/scripts/run-rubocop.sh +15 -0
  23. data/ci/scripts/run-tests.sh +24 -0
  24. data/ci/scripts/test.ps1 +81 -0
  25. data/ci/scripts/updateChangelog.sh +84 -0
  26. data/ci/tasks/build-and-push-gem.yml +10 -0
  27. data/ci/tasks/build-windows.yml +6 -0
  28. data/ci/tasks/build.yml +16 -0
  29. data/ci/tasks/rubocop.yml +15 -0
  30. data/ci/tasks/run-tests.yml +10 -0
  31. data/ci/tasks/update-changelog.yml +18 -0
  32. data/dlf +12 -0
  33. data/examples/Gemfile +4 -0
  34. data/examples/custom_erb_template.rb +24 -0
  35. data/examples/extract_license_data.rb +63 -0
  36. data/examples/sample_template.erb +7 -0
  37. data/lib/license_finder/cli/approvals.rb +28 -0
  38. data/lib/license_finder/cli/base.rb +107 -0
  39. data/lib/license_finder/cli/dependencies.rb +44 -0
  40. data/lib/license_finder/cli/ignored_dependencies.rb +32 -0
  41. data/lib/license_finder/cli/ignored_groups.rb +32 -0
  42. data/lib/license_finder/cli/inherited_decisions.rb +50 -0
  43. data/lib/license_finder/cli/licenses.rb +26 -0
  44. data/lib/license_finder/cli/main.rb +221 -0
  45. data/lib/license_finder/cli/makes_decisions.rb +38 -0
  46. data/lib/license_finder/cli/patched_thor.rb +33 -0
  47. data/lib/license_finder/cli/permitted_licenses.rb +32 -0
  48. data/lib/license_finder/cli/project_name.rb +32 -0
  49. data/lib/license_finder/cli/restricted_licenses.rb +32 -0
  50. data/lib/license_finder/cli.rb +20 -0
  51. data/lib/license_finder/configuration.rb +186 -0
  52. data/lib/license_finder/core.rb +118 -0
  53. data/lib/license_finder/decision_applier.rb +70 -0
  54. data/lib/license_finder/decisions.rb +312 -0
  55. data/lib/license_finder/decisions_factory.rb +13 -0
  56. data/lib/license_finder/diff.rb +51 -0
  57. data/lib/license_finder/license/any_matcher.rb +15 -0
  58. data/lib/license_finder/license/definitions.rb +366 -0
  59. data/lib/license_finder/license/header_matcher.rb +17 -0
  60. data/lib/license_finder/license/matcher.rb +24 -0
  61. data/lib/license_finder/license/none_matcher.rb +11 -0
  62. data/lib/license_finder/license/template.rb +19 -0
  63. data/lib/license_finder/license/templates/0BSD.txt +10 -0
  64. data/lib/license_finder/license/templates/Apache1_1.txt +16 -0
  65. data/lib/license_finder/license/templates/Apache2.txt +172 -0
  66. data/lib/license_finder/license/templates/BSD.txt +24 -0
  67. data/lib/license_finder/license/templates/CC01.txt +30 -0
  68. data/lib/license_finder/license/templates/CDDL1.txt +131 -0
  69. data/lib/license_finder/license/templates/EPL1.txt +86 -0
  70. data/lib/license_finder/license/templates/GPLv2.txt +339 -0
  71. data/lib/license_finder/license/templates/GPLv3.txt +674 -0
  72. data/lib/license_finder/license/templates/ISC.txt +2 -0
  73. data/lib/license_finder/license/templates/LGPL.txt +165 -0
  74. data/lib/license_finder/license/templates/LGPL2_1.txt +169 -0
  75. data/lib/license_finder/license/templates/MIT.txt +9 -0
  76. data/lib/license_finder/license/templates/MPL1_1.txt +469 -0
  77. data/lib/license_finder/license/templates/MPL2.txt +373 -0
  78. data/lib/license_finder/license/templates/NewBSD.txt +21 -0
  79. data/lib/license_finder/license/templates/OFL.txt +91 -0
  80. data/lib/license_finder/license/templates/Python.txt +47 -0
  81. data/lib/license_finder/license/templates/Ruby.txt +52 -0
  82. data/lib/license_finder/license/templates/SimplifiedBSD.txt +19 -0
  83. data/lib/license_finder/license/templates/WTFPL.txt +14 -0
  84. data/lib/license_finder/license/templates/Zlib.txt +17 -0
  85. data/lib/license_finder/license/text.rb +45 -0
  86. data/lib/license_finder/license.rb +117 -0
  87. data/lib/license_finder/license_aggregator.rb +59 -0
  88. data/lib/license_finder/logger.rb +69 -0
  89. data/lib/license_finder/package.rb +202 -0
  90. data/lib/license_finder/package_delta.rb +61 -0
  91. data/lib/license_finder/package_manager.rb +181 -0
  92. data/lib/license_finder/package_managers/bower.rb +37 -0
  93. data/lib/license_finder/package_managers/bundler.rb +110 -0
  94. data/lib/license_finder/package_managers/cargo.rb +38 -0
  95. data/lib/license_finder/package_managers/carthage.rb +68 -0
  96. data/lib/license_finder/package_managers/cocoa_pods.rb +61 -0
  97. data/lib/license_finder/package_managers/composer.rb +63 -0
  98. data/lib/license_finder/package_managers/conan.rb +28 -0
  99. data/lib/license_finder/package_managers/conda.rb +131 -0
  100. data/lib/license_finder/package_managers/dep.rb +43 -0
  101. data/lib/license_finder/package_managers/dotnet.rb +83 -0
  102. data/lib/license_finder/package_managers/erlangmk.rb +50 -0
  103. data/lib/license_finder/package_managers/glide.rb +36 -0
  104. data/lib/license_finder/package_managers/go_15vendorexperiment.rb +87 -0
  105. data/lib/license_finder/package_managers/go_dep.rb +80 -0
  106. data/lib/license_finder/package_managers/go_modules.rb +93 -0
  107. data/lib/license_finder/package_managers/go_workspace.rb +116 -0
  108. data/lib/license_finder/package_managers/govendor.rb +73 -0
  109. data/lib/license_finder/package_managers/gradle.rb +99 -0
  110. data/lib/license_finder/package_managers/gvt.rb +69 -0
  111. data/lib/license_finder/package_managers/maven.rb +65 -0
  112. data/lib/license_finder/package_managers/mix.rb +131 -0
  113. data/lib/license_finder/package_managers/npm.rb +57 -0
  114. data/lib/license_finder/package_managers/nuget.rb +154 -0
  115. data/lib/license_finder/package_managers/pip.rb +70 -0
  116. data/lib/license_finder/package_managers/pipenv.rb +63 -0
  117. data/lib/license_finder/package_managers/rebar.rb +65 -0
  118. data/lib/license_finder/package_managers/sbt.rb +50 -0
  119. data/lib/license_finder/package_managers/spm.rb +93 -0
  120. data/lib/license_finder/package_managers/trash.rb +43 -0
  121. data/lib/license_finder/package_managers/yarn.rb +107 -0
  122. data/lib/license_finder/package_utils/activation.rb +40 -0
  123. data/lib/license_finder/package_utils/conan_info_parser.rb +77 -0
  124. data/lib/license_finder/package_utils/gradle_dependency_finder.rb +15 -0
  125. data/lib/license_finder/package_utils/license_files.rb +41 -0
  126. data/lib/license_finder/package_utils/licensing.rb +39 -0
  127. data/lib/license_finder/package_utils/maven_dependency_finder.rb +15 -0
  128. data/lib/license_finder/package_utils/notice_files.rb +40 -0
  129. data/lib/license_finder/package_utils/possible_license_file.rb +27 -0
  130. data/lib/license_finder/package_utils/pypi.rb +41 -0
  131. data/lib/license_finder/package_utils/sbt_dependency_finder.rb +15 -0
  132. data/lib/license_finder/packages/bower_package.rb +42 -0
  133. data/lib/license_finder/packages/bundler_package.rb +33 -0
  134. data/lib/license_finder/packages/cargo_package.rb +28 -0
  135. data/lib/license_finder/packages/carthage_package.rb +18 -0
  136. data/lib/license_finder/packages/cocoa_pods_package.rb +22 -0
  137. data/lib/license_finder/packages/composer_package.rb +13 -0
  138. data/lib/license_finder/packages/conan_package.rb +23 -0
  139. data/lib/license_finder/packages/conda_package.rb +74 -0
  140. data/lib/license_finder/packages/erlangmk_package.rb +114 -0
  141. data/lib/license_finder/packages/go_package.rb +32 -0
  142. data/lib/license_finder/packages/gradle_package.rb +30 -0
  143. data/lib/license_finder/packages/manual_package.rb +27 -0
  144. data/lib/license_finder/packages/maven_package.rb +27 -0
  145. data/lib/license_finder/packages/merged_package.rb +44 -0
  146. data/lib/license_finder/packages/mix_package.rb +13 -0
  147. data/lib/license_finder/packages/npm_package.rb +171 -0
  148. data/lib/license_finder/packages/nuget_package.rb +13 -0
  149. data/lib/license_finder/packages/pip_package.rb +50 -0
  150. data/lib/license_finder/packages/rebar_package.rb +13 -0
  151. data/lib/license_finder/packages/sbt_package.rb +22 -0
  152. data/lib/license_finder/packages/spm_package.rb +18 -0
  153. data/lib/license_finder/packages/yarn_package.rb +13 -0
  154. data/lib/license_finder/platform.rb +15 -0
  155. data/lib/license_finder/project_finder.rb +62 -0
  156. data/lib/license_finder/report.rb +33 -0
  157. data/lib/license_finder/reports/csv_report.rb +99 -0
  158. data/lib/license_finder/reports/diff_report.rb +29 -0
  159. data/lib/license_finder/reports/erb_report.rb +58 -0
  160. data/lib/license_finder/reports/html_report.rb +13 -0
  161. data/lib/license_finder/reports/json_report.rb +30 -0
  162. data/lib/license_finder/reports/junit_report.rb +19 -0
  163. data/lib/license_finder/reports/markdown_report.rb +9 -0
  164. data/lib/license_finder/reports/merged_report.rb +16 -0
  165. data/lib/license_finder/reports/templates/bootstrap.css +9 -0
  166. data/lib/license_finder/reports/templates/html_report.erb +113 -0
  167. data/lib/license_finder/reports/templates/junit_report.erb +41 -0
  168. data/lib/license_finder/reports/templates/markdown_report.erb +49 -0
  169. data/lib/license_finder/reports/templates/xml_report.erb +19 -0
  170. data/lib/license_finder/reports/text_report.rb +12 -0
  171. data/lib/license_finder/reports/xml_report.rb +19 -0
  172. data/lib/license_finder/scanner.rb +83 -0
  173. data/lib/license_finder/shared_helpers/cmd.rb +13 -0
  174. data/lib/license_finder/shared_helpers/common_path.rb +29 -0
  175. data/lib/license_finder/version.rb +6 -0
  176. data/lib/license_finder.rb +14 -0
  177. data/license_finder.gemspec +72 -0
  178. data/release/instructions.md +8 -0
  179. data/swift-all-keys.asc +240 -0
  180. metadata +544 -0
@@ -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,141 @@
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: ((LicenseFinderDocker.username))
17
+ password: ((LicenseFinderDocker.password))
18
+ <% end %>
19
+
20
+ resources:
21
+ - name: github-pull-request
22
+ type: pull-request
23
+ check_every: 24h
24
+ webhook_token: ((GithubPullRequestWebhookToken))
25
+ source:
26
+ repository: pivotal/LicenseFinder
27
+ access_token: ((GithubApiPullRequestToken))
28
+
29
+ - name: dockerhub-pr
30
+ type: docker-image
31
+ source:
32
+ tag: edge-pr
33
+ repository: licensefinder/license_finder
34
+ email: ((LicenseFinderDockerEmail))
35
+ username: ((LicenseFinderDocker.username))
36
+ password: ((LicenseFinderDocker.password))
37
+
38
+ <% if setup_slack %>
39
+ - name: slack-alert
40
+ type: slack-notification
41
+ source:
42
+ url: <%= slack_url %>
43
+ <% end %>
44
+
45
+ jobs:
46
+ - name: build-docker-image
47
+ public: true
48
+ plan:
49
+ - get: github-pull-request
50
+ tags: ["private-worker"]
51
+ version: every
52
+ trigger: true
53
+ - put: dockerhub-pr
54
+ tags: ["private-worker"]
55
+ params:
56
+ build: github-pull-request
57
+ on_success:
58
+ put: github-pull-request
59
+ tags: ["private-worker"]
60
+ params:
61
+ path: github-pull-request
62
+ status: success
63
+ context: build-docker-image
64
+ on_failure:
65
+ put: github-pull-request
66
+ tags: ["private-worker"]
67
+ params:
68
+ path: github-pull-request
69
+ status: failure
70
+ context: build-docker-image
71
+ <% ruby_versions.each do |ruby_version| %>
72
+ - name: PR-ruby-<%= ruby_version %>-linux
73
+ public: true
74
+ plan:
75
+ - get: github-pull-request
76
+ tags: ["private-worker"]
77
+ passed: [build-docker-image]
78
+ version: every
79
+ - get: dockerhub-pr
80
+ tags: ["private-worker"]
81
+ passed: [build-docker-image]
82
+ trigger: true
83
+ - task: ruby-<%= ruby_version %>
84
+ tags: ["private-worker"]
85
+ privileged: true
86
+ image: dockerhub-pr
87
+ file: github-pull-request/ci/tasks/run-tests.yml
88
+ params:
89
+ RUBY_VERSION_UNDER_TEST: <%= ruby_version %>
90
+ input_mapping: { LicenseFinder: github-pull-request }
91
+ on_success:
92
+ put: github-pull-request
93
+ tags: ["private-worker"]
94
+ params:
95
+ path: github-pull-request
96
+ status: success
97
+ context: ruby-<%= ruby_version %>
98
+ on_failure:
99
+ put: github-pull-request
100
+ tags: ["private-worker"]
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
+ tags: ["private-worker"]
109
+ params:
110
+ channel: '<%= slack_channel %>'
111
+ icon_emoji: ':crying_cat_face:'
112
+ text: '<%= "License Finder build failed. Build: https://norsk.cf-app.com/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME" %>'
113
+ <% end %>
114
+ <% end %>
115
+
116
+ - name: PR-rubocop
117
+ public: true
118
+ plan:
119
+ - get: github-pull-request
120
+ tags: ["private-worker"]
121
+ trigger: true
122
+ version: every
123
+ - task: run-rubocop
124
+ tags: ["private-worker"]
125
+ privileged: true
126
+ file: github-pull-request/ci/tasks/rubocop.yml
127
+ input_mapping: { LicenseFinder: github-pull-request }
128
+ on_success:
129
+ put: github-pull-request
130
+ tags: ["private-worker"]
131
+ params:
132
+ path: github-pull-request
133
+ status: success
134
+ context: run-rubocop
135
+ on_failure:
136
+ put: github-pull-request
137
+ tags: ["private-worker"]
138
+ params:
139
+ path: github-pull-request
140
+ status: failure
141
+ context: run-rubocop
@@ -0,0 +1,200 @@
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: ((LicenseFinderDocker.username))
12
+ password: ((LicenseFinderDocker.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: ((CfOslBot.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: ((GCPQueuedReportsBucketCredentials))
31
+
32
+ - name: dockerhub-edge
33
+ type: docker-image
34
+ source:
35
+ tag: edge
36
+ repository: licensefinder/license_finder
37
+ email: ((LicenseFinderDockerEmail))
38
+ username: ((LicenseFinderDocker.username))
39
+ password: ((LicenseFinderDocker.password))
40
+
41
+ - name: dockerhub
42
+ type: docker-image
43
+ source:
44
+ repository: licensefinder/license_finder
45
+ email: ((LicenseFinderDockerEmail))
46
+ username: ((LicenseFinderDocker.username))
47
+ password: ((LicenseFinderDocker.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: ((GithubApiRootToken))
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
+ tags: ["private-worker"]
70
+ trigger: true
71
+ - put: dockerhub-edge
72
+ tags: ["private-worker"]
73
+ params:
74
+ build: lf-git
75
+
76
+ <% ruby_versions.each do |ruby_version| %>
77
+ - name: ruby-<%= ruby_version %>
78
+ public: true
79
+ plan:
80
+ - get: dockerhub-edge
81
+ tags: ["private-worker"]
82
+ passed: [build-docker-image]
83
+ trigger: true
84
+ - get: LicenseFinder
85
+ tags: ["private-worker"]
86
+ resource: lf-git
87
+ passed: [build-docker-image]
88
+ version: every
89
+ - task: ruby-<%= ruby_version %>
90
+ tags: ["private-worker"]
91
+ privileged: true
92
+ image: dockerhub-edge
93
+ file: LicenseFinder/ci/tasks/run-tests.yml
94
+ params:
95
+ RUBY_VERSION_UNDER_TEST: <%= ruby_version %>
96
+
97
+ <% if setup_slack %>
98
+ on_failure:
99
+ put: slack-alert
100
+ tags: ["private-worker"]
101
+ params:
102
+ channel: '<%= slack_channel %>'
103
+ icon_emoji: ':crying_cat_face:'
104
+ text: '<%= "License Finder build failed. Build: https://norsk.cf-app.com/teams/main/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME" %>'
105
+ <% end %>
106
+ <% end %>
107
+
108
+ - name: rubocop
109
+ public: true
110
+ plan:
111
+ - get: dockerhub-edge
112
+ tags: ["private-worker"]
113
+ passed: [build-docker-image]
114
+ trigger: true
115
+ - get: LicenseFinder
116
+ tags: ["private-worker"]
117
+ resource: lf-git
118
+ version: every
119
+ passed: [build-docker-image]
120
+ - task: run-rubocop
121
+ tags: ["private-worker"]
122
+ privileged: true
123
+ file: LicenseFinder/ci/tasks/rubocop.yml
124
+ input_mapping: { LicenseFinder: LicenseFinder }
125
+
126
+ - name: bump-major
127
+ plan:
128
+ - get: semver-version
129
+ tags: ["private-worker"]
130
+ params: {bump: major}
131
+ - put: semver-version
132
+ tags: ["private-worker"]
133
+ params: {file: semver-version/version}
134
+
135
+
136
+ - name: bump-minor
137
+ plan:
138
+ - get: semver-version
139
+ tags: ["private-worker"]
140
+ params: {bump: minor}
141
+ - put: semver-version
142
+ tags: ["private-worker"]
143
+ params: {file: semver-version/version}
144
+
145
+ - name: bump-patch
146
+ plan:
147
+ - get: semver-version
148
+ tags: ["private-worker"]
149
+ params: {bump: patch}
150
+ - put: semver-version
151
+ tags: ["private-worker"]
152
+ params: {file: semver-version/version}
153
+
154
+ - name: release
155
+ disable_manual_trigger: true
156
+ plan:
157
+ - get: lf-git
158
+ tags: ["private-worker"]
159
+ passed: [<%= "#{ruby_versions.map{ |version| "ruby-#{version}" unless version == "jruby-9.2.14.0" }.compact.join(', ') }, rubocop" %>]
160
+ - get: semver-version
161
+ tags: ["private-worker"]
162
+ trigger: true
163
+ - get: dockerhub
164
+ tags: ["private-worker"]
165
+ params:
166
+ save: true
167
+ - get: lf-release
168
+ tags: ["private-worker"]
169
+ - task: update-changelog
170
+ tags: ["private-worker"]
171
+ image: dockerhub
172
+ params:
173
+ GIT_USERNAME: ((GithubApiUser))
174
+ GIT_EMAIL: ((GithubApiEmail))
175
+ file: lf-git/ci/tasks/update-changelog.yml
176
+ - put: dockerhub
177
+ tags: ["private-worker"]
178
+ params:
179
+ build: lf-git-changed
180
+ tag: version/version.txt
181
+ tag_as_latest: true
182
+ - put: lf-git
183
+ tags: ["private-worker"]
184
+ params:
185
+ repository: lf-git-changed
186
+ - task: build-and-push-gem
187
+ tags: ["private-worker"]
188
+ image: dockerhub
189
+ params:
190
+ GIT_USERNAME: ((GithubApiUser))
191
+ GIT_EMAIL: ((GithubApiEmail))
192
+ GIT_PRIVATE_KEY: ((CfOslBot.private_key))
193
+ GEM_API_KEY: ((LicenseFinderGemApiKey))
194
+ file: lf-git/ci/tasks/build-and-push-gem.yml
195
+ - put: lf-release
196
+ tags: ["private-worker"]
197
+ params:
198
+ name: version/tag.txt
199
+ tag: version/tag.txt
200
+ 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,32 @@
1
+ #!/bin/bash
2
+
3
+ echo -e "---\n:rubygems_api_key: $GEM_API_KEY" > ~/.gem/credentials
4
+ chmod 0600 ~/.gem/credentials
5
+
6
+ build_version="$(cat semver-version/version)"
7
+ cd lf-git
8
+ built_gem="pkg/license_finder-$build_version.gem"
9
+
10
+ git config --global user.email $GIT_EMAIL
11
+ git config --global user.name $GIT_USERNAME
12
+
13
+ git config --global push.default simple
14
+
15
+ git checkout master
16
+
17
+ mkdir ~/.ssh
18
+ ssh-keyscan github.com >> ~/.ssh/known_hosts
19
+ eval "$(ssh-agent -s)"
20
+ echo "$GIT_PRIVATE_KEY" > ~/.ssh/id_rsa
21
+ chmod 600 ~/.ssh/id_rsa
22
+ ssh-add -k ~/.ssh/id_rsa
23
+
24
+ if [ -z "$(gem fetch license_finder -v $build_version 2>&1 | grep ERROR)" ]; then
25
+ echo "LicenseFinder-$build_version already exists on Rubygems"
26
+ else
27
+ rake release
28
+ fi
29
+
30
+ export EXIT_STATUS=$?
31
+ kill $(ps aux | grep ssh-agent | head -n 1 | awk '{print $2}')
32
+ 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,24 @@
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
+
10
+ rvm install --default $RUBY_VERSION_UNDER_TEST
11
+ ruby --version
12
+
13
+ export GOPATH=$HOME/go
14
+ export RUBYOPT='-E utf-8'
15
+
16
+ gem update --system
17
+ gem install bundler
18
+ bundle install
19
+
20
+ bundle exec rake install
21
+ bundle exec rake spec
22
+
23
+ bundle exec rake features
24
+ 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:
@@ -0,0 +1,15 @@
1
+ platform: linux
2
+
3
+ image_resource:
4
+ type: registry-image
5
+ source:
6
+ repository: ruby
7
+ tag: 2.7.1
8
+ username: ((LicenseFinderDocker.username))
9
+ password: ((LicenseFinderDocker.password))
10
+
11
+ inputs:
12
+ - name: LicenseFinder
13
+
14
+ run:
15
+ path: ./LicenseFinder/ci/scripts/run-rubocop.sh