File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88require "dependabot/file_parsers/base"
99require "dependabot/errors"
1010require "sorbet-runtime"
11+ require "dependabot/docker/package_manager"
1112
1213module 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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments