forked from dependabot/dependabot-script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcustom_nuget_update_checker.rb
79 lines (67 loc) · 2.73 KB
/
custom_nuget_update_checker.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# frozen_string_literal: true
require "dependabot/nuget/update_checker"
require "dependabot/nuget/update_checker/property_updater"
require "dependabot/nuget/update_checker/version_finder"
require "dependabot/nuget/version"
module Dependabot
module Nuget
class CustomUpdateChecker < Dependabot::Nuget::UpdateChecker
sig { returns(CustomVersionFinder) }
def version_finder
@version_finder ||=
CustomVersionFinder.new(
dependency: dependency,
dependency_files: dependency_files,
credentials: credentials,
ignored_versions: ignored_versions,
raise_on_ignored: @raise_on_ignored,
security_advisories: security_advisories,
repo_contents_path: @repo_contents_path,
package_max_versions: options[:package_max_versions]
)
end
def property_updater
@property_updater ||=
CustomPropertyUpdater.new(
dependency: dependency,
dependency_files: dependency_files,
target_version_details: latest_version_details,
credentials: credentials,
ignored_versions: ignored_versions,
raise_on_ignored: @raise_on_ignored,
repo_contents_path: @repo_contents_path
)
end
class CustomVersionFinder < Dependabot::Nuget::UpdateChecker::VersionFinder
attr_reader :package_max_versions
def initialize(dependency:, dependency_files:, credentials:,
ignored_versions:, raise_on_ignored: false,
security_advisories:,
repo_contents_path:,
package_max_versions:)
@package_max_versions = package_max_versions
super(
dependency: dependency, dependency_files: dependency_files, credentials: credentials,
ignored_versions: ignored_versions, raise_on_ignored: raise_on_ignored,
security_advisories: security_advisories,
repo_contents_path: repo_contents_path
)
end
def v3_nuget_listings
return @filtered_v3_nuget_listings unless @filtered_v3_nuget_listings.nil?
max_version = package_max_versions[@dependency.name.downcase]
@filtered_v3_nuget_listings ||=
super.map{ |package|
if max_version != nil
package["versions"] = package["versions"].select{ |version| Version.new(version) < max_version }.to_set
end
package
}
end
end
class CustomPropertyUpdater < Dependabot::Nuget::UpdateChecker::PropertyUpdater
end
end
end
end
Dependabot::UpdateCheckers.register("nuget", Dependabot::Nuget::CustomUpdateChecker)