summaryrefslogtreecommitdiff
path: root/lib/license/management/nuspec.rb
diff options
context:
space:
mode:
authorCan Eldem <celdem@gitlab.com>2020-07-15 09:24:27 +0000
committerCan Eldem <celdem@gitlab.com>2020-07-15 09:24:27 +0000
commitf04805cf7b490b9ef9492e4ddc115ab7c2845ab6 (patch)
tree290e40b1b3f3c24579ed780e83ce55293e4b1de7 /lib/license/management/nuspec.rb
parentd8b18764499ed0378d5f5caf0d68460c39510cfe (diff)
parent4b9540b7724f89b2c3d2850193721abd415421f6 (diff)
Merge branch '217905-net-integration-test' into 'master'v3.18.0
Resolve nuget dependencies from a custom registry. See merge request gitlab-org/security-products/license-management!189
Diffstat (limited to 'lib/license/management/nuspec.rb')
-rw-r--r--lib/license/management/nuspec.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/license/management/nuspec.rb b/lib/license/management/nuspec.rb
new file mode 100644
index 0000000..cd785b4
--- /dev/null
+++ b/lib/license/management/nuspec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module License
+ module Management
+ class Nuspec
+ attr_reader :xml
+
+ def initialize(xml)
+ @xml = REXML::Document.new(xml)
+ end
+
+ def licenses
+ licenses = REXML::XPath.match(xml, "//package/metadata/license[@type='expression']").map(&:get_text).map(&:to_s)
+ return licenses if licenses.any?
+
+ REXML::XPath.match(xml, '//package/metadata/licenseUrl').map(&:get_text).map(&:to_s)
+ end
+ end
+ end
+end