dependabot-github_actions 0.145.0 → 0.146.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93086f58dfdd01d1d78c54d12afb7893dd8a94418717b5c72fffa0863bb937ac
4
- data.tar.gz: 1eb01019601e6ed050c01687e55fc5319afc2da4e2dde62bd8cc7d31d20d330d
3
+ metadata.gz: 4b11317e1dad2358be56e6ef6a39a34b21203bb4892d8ede27b76bc1b9e26d2e
4
+ data.tar.gz: f5d866295306e58ea08f5f3be97fc3e1686d55f805fec4bb9e6335641f92b079
5
5
  SHA512:
6
- metadata.gz: 1fa52dd6cf5bcf3f6a4bc44f522abf08abddcd975dbe90593513887b73502d13705c549047f54a49da244d4e0627e10d83ddc4142df76a9506515f11ac67ed95
7
- data.tar.gz: f669b7544d9d6764c533271b75bda53f819422be103cbde932530e02b1be3ba21c4f21301e68962b20a71551d08fdf09df7d02a5bbfaa28657d204d098e8b251
6
+ metadata.gz: f468a43a7257f606736445fb21fc4a61869a6e0bd190940d09e9bee28bc631af8683aae0ad1c474764b23fe2394985f51bcc6067a0fe15d4bcd12de41b14b7bf
7
+ data.tar.gz: 8190e538cda08496ceeda4a6a23e0f66274df683ff38b68318577f2d0622397877f3852d77cb9281f8fcec21d8da1d303fd13ddcf0fecfed796f39346203688d
@@ -30,6 +30,7 @@ module Dependabot
30
30
  dependency_set += workfile_file_dependencies(file)
31
31
  end
32
32
 
33
+ resolve_git_tags(dependency_set)
33
34
  dependency_set.dependencies
34
35
  end
35
36
 
@@ -56,16 +57,18 @@ module Dependabot
56
57
  name = "#{details.fetch('owner')}/#{details.fetch('repo')}"
57
58
  url = "https://github.com/#{name}"
58
59
 
60
+ ref = details.fetch("ref")
61
+ version = version_class.new(ref).to_s if version_class.correct?(ref)
59
62
  Dependency.new(
60
63
  name: name,
61
- version: nil,
64
+ version: version,
62
65
  requirements: [{
63
66
  requirement: nil,
64
67
  groups: [],
65
68
  source: {
66
69
  type: "git",
67
70
  url: url,
68
- ref: details.fetch("ref"),
71
+ ref: ref,
69
72
  branch: nil
70
73
  },
71
74
  file: file.name,
@@ -83,6 +86,25 @@ module Dependabot
83
86
  end
84
87
  end
85
88
 
89
+ def resolve_git_tags(dependency_set)
90
+ # Find deps that do not have an assigned (semver) version, but pin a commit that references a semver tag
91
+ resolved = dependency_set.dependencies.map do |dep|
92
+ next unless dep.version.nil?
93
+
94
+ git_checker = Dependabot::GitCommitChecker.new(dependency: dep, credentials: credentials)
95
+ next unless git_checker.pinned_ref_looks_like_commit_sha?
96
+
97
+ resolved = git_checker.local_tag_for_pinned_version
98
+ next if resolved.nil? || !version_class.correct?(resolved)
99
+
100
+ # Build a Dependency with the resolved version, and rely on DependencySet's merge
101
+ Dependency.new(name: dep.name, version: version_class.new(resolved).to_s,
102
+ package_manager: dep.package_manager, requirements: [])
103
+ end
104
+
105
+ resolved.compact.each { |dep| dependency_set << dep }
106
+ end
107
+
86
108
  def deep_fetch_uses_from_hash(json_object)
87
109
  steps = json_object.fetch("steps", [])
88
110
 
@@ -111,6 +133,10 @@ module Dependabot
111
133
 
112
134
  raise "No workflow files!"
113
135
  end
136
+
137
+ def version_class
138
+ GithubActions::Version
139
+ end
114
140
  end
115
141
  end
116
142
  end
@@ -62,12 +62,12 @@ module Dependabot
62
62
  return git_commit_checker.head_commit_for_current_branch unless git_commit_checker.pinned?
63
63
 
64
64
  # If the dependency is pinned to a tag that looks like a version then
65
- # we want to update that tag. The latest version will then be the SHA
66
- # of the latest tag that looks like a version.
65
+ # we want to update that tag.
66
+
67
67
  if git_commit_checker.pinned_ref_looks_like_version? &&
68
68
  git_commit_checker.local_tag_for_latest_version
69
69
  latest_tag = git_commit_checker.local_tag_for_latest_version
70
- return latest_tag.fetch(:commit_sha)
70
+ return latest_tag.fetch(:version)
71
71
  end
72
72
 
73
73
  # If the dependency is pinned to a commit SHA and the latest
@@ -5,6 +5,21 @@ require "dependabot/utils"
5
5
  module Dependabot
6
6
  module GithubActions
7
7
  class Version < Gem::Version
8
+ def initialize(version)
9
+ version = Version.remove_leading_v(version)
10
+ super
11
+ end
12
+
13
+ def self.remove_leading_v(version)
14
+ return version unless version.to_s.match?(/\Av([0-9])/)
15
+
16
+ version.to_s.gsub(/\Av/, "")
17
+ end
18
+
19
+ def self.correct?(version)
20
+ version = Version.remove_leading_v(version)
21
+ super
22
+ end
8
23
  end
9
24
  end
10
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-github_actions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.145.0
4
+ version: 0.146.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-05 00:00:00.000000000 Z
11
+ date: 2021-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.145.0
19
+ version: 0.146.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.145.0
26
+ version: 0.146.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.13.0
103
+ version: 1.14.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.13.0
110
+ version: 1.14.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement