dependabot-github_actions 0.145.3 → 0.145.4

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: 245032b557b82c365b9cf052d0a0902ec041a397918a7be2788efa1829325ab3
4
- data.tar.gz: 9a82499f8844fe3023880fcd04e37b8ef996c07859261fa3b9c64c657a3a7c7f
3
+ metadata.gz: 2c3c7de59ab732fb81989d7a28ccbf7d6bea8585b8c5fa4b16eb13085a85e0d5
4
+ data.tar.gz: cf4067fc2b77ddb0dc3123202f3a5dc6470db958bd16fd6c84d6e0ffcc2f66ae
5
5
  SHA512:
6
- metadata.gz: c3e2dbc136449f1fcbfc38e224059e832e78c2c544e38a372572a7a4b4957c803e3be104081cc69cdb99b4b78dafbc546cbe03b34466a11ae6c2ad1cb99baf10
7
- data.tar.gz: 9ea2bd99219e4eda31c0fc3cf5d4824b493729cb99bf897b397b9053ce259c26937db266cab2601f8ed22a9f52341358c81b481d0e370d55f14eef06338226bf
6
+ metadata.gz: 35095faa81cf2c3f4b7e6fbbe7e82413d3cb8484a2455ebbf3473f4e81c7c456f9b3bf3228e6dad70f8ebaeb53563211ce8ff315434b30db0ca41c286e88b700
7
+ data.tar.gz: 1f8433788bdabefd1608fb7c7efa85f6da14875289d742e290eeb685ed68184ac5c8f98aa00e819fb8d0562e59f3b82af7dc03077fbe24780134f4c847aecfbc
@@ -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.3
4
+ version: 0.145.4
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-07 00:00:00.000000000 Z
11
+ date: 2021-05-10 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.3
19
+ version: 0.145.4
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.3
26
+ version: 0.145.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement