dependabot-go_modules 0.87.0
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 +7 -0
- data/helpers/Makefile +9 -0
- data/helpers/build +26 -0
- data/helpers/go.mod +13 -0
- data/helpers/go.sum +6 -0
- data/helpers/importresolver/main.go +34 -0
- data/helpers/main.go +77 -0
- data/helpers/updatechecker/main.go +107 -0
- data/helpers/updater/go.mod +3 -0
- data/helpers/updater/go.sum +2 -0
- data/helpers/updater/helpers.go +57 -0
- data/helpers/updater/main.go +48 -0
- data/lib/dependabot/go_modules.rb +11 -0
- data/lib/dependabot/go_modules/file_fetcher.rb +66 -0
- data/lib/dependabot/go_modules/file_parser.rb +131 -0
- data/lib/dependabot/go_modules/file_updater.rb +73 -0
- data/lib/dependabot/go_modules/file_updater/go_mod_updater.rb +80 -0
- data/lib/dependabot/go_modules/metadata_finder.rb +58 -0
- data/lib/dependabot/go_modules/native_helpers.rb +20 -0
- data/lib/dependabot/go_modules/path_converter.rb +72 -0
- data/lib/dependabot/go_modules/requirement.rb +148 -0
- data/lib/dependabot/go_modules/update_checker.rb +114 -0
- data/lib/dependabot/go_modules/version.rb +43 -0
- metadata +191 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "toml-rb"
|
4
|
+
require "dependabot/update_checkers"
|
5
|
+
require "dependabot/update_checkers/base"
|
6
|
+
require "dependabot/shared_helpers"
|
7
|
+
require "dependabot/errors"
|
8
|
+
require "dependabot/utils/go/version"
|
9
|
+
require "dependabot/go_modules/native_helpers"
|
10
|
+
|
11
|
+
module Dependabot
|
12
|
+
module GoModules
|
13
|
+
class UpdateChecker < Dependabot::UpdateCheckers::Base
|
14
|
+
def latest_resolvable_version
|
15
|
+
@latest_resolvable_version ||=
|
16
|
+
version_class.new(find_latest_resolvable_version.gsub(/^v/, ""))
|
17
|
+
end
|
18
|
+
|
19
|
+
# This is currently used to short-circuit latest_resolvable_version,
|
20
|
+
# with the assumption that it'll be quicker than checking
|
21
|
+
# resolvability. As this is quite quick in Go anyway, we just alias.
|
22
|
+
def latest_version
|
23
|
+
latest_resolvable_version
|
24
|
+
end
|
25
|
+
|
26
|
+
def latest_resolvable_version_with_no_unlock
|
27
|
+
# Irrelevant, since Go modules uses a single dependency file
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
31
|
+
def updated_requirements
|
32
|
+
dependency.requirements.map do |req|
|
33
|
+
req.merge(requirement: latest_version)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def find_latest_resolvable_version
|
40
|
+
SharedHelpers.in_a_temporary_directory do
|
41
|
+
SharedHelpers.with_git_configured(credentials: credentials) do
|
42
|
+
File.write("go.mod", go_mod.content)
|
43
|
+
|
44
|
+
SharedHelpers.run_helper_subprocess(
|
45
|
+
command: "GO111MODULE=on #{NativeHelpers.helper_path}",
|
46
|
+
function: "getUpdatedVersion",
|
47
|
+
args: {
|
48
|
+
dependency: {
|
49
|
+
name: dependency.name,
|
50
|
+
version: "v" + dependency.version,
|
51
|
+
indirect: dependency.requirements.empty?
|
52
|
+
}
|
53
|
+
}
|
54
|
+
)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def latest_version_resolvable_with_full_unlock?
|
60
|
+
# Full unlock checks aren't implemented for Go (yet)
|
61
|
+
false
|
62
|
+
end
|
63
|
+
|
64
|
+
def updated_dependencies_after_full_unlock
|
65
|
+
raise NotImplementedError
|
66
|
+
end
|
67
|
+
|
68
|
+
# Override the base class's check for whether this is a git dependency,
|
69
|
+
# since not all dep git dependencies have a SHA version (sometimes their
|
70
|
+
# version is the tag)
|
71
|
+
def existing_version_is_sha?
|
72
|
+
git_dependency?
|
73
|
+
end
|
74
|
+
|
75
|
+
def library?
|
76
|
+
dependency_files.none? { |f| f.type == "package_main" }
|
77
|
+
end
|
78
|
+
|
79
|
+
def version_from_tag(tag)
|
80
|
+
# To compare with the current version we either use the commit SHA
|
81
|
+
# (if that's what the parser picked up) of the tag name.
|
82
|
+
if dependency.version&.match?(/^[0-9a-f]{40}$/)
|
83
|
+
return tag&.fetch(:commit_sha)
|
84
|
+
end
|
85
|
+
|
86
|
+
tag&.fetch(:tag)
|
87
|
+
end
|
88
|
+
|
89
|
+
def git_dependency?
|
90
|
+
git_commit_checker.git_dependency?
|
91
|
+
end
|
92
|
+
|
93
|
+
def default_source
|
94
|
+
{ type: "default", source: dependency.name }
|
95
|
+
end
|
96
|
+
|
97
|
+
def go_mod
|
98
|
+
@go_mod ||= dependency_files.find { |f| f.name == "go.mod" }
|
99
|
+
end
|
100
|
+
|
101
|
+
def git_commit_checker
|
102
|
+
@git_commit_checker ||=
|
103
|
+
GitCommitChecker.new(
|
104
|
+
dependency: dependency,
|
105
|
+
credentials: credentials,
|
106
|
+
ignored_versions: ignored_versions
|
107
|
+
)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
Dependabot::UpdateCheckers.
|
114
|
+
register("go_modules", Dependabot::GoModules::UpdateChecker)
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Go pre-release versions use 1.0.1-rc1 syntax, which Gem::Version
|
4
|
+
# converts into 1.0.1.pre.rc1. We override the `to_s` method to stop that
|
5
|
+
# alteration.
|
6
|
+
# Best docs are at https://github.com/Masterminds/semver
|
7
|
+
|
8
|
+
require "dependabot/utils"
|
9
|
+
|
10
|
+
module Dependabot
|
11
|
+
module GoModules
|
12
|
+
class Version < Gem::Version
|
13
|
+
VERSION_PATTERN = '[0-9]+[0-9a-zA-Z]*(?>\.[0-9a-zA-Z]+)*' \
|
14
|
+
'(-[0-9A-Za-z-]+(\.[0-9a-zA-Z-]+)*)?' \
|
15
|
+
'(\+incompatible)?'
|
16
|
+
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/.freeze
|
17
|
+
|
18
|
+
def self.correct?(version)
|
19
|
+
version = version.gsub(/^v/, "") if version.is_a?(String)
|
20
|
+
version = version&.to_s&.split("+")&.first
|
21
|
+
super(version)
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(version)
|
25
|
+
@version_string = version.to_s.gsub(/^v/, "")
|
26
|
+
version = version.gsub(/^v/, "") if version.is_a?(String)
|
27
|
+
version = version&.to_s&.split("+")&.first
|
28
|
+
super
|
29
|
+
end
|
30
|
+
|
31
|
+
def inspect # :nodoc:
|
32
|
+
"#<#{self.class} #{@version_string.inspect}>"
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_s
|
36
|
+
@version_string
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
Dependabot::Utils.
|
43
|
+
register_version_class("go_modules", Dependabot::GoModules::Version)
|
metadata
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dependabot-go_modules
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.87.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dependabot
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-01-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dependabot-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.87.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.87.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: byebug
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '12'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '12'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.8'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-its
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.2'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec_junit_formatter
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.4'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.61'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.61'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: vcr
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '4.0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '4.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.4'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.4'
|
139
|
+
description: Automated dependency management for Ruby, JavaScript, Python, PHP, Elixir,
|
140
|
+
Rust, Java, .NET, Elm and Go
|
141
|
+
email: support@dependabot.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- helpers/Makefile
|
147
|
+
- helpers/build
|
148
|
+
- helpers/go.mod
|
149
|
+
- helpers/go.sum
|
150
|
+
- helpers/importresolver/main.go
|
151
|
+
- helpers/main.go
|
152
|
+
- helpers/updatechecker/main.go
|
153
|
+
- helpers/updater/go.mod
|
154
|
+
- helpers/updater/go.sum
|
155
|
+
- helpers/updater/helpers.go
|
156
|
+
- helpers/updater/main.go
|
157
|
+
- lib/dependabot/go_modules.rb
|
158
|
+
- lib/dependabot/go_modules/file_fetcher.rb
|
159
|
+
- lib/dependabot/go_modules/file_parser.rb
|
160
|
+
- lib/dependabot/go_modules/file_updater.rb
|
161
|
+
- lib/dependabot/go_modules/file_updater/go_mod_updater.rb
|
162
|
+
- lib/dependabot/go_modules/metadata_finder.rb
|
163
|
+
- lib/dependabot/go_modules/native_helpers.rb
|
164
|
+
- lib/dependabot/go_modules/path_converter.rb
|
165
|
+
- lib/dependabot/go_modules/requirement.rb
|
166
|
+
- lib/dependabot/go_modules/update_checker.rb
|
167
|
+
- lib/dependabot/go_modules/version.rb
|
168
|
+
homepage: https://github.com/dependabot/dependabot-core
|
169
|
+
licenses:
|
170
|
+
- Nonstandard
|
171
|
+
metadata: {}
|
172
|
+
post_install_message:
|
173
|
+
rdoc_options: []
|
174
|
+
require_paths:
|
175
|
+
- lib
|
176
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 2.5.0
|
181
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 2.5.0
|
186
|
+
requirements: []
|
187
|
+
rubygems_version: 3.0.2
|
188
|
+
signing_key:
|
189
|
+
specification_version: 4
|
190
|
+
summary: Go modules support for dependabot-core
|
191
|
+
test_files: []
|