dependabot-github_actions 0.145.3 → 0.145.4

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 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