Skip to content

Commit c9d550b

Browse files
Changes for docker package manager (#11217)
Changes for docker package manager metric collection(#11217)
1 parent 74c174a commit c9d550b

4 files changed

Lines changed: 106 additions & 0 deletions

File tree

docker/lib/dependabot/docker/file_parser.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
require "dependabot/file_parsers/base"
99
require "dependabot/errors"
1010
require "sorbet-runtime"
11+
require "dependabot/docker/package_manager"
1112

1213
module Dependabot
1314
module Docker
@@ -42,6 +43,17 @@ class FileParser < Dependabot::FileParsers::Base
4243

4344
IMAGE_SPEC = %r{^(#{REGISTRY}/)?#{IMAGE}#{TAG}?(?:@sha256:#{DIGEST})?#{NAME}?}x
4445

46+
sig { returns(Ecosystem) }
47+
def ecosystem
48+
@ecosystem ||= T.let(
49+
Ecosystem.new(
50+
name: ECOSYSTEM,
51+
package_manager: DockerPackageManager.new
52+
),
53+
T.nilable(Ecosystem)
54+
)
55+
end
56+
4557
# rubocop:disable Metrics/AbcSize
4658
sig { override.returns(T::Array[Dependabot::Dependency]) }
4759
def parse
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# typed: strong
2+
# frozen_string_literal: true
3+
4+
require "sorbet-runtime"
5+
require "dependabot/docker/version"
6+
require "dependabot/ecosystem"
7+
require "dependabot/docker/requirement"
8+
9+
module Dependabot
10+
module Docker
11+
ECOSYSTEM = "docker"
12+
13+
SUPPORTED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
14+
15+
DEPRECATED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
16+
17+
class DockerPackageManager < Dependabot::Ecosystem::VersionManager
18+
extend T::Sig
19+
20+
NAME = "docker"
21+
22+
# As dockerfile updater is a inhouse custom utility, We use a placeholder
23+
# version number for dockerfile updater
24+
VERSION = "1.0.0"
25+
26+
SUPPORTED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
27+
28+
DEPRECATED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version])
29+
30+
sig do
31+
void
32+
end
33+
def initialize
34+
super(
35+
name: NAME,
36+
version: Version.new(VERSION),
37+
deprecated_versions: DEPRECATED_VERSIONS,
38+
supported_versions: SUPPORTED_VERSIONS
39+
)
40+
end
41+
42+
sig { override.returns(T::Boolean) }
43+
def deprecated?
44+
false
45+
end
46+
47+
sig { override.returns(T::Boolean) }
48+
def unsupported?
49+
false
50+
end
51+
end
52+
end
53+
end
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# typed: false
2+
# frozen_string_literal: true
3+
4+
require "dependabot/docker/package_manager"
5+
require "dependabot/ecosystem"
6+
require "spec_helper"
7+
8+
RSpec.describe Dependabot::Docker::DockerPackageManager do
9+
let(:package_manager) do
10+
described_class.new
11+
end
12+
13+
describe "#initialize" do
14+
context "when docker package manager is initialised" do
15+
it "sets the name and version correctly" do
16+
expect(package_manager.name).to eq(Dependabot::Docker::DockerPackageManager::NAME)
17+
expect(package_manager.version.to_s).to eq("1.0.0")
18+
end
19+
end
20+
21+
describe "#deprecated?" do
22+
it "returns always false" do
23+
expect(package_manager.deprecated?).to be false
24+
end
25+
end
26+
27+
describe "#unsupported?" do
28+
it "returns always false" do
29+
expect(package_manager.unsupported?).to be false
30+
end
31+
end
32+
end
33+
end

docker/spec/dependabot/docker/file_parser_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,14 @@
677677
expect(dependency.name).to eq("ubuntu")
678678
expect(dependency.version).to eq("artful")
679679
expect(dependency.requirements).to eq(expected_requirements)
680+
681+
ecosystem = parser.ecosystem
682+
683+
expect(ecosystem.name).to eq("docker")
684+
expect(ecosystem.package_manager.name).to eq("docker")
685+
686+
expect(ecosystem.package_manager.deprecated?).to be false
687+
expect(ecosystem.package_manager.unsupported?).to be false
680688
end
681689
end
682690
end

0 commit comments

Comments
 (0)