diff --git a/Dockerfile.updater-core b/Dockerfile.updater-core index fc885095f6d..d8466335bcd 100644 --- a/Dockerfile.updater-core +++ b/Dockerfile.updater-core @@ -97,6 +97,7 @@ COPY --chown=dependabot:dependabot git_submodules/.bundle git_submodules/dependa COPY --chown=dependabot:dependabot github_actions/.bundle github_actions/dependabot-github_actions.gemspec github_actions/ COPY --chown=dependabot:dependabot go_modules/.bundle go_modules/dependabot-go_modules.gemspec go_modules/ COPY --chown=dependabot:dependabot gradle/.bundle gradle/dependabot-gradle.gemspec gradle/ +COPY --chown=dependabot:dependabot helm/.bundle helm/dependabot-helm.gemspec helm/ COPY --chown=dependabot:dependabot hex/.bundle hex/dependabot-hex.gemspec hex/ COPY --chown=dependabot:dependabot maven/.bundle maven/dependabot-maven.gemspec maven/ COPY --chown=dependabot:dependabot npm_and_yarn/.bundle npm_and_yarn/dependabot-npm_and_yarn.gemspec npm_and_yarn/ diff --git a/bin/docker-dev-shell b/bin/docker-dev-shell index e24763b422d..2108b936c42 100755 --- a/bin/docker-dev-shell +++ b/bin/docker-dev-shell @@ -195,6 +195,11 @@ docker run --rm -ti \ -v "$(pwd)/gradle/lib:$CODE_DIR/gradle/lib" \ -v "$(pwd)/gradle/script:$CODE_DIR/gradle/script" \ -v "$(pwd)/gradle/spec:$CODE_DIR/gradle/spec" \ + -v "$(pwd)/helm/.rubocop.yml:$CODE_DIR/helm/.rubocop.yml" \ + -v "$(pwd)/helm/dependabot-helm.gemspec:$CODE_DIR/helm/dependabot-helm.gemspec" \ + -v "$(pwd)/helm/lib:$CODE_DIR/helm/lib" \ + -v "$(pwd)/helm/script:$CODE_DIR/helm/script" \ + -v "$(pwd)/helm/spec:$CODE_DIR/helm/spec" \ -v "$(pwd)/hex/.rubocop.yml:$CODE_DIR/hex/.rubocop.yml" \ -v "$(pwd)/hex/dependabot-hex.gemspec:$CODE_DIR/hex/dependabot-hex.gemspec" \ -v "$(pwd)/hex/helpers:$CODE_DIR/hex/helpers" \ diff --git a/bin/dry-run.rb b/bin/dry-run.rb index 7d40de0ed94..4e25f576f2e 100755 --- a/bin/dry-run.rb +++ b/bin/dry-run.rb @@ -39,6 +39,7 @@ # - devcontainers # - dotnet_sdk # - bun +# - helm # rubocop:disable Style/GlobalVars @@ -66,6 +67,7 @@ $LOAD_PATH << "./github_actions/lib" $LOAD_PATH << "./go_modules/lib" $LOAD_PATH << "./gradle/lib" +$LOAD_PATH << "./helm/lib" $LOAD_PATH << "./hex/lib" $LOAD_PATH << "./maven/lib" $LOAD_PATH << "./npm_and_yarn/lib" @@ -115,6 +117,7 @@ require "dependabot/github_actions" require "dependabot/go_modules" require "dependabot/gradle" +require "dependabot/helm" require "dependabot/hex" require "dependabot/maven" require "dependabot/npm_and_yarn" diff --git a/common/lib/dependabot/config/file.rb b/common/lib/dependabot/config/file.rb index ede9ce3c8d1..4c67fa126bc 100644 --- a/common/lib/dependabot/config/file.rb +++ b/common/lib/dependabot/config/file.rb @@ -73,6 +73,7 @@ def self.parse(config) "gradle" => "gradle", "maven" => "maven", "mix" => "hex", + "helm" => "helm", "nuget" => "nuget", "npm" => "npm_and_yarn", "pip" => "pip", diff --git a/helm/.gitignore b/helm/.gitignore new file mode 100644 index 00000000000..e2070370a1e --- /dev/null +++ b/helm/.gitignore @@ -0,0 +1,5 @@ +/.bundle/ +!.bundle/config +/.env +/tmp +/dependabot-*.gem diff --git a/helm/.rubocop.yml b/helm/.rubocop.yml new file mode 100644 index 00000000000..e5270530f5a --- /dev/null +++ b/helm/.rubocop.yml @@ -0,0 +1,4 @@ +inherit_from: ../.rubocop.yml + +Sorbet/StrictSigil: + Enabled: true diff --git a/helm/Dockerfile b/helm/Dockerfile new file mode 100644 index 00000000000..f0e5624930d --- /dev/null +++ b/helm/Dockerfile @@ -0,0 +1,5 @@ +FROM ghcr.io/dependabot/dependabot-updater-docker +USER dependabot + +COPY --chown=dependabot:dependabot docker_compose $DEPENDABOT_HOME/helm + diff --git a/helm/README.md b/helm/README.md new file mode 100644 index 00000000000..fba179ed283 --- /dev/null +++ b/helm/README.md @@ -0,0 +1,45 @@ +## `dependabot-docker_compose` + +Docker support for [`dependabot-core`][core-repo]. + +### Running locally + +1. Start a development shell + + ``` + $ bin/docker-dev-shell docker_compose + ``` + +2. Run tests + ``` + [dependabot-core-dev] ~ $ cd docker_compose && rspec + ``` + +[core-repo]: https://github.com/dependabot/dependabot-core + +### Supported tag schemas + +Dependabot supports updates for Docker Compose tags that use semver versioning, dates, and build numbers. +The Docker Compose tag class is located at: +https://github.com/dependabot/dependabot-core/blob/main/docker_compose/lib/dependabot/docker_compose/tag.rb + +#### Semver + +Dependabot will attempt to parse a semver version from a tag and will only update it to a tag with a matching prefix and suffix. + +As an example, `base-12.5.1` and `base-12.5.1-golden` would be parsed as `-` and `--` respectively. + +That means for `base-12.5.1` only another `-` tag would be a viable update, and for `base-12.5.1-golden`, only another `--` tag would be viable. The exception to this is if the suffix is a SHA, in which case it does not get compared and only the `` parts are considered in finding a viable tag. + +#### Dates + +Dependabot will parse dates in the `yyyy-mm`, `yyyy-mm-dd` formats (or with `.` instead of `-`) and update tags to the latest date. + +As an example, `2024-01` will get updated to `2024-02` and `2024.01.29` will get updated to `2024.03.15`. + +#### Build numbers + +Dependabot will recognize build numbers and will update to the highest build number available. + +As an example, `21-ea-32`, `22-ea-7`, and `22-ea-jdk-nanoserver-1809` are mapped to `-ea-`, `-ea-`, and `-ea-jdk-nanoserver-` respectively. +That means only "22-ea-7" will be considered as a viable update candidate for `21-ea-32`, since it's the only one that respects that format. diff --git a/helm/dependabot-helm.gemspec b/helm/dependabot-helm.gemspec new file mode 100644 index 00000000000..356f3449fee --- /dev/null +++ b/helm/dependabot-helm.gemspec @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +Gem::Specification.new do |spec| + common_gemspec = + Bundler.load_gemspec_uncached("../common/dependabot-common.gemspec") + + spec.name = "dependabot-helm" + spec.summary = "Provides Dependabot support for Helm" + spec.description = "Dependabot-Helm provides support for bumping Helm image tags via " \ + "Dependabot. If you want support for multiple package managers, you probably want the meta-gem " \ + "dependabot-omnibus." + + spec.author = common_gemspec.author + spec.email = common_gemspec.email + spec.homepage = common_gemspec.homepage + spec.license = common_gemspec.license + + spec.metadata = { + "bug_tracker_uri" => common_gemspec.metadata["bug_tracker_uri"], + "changelog_uri" => common_gemspec.metadata["changelog_uri"] + } + + spec.version = common_gemspec.version + spec.required_ruby_version = common_gemspec.required_ruby_version + spec.required_rubygems_version = common_gemspec.required_ruby_version + + spec.require_path = "lib" + spec.files = Dir["lib/**/*"] + + spec.add_dependency "dependabot-docker", Dependabot::VERSION + spec.add_dependency "dependabot-helm", Dependabot::VERSION + + common_gemspec.development_dependencies.each do |dep| + spec.add_development_dependency dep.name, *dep.requirement.as_list + end +end diff --git a/helm/lib/dependabot/helm.rb b/helm/lib/dependabot/helm.rb new file mode 100644 index 00000000000..cd642cadd2b --- /dev/null +++ b/helm/lib/dependabot/helm.rb @@ -0,0 +1,23 @@ +# typed: strong +# frozen_string_literal: true + +# These all need to be required so the various classes can be registered in a +# lookup table of package manager names to concrete classes. + +require "dependabot/docker" + +require "dependabot/helm/file_fetcher" +require "dependabot/helm/file_parser" +require "dependabot/helm/file_updater" + +Dependabot::Utils.register_version_class("helm", Dependabot::Docker::Version) +Dependabot::UpdateCheckers.register("helm", Dependabot::Docker::UpdateChecker) +Dependabot::Utils.register_requirement_class("helm", Dependabot::Docker::Requirement) +Dependabot::MetadataFinders.register("helm", Dependabot::Docker::MetadataFinder) + +require "dependabot/pull_request_creator/labeler" +Dependabot::PullRequestCreator::Labeler + .register_label_details("helm", name: "helm", colour: "E5F2FC") + +require "dependabot/dependency" +Dependabot::Dependency.register_production_check("helm", ->(_) { true }) diff --git a/helm/lib/dependabot/helm/file_fetcher.rb b/helm/lib/dependabot/helm/file_fetcher.rb new file mode 100644 index 00000000000..9e48ec70734 --- /dev/null +++ b/helm/lib/dependabot/helm/file_fetcher.rb @@ -0,0 +1,67 @@ +# typed: strict +# frozen_string_literal: true + +require "dependabot/shared/shared_file_fetcher" + +module Dependabot + module Helm + class FileFetcher < Dependabot::Shared::SharedFileFetcher + FILENAME_REGEX = /.*\.ya?ml$/i + + sig { override.returns(T::Array[DependencyFile]) } + def fetch_files + fetched_files = [] + fetched_files += correctly_encoded_helm_files + + return fetched_files if fetched_files.any? + + raise_appropriate_error + end + + sig { override.returns(Regexp) } + def self.filename_regex + FILENAME_REGEX + end + + sig { returns(T::Array[Dependabot::DependencyFile]) } + def helm_files + @helm_files ||= + T.let(repo_contents(raise_errors: false) + .select { |f| f.type == "file" && f.name.match?(FILENAME_REGEX) } + .map { |f| fetch_file_from_host(f.name) }, T.nilable(T::Array[DependencyFile])) + end + + sig { returns(T::Array[Dependabot::DependencyFile]) } + def correctly_encoded_helm_files + helm_files.select { |f| T.must(f.content).valid_encoding? } + end + + sig { returns(T::Array[Dependabot::DependencyFile]) } + def incorrectly_encoded_helm_files_files + helm_files.reject { |f| T.must(f.content).valid_encoding? } + end + + sig { override.returns(String) } + def self.required_files_message + "Repo must contain a Helm charts file." + end + + private + + sig { override.returns(String) } + def default_file_name + "charts.yaml" + end + + sig { override.returns(String) } + def file_type + "Helm Chart" + end + end + end +end + +Dependabot::FileFetchers.register( + "helm", + Dependabot::Helm::FileFetcher +) diff --git a/helm/lib/dependabot/helm/file_parser.rb b/helm/lib/dependabot/helm/file_parser.rb new file mode 100644 index 00000000000..cf74dc27ba2 --- /dev/null +++ b/helm/lib/dependabot/helm/file_parser.rb @@ -0,0 +1,207 @@ +# typed: strict +# frozen_string_literal: true + +require "yaml" +require "dependabot/shared/shared_file_parser" +require "dependabot/helm/package_manager" + +module Dependabot + module Helm + class FileParser < Dependabot::Shared::SharedFileParser + extend T::Sig + + # Use the regex patterns from SharedFileParser for image parsing + # Define Helm-specific patterns + CHART_NAME = /[a-zA-Z0-9-_.]+/ + CHART_VERSION = /[0-9]+\.[0-9]+\.[0-9]+(?:-[a-zA-Z0-9-.]+)?/ + REPO_URL = %r{(?:https?://|oci://|file://)[^\s'"]+} + + sig { returns(Ecosystem) } + def ecosystem + @ecosystem ||= T.let( + Ecosystem.new( + name: ECOSYSTEM, + package_manager: PackageManager.new + ), + T.nilable(Ecosystem) + ) + end + + sig { override.returns(T::Array[Dependabot::Dependency]) } + def parse + dependency_set = DependencySet.new + + # Parse Chart.yaml files (Helm v3) + parse_chart_yaml_files(dependency_set) + + # Parse values.yaml files for container image references + parse_values_yaml_files(dependency_set) + + dependency_set.dependencies + end + + private + + sig { params(dependency_set: DependencySet).void } + def parse_chart_yaml_files(dependency_set) + helm_chart_files.each do |chart_file| + yaml = YAML.safe_load(T.must(chart_file.content), aliases: true) + next unless yaml.is_a?(Hash) + + # Process chart dependencies (Helm v3 style) + if yaml["dependencies"].is_a?(Array) + yaml["dependencies"].each do |dep| + next unless dep.is_a?(Hash) && dep["name"] && dep["version"] && dep["repository"] + + # Create a parsed_line hash in the format expected by build_dependency + parsed_line = { + "image" => dep["name"], + "tag" => dep["version"], + "registry" => nil, + "digest" => nil + } + + dependency = build_dependency(chart_file, parsed_line, dep["version"]) + + # Update source with Helm-specific information + dependency.requirements.first[:source] = { + type: "helm_repo", + url: dep["repository"] + } + + dependency_set << dependency + end + end + + # Process appVersion as a dependency + if yaml["appVersion"] && yaml["name"] + version = yaml["appVersion"].to_s.delete_prefix("\"").delete_suffix("\"") + + # Create a parsed_line hash in the format expected by build_dependency + parsed_line = { + "image" => "#{yaml["name"]}-app", + "tag" => version, + "registry" => nil, + "digest" => nil + } + + dependency = build_dependency(chart_file, parsed_line, version) + + # Update with appVersion group + dependency.requirements.first[:groups] = ["appVersion"] + + dependency_set << dependency + end + end + end + + sig { params(dependency_set: DependencySet).void } + def parse_values_yaml_files(dependency_set) + helm_values_files.each do |values_file| + yaml = YAML.safe_load(T.must(values_file.content), aliases: true) + next unless yaml.is_a?(Hash) + + # Process container image references + find_images_in_hash(yaml).each do |image_details| + parsed_line = extract_image_details(image_details[:image]) + next unless parsed_line + + version = version_from(parsed_line) + next unless version + + # Use the shared build_dependency method for creating dependencies + dependency = build_dependency(values_file, parsed_line, version) + + # Update the source with path information for nested values + dependency.requirements.first[:source] = dependency.requirements.first[:source].merge(path: image_details[:path]) + + dependency_set << dependency + end + end + end + + sig { params(image_string: String).returns(T.nilable(T::Hash[String, T.nilable(String)])) } + def extract_image_details(image_string) + # Skip if the string contains environment variables + return nil if image_string.match?(/\${[^}]+}/) + + # Try to match the image string against our patterns + registry_match = image_string.match(%r{^(#{REGISTRY}/)?}) + image_match = image_string.match(%r{#{IMAGE}}) + tag_match = image_string.match(%r{#{TAG}}) + digest_match = image_string.match(%r{#{DIGEST}}) + + return nil unless image_match + + { + "registry" => registry_match && registry_match[:registry], + "image" => image_match[:image], + "tag" => tag_match && tag_match[:tag], + "digest" => digest_match && digest_match[:digest] + } + end + + sig { params(hash: T::Hash[T.untyped, T.untyped]).returns(T::Array[T::Hash[Symbol, String]]) } + def find_images_in_hash(hash, path = []) + images = [] + + hash.each do |key, value| + current_path = path + [key] + + if value.is_a?(String) && (key.to_s == "image" || key.to_s == "repository") + if key.to_s == "repository" && hash["tag"].is_a?(String) + # Handle repository + tag structure + images << { path: current_path.join("."), image: "#{value}:#{hash["tag"]}" } + elsif key.to_s == "image" && value.include?(":") + # Handle direct image reference + images << { path: current_path.join("."), image: value } + end + elsif value.is_a?(Hash) + # Recursively search nested hashes + images.concat(find_images_in_hash(value, current_path)) + elsif value.is_a?(Array) + # Search through array items if they're hashes + value.each_with_index do |item, index| + if item.is_a?(Hash) + images.concat(find_images_in_hash(item, current_path + [index.to_s])) + end + end + end + end + + images + end + + sig { returns(T::Array[Dependabot::DependencyFile]) } + def helm_chart_files + dependency_files.select { |file| file.name.end_with?("Chart.yaml") || file.name.end_with?("chart.yml") } + end + + sig { returns(T::Array[Dependabot::DependencyFile]) } + def helm_values_files + dependency_files.select { |file| file.name.end_with?("values.yaml") || file.name.end_with?("values.yml") } + end + + sig { override.returns(String) } + def package_manager + "helm" + end + + sig { override.returns(String) } + def file_type + "helm chart" + end + + sig { override.void } + def check_required_files + return if dependency_files.any? + raise "No #{file_type} files!" + end + end + end +end + +Dependabot::FileParsers.register( + "helm", + Dependabot::Helm::FileParser +) diff --git a/helm/lib/dependabot/helm/file_updater.rb b/helm/lib/dependabot/helm/file_updater.rb new file mode 100644 index 00000000000..6732d085c88 --- /dev/null +++ b/helm/lib/dependabot/helm/file_updater.rb @@ -0,0 +1,64 @@ +# typed: strict +# frozen_string_literal: true + +require "dependabot/shared/shared_file_updater" + +module Dependabot + module Helm + class FileUpdater < Dependabot::Shared::SharedFileUpdater + extend T::Sig + extend T::Helpers + + YAML_REGEXP = /.*\.ya?ml$/i + IMAGE_REGEX = /(?:from|image:\s*)/i + + sig { override.returns(T::Array[Regexp]) } + def self.updated_files_regex + [YAML_REGEXP] + end + + sig { override.returns(String) } + def file_type + "Helm chart" + end + + sig { override.returns(Regexp) } + def yaml_file_pattern + YAML_REGEXP + end + + sig { override.returns(Regexp) } + def container_image_regex + IMAGE_REGEX + end + + sig { override.params(escaped_declaration: String).returns(Regexp) } + def build_old_declaration_regex(escaped_declaration) + %r{#{IMAGE_REGEX}\s+["']?(docker\.io/)?#{escaped_declaration}["']?(?=\s|$)} + end + + sig { override.returns(T::Array[Dependabot::DependencyFile]) } + def updated_dependency_files + updated_files = [] + dependency_files.each do |file| + next unless requirement_changed?(file, T.must(dependency)) + + updated_files << updated_file( + file: file, + content: T.must(updated_dockerfile_content(file)) + ) + end + + updated_files.reject! { |f| dependency_files.include?(f) } + raise "No files changed!" if updated_files.none? + + updated_files + end + end + end +end + +Dependabot::FileUpdaters.register( + "helm", + Dependabot::Helm::FileUpdater +) diff --git a/helm/lib/dependabot/helm/package_manager.rb b/helm/lib/dependabot/helm/package_manager.rb new file mode 100644 index 00000000000..c631d3a566c --- /dev/null +++ b/helm/lib/dependabot/helm/package_manager.rb @@ -0,0 +1,51 @@ +# typed: strong +# frozen_string_literal: true + +require "sorbet-runtime" +require "dependabot/ecosystem" + +module Dependabot + module Helm + ECOSYSTEM = "helm" + + SUPPORTED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version]) + + DEPRECATED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version]) + + class DockerPackageManager < Dependabot::Ecosystem::VersionManager + extend T::Sig + + NAME = "helm" + + # As helm updater is an in house custom utility, We use a placeholder + # version number for helm updater + VERSION = "1.0.0" + + SUPPORTED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version]) + + DEPRECATED_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version]) + + sig do + void + end + def initialize + super( + name: NAME, + version: Version.new(VERSION), + deprecated_versions: DEPRECATED_VERSIONS, + supported_versions: SUPPORTED_VERSIONS + ) + end + + sig { override.returns(T::Boolean) } + def deprecated? + false + end + + sig { override.returns(T::Boolean) } + def unsupported? + false + end + end + end +end diff --git a/helm/script/ci-test b/helm/script/ci-test new file mode 100755 index 00000000000..a9cf3203e11 --- /dev/null +++ b/helm/script/ci-test @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e + +bundle install +bundle exec turbo_tests --verbose diff --git a/helm/spec/dependabot/helm/file_fetcher_spec.rb b/helm/spec/dependabot/helm/file_fetcher_spec.rb new file mode 100644 index 00000000000..babb388122f --- /dev/null +++ b/helm/spec/dependabot/helm/file_fetcher_spec.rb @@ -0,0 +1,167 @@ +# typed: false +# frozen_string_literal: true + +require "spec_helper" +require "dependabot/helm/file_fetcher" +require_common_spec "file_fetchers/shared_examples_for_file_fetchers" + +RSpec.describe Dependabot::Helm::FileFetcher do + let(:credentials) do + [{ + "type" => "git_source", + "host" => "github.com", + "username" => "x-access-token", + "password" => "token" + }] + end + let(:url) { github_url + "repos/gocardless/bump/contents/" } + let(:github_url) { "https://api.github.com/" } + let(:directory) { "/" } + let(:file_fetcher_instance) do + described_class.new(source: source, credentials: credentials) + end + let(:source) do + Dependabot::Source.new( + provider: "github", + repo: "gocardless/bump", + directory: directory + ) + end + + before do + allow(file_fetcher_instance).to receive(:commit).and_return("sha") + end + + context "with a docker-compose.yml file" do + before do + stub_request(:get, url + "?ref=sha") + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: fixture("github", "contents_docker_repo.json"), + headers: { "content-type" => "application/json" } + ) + + stub_request(:get, File.join(url, "docker-compose.yml?ref=sha")) + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: composefile_fixture, + headers: { "content-type" => "application/json" } + ) + end + + let(:composefile_fixture) do + fixture("github", "contents_docker-compose.json") + end + + it "fetches the docker-compose.yml file" do + expect(file_fetcher_instance.files.count).to eq(1) + expect(file_fetcher_instance.files.map(&:name)) + .to match_array(%w(docker-compose.yml)) + end + + context "with invalid encoding" do + let(:composefile_fixture) { fixture("github", "contents_image.json") } + + it "raises a helpful error" do + expect { file_fetcher_instance.files } + .to raise_error(Dependabot::DependencyFileNotParseable) + end + end + end + + context "with docker-compose.yml override file" do + before do + stub_request(:get, url + "?ref=sha") + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: fixture("github", "contents_docker_repo_multiple.json"), + headers: { "content-type" => "application/json" } + ) + stub_request(:get, File.join(url, "docker-compose.yml?ref=sha")) + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: composefile_fixture, + headers: { "content-type" => "application/json" } + ) + stub_request(:get, File.join(url, "docker-compose.override.yml?ref=sha")) + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: composefile_2_fixture, + headers: { "content-type" => "application/json" } + ) + end + + let(:composefile_fixture) do + fixture("github", "contents_docker-compose.json") + end + let(:composefile_2_fixture) do + fixture("github", "contents_docker-compose.json") + end + + it "fetches both docker-compose.yml files" do + expect(file_fetcher_instance.files.count).to eq(2) + expect(file_fetcher_instance.files.map(&:name)) + .to match_array(%w(docker-compose.yml docker-compose.override.yml)) + end + + context "with invalid encoding" do + let(:composefile_2_fixture) { fixture("github", "contents_image.json") } + + it "fetches the first docker-compose.yml file, " \ + "and ignores the invalid one" do + expect(file_fetcher_instance.files.count).to eq(1) + expect(file_fetcher_instance.files.map(&:name)) + .to match_array(%w(docker-compose.yml)) + end + end + end + + context "with a custom named docker-compose.yml file" do + before do + stub_request(:get, url + "?ref=sha") + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: fixture("github", "contents_docker_repo_custom.json"), + headers: { "content-type" => "application/json" } + ) + + stub_request(:get, File.join(url, "docker-compose.override.yml?ref=sha")) + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: fixture("github", "contents_docker-compose.json"), + headers: { "content-type" => "application/json" } + ) + end + + it "fetches the docker-compose.override.yml file" do + expect(file_fetcher_instance.files.count).to eq(1) + expect(file_fetcher_instance.files.map(&:name)) + .to match_array(%w(docker-compose.override.yml)) + end + end + + context "with a directory that doesn't exist" do + before do + allow(file_fetcher_instance).to receive(:commit).and_return("sha") + stub_request(:get, url + "?ref=sha") + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 200, + body: fixture("github", "contents_no_docker_repo.json"), + headers: { "content-type" => "application/json" } + ) + end + + it "raises a helpful error" do + expect { file_fetcher_instance.files } + .to raise_error(Dependabot::DependencyFileNotFound) + end + end +end diff --git a/helm/spec/dependabot/helm/file_parser_spec.rb b/helm/spec/dependabot/helm/file_parser_spec.rb new file mode 100644 index 00000000000..45333c219b8 --- /dev/null +++ b/helm/spec/dependabot/helm/file_parser_spec.rb @@ -0,0 +1,587 @@ +# typed: false +# frozen_string_literal: true + +require "spec_helper" +require "dependabot/dependency_file" +require "dependabot/source" +require "dependabot/docker_compose/file_parser" + +require_common_spec "file_parsers/shared_examples_for_file_parsers" + +RSpec.describe Dependabot::DockerCompose::FileParser do + let(:source) do + Dependabot::Source.new( + provider: "github", + repo: "gocardless/bump", + directory: "/" + ) + end + let(:parser) { described_class.new(dependency_files: files, source: source) } + let(:composefile_fixture_name) { "tag" } + let(:composefile_body) do + fixture("docker_compose", "composefiles", composefile_fixture_name) + end + let(:composefile) do + Dependabot::DependencyFile.new( + name: "docker-compose.yml", + content: composefile_body + ) + end + let(:files) { [composefile] } + + it_behaves_like "a dependency file parser" + + describe "parse" do + subject(:dependencies) { parser.parse } + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + context "with no tag or digest" do + let(:composefile_fixture_name) { "bare" } + + its(:length) { is_expected.to eq(0) } + end + + context "with a namespace" do + let(:composefile_fixture_name) { "namespace" } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("my-fork/ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + + context "with a non-numeric version" do + let(:composefile_fixture_name) { "non_numeric_version" } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "artful" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("artful") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + + context "with a digest" do + let(:composefile_fixture_name) { "digest" } + let(:registry_tags) { fixture("docker", "registry_tags", "ubuntu.json") } + let(:digest_headers) do + JSON.parse( + fixture("docker", "registry_manifest_headers", "ubuntu_12.04.5.json") + ) + end + + let(:repo_url) { "https://registry.hub.docker.com/v2/library/ubuntu/" } + + before do + auth_url = "https://auth.docker.io/token?service=registry.docker.io" + stub_request(:get, auth_url) + .and_return(status: 200, body: { token: "token" }.to_json) + + tags_url = repo_url + "tags/list" + stub_request(:get, tags_url) + .and_return(status: 200, body: registry_tags) + end + + context "when there is a matching tag" do + before do + stub_request(:head, repo_url + "manifests/10.04") + .and_return(status: 404) + + stub_request(:head, repo_url + "manifests/12.04.5") + .and_return(status: 200, body: "", headers: digest_headers) + end + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8d" \ + "fc38288cf73aa07485005" + } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + context "with a private registry" do + let(:composefile_fixture_name) { "private_digest" } + let(:repo_url) { "https://registry-host.io:5000/v2/myreg/ubuntu/" } + + context "with good authentication credentials" do + let(:parser) do + described_class.new( + dependency_files: files, + credentials: credentials, + source: source + ) + end + let(:credentials) do + [{ + "type" => "docker_registry", + "registry" => "registry-host.io:5000", + "username" => "grey", + "password" => "pa55word" + }] + end + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + digest: "18305429afa14ea462f810146ba44d4363ae76" \ + "e4c8dfc38288cf73aa07485005" + } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("myreg/ubuntu") + expect(dependency.version).to eq("18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + context "when there is no username and password" do + let(:credentials) do + [{ + "type" => "docker_registry", + "registry" => "registry-host.io:5000" + }] + end + + its(:length) { is_expected.to eq(1) } + end + end + end + end + end + + context "with multiple services" do + let(:composefile_fixture_name) { "multiple" } + + its(:length) { is_expected.to eq(2) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + describe "the second dependency" do + subject(:dependency) { dependencies.last } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "3.6.3" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("python") + expect(dependency.version).to eq("3.6.3") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + context "when the dependencies are identical" do + let(:composefile_fixture_name) { "multiple_identical" } + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "10-alpine" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("node") + expect(dependency.version).to eq("10-alpine") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + end + + context "with a v1 dockerhub reference and a tag" do + let(:composefile_fixture_name) { "v1_tag" } + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("myreg/ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + + context "with a private registry and a tag" do + let(:composefile_fixture_name) { "private_tag" } + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + tag: "17.04" + } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("myreg/ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + context "when the registry has no port" do + let(:composefile_fixture_name) { "private_no_port" } + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "aws-account-id.dkr.ecr.region.amazonaws.com", + tag: "17.04" + } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("myreg/ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + end + + context "with a non-standard filename" do + let(:composefile) do + Dependabot::DependencyFile.new( + name: "custom-name", + content: composefile_body + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "custom-name", + source: { tag: "17.04" } + }] + end + + its(:requirements) { is_expected.to eq(expected_requirements) } + end + end + + context "with multiple composefiles" do + let(:files) { [composefile, dockefile2] } + let(:dockefile2) do + Dependabot::DependencyFile.new( + name: "custom-name", + content: composefile_body2 + ) + end + let(:composefile_body2) do + fixture("docker_compose", "composefiles", "namespace") + end + + its(:length) { is_expected.to eq(2) } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + + describe "the second dependency" do + subject(:dependency) { dependencies.last } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "custom-name", + source: { tag: "17.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("my-fork/ubuntu") + expect(dependency.version).to eq("17.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + + context "with a non-numeric version" do + let(:composefile_fixture_name) { "inline_dockerfile" } + + describe "the first dependency" do + subject(:dependency) { dependencies.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "10.11.2-jammy" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("mariadb") + expect(dependency.version).to eq("10.11.2-jammy") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + end + + describe "version_from with environment variables" do + context "with a parameterized tag" do + let(:composefile) do + Dependabot::DependencyFile.new( + name: "docker-compose.yml", + content: <<~YAML + services: + api: + image: ubuntu:${TAG_VERSION} + YAML + ) + end + + it "returns no dependencies" do + expect(parser.parse).to be_empty + end + end + + context "with mixed static and environment variable tags" do + let(:composefile) do + Dependabot::DependencyFile.new( + name: "docker-compose.yml", + content: <<~YAML + services: + api: + image: ubuntu:${TAG_VERSION} + db: + image: postgres:12.3 + cache: + image: redis:${REDIS_VERSION} + YAML + ) + end + + it "returns only the static dependency" do + dependencies = parser.parse + expect(dependencies.length).to eq(1) + expect(dependencies.first.name).to eq("postgres") + expect(dependencies.first.version).to eq("12.3") + end + end + + context "with inline Dockerfile and parameterized tag" do + let(:composefile) do + Dependabot::DependencyFile.new( + name: "docker-compose.yml", + content: <<~YAML + services: + api: + build: + dockerfile_inline: | + FROM ubuntu:${VERSION} + RUN apt-get update + YAML + ) + end + + it "returns no dependencies" do + expect(parser.parse).to be_empty + end + end + + context "with static tag" do + let(:composefile) do + Dependabot::DependencyFile.new( + name: "docker-compose.yml", + content: <<~YAML + services: + api: + image: ubuntu:18.04 + YAML + ) + end + + describe "the first dependency" do + subject(:dependency) { parser.parse.first } + + let(:expected_requirements) do + [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "18.04" } + }] + end + + it "has the right details" do + expect(dependency).to be_a(Dependabot::Dependency) + expect(dependency.name).to eq("ubuntu") + expect(dependency.version).to eq("18.04") + expect(dependency.requirements).to eq(expected_requirements) + end + end + end + end +end diff --git a/helm/spec/dependabot/helm/file_updater_spec.rb b/helm/spec/dependabot/helm/file_updater_spec.rb new file mode 100644 index 00000000000..3b7e160a314 --- /dev/null +++ b/helm/spec/dependabot/helm/file_updater_spec.rb @@ -0,0 +1,594 @@ +# typed: false +# frozen_string_literal: true + +require "spec_helper" +require "yaml" +require "dependabot/dependency" +require "dependabot/dependency_file" +require "dependabot/source" +require "dependabot/helm/file_updater" +require_common_spec "file_updaters/shared_examples_for_file_updaters" + +RSpec.describe Dependabot::Helm::FileUpdater do + let(:dependency) do + Dependabot::Dependency.new( + name: "ubuntu", + version: "17.10", + previous_version: "17.04", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.10" } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }], + package_manager: "docker_compose" + ) + end + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "multiple") + end + let(:dockerfile) do + Dependabot::DependencyFile.new( + content: dockerfile_body, + name: "docker-compose.yml" + ) + end + let(:credentials) do + [{ + "type" => "git_source", + "host" => "github.com", + "username" => "x-access-token", + "password" => "token" + }] + end + let(:files) { [dockerfile] } + let(:updater) do + described_class.new( + dependency_files: files, + dependencies: [dependency], + credentials: credentials + ) + end + + describe "#updated_dependency_files" do + subject(:updated_files) { updater.updated_dependency_files } + + it "returns DependencyFile objects" do + expect(updated_files).to all(be_a(Dependabot::DependencyFile)) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + let(:yaml_content) do + YAML.safe_load updated_dockerfile.content + end + + its(:content) { is_expected.to include "image: ubuntu:17.10\n" } + its(:content) { is_expected.to include "image: python:3.6.3\n" } + + it "contains the expected YAML content" do + expect(yaml_content).to eq( + "version" => "2", + "services" => { + "interpreter" => { "image" => "python:3.6.3" }, + "os" => { "image" => "ubuntu:17.10" } + } + ) + end + end + + context "when multiple identical lines need to be updated" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "multiple_identical") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "node", + version: "10.9-alpine", + previous_version: "10-alpine", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "10.9-alpine" } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "10-alpine" } + }], + package_manager: "docker_compose" + ) + end + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) { is_expected.to include "image: node:10.9-alpine\n" } + its(:content) { is_expected.to include "node-2:" } + end + end + + context "when the dependency has a namespace" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "namespace") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "my-fork/ubuntu", + version: "17.10", + previous_version: "17.04", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.10" } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) { is_expected.to include "image: my-fork/ubuntu:17.10\n" } + + its(:content) do + is_expected.to include "command: [/bin/echo, 'Hello world']" + end + end + end + + context "when the dependency is in a dockerfile_inline" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "inline_dockerfile") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "mariadb", + version: "11.11.2-jammy", + previous_version: "10.11.2-jammy", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "11.11.2-jammy" } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "10.11.2-jammy" } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) { is_expected.to include "FROM mariadb:11.11.2-jammy" } + + its(:content) do + is_expected.to include "RUN echo 'Hello'" + end + end + end + + context "when the dependency is from a private registry" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "private_tag") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "myreg/ubuntu", + version: "17.10", + previous_version: "17.04", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + tag: "17.10" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + tag: "17.04" + } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) do + is_expected + .to include("image: registry-host.io:5000/myreg/ubuntu:17.10\n") + end + + its(:content) do + is_expected.to include "command: [/bin/echo, 'Hello world']" + end + end + end + + context "when the dependency is docker-compose.yml using the v1 API" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "v1_tag") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "myreg/ubuntu", + version: "17.10", + previous_version: "17.04", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.10" } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { tag: "17.04" } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) do + is_expected + .to include("image: docker.io/myreg/ubuntu:17.10\n") + end + + its(:content) do + is_expected.to include "command: [/bin/echo, 'Hello world']" + end + end + end + + context "when the dependency has a digest" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "digest") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "ubuntu", + version: "17.10", + previous_version: "12.04.5", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005" + } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) do + is_expected.to include "image: ubuntu@sha256:3ea1ca1aa" + end + + its(:content) do + is_expected.to include "command: [/bin/echo, 'Hello world']" + end + + context "when the dockerfile has a tag as well as a digest" do + let(:dependency) do + Dependabot::Dependency.new( + name: "ubuntu", + version: "17.10", + previous_version: "12.04.5", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608", + tag: "17.10" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005", + tag: "12.04.5" + } + }], + package_manager: "docker_compose" + ) + end + + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "digest_and_tag") + end + + its(:content) do + is_expected.to include "image: ubuntu:17.10@sha256:3ea1ca1aa" + end + end + end + + context "when the dependency has a private registry" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "private_digest") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "myreg/ubuntu", + version: "17.10", + previous_version: "17.10", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + registry: "registry-host.io:5000", + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005" + } + }], + package_manager: "docker_compose" + ) + end + + its(:length) { is_expected.to eq(1) } + + describe "the updated docker-compose.yml" do + subject(:updated_dockerfile) do + updated_files.find { |f| f.name == "docker-compose.yml" } + end + + its(:content) do + is_expected.to include("image: registry-host.io:5000/" \ + "myreg/ubuntu@sha256:3ea1ca1aa") + end + + its(:content) do + is_expected.to include "command: [/bin/echo, 'Hello world']" + end + end + end + end + + context "when multiple dockerfiles to be updated" do + let(:files) { [dockerfile, dockefile2] } + let(:dockefile2) do + Dependabot::DependencyFile.new( + name: "custom-name", + content: dockerfile_body2 + ) + end + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "digest") + end + let(:dockerfile_body2) do + fixture("docker_compose", "composefiles", "digest_and_tag") + end + let(:dependency) do + Dependabot::Dependency.new( + name: "ubuntu", + version: "17.10", + previous_version: "12.04.5", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608" + } + }, { + requirement: nil, + groups: [], + file: "custom-name", + source: { + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608", + tag: "17.10" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005" + } + }, { + requirement: nil, + groups: [], + file: "custom-name", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005", + tag: "12.04.5" + } + }], + package_manager: "docker_compose" + ) + end + + describe "the updated docker-compose.yml" do + subject { updated_files.find { |f| f.name == "docker-compose.yml" } } + + its(:content) do + is_expected.to include "image: ubuntu@sha256:3ea1ca1aa" + end + end + + describe "the updated custom-name file" do + subject { updated_files.find { |f| f.name == "custom-name" } } + + its(:content) do + is_expected.to include "image: ubuntu:17.10@sha256:3ea1ca1aa" + end + end + + context "when only one needs updating" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "bare") + end + + let(:dependency) do + Dependabot::Dependency.new( + name: "ubuntu", + version: "17.10", + previous_version: "12.04.5", + requirements: [{ + requirement: nil, + groups: [], + file: "custom-name", + source: { + digest: "3ea1ca1aa8483a38081750953ad75046e6cc9f6b86" \ + "ca97eba880ebf600d68608", + tag: "17.10" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "custom-name", + source: { + digest: "18305429afa14ea462f810146ba44d4363ae76e4c8" \ + "dfc38288cf73aa07485005", + tag: "12.04.5" + } + }], + package_manager: "docker_compose" + ) + end + + describe "the updated custom-name file" do + subject { updated_files.find { |f| f.name == "custom-name" } } + + its(:content) do + is_expected.to include "image: ubuntu:17.10@sha256:3ea1ca1aa" + end + end + end + + context "when the image is quoted" do + let(:dockerfile_body) do + fixture("docker_compose", "composefiles", "tag_quoted") + end + + let(:dependency) do + Dependabot::Dependency.new( + name: "elastic/elasticsearch", + version: "8.17.2", + previous_version: "8.16.4", + requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + tag: "8.17.2" + } + }], + previous_requirements: [{ + requirement: nil, + groups: [], + file: "docker-compose.yml", + source: { + tag: "8.16.4" + } + }], + package_manager: "docker_compose" + ) + end + + describe "the updated custom-name file" do + subject { updated_files.find { |f| f.name == "docker-compose.yml" } } + + its(:content) do + is_expected.to include "image: \"elastic/elasticsearch:8.17.2\"" + end + end + end + end + end +end diff --git a/helm/spec/dependabot/helm_spec.rb b/helm/spec/dependabot/helm_spec.rb new file mode 100644 index 00000000000..bba8d30c65b --- /dev/null +++ b/helm/spec/dependabot/helm_spec.rb @@ -0,0 +1,10 @@ +# typed: false +# frozen_string_literal: true + +require "spec_helper" +require "dependabot/helm" +require_common_spec "shared_examples_for_autoloading" + +RSpec.describe Dependabot::Helm do + it_behaves_like "it registers the required classes", "helm" +end diff --git a/helm/spec/fixtures/docker/dockerfiles/bare b/helm/spec/fixtures/docker/dockerfiles/bare new file mode 100644 index 00000000000..d89878e52da --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/bare @@ -0,0 +1,19 @@ +FROM ubuntu + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/case b/helm/spec/fixtures/docker/dockerfiles/case new file mode 100644 index 00000000000..e64c742b40c --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/case @@ -0,0 +1,19 @@ +fRom ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/digest b/helm/spec/fixtures/docker/dockerfiles/digest new file mode 100644 index 00000000000..2effca2ec66 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/digest @@ -0,0 +1,19 @@ +FROM ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/digest_and_tag b/helm/spec/fixtures/docker/dockerfiles/digest_and_tag new file mode 100644 index 00000000000..47343c2473e --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/digest_and_tag @@ -0,0 +1,19 @@ +FROM ubuntu:12.04.5@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/ecr_digest b/helm/spec/fixtures/docker/dockerfiles/ecr_digest new file mode 100644 index 00000000000..0475119c57a --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/ecr_digest @@ -0,0 +1,19 @@ +FROM docker-php@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_tags b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_tags new file mode 100644 index 00000000000..eeffd7ccd93 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_tags @@ -0,0 +1,21 @@ +FROM node:10.9.2-alpine AS BUILD + +RUN apk add --no-cache git + +WORKDIR /application + +COPY package.json yarn.lock ./ + +RUN yarn + +COPY . . + +FROM node:10.9.3-alpine + +ENV NODE_PATH=/dependabot/node_modules + +COPY --from=BUILD /application/ /dependabot/ + +WORKDIR /application + +ENTRYPOINT ["/dependabot/node_modules/.bin/dependabot"] diff --git a/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants new file mode 100644 index 00000000000..47809844595 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants @@ -0,0 +1,11 @@ +FROM python:3.10.5 AS base + +ENV PIP_NO_CACHE_DIR=off \ + PIP_DEFAULT_TIMEOUT=100 \ + PIP_DISABLE_PIP_VERSION_CHECK=on + +FROM python:3.10.5-slim AS production + +ENV PORT=8000 \ + PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 diff --git a/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants_with_digests b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants_with_digests new file mode 100644 index 00000000000..2ee0afecc05 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/multi_stage_different_variants_with_digests @@ -0,0 +1,11 @@ +FROM python:3.10.5@sha256:bdf0079de4094afdb26b94d9f89b716499436282c972461d945a87899c015c23 AS base + +ENV PIP_NO_CACHE_DIR=off \ + PIP_DEFAULT_TIMEOUT=100 \ + PIP_DISABLE_PIP_VERSION_CHECK=on + +FROM python:3.10.5-slim@sha256:bdf0079de4094afdb26b94d9f89b716499436282c972461d945a87899c015c23 AS production + +ENV PORT=8000 \ + PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 diff --git a/helm/spec/fixtures/docker/dockerfiles/multiple b/helm/spec/fixtures/docker/dockerfiles/multiple new file mode 100644 index 00000000000..868601d76c6 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/multiple @@ -0,0 +1,20 @@ +FROM ubuntu:17.04 +FROM python:3.6.3 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/multiple_identical b/helm/spec/fixtures/docker/dockerfiles/multiple_identical new file mode 100644 index 00000000000..efe04d45494 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/multiple_identical @@ -0,0 +1,21 @@ +FROM node:10-alpine AS BUILD + +RUN apk add --no-cache git + +WORKDIR /application + +COPY package.json yarn.lock ./ + +RUN yarn + +COPY . . + +FROM node:10-alpine + +ENV NODE_PATH=/dependabot/node_modules + +COPY --from=BUILD /application/ /dependabot/ + +WORKDIR /application + +ENTRYPOINT ["/dependabot/node_modules/.bin/dependabot"] diff --git a/helm/spec/fixtures/docker/dockerfiles/name b/helm/spec/fixtures/docker/dockerfiles/name new file mode 100644 index 00000000000..698ea5cb30e --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/name @@ -0,0 +1,19 @@ +FROM ubuntu:17.04 AS my-image + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/namespace b/helm/spec/fixtures/docker/dockerfiles/namespace new file mode 100644 index 00000000000..e24b481cf7e --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/namespace @@ -0,0 +1,19 @@ +FROM my-fork/ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/namespace_digest b/helm/spec/fixtures/docker/dockerfiles/namespace_digest new file mode 100644 index 00000000000..7ed38eadd3f --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/namespace_digest @@ -0,0 +1,19 @@ +FROM my-fork/ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/platform b/helm/spec/fixtures/docker/dockerfiles/platform new file mode 100644 index 00000000000..52add9aac0b --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/platform @@ -0,0 +1,21 @@ +FROM --platform=$BUILDPLATFORM node:10-alpine AS BUILD + +RUN apk add --no-cache git + +WORKDIR /application + +COPY package.json yarn.lock ./ + +RUN yarn + +COPY . . + +FROM node:10-alpine + +ENV NODE_PATH=/dependabot/node_modules + +COPY --from=BUILD /application/ /dependabot/ + +WORKDIR /application + +ENTRYPOINT ["/dependabot/node_modules/.bin/dependabot"] diff --git a/helm/spec/fixtures/docker/dockerfiles/private_digest b/helm/spec/fixtures/docker/dockerfiles/private_digest new file mode 100644 index 00000000000..f0458ce0a33 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/private_digest @@ -0,0 +1,19 @@ +FROM registry-host.io:5000/myreg/ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/private_no_port b/helm/spec/fixtures/docker/dockerfiles/private_no_port new file mode 100644 index 00000000000..7d537e6c0c0 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/private_no_port @@ -0,0 +1,19 @@ +FROM aws-account-id.dkr.ecr.region.amazonaws.com/myreg/ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/private_tag b/helm/spec/fixtures/docker/dockerfiles/private_tag new file mode 100644 index 00000000000..b97d6127cd8 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/private_tag @@ -0,0 +1,19 @@ +FROM registry-host.io:5000/myreg/ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/tag b/helm/spec/fixtures/docker/dockerfiles/tag new file mode 100644 index 00000000000..6f4205ac5b1 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/tag @@ -0,0 +1,19 @@ +FROM ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/underscore b/helm/spec/fixtures/docker/dockerfiles/underscore new file mode 100644 index 00000000000..694284ae8f1 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/underscore @@ -0,0 +1,18 @@ +FROM registry-host.io:5000/myreg/ubuntu:someRepo_19700101.4 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/dockerfiles/v1_tag b/helm/spec/fixtures/docker/dockerfiles/v1_tag new file mode 100644 index 00000000000..49ab20713f3 --- /dev/null +++ b/helm/spec/fixtures/docker/dockerfiles/v1_tag @@ -0,0 +1,19 @@ +FROM docker.io/myreg/ubuntu:17.04 + +### SYSTEM DEPENDENCIES + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y --no-install-recommends \ + build-essential \ + dirmngr \ + git \ + + +### RUBY + +# Install Ruby 2.4 +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C3173AA6 \ + && echo "deb http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu zesty main" > /etc/apt/sources.list.d/brightbox.list \ + && apt-get update +RUN apt-get install -y ruby2.4 ruby2.4-dev diff --git a/helm/spec/fixtures/docker/ecr_responses/auth_data b/helm/spec/fixtures/docker/ecr_responses/auth_data new file mode 100644 index 00000000000..47f672438dc --- /dev/null +++ b/helm/spec/fixtures/docker/ecr_responses/auth_data @@ -0,0 +1,9 @@ +{ + "authorizationData": [ + { + "authorizationToken": "QVdTOnNlY3JldF9hd3NfcGFzc3dvcmQ=\n", + "expiresAt": 1538275066.46, + "proxyEndpoint": "https://695729449481.dkr.ecr.eu-west-2.amazonaws.com" + } + ] +} diff --git a/helm/spec/fixtures/docker/ecr_responses/invalid_signature_exception b/helm/spec/fixtures/docker/ecr_responses/invalid_signature_exception new file mode 100644 index 00000000000..d7c53366072 --- /dev/null +++ b/helm/spec/fixtures/docker/ecr_responses/invalid_signature_exception @@ -0,0 +1,4 @@ +{ + "__type": "InvalidSignatureException", + "message": "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details." +} diff --git a/helm/spec/fixtures/docker/ecr_responses/invalid_token b/helm/spec/fixtures/docker/ecr_responses/invalid_token new file mode 100644 index 00000000000..9bfdc6f4761 --- /dev/null +++ b/helm/spec/fixtures/docker/ecr_responses/invalid_token @@ -0,0 +1,4 @@ +{ + "__type": "UnrecognizedClientException", + "message": "The security token included in the request is invalid." +} diff --git a/helm/spec/fixtures/docker/registry_manifest_headers/generic.json b/helm/spec/fixtures/docker/registry_manifest_headers/generic.json new file mode 100644 index 00000000000..b8ba6200e54 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_manifest_headers/generic.json @@ -0,0 +1,11 @@ +{ + "content_length": "1357", + "content_type": "application/vnd.docker.distribution.manifest.v2+json", + "date": "Thu, 12 Oct 2017 07:19:25 GMT", + "docker_content_digest": + "sha256:3ea1ca1aa8483a38081750953ad75046e6cc9f6b86ca97eba880ebf600d68608", + "docker_distribution_api_version": "registry/2.0", + "etag": + "\"sha256:3ea1ca1aa8483a38081750953ad75046e6cc9f6b86ca97eba880ebf600d68608\"", + "strict_transport_security": "max-age=31536000" +} diff --git a/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_12.04.5.json b/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_12.04.5.json new file mode 100644 index 00000000000..38e0df030c6 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_12.04.5.json @@ -0,0 +1,9 @@ +{ + "content_length": "1359", + "content_type": "application/vnd.docker.distribution.manifest.v2+json", + "date": "Wed, 11 Oct 2017 20:57:28 GMT", + "docker_content_digest": "sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005", + "docker_distribution_api_version": "registry/2.0", + "etag": "\"sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005\"", + "strict_transport_security": "max-age=31536000" +} diff --git a/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_17.10.json b/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_17.10.json new file mode 100644 index 00000000000..03363a3b130 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_manifest_headers/ubuntu_17.10.json @@ -0,0 +1,11 @@ +{ + "content_length": "1357", + "content_type": "application/vnd.docker.distribution.manifest.v2+json", + "date": "Thu, 12 Oct 2017 07:19:25 GMT", + "docker_content_digest": + "sha256:3ea1ca1aa8483a38081750953ad75046e6cc9f6b86ca97eba880ebf600d68608", + "docker_distribution_api_version": "registry/2.0", + "etag": + "\"sha256:3ea1ca1aa8483a38081750953ad75046e6cc9f6b86ca97eba880ebf600d68608\"", + "strict_transport_security": "max-age=31536000" +} diff --git a/helm/spec/fixtures/docker/registry_pagination_headers/next_link.json b/helm/spec/fixtures/docker/registry_pagination_headers/next_link.json new file mode 100644 index 00000000000..7e804459388 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_pagination_headers/next_link.json @@ -0,0 +1,8 @@ +{ + "connection": "keep-alive", + "content_length": "92", + "content_type": "text/plain; charset=utf-8", + "date": "Fri, 28 Jun 2019 12:18:02 GMT", + "docker_distribution_api_version": "registry/2.0", + "link": "; rel=\"next\"" +} diff --git a/helm/spec/fixtures/docker/registry_pagination_headers/no_next_link.json b/helm/spec/fixtures/docker/registry_pagination_headers/no_next_link.json new file mode 100644 index 00000000000..e81b0e53721 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_pagination_headers/no_next_link.json @@ -0,0 +1,7 @@ +{ + "connection": "keep-alive", + "content_length": "92", + "content_type": "text/plain; charset=utf-8", + "date": "Fri, 28 Jun 2019 12:18:02 GMT", + "docker_distribution_api_version": "registry/2.0" +} diff --git a/helm/spec/fixtures/docker/registry_tags/bar.json b/helm/spec/fixtures/docker/registry_tags/bar.json new file mode 100644 index 00000000000..37ad0677bc9 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/bar.json @@ -0,0 +1,7 @@ +{ + "name": "foo/bar", + "tags": [ + "3.10-master-777", + "3.10-master-999" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/bar_with_v.json b/helm/spec/fixtures/docker/registry_tags/bar_with_v.json new file mode 100644 index 00000000000..ab465c27fc0 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/bar_with_v.json @@ -0,0 +1,7 @@ +{ + "name": "foo/bar", + "tags": [ + "v3.10-master-777", + "v3.10-master-999" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/baz.json b/helm/spec/fixtures/docker/registry_tags/baz.json new file mode 100644 index 00000000000..26cc595e25a --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/baz.json @@ -0,0 +1,7 @@ +{ + "name": "foo/baz", + "tags": [ + "11-jdk-master-111", + "11-jdk-master-222" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/date_sha.json b/helm/spec/fixtures/docker/registry_tags/date_sha.json new file mode 100644 index 00000000000..a736d56ec47 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/date_sha.json @@ -0,0 +1,7 @@ +{ + "name": "foo/bar", + "tags": [ + "20231101-230548-g159857a0b", + "20231203-230414-gd53f37589" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/dotnet.json b/helm/spec/fixtures/docker/registry_tags/dotnet.json new file mode 100644 index 00000000000..b35117d74a0 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/dotnet.json @@ -0,0 +1,1019 @@ +{ + "name": "microsoft/dotnet", + "tags": [ + "1-core-deps", + "1-core", + "1-nanoserver-core", + "1-nanoserver-runtime", + "1-runtime-deps", + "1-runtime-nanoserver-10.0.14393.1066", + "1-runtime-nanoserver-10.0.14393.1198", + "1-runtime-nanoserver-10.0.14393.1358", + "1-runtime-nanoserver-10.0.14393.1480", + "1-runtime-nanoserver-10.0.14393.1593", + "1-runtime-nanoserver-10.0.14393.1715", + "1-runtime-nanoserver-10.0.14393.447", + "1-runtime-nanoserver-10.0.14393.576", + "1-runtime-nanoserver-10.0.14393.693", + "1-runtime-nanoserver-10.0.14393.953", + "1-runtime-nanoserver", + "1-runtime", + "1-sdk-msbuild-nanoserver-10.0.14393.693", + "1-sdk-msbuild-nanoserver", + "1-sdk-msbuild", + "1-sdk-nanoserver-10.0.14393.1066", + "1-sdk-nanoserver-10.0.14393.1198", + "1-sdk-nanoserver-10.0.14393.1358", + "1-sdk-nanoserver-10.0.14393.1480", + "1-sdk-nanoserver-10.0.14393.1593", + "1-sdk-nanoserver-10.0.14393.1715", + "1-sdk-nanoserver-10.0.14393.693", + "1-sdk-nanoserver-10.0.14393.953", + "1-sdk-nanoserver", + "1-sdk-projectjson-nanoserver-10.0.14393.447", + "1-sdk-projectjson-nanoserver-10.0.14393.576", + "1-sdk-projectjson-nanoserver-10.0.14393.693", + "1-sdk-projectjson-nanoserver", + "1-sdk-projectjson", + "1-sdk", + "1-windowsservercore-core", + "1.0-core-deps", + "1.0-core", + "1.0-nanoserver-core", + "1.0-nanoserver-runtime", + "1.0-runtime-deps-jessie", + "1.0-runtime-deps", + "1.0-runtime-jessie", + "1.0-runtime-nanoserver-10.0.14393.1066", + "1.0-runtime-nanoserver-10.0.14393.1198", + "1.0-runtime-nanoserver-10.0.14393.1358", + "1.0-runtime-nanoserver-10.0.14393.1480", + "1.0-runtime-nanoserver-10.0.14393.1593", + "1.0-runtime-nanoserver-10.0.14393.1715", + "1.0-runtime-nanoserver-10.0.14393.447", + "1.0-runtime-nanoserver-10.0.14393.576", + "1.0-runtime-nanoserver-10.0.14393.693", + "1.0-runtime-nanoserver-10.0.14393.953", + "1.0-runtime-nanoserver-sac2016", + "1.0-runtime-nanoserver", + "1.0-runtime", + "1.0-sdk-msbuild-nanoserver-10.0.14393.693", + "1.0-sdk-msbuild-nanoserver", + "1.0-sdk-msbuild", + "1.0-sdk-nanoserver-10.0.14393.1066", + "1.0-sdk-nanoserver-10.0.14393.1198", + "1.0-sdk-nanoserver-10.0.14393.1358", + "1.0-sdk-nanoserver-10.0.14393.1480", + "1.0-sdk-nanoserver-10.0.14393.1593", + "1.0-sdk-nanoserver-10.0.14393.1715", + "1.0-sdk-nanoserver-10.0.14393.693", + "1.0-sdk-nanoserver-10.0.14393.953", + "1.0-sdk-nanoserver", + "1.0-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0-sdk-projectjson-nanoserver-10.0.14393.576", + "1.0-sdk-projectjson-nanoserver-10.0.14393.693", + "1.0-sdk-projectjson-nanoserver", + "1.0-sdk-projectjson", + "1.0-sdk", + "1.0-windowsservercore-core", + "1.0.0-core-deps", + "1.0.0-core", + "1.0.0-nanoserver-core", + "1.0.0-preview1-onbuild", + "1.0.0-preview1", + "1.0.0-preview2-nanoserver-10.0.14300.1030-onbuild", + "1.0.0-preview2-nanoserver-10.0.14300.1030-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.206-onbuild", + "1.0.0-preview2-nanoserver-10.0.14393.206-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.321-onbuild", + "1.0.0-preview2-nanoserver-10.0.14393.321-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.447-sdk", + "1.0.0-preview2-nanoserver-onbuild", + "1.0.0-preview2-nanoserver-sdk", + "1.0.0-preview2-onbuild", + "1.0.0-preview2-sdk", + "1.0.0-preview2-windowsservercore-10.0.14300.1030-onbuild", + "1.0.0-preview2-windowsservercore-10.0.14300.1030-sdk", + "1.0.0-preview2-windowsservercore-10.0.14393.206-onbuild", + "1.0.0-preview2-windowsservercore-10.0.14393.206-sdk", + "1.0.0-preview2-windowsservercore-onbuild", + "1.0.0-preview2-windowsservercore-sdk", + "1.0.0-preview2.1-nanoserver-10.0.14393.321-sdk", + "1.0.0-preview2.1-nanoserver-10.0.14393.447-sdk", + "1.0.0-preview2.1-nanoserver-sdk", + "1.0.0-preview2.1-sdk", + "1.0.0-rc2-core-deps", + "1.0.0-rc2-core", + "1.0.0-windowsservercore-core", + "1.0.1-core-deps", + "1.0.1-core", + "1.0.1-nanoserver-10.0.14300.1030-core", + "1.0.1-nanoserver-10.0.14393.206-core", + "1.0.1-nanoserver-10.0.14393.321-core", + "1.0.1-nanoserver-10.0.14393.321-runtime", + "1.0.1-nanoserver-10.0.14393.447-core", + "1.0.1-nanoserver-10.0.14393.447-runtime", + "1.0.1-nanoserver-core", + "1.0.1-nanoserver-runtime", + "1.0.1-runtime-deps", + "1.0.1-runtime-nanoserver-10.0.14393.447", + "1.0.1-runtime-nanoserver", + "1.0.1-runtime", + "1.0.1-sdk-msbuild", + "1.0.1-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0.1-sdk-projectjson-nanoserver", + "1.0.1-sdk-projectjson", + "1.0.1-windowsservercore-10.0.14300.1030-core", + "1.0.1-windowsservercore-10.0.14393.206-core", + "1.0.1-windowsservercore-core", + "1.0.10-runtime-deps-jessie", + "1.0.10-runtime-deps", + "1.0.10-runtime-jessie", + "1.0.10-runtime-nanoserver-sac2016", + "1.0.10-runtime", + "1.0.11-runtime-deps-jessie", + "1.0.11-runtime-deps", + "1.0.11-runtime-jessie", + "1.0.11-runtime-nanoserver-sac2016", + "1.0.11-runtime", + "1.0.12-runtime-deps-jessie", + "1.0.12-runtime-deps", + "1.0.12-runtime-jessie", + "1.0.12-runtime-nanoserver-sac2016", + "1.0.12-runtime", + "1.0.3-core-deps", + "1.0.3-core", + "1.0.3-runtime-deps", + "1.0.3-runtime-nanoserver-10.0.14393.447", + "1.0.3-runtime-nanoserver-10.0.14393.576", + "1.0.3-runtime-nanoserver-10.0.14393.693", + "1.0.3-runtime-nanoserver", + "1.0.3-runtime", + "1.0.3-sdk-msbuild-rc3-nanoserver-10.0.14393.693", + "1.0.3-sdk-msbuild-rc3-nanoserver", + "1.0.3-sdk-msbuild-rc3", + "1.0.3-sdk-msbuild-rc4-nanoserver-10.0.14393.693", + "1.0.3-sdk-msbuild-rc4-nanoserver", + "1.0.3-sdk-msbuild-rc4", + "1.0.3-sdk-msbuild", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.576", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.693", + "1.0.3-sdk-projectjson-nanoserver", + "1.0.3-sdk-projectjson", + "1.0.4-core-deps", + "1.0.4-core", + "1.0.4-runtime-deps", + "1.0.4-runtime-nanoserver-10.0.14393.1066", + "1.0.4-runtime-nanoserver-10.0.14393.693", + "1.0.4-runtime-nanoserver-10.0.14393.953", + "1.0.4-runtime-nanoserver", + "1.0.4-runtime", + "1.0.4-sdk-1.0.0-nanoserver-10.0.14393.693", + "1.0.4-sdk-1.0.0-nanoserver", + "1.0.4-sdk-1.0.0", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.1066", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.693", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.953", + "1.0.4-sdk-1.0.1-nanoserver", + "1.0.4-sdk-1.0.1", + "1.0.4-sdk-nanoserver-10.0.14393.1066", + "1.0.4-sdk-nanoserver-10.0.14393.693", + "1.0.4-sdk-nanoserver-10.0.14393.953", + "1.0.4-sdk-nanoserver", + "1.0.4-sdk", + "1.0.5-core-deps", + "1.0.5-core", + "1.0.5-runtime-deps-jessie", + "1.0.5-runtime-deps", + "1.0.5-runtime-jessie", + "1.0.5-runtime-nanoserver-10.0.14393.1066", + "1.0.5-runtime-nanoserver-10.0.14393.1198", + "1.0.5-runtime-nanoserver-10.0.14393.1358", + "1.0.5-runtime-nanoserver-10.0.14393.1480", + "1.0.5-runtime-nanoserver-10.0.14393.1593", + "1.0.5-runtime-nanoserver-10.0.14393.1715", + "1.0.5-runtime-nanoserver", + "1.0.5-runtime", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1066", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1198", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1358", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1480", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1593", + "1.0.5-sdk-1.0.4-nanoserver", + "1.0.5-sdk-1.0.4", + "1.0.5-sdk-1.1.0-nanoserver-10.0.14393.1593", + "1.0.5-sdk-1.1.0-nanoserver-10.0.14393.1715", + "1.0.5-sdk-1.1.0-nanoserver", + "1.0.5-sdk-1.1.0", + "1.0.5-sdk-jessie", + "1.0.5-sdk-nanoserver-10.0.14393.1066", + "1.0.5-sdk-nanoserver-10.0.14393.1198", + "1.0.5-sdk-nanoserver-10.0.14393.1358", + "1.0.5-sdk-nanoserver-10.0.14393.1480", + "1.0.5-sdk-nanoserver-10.0.14393.1593", + "1.0.5-sdk-nanoserver-10.0.14393.1715", + "1.0.5-sdk-nanoserver", + "1.0.5-sdk", + "1.0.7-runtime-deps-jessie", + "1.0.7-runtime-deps", + "1.0.7-runtime-jessie", + "1.0.7-runtime-nanoserver-10.0.14393.1715", + "1.0.7-runtime-nanoserver-10.0.14393.1770", + "1.0.7-runtime-nanoserver-sac2016", + "1.0.7-runtime-nanoserver", + "1.0.7-runtime", + "1.0.7-sdk-jessie", + "1.0.7-sdk-nanoserver-10.0.14393.1715", + "1.0.7-sdk-nanoserver-10.0.14393.1770", + "1.0.7-sdk-nanoserver", + "1.0.7-sdk", + "1.0.8-runtime-deps-jessie", + "1.0.8-runtime-deps", + "1.0.8-runtime-jessie", + "1.0.8-runtime-nanoserver-sac2016", + "1.0.8-runtime", + "1.0.9-runtime-deps-jessie", + "1.0.9-runtime-deps", + "1.0.9-runtime-jessie", + "1.0.9-runtime-nanoserver-sac2016", + "1.0.9-runtime", + "1.1-runtime-deps", + "1.1-runtime-jessie", + "1.1-runtime-nanoserver-10.0.14393.1066", + "1.1-runtime-nanoserver-10.0.14393.1198", + "1.1-runtime-nanoserver-10.0.14393.1358", + "1.1-runtime-nanoserver-10.0.14393.1480", + "1.1-runtime-nanoserver-10.0.14393.1593", + "1.1-runtime-nanoserver-10.0.14393.1715", + "1.1-runtime-nanoserver-10.0.14393.447", + "1.1-runtime-nanoserver-10.0.14393.576", + "1.1-runtime-nanoserver-10.0.14393.693", + "1.1-runtime-nanoserver-10.0.14393.953", + "1.1-runtime-nanoserver-sac2016", + "1.1-runtime-nanoserver", + "1.1-runtime", + "1.1-sdk-jessie", + "1.1-sdk-msbuild-nanoserver-10.0.14393.693", + "1.1-sdk-msbuild-nanoserver", + "1.1-sdk-msbuild", + "1.1-sdk-nanoserver-10.0.14393.1066", + "1.1-sdk-nanoserver-10.0.14393.1198", + "1.1-sdk-nanoserver-10.0.14393.1358", + "1.1-sdk-nanoserver-10.0.14393.1480", + "1.1-sdk-nanoserver-10.0.14393.1593", + "1.1-sdk-nanoserver-10.0.14393.1715", + "1.1-sdk-nanoserver-10.0.14393.693", + "1.1-sdk-nanoserver-10.0.14393.953", + "1.1-sdk-nanoserver-sac2016", + "1.1-sdk-nanoserver", + "1.1-sdk-projectjson-nanoserver-10.0.14393.447", + "1.1-sdk-projectjson-nanoserver-10.0.14393.576", + "1.1-sdk-projectjson-nanoserver-10.0.14393.693", + "1.1-sdk-projectjson-nanoserver", + "1.1-sdk-projectjson", + "1.1-sdk", + "1.1.0-preview1-core-deps", + "1.1.0-preview1-core", + "1.1.0-preview1-nanoserver-10.0.14393.321-core", + "1.1.0-preview1-nanoserver-10.0.14393.321-runtime", + "1.1.0-preview1-nanoserver-10.0.14393.447-runtime", + "1.1.0-preview1-nanoserver-core", + "1.1.0-preview1-nanoserver-runtime", + "1.1.0-preview1-runtime-deps", + "1.1.0-preview1-runtime", + "1.1.0-runtime-deps", + "1.1.0-runtime-nanoserver-10.0.14393.447", + "1.1.0-runtime-nanoserver-10.0.14393.576", + "1.1.0-runtime-nanoserver-10.0.14393.693", + "1.1.0-runtime-nanoserver", + "1.1.0-runtime", + "1.1.0-sdk-msbuild-rc3-nanoserver-10.0.14393.693", + "1.1.0-sdk-msbuild-rc3-nanoserver", + "1.1.0-sdk-msbuild-rc3", + "1.1.0-sdk-msbuild-rc4-nanoserver-10.0.14393.693", + "1.1.0-sdk-msbuild-rc4-nanoserver", + "1.1.0-sdk-msbuild-rc4", + "1.1.0-sdk-msbuild", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.447", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.576", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.693", + "1.1.0-sdk-projectjson-nanoserver", + "1.1.0-sdk-projectjson", + "1.1.1-runtime-deps", + "1.1.1-runtime-nanoserver-10.0.14393.1066", + "1.1.1-runtime-nanoserver-10.0.14393.693", + "1.1.1-runtime-nanoserver-10.0.14393.953", + "1.1.1-runtime-nanoserver", + "1.1.1-runtime", + "1.1.1-sdk-1.0.0-nanoserver-10.0.14393.693", + "1.1.1-sdk-1.0.0-nanoserver", + "1.1.1-sdk-1.0.0", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.1066", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.693", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.953", + "1.1.1-sdk-1.0.1-nanoserver", + "1.1.1-sdk-1.0.1", + "1.1.1-sdk-nanoserver-10.0.14393.1066", + "1.1.1-sdk-nanoserver-10.0.14393.693", + "1.1.1-sdk-nanoserver-10.0.14393.953", + "1.1.1-sdk-nanoserver", + "1.1.1-sdk", + "1.1.2-runtime-deps-jessie", + "1.1.2-runtime-deps", + "1.1.2-runtime-jessie", + "1.1.2-runtime-nanoserver-10.0.14393.1066", + "1.1.2-runtime-nanoserver-10.0.14393.1198", + "1.1.2-runtime-nanoserver-10.0.14393.1358", + "1.1.2-runtime-nanoserver-10.0.14393.1480", + "1.1.2-runtime-nanoserver-10.0.14393.1593", + "1.1.2-runtime-nanoserver-10.0.14393.1715", + "1.1.2-runtime-nanoserver", + "1.1.2-runtime", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1066", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1198", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1358", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1480", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1593", + "1.1.2-sdk-1.0.4-nanoserver", + "1.1.2-sdk-1.0.4", + "1.1.2-sdk-1.1.0-nanoserver-10.0.14393.1593", + "1.1.2-sdk-1.1.0-nanoserver-10.0.14393.1715", + "1.1.2-sdk-1.1.0-nanoserver", + "1.1.2-sdk-1.1.0", + "1.1.2-sdk-jessie", + "1.1.2-sdk-nanoserver-10.0.14393.1066", + "1.1.2-sdk-nanoserver-10.0.14393.1198", + "1.1.2-sdk-nanoserver-10.0.14393.1358", + "1.1.2-sdk-nanoserver-10.0.14393.1480", + "1.1.2-sdk-nanoserver-10.0.14393.1593", + "1.1.2-sdk-nanoserver-10.0.14393.1715", + "1.1.2-sdk-nanoserver", + "1.1.2-sdk", + "1.1.4-runtime-deps-jessie", + "1.1.4-runtime-deps", + "1.1.4-runtime-jessie", + "1.1.4-runtime-nanoserver-10.0.14393.1715", + "1.1.4-runtime-nanoserver-10.0.14393.1770", + "1.1.4-runtime-nanoserver-sac2016", + "1.1.4-runtime-nanoserver", + "1.1.4-runtime", + "1.1.4-sdk-jessie", + "1.1.4-sdk-nanoserver-10.0.14393.1715", + "1.1.4-sdk-nanoserver-10.0.14393.1770", + "1.1.4-sdk-nanoserver-sac2016", + "1.1.4-sdk-nanoserver", + "1.1.4-sdk", + "1.1.5-runtime-jessie", + "1.1.5-runtime-nanoserver-sac2016", + "1.1.5-runtime", + "1.1.5-sdk-1.1.6-jessie", + "1.1.5-sdk-1.1.6-nanoserver-sac2016", + "1.1.5-sdk-1.1.6", + "1.1.5-sdk-jessie", + "1.1.5-sdk-nanoserver-sac2016", + "1.1.5-sdk", + "1.1.6-runtime-jessie", + "1.1.6-runtime-nanoserver-sac2016", + "1.1.6-runtime", + "1.1.6-sdk-1.1.7-jessie", + "1.1.6-sdk-1.1.7-nanoserver-sac2016", + "1.1.6-sdk-1.1.7", + "1.1.7-runtime-jessie", + "1.1.7-runtime-nanoserver-sac2016", + "1.1.7-runtime", + "1.1.7-sdk-1.1.8-jessie", + "1.1.7-sdk-1.1.8-nanoserver-sac2016", + "1.1.7-sdk-1.1.8", + "1.1.8-runtime-jessie", + "1.1.8-runtime-nanoserver-sac2016", + "1.1.8-runtime", + "1.1.8-sdk-1.1.9-jessie", + "1.1.8-sdk-1.1.9-nanoserver-sac2016", + "1.1.8-sdk-1.1.9", + "1.1.9-runtime-jessie", + "1.1.9-runtime-nanoserver-sac2016", + "1.1.9-runtime", + "1.1.9-sdk-1.1.10-jessie", + "1.1.9-sdk-1.1.10-nanoserver-sac2016", + "1.1.9-sdk-1.1.10", + "2-aspnetcore-runtime", + "2-runtime-deps-jessie", + "2-runtime-deps-stretch-arm32v7", + "2-runtime-deps", + "2-runtime-jessie", + "2-runtime-nanoserver-10.0.14393.1198", + "2-runtime-nanoserver-10.0.14393.1358", + "2-runtime-nanoserver-10.0.14393.1480", + "2-runtime-nanoserver-10.0.14393.1593", + "2-runtime-nanoserver-10.0.14393.1715", + "2-runtime-nanoserver", + "2-runtime-stretch-arm32v7", + "2-runtime", + "2-sdk-jessie", + "2-sdk-nanoserver-10.0.14393.1198", + "2-sdk-nanoserver-10.0.14393.1358", + "2-sdk-nanoserver-10.0.14393.1480", + "2-sdk-nanoserver-10.0.14393.1593", + "2-sdk-nanoserver-10.0.14393.1715", + "2-sdk-nanoserver", + "2-sdk", + "2.0-runtime-deps-jessie", + "2.0-runtime-deps-stretch-arm32v7", + "2.0-runtime-deps-stretch", + "2.0-runtime-deps", + "2.0-runtime-jessie", + "2.0-runtime-nanoserver-10.0.14393.1198", + "2.0-runtime-nanoserver-10.0.14393.1358", + "2.0-runtime-nanoserver-10.0.14393.1480", + "2.0-runtime-nanoserver-10.0.14393.1593", + "2.0-runtime-nanoserver-10.0.14393.1715", + "2.0-runtime-nanoserver-1709", + "2.0-runtime-nanoserver-1803", + "2.0-runtime-nanoserver-sac2016", + "2.0-runtime-nanoserver", + "2.0-runtime-stretch-arm32v7", + "2.0-runtime-stretch", + "2.0-runtime", + "2.0-sdk-jessie", + "2.0-sdk-nanoserver-10.0.14393.1198", + "2.0-sdk-nanoserver-10.0.14393.1358", + "2.0-sdk-nanoserver-10.0.14393.1480", + "2.0-sdk-nanoserver-10.0.14393.1593", + "2.0-sdk-nanoserver-10.0.14393.1715", + "2.0-sdk-nanoserver-1709", + "2.0-sdk-nanoserver-1803", + "2.0-sdk-nanoserver-sac2016", + "2.0-sdk-nanoserver", + "2.0-sdk-stretch", + "2.0-sdk", + "2.0.0-preview1-runtime-deps-jessie", + "2.0.0-preview1-runtime-deps", + "2.0.0-preview1-runtime-jessie", + "2.0.0-preview1-runtime-nanoserver-10.0.14393.1198", + "2.0.0-preview1-runtime-nanoserver-10.0.14393.1358", + "2.0.0-preview1-runtime-nanoserver", + "2.0.0-preview1-runtime", + "2.0.0-preview1-sdk-jessie", + "2.0.0-preview1-sdk-nanoserver-10.0.14393.1198", + "2.0.0-preview1-sdk-nanoserver-10.0.14393.1358", + "2.0.0-preview1-sdk-nanoserver", + "2.0.0-preview1-sdk", + "2.0.0-preview2-runtime-deps-jessie", + "2.0.0-preview2-runtime-deps-stretch", + "2.0.0-preview2-runtime-deps", + "2.0.0-preview2-runtime-jessie", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1358", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1480", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1593", + "2.0.0-preview2-runtime-nanoserver", + "2.0.0-preview2-runtime-stretch", + "2.0.0-preview2-runtime", + "2.0.0-preview2-sdk-jessie", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1358", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1480", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1593", + "2.0.0-preview2-sdk-nanoserver", + "2.0.0-preview2-sdk-stretch", + "2.0.0-preview2-sdk", + "2.0.0-runtime-deps-jessie", + "2.0.0-runtime-deps-stretch-arm32v7", + "2.0.0-runtime-deps-stretch", + "2.0.0-runtime-deps", + "2.0.0-runtime-jessie", + "2.0.0-runtime-nanoserver-10.0.14393.1593", + "2.0.0-runtime-nanoserver-10.0.14393.1715", + "2.0.0-runtime-nanoserver-10.0.14393.1770", + "2.0.0-runtime-nanoserver-1709", + "2.0.0-runtime-nanoserver-sac2016", + "2.0.0-runtime-nanoserver", + "2.0.0-runtime-stretch-arm32v7", + "2.0.0-runtime-stretch", + "2.0.0-runtime", + "2.0.0-sdk-2.0.2-jessie", + "2.0.0-sdk-2.0.2-nanoserver-10.0.14393.1770", + "2.0.0-sdk-2.0.2-nanoserver-1709", + "2.0.0-sdk-2.0.2-nanoserver-sac2016", + "2.0.0-sdk-2.0.2-nanoserver", + "2.0.0-sdk-2.0.2-stretch", + "2.0.0-sdk-2.0.2", + "2.0.0-sdk-jessie", + "2.0.0-sdk-nanoserver-10.0.14393.1593", + "2.0.0-sdk-nanoserver-10.0.14393.1715", + "2.0.0-sdk-nanoserver-2.0.2-10.0.14393.1715", + "2.0.0-sdk-nanoserver-2.0.2-10.0.14393.1770", + "2.0.0-sdk-nanoserver-2.0.2", + "2.0.0-sdk-nanoserver", + "2.0.0-sdk-stretch", + "2.0.0-sdk", + "2.0.3-runtime-deps-jessie", + "2.0.3-runtime-deps-stretch-arm32v7", + "2.0.3-runtime-deps-stretch", + "2.0.3-runtime-deps", + "2.0.3-runtime-jessie", + "2.0.3-runtime-nanoserver-1709", + "2.0.3-runtime-nanoserver-sac2016", + "2.0.3-runtime-stretch-arm32v7", + "2.0.3-runtime-stretch", + "2.0.3-runtime", + "2.0.3-sdk-2.1.2-jessie", + "2.0.3-sdk-2.1.2-nanoserver-1709", + "2.0.3-sdk-2.1.2-nanoserver-sac2016", + "2.0.3-sdk-2.1.2-stretch", + "2.0.3-sdk-2.1.2", + "2.0.3-sdk-jessie", + "2.0.3-sdk-nanoserver-1709", + "2.0.3-sdk-nanoserver-sac2016", + "2.0.3-sdk-stretch", + "2.0.3-sdk", + "2.0.4-runtime-deps-jessie", + "2.0.4-runtime-deps-stretch-arm32v7", + "2.0.4-runtime-deps-stretch", + "2.0.4-runtime-deps", + "2.0.4-runtime-jessie", + "2.0.4-runtime-nanoserver-1709", + "2.0.4-runtime-nanoserver-sac2016", + "2.0.4-runtime-stretch-arm32v7", + "2.0.4-runtime-stretch", + "2.0.4-runtime", + "2.0.4-sdk-2.1.3-jessie", + "2.0.4-sdk-2.1.3-nanoserver-1709", + "2.0.4-sdk-2.1.3-nanoserver-sac2016", + "2.0.4-sdk-2.1.3-stretch", + "2.0.4-sdk-2.1.3", + "2.0.5-runtime-deps-jessie", + "2.0.5-runtime-deps-stretch-arm32v7", + "2.0.5-runtime-deps-stretch", + "2.0.5-runtime-deps", + "2.0.5-runtime-jessie", + "2.0.5-runtime-nanoserver-1709", + "2.0.5-runtime-nanoserver-sac2016", + "2.0.5-runtime-stretch-arm32v7", + "2.0.5-runtime-stretch", + "2.0.5-runtime", + "2.0.5-sdk-2.1.4-jessie", + "2.0.5-sdk-2.1.4-nanoserver-1709", + "2.0.5-sdk-2.1.4-nanoserver-sac2016", + "2.0.5-sdk-2.1.4-stretch", + "2.0.5-sdk-2.1.4", + "2.0.6-runtime-deps-jessie", + "2.0.6-runtime-deps-stretch-arm32v7", + "2.0.6-runtime-deps-stretch", + "2.0.6-runtime-deps", + "2.0.6-runtime-jessie", + "2.0.6-runtime-nanoserver-1709", + "2.0.6-runtime-nanoserver-sac2016", + "2.0.6-runtime-stretch-arm32v7", + "2.0.6-runtime-stretch", + "2.0.6-runtime", + "2.0.6-sdk-2.1.101-jessie", + "2.0.6-sdk-2.1.101-nanoserver-1709", + "2.0.6-sdk-2.1.101-nanoserver-sac2016", + "2.0.6-sdk-2.1.101-stretch", + "2.0.6-sdk-2.1.101", + "2.0.6-sdk-2.1.104-jessie", + "2.0.6-sdk-2.1.104-nanoserver-1709", + "2.0.6-sdk-2.1.104-nanoserver-sac2016", + "2.0.6-sdk-2.1.104-stretch", + "2.0.6-sdk-2.1.104", + "2.0.7-runtime-deps-jessie", + "2.0.7-runtime-deps-stretch-arm32v7", + "2.0.7-runtime-deps-stretch", + "2.0.7-runtime-deps", + "2.0.7-runtime-jessie", + "2.0.7-runtime-nanoserver-1709", + "2.0.7-runtime-nanoserver-1803", + "2.0.7-runtime-nanoserver-sac2016", + "2.0.7-runtime-stretch-arm32v7", + "2.0.7-runtime-stretch", + "2.0.7-runtime", + "2.0.7-sdk-2.1.105-jessie", + "2.0.7-sdk-2.1.105-nanoserver-1709", + "2.0.7-sdk-2.1.105-nanoserver-sac2016", + "2.0.7-sdk-2.1.105-stretch", + "2.0.7-sdk-2.1.105", + "2.0.7-sdk-2.1.200-jessie", + "2.0.7-sdk-2.1.200-nanoserver-1709", + "2.0.7-sdk-2.1.200-nanoserver-1803", + "2.0.7-sdk-2.1.200-nanoserver-sac2016", + "2.0.7-sdk-2.1.200-stretch", + "2.0.7-sdk-2.1.200", + "2.0.9-runtime-deps-jessie", + "2.0.9-runtime-deps-stretch", + "2.0.9-runtime-deps", + "2.0.9-runtime-jessie", + "2.0.9-runtime-nanoserver-1709", + "2.0.9-runtime-nanoserver-1803", + "2.0.9-runtime-nanoserver-sac2016", + "2.0.9-runtime-stretch", + "2.0.9-runtime", + "2.0.9-sdk-2.1.202-jessie", + "2.0.9-sdk-2.1.202-nanoserver-1709", + "2.0.9-sdk-2.1.202-nanoserver-1803", + "2.0.9-sdk-2.1.202-nanoserver-sac2016", + "2.0.9-sdk-2.1.202-stretch", + "2.0.9-sdk-2.1.202", + "2.1-aspnetcore-runtime-alpine", + "2.1-aspnetcore-runtime-alpine3.7", + "2.1-aspnetcore-runtime-bionic-arm32v7", + "2.1-aspnetcore-runtime-bionic", + "2.1-aspnetcore-runtime-nanoserver-1709", + "2.1-aspnetcore-runtime-nanoserver-1803", + "2.1-aspnetcore-runtime-nanoserver-sac2016", + "2.1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1-aspnetcore-runtime-stretch-slim", + "2.1-aspnetcore-runtime", + "2.1-runtime-alpine", + "2.1-runtime-alpine3.7", + "2.1-runtime-bionic-arm32v7", + "2.1-runtime-bionic", + "2.1-runtime-deps-alpine", + "2.1-runtime-deps-alpine3.7", + "2.1-runtime-deps-bionic-arm32v7", + "2.1-runtime-deps-bionic", + "2.1-runtime-deps-stretch-slim-arm32v7", + "2.1-runtime-deps-stretch-slim", + "2.1-runtime-deps", + "2.1-runtime-nanoserver-1709", + "2.1-runtime-nanoserver-1803", + "2.1-runtime-nanoserver-sac2016", + "2.1-runtime-stretch-slim-arm32v7", + "2.1-runtime-stretch-slim", + "2.1-runtime", + "2.1-sdk-alpine", + "2.1-sdk-alpine3.7", + "2.1-sdk-bionic-arm32v7", + "2.1-sdk-bionic", + "2.1-sdk-nanoserver-1709", + "2.1-sdk-nanoserver-1803", + "2.1-sdk-nanoserver-sac2016", + "2.1-sdk-stretch-arm32v7", + "2.1-sdk-stretch", + "2.1-sdk", + "2.1.0-aspnetcore-runtime-alpine", + "2.1.0-aspnetcore-runtime-alpine3.7", + "2.1.0-aspnetcore-runtime-bionic-arm32v7", + "2.1.0-aspnetcore-runtime-bionic", + "2.1.0-aspnetcore-runtime-nanoserver-1709", + "2.1.0-aspnetcore-runtime-nanoserver-1803", + "2.1.0-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.0-aspnetcore-runtime-stretch-slim", + "2.1.0-aspnetcore-runtime", + "2.1.0-preview1-runtime-alpine", + "2.1.0-preview1-runtime-bionic-arm32v7", + "2.1.0-preview1-runtime-bionic", + "2.1.0-preview1-runtime-deps-alpine", + "2.1.0-preview1-runtime-deps-bionic-arm32v7", + "2.1.0-preview1-runtime-deps-bionic", + "2.1.0-preview1-runtime-deps-stretch-slim-arm32v7", + "2.1.0-preview1-runtime-deps-stretch-slim", + "2.1.0-preview1-runtime-deps", + "2.1.0-preview1-runtime-nanoserver-1709", + "2.1.0-preview1-runtime-nanoserver-sac2016", + "2.1.0-preview1-runtime-stretch-slim-arm32v7", + "2.1.0-preview1-runtime-stretch-slim", + "2.1.0-preview1-runtime", + "2.1.0-preview2-aspnetcore-runtime-alpine", + "2.1.0-preview2-aspnetcore-runtime-bionic", + "2.1.0-preview2-aspnetcore-runtime-nanoserver-1709", + "2.1.0-preview2-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-preview2-aspnetcore-runtime-stretch-slim", + "2.1.0-preview2-aspnetcore-runtime", + "2.1.0-preview2-runtime-alpine", + "2.1.0-preview2-runtime-bionic-arm32v7", + "2.1.0-preview2-runtime-bionic", + "2.1.0-preview2-runtime-deps-alpine", + "2.1.0-preview2-runtime-deps-bionic-arm32v7", + "2.1.0-preview2-runtime-deps-bionic", + "2.1.0-preview2-runtime-deps-stretch-slim-arm32v7", + "2.1.0-preview2-runtime-deps-stretch-slim", + "2.1.0-preview2-runtime-deps", + "2.1.0-preview2-runtime-nanoserver-1709", + "2.1.0-preview2-runtime-nanoserver-sac2016", + "2.1.0-preview2-runtime-stretch-slim-arm32v7", + "2.1.0-preview2-runtime-stretch-slim", + "2.1.0-preview2-runtime", + "2.1.0-rc1-aspnetcore-runtime-alpine", + "2.1.0-rc1-aspnetcore-runtime-alpine3.7", + "2.1.0-rc1-aspnetcore-runtime-bionic-arm32v7", + "2.1.0-rc1-aspnetcore-runtime-bionic", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-1709", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-1803", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-rc1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.0-rc1-aspnetcore-runtime-stretch-slim", + "2.1.0-rc1-aspnetcore-runtime", + "2.1.0-rc1-runtime-alpine", + "2.1.0-rc1-runtime-alpine3.7", + "2.1.0-rc1-runtime-bionic-arm32v7", + "2.1.0-rc1-runtime-bionic", + "2.1.0-rc1-runtime-deps-alpine", + "2.1.0-rc1-runtime-deps-alpine3.7", + "2.1.0-rc1-runtime-deps-bionic-arm32v7", + "2.1.0-rc1-runtime-deps-bionic", + "2.1.0-rc1-runtime-deps-stretch-slim-arm32v7", + "2.1.0-rc1-runtime-deps-stretch-slim", + "2.1.0-rc1-runtime-deps", + "2.1.0-rc1-runtime-nanoserver-1709", + "2.1.0-rc1-runtime-nanoserver-1803", + "2.1.0-rc1-runtime-nanoserver-sac2016", + "2.1.0-rc1-runtime-stretch-slim-arm32v7", + "2.1.0-rc1-runtime-stretch-slim", + "2.1.0-rc1-runtime", + "2.1.0-runtime-alpine", + "2.1.0-runtime-alpine3.7", + "2.1.0-runtime-bionic-arm32v7", + "2.1.0-runtime-bionic", + "2.1.0-runtime-deps-alpine", + "2.1.0-runtime-deps-alpine3.7", + "2.1.0-runtime-deps-bionic-arm32v7", + "2.1.0-runtime-deps-bionic", + "2.1.0-runtime-deps-stretch-slim-arm32v7", + "2.1.0-runtime-deps-stretch-slim", + "2.1.0-runtime-deps", + "2.1.0-runtime-nanoserver-1709", + "2.1.0-runtime-nanoserver-1803", + "2.1.0-runtime-nanoserver-sac2016", + "2.1.0-runtime-stretch-slim-arm32v7", + "2.1.0-runtime-stretch-slim", + "2.1.0-runtime", + "2.1.1-aspnetcore-runtime-alpine", + "2.1.1-aspnetcore-runtime-alpine3.7", + "2.1.1-aspnetcore-runtime-bionic-arm32v7", + "2.1.1-aspnetcore-runtime-bionic", + "2.1.1-aspnetcore-runtime-nanoserver-1709", + "2.1.1-aspnetcore-runtime-nanoserver-1803", + "2.1.1-aspnetcore-runtime-nanoserver-sac2016", + "2.1.1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.1-aspnetcore-runtime-stretch-slim", + "2.1.1-aspnetcore-runtime", + "2.1.1-runtime-alpine", + "2.1.1-runtime-alpine3.7", + "2.1.1-runtime-bionic-arm32v7", + "2.1.1-runtime-bionic", + "2.1.1-runtime-deps-alpine", + "2.1.1-runtime-deps-alpine3.7", + "2.1.1-runtime-deps-bionic-arm32v7", + "2.1.1-runtime-deps-bionic", + "2.1.1-runtime-deps-stretch-slim-arm32v7", + "2.1.1-runtime-deps-stretch-slim", + "2.1.1-runtime-deps", + "2.1.1-runtime-nanoserver-1709", + "2.1.1-runtime-nanoserver-1803", + "2.1.1-runtime-nanoserver-sac2016", + "2.1.1-runtime-stretch-slim-arm32v7", + "2.1.1-runtime-stretch-slim", + "2.1.1-runtime", + "2.1.2-aspnetcore-runtime-alpine", + "2.1.2-aspnetcore-runtime-alpine3.7", + "2.1.2-aspnetcore-runtime-bionic-arm32v7", + "2.1.2-aspnetcore-runtime-bionic", + "2.1.2-aspnetcore-runtime-nanoserver-1709", + "2.1.2-aspnetcore-runtime-nanoserver-1803", + "2.1.2-aspnetcore-runtime-nanoserver-sac2016", + "2.1.2-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.2-aspnetcore-runtime-stretch-slim", + "2.1.2-aspnetcore-runtime", + "2.1.2-runtime-alpine", + "2.1.2-runtime-alpine3.7", + "2.1.2-runtime-bionic-arm32v7", + "2.1.2-runtime-bionic", + "2.1.2-runtime-deps-alpine", + "2.1.2-runtime-deps-alpine3.7", + "2.1.2-runtime-deps-bionic-arm32v7", + "2.1.2-runtime-deps-bionic", + "2.1.2-runtime-deps-stretch-slim-arm32v7", + "2.1.2-runtime-deps-stretch-slim", + "2.1.2-runtime-deps", + "2.1.2-runtime-nanoserver-1709", + "2.1.2-runtime-nanoserver-1803", + "2.1.2-runtime-nanoserver-sac2016", + "2.1.2-runtime-stretch-slim-arm32v7", + "2.1.2-runtime-stretch-slim", + "2.1.2-runtime", + "2.1.3-aspnetcore-runtime-alpine", + "2.1.3-aspnetcore-runtime-alpine3.7", + "2.1.3-aspnetcore-runtime-bionic-arm32v7", + "2.1.3-aspnetcore-runtime-bionic", + "2.1.3-aspnetcore-runtime-nanoserver-1709", + "2.1.3-aspnetcore-runtime-nanoserver-1803", + "2.1.3-aspnetcore-runtime-nanoserver-sac2016", + "2.1.3-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.3-aspnetcore-runtime-stretch-slim", + "2.1.3-aspnetcore-runtime", + "2.1.3-runtime-alpine", + "2.1.3-runtime-alpine3.7", + "2.1.3-runtime-bionic-arm32v7", + "2.1.3-runtime-bionic", + "2.1.3-runtime-deps-alpine", + "2.1.3-runtime-deps-alpine3.7", + "2.1.3-runtime-deps-bionic-arm32v7", + "2.1.3-runtime-deps-bionic", + "2.1.3-runtime-deps-stretch-slim-arm32v7", + "2.1.3-runtime-deps-stretch-slim", + "2.1.3-runtime-deps", + "2.1.3-runtime-nanoserver-1709", + "2.1.3-runtime-nanoserver-1803", + "2.1.3-runtime-nanoserver-sac2016", + "2.1.3-runtime-stretch-slim-arm32v7", + "2.1.3-runtime-stretch-slim", + "2.1.3-runtime", + "2.1.300-preview1-sdk-alpine", + "2.1.300-preview1-sdk-bionic", + "2.1.300-preview1-sdk-nanoserver-1709", + "2.1.300-preview1-sdk-nanoserver-sac2016", + "2.1.300-preview1-sdk-stretch", + "2.1.300-preview1-sdk", + "2.1.300-preview2-sdk-alpine", + "2.1.300-preview2-sdk-bionic-arm32v7", + "2.1.300-preview2-sdk-bionic", + "2.1.300-preview2-sdk-nanoserver-1709", + "2.1.300-preview2-sdk-nanoserver-sac2016", + "2.1.300-preview2-sdk-stretch-arm32v7", + "2.1.300-preview2-sdk-stretch", + "2.1.300-preview2-sdk", + "2.1.300-rc1-sdk-alpine", + "2.1.300-rc1-sdk-alpine3.7", + "2.1.300-rc1-sdk-bionic-arm32v7", + "2.1.300-rc1-sdk-bionic", + "2.1.300-rc1-sdk-nanoserver-1709", + "2.1.300-rc1-sdk-nanoserver-1803", + "2.1.300-rc1-sdk-nanoserver-sac2016", + "2.1.300-rc1-sdk-stretch-arm32v7", + "2.1.300-rc1-sdk-stretch", + "2.1.300-rc1-sdk", + "2.1.300-sdk-alpine", + "2.1.300-sdk-alpine3.7", + "2.1.300-sdk-bionic-arm32v7", + "2.1.300-sdk-bionic", + "2.1.300-sdk-nanoserver-1709", + "2.1.300-sdk-nanoserver-1803", + "2.1.300-sdk-nanoserver-sac2016", + "2.1.300-sdk-stretch-arm32v7", + "2.1.300-sdk-stretch", + "2.1.300-sdk", + "2.1.301-sdk-alpine", + "2.1.301-sdk-alpine3.7", + "2.1.301-sdk-bionic-arm32v7", + "2.1.301-sdk-bionic", + "2.1.301-sdk-nanoserver-1709", + "2.1.301-sdk-nanoserver-1803", + "2.1.301-sdk-nanoserver-sac2016", + "2.1.301-sdk-stretch-arm32v7", + "2.1.301-sdk-stretch", + "2.1.301-sdk", + "2.1.302-sdk-alpine", + "2.1.302-sdk-alpine3.7", + "2.1.302-sdk-bionic-arm32v7", + "2.1.302-sdk-bionic", + "2.1.302-sdk-nanoserver-1709", + "2.1.302-sdk-nanoserver-1803", + "2.1.302-sdk-nanoserver-sac2016", + "2.1.302-sdk-stretch-arm32v7", + "2.1.302-sdk-stretch", + "2.1.302-sdk", + "2.1.400-sdk-alpine", + "2.1.400-sdk-alpine3.7", + "2.1.400-sdk-bionic-arm32v7", + "2.1.400-sdk-bionic", + "2.1.400-sdk-nanoserver-1709", + "2.1.400-sdk-nanoserver-1803", + "2.1.400-sdk-nanoserver-sac2016", + "2.1.400-sdk-stretch-arm32v7", + "2.1.400-sdk-stretch", + "2.1.400-sdk", + "2.1.401-sdk-alpine", + "2.1.401-sdk-alpine3.7", + "2.1.401-sdk-bionic-arm32v7", + "2.1.401-sdk-bionic", + "2.1.401-sdk-nanoserver-1709", + "2.1.401-sdk-nanoserver-1803", + "2.1.401-sdk-nanoserver-sac2016", + "2.1.401-sdk-stretch-arm32v7", + "2.1.401-sdk-stretch", + "2.1.401-sdk", + "2.2-aspnetcore-runtime-alpine", + "2.2-aspnetcore-runtime-alpine3.8", + "2.2-aspnetcore-runtime-bionic-arm32v7", + "2.2-aspnetcore-runtime-bionic", + "2.2-aspnetcore-runtime-nanoserver-1709", + "2.2-aspnetcore-runtime-nanoserver-1803", + "2.2-aspnetcore-runtime-nanoserver-sac2016", + "2.2-aspnetcore-runtime-stretch-slim-arm32v7", + "2.2-aspnetcore-runtime-stretch-slim", + "2.2-aspnetcore-runtime", + "2.2-runtime-alpine", + "2.2-runtime-alpine3.8", + "2.2-runtime-bionic-arm32v7", + "2.2-runtime-bionic", + "2.2-runtime-deps-alpine", + "2.2-runtime-deps-alpine3.8", + "2.2-runtime-deps-bionic-arm32v7", + "2.2-runtime-deps-bionic", + "2.2-runtime-deps-stretch-slim-arm32v7", + "2.2-runtime-deps-stretch-slim", + "2.2-runtime-deps", + "2.2-runtime-nanoserver-1709", + "2.2-runtime-nanoserver-1803", + "2.2-runtime-nanoserver-sac2016", + "2.2-runtime-stretch-slim-arm32v7", + "2.2-runtime-stretch-slim", + "2.2-runtime", + "2.2-sdk-alpine", + "2.2-sdk-alpine3.8", + "2.2-sdk-bionic-arm32v7", + "2.2-sdk-bionic", + "2.2-sdk-nanoserver-1709", + "2.2-sdk-nanoserver-1803", + "2.2-sdk-nanoserver-sac2016", + "2.2-sdk-stretch-arm32v7", + "2.2-sdk-stretch", + "2.2-sdk", + "2.2.0-preview1-aspnetcore-runtime-alpine", + "2.2.0-preview1-aspnetcore-runtime-alpine3.8", + "2.2.0-preview1-aspnetcore-runtime-bionic-arm32v7", + "2.2.0-preview1-aspnetcore-runtime-bionic", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-1709", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-1803", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-sac2016", + "2.2.0-preview1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.2.0-preview1-aspnetcore-runtime-stretch-slim", + "2.2.0-preview1-aspnetcore-runtime", + "2.2.0-preview1-runtime-alpine", + "2.2.0-preview1-runtime-alpine3.8", + "2.2.0-preview1-runtime-bionic-arm32v7", + "2.2.0-preview1-runtime-bionic", + "2.2.0-preview1-runtime-deps-alpine", + "2.2.0-preview1-runtime-deps-alpine3.8", + "2.2.0-preview1-runtime-deps-bionic-arm32v7", + "2.2.0-preview1-runtime-deps-bionic", + "2.2.0-preview1-runtime-deps-stretch-slim-arm32v7", + "2.2.0-preview1-runtime-deps-stretch-slim", + "2.2.0-preview1-runtime-deps", + "2.2.0-preview1-runtime-nanoserver-1709", + "2.2.0-preview1-runtime-nanoserver-1803", + "2.2.0-preview1-runtime-nanoserver-sac2016", + "2.2.0-preview1-runtime-stretch-slim-arm32v7", + "2.2.0-preview1-runtime-stretch-slim", + "2.2.0-preview1-runtime", + "2.2.100-preview1-sdk-alpine", + "2.2.100-preview1-sdk-alpine3.8", + "2.2.100-preview1-sdk-bionic-arm32v7", + "2.2.100-preview1-sdk-bionic", + "2.2.100-preview1-sdk-nanoserver-1709", + "2.2.100-preview1-sdk-nanoserver-1803", + "2.2.100-preview1-sdk-nanoserver-sac2016", + "2.2.100-preview1-sdk-stretch-arm32v7", + "2.2.100-preview1-sdk-stretch", + "2.2.100-preview1-sdk", + "aspnetcore-runtime", + "core-deps", + "core", + "latest", + "nanoserver-10.0.14393.1066", + "nanoserver-10.0.14393.1198", + "nanoserver-10.0.14393.1358", + "nanoserver-10.0.14393.1480", + "nanoserver-10.0.14393.1593", + "nanoserver-10.0.14393.1715", + "nanoserver-10.0.14393.447", + "nanoserver-10.0.14393.576", + "nanoserver-10.0.14393.693", + "nanoserver-10.0.14393.953", + "nanoserver-core", + "nanoserver-onbuild", + "nanoserver-runtime", + "nanoserver-sdk", + "nanoserver", + "onbuild", + "runtime-deps", + "runtime-nanoserver-10.0.14393.1066", + "runtime-nanoserver-10.0.14393.1198", + "runtime-nanoserver-10.0.14393.1358", + "runtime-nanoserver-10.0.14393.1480", + "runtime-nanoserver-10.0.14393.1593", + "runtime-nanoserver-10.0.14393.1715", + "runtime-nanoserver-10.0.14393.447", + "runtime-nanoserver-10.0.14393.576", + "runtime-nanoserver-10.0.14393.693", + "runtime-nanoserver-10.0.14393.953", + "runtime-nanoserver", + "runtime", + "sdk-nanoserver-10.0.14393.1066", + "sdk-nanoserver-10.0.14393.1198", + "sdk-nanoserver-10.0.14393.1358", + "sdk-nanoserver-10.0.14393.1480", + "sdk-nanoserver-10.0.14393.1593", + "sdk-nanoserver-10.0.14393.1715", + "sdk-nanoserver-10.0.14393.447", + "sdk-nanoserver-10.0.14393.576", + "sdk-nanoserver-10.0.14393.693", + "sdk-nanoserver-10.0.14393.953", + "sdk-nanoserver", + "sdk", + "windowsservercore-core", + "windowsservercore-onbuild", + "windowsservercore" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/dotnet_page_1.json b/helm/spec/fixtures/docker/registry_tags/dotnet_page_1.json new file mode 100644 index 00000000000..0353dd89eae --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/dotnet_page_1.json @@ -0,0 +1,188 @@ +{ + "name": "microsoft/dotnet", + "tags": [ + "1-core-deps", + "1-core", + "1-nanoserver-core", + "1-nanoserver-runtime", + "1-runtime-deps", + "1-runtime-nanoserver-10.0.14393.1066", + "1-runtime-nanoserver-10.0.14393.1198", + "1-runtime-nanoserver-10.0.14393.1358", + "1-runtime-nanoserver-10.0.14393.1480", + "1-runtime-nanoserver-10.0.14393.1593", + "1-runtime-nanoserver-10.0.14393.1715", + "1-runtime-nanoserver-10.0.14393.447", + "1-runtime-nanoserver-10.0.14393.576", + "1-runtime-nanoserver-10.0.14393.693", + "1-runtime-nanoserver-10.0.14393.953", + "1-runtime-nanoserver", + "1-runtime", + "1-sdk-msbuild-nanoserver-10.0.14393.693", + "1-sdk-msbuild-nanoserver", + "1-sdk-msbuild", + "1-sdk-nanoserver-10.0.14393.1066", + "1-sdk-nanoserver-10.0.14393.1198", + "1-sdk-nanoserver-10.0.14393.1358", + "1-sdk-nanoserver-10.0.14393.1480", + "1-sdk-nanoserver-10.0.14393.1593", + "1-sdk-nanoserver-10.0.14393.1715", + "1-sdk-nanoserver-10.0.14393.693", + "1-sdk-nanoserver-10.0.14393.953", + "1-sdk-nanoserver", + "1-sdk-projectjson-nanoserver-10.0.14393.447", + "1-sdk-projectjson-nanoserver-10.0.14393.576", + "1-sdk-projectjson-nanoserver-10.0.14393.693", + "1-sdk-projectjson-nanoserver", + "1-sdk-projectjson", + "1-sdk", + "1-windowsservercore-core", + "1.0-core-deps", + "1.0-core", + "1.0-nanoserver-core", + "1.0-nanoserver-runtime", + "1.0-runtime-deps-jessie", + "1.0-runtime-deps", + "1.0-runtime-jessie", + "1.0-runtime-nanoserver-10.0.14393.1066", + "1.0-runtime-nanoserver-10.0.14393.1198", + "1.0-runtime-nanoserver-10.0.14393.1358", + "1.0-runtime-nanoserver-10.0.14393.1480", + "1.0-runtime-nanoserver-10.0.14393.1593", + "1.0-runtime-nanoserver-10.0.14393.1715", + "1.0-runtime-nanoserver-10.0.14393.447", + "1.0-runtime-nanoserver-10.0.14393.576", + "1.0-runtime-nanoserver-10.0.14393.693", + "1.0-runtime-nanoserver-10.0.14393.953", + "1.0-runtime-nanoserver-sac2016", + "1.0-runtime-nanoserver", + "1.0-runtime", + "1.0-sdk-msbuild-nanoserver-10.0.14393.693", + "1.0-sdk-msbuild-nanoserver", + "1.0-sdk-msbuild", + "1.0-sdk-nanoserver-10.0.14393.1066", + "1.0-sdk-nanoserver-10.0.14393.1198", + "1.0-sdk-nanoserver-10.0.14393.1358", + "1.0-sdk-nanoserver-10.0.14393.1480", + "1.0-sdk-nanoserver-10.0.14393.1593", + "1.0-sdk-nanoserver-10.0.14393.1715", + "1.0-sdk-nanoserver-10.0.14393.693", + "1.0-sdk-nanoserver-10.0.14393.953", + "1.0-sdk-nanoserver", + "1.0-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0-sdk-projectjson-nanoserver-10.0.14393.576", + "1.0-sdk-projectjson-nanoserver-10.0.14393.693", + "1.0-sdk-projectjson-nanoserver", + "1.0-sdk-projectjson", + "1.0-sdk", + "1.0-windowsservercore-core", + "1.0.0-core-deps", + "1.0.0-core", + "1.0.0-nanoserver-core", + "1.0.0-preview1-onbuild", + "1.0.0-preview1", + "1.0.0-preview2-nanoserver-10.0.14300.1030-onbuild", + "1.0.0-preview2-nanoserver-10.0.14300.1030-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.206-onbuild", + "1.0.0-preview2-nanoserver-10.0.14393.206-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.321-onbuild", + "1.0.0-preview2-nanoserver-10.0.14393.321-sdk", + "1.0.0-preview2-nanoserver-10.0.14393.447-sdk", + "1.0.0-preview2-nanoserver-onbuild", + "1.0.0-preview2-nanoserver-sdk", + "1.0.0-preview2-onbuild", + "1.0.0-preview2-sdk", + "1.0.0-preview2-windowsservercore-10.0.14300.1030-onbuild", + "1.0.0-preview2-windowsservercore-10.0.14300.1030-sdk", + "1.0.0-preview2-windowsservercore-10.0.14393.206-onbuild", + "1.0.0-preview2-windowsservercore-10.0.14393.206-sdk", + "1.0.0-preview2-windowsservercore-onbuild", + "1.0.0-preview2-windowsservercore-sdk", + "1.0.0-preview2.1-nanoserver-10.0.14393.321-sdk", + "1.0.0-preview2.1-nanoserver-10.0.14393.447-sdk", + "1.0.0-preview2.1-nanoserver-sdk", + "1.0.0-preview2.1-sdk", + "1.0.0-rc2-core-deps", + "1.0.0-rc2-core", + "1.0.0-windowsservercore-core", + "1.0.1-core-deps", + "1.0.1-core", + "1.0.1-nanoserver-10.0.14300.1030-core", + "1.0.1-nanoserver-10.0.14393.206-core", + "1.0.1-nanoserver-10.0.14393.321-core", + "1.0.1-nanoserver-10.0.14393.321-runtime", + "1.0.1-nanoserver-10.0.14393.447-core", + "1.0.1-nanoserver-10.0.14393.447-runtime", + "1.0.1-nanoserver-core", + "1.0.1-nanoserver-runtime", + "1.0.1-runtime-deps", + "1.0.1-runtime-nanoserver-10.0.14393.447", + "1.0.1-runtime-nanoserver", + "1.0.1-runtime", + "1.0.1-sdk-msbuild", + "1.0.1-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0.1-sdk-projectjson-nanoserver", + "1.0.1-sdk-projectjson", + "1.0.1-windowsservercore-10.0.14300.1030-core", + "1.0.1-windowsservercore-10.0.14393.206-core", + "1.0.1-windowsservercore-core", + "1.0.10-runtime-deps-jessie", + "1.0.10-runtime-deps", + "1.0.10-runtime-jessie", + "1.0.10-runtime-nanoserver-sac2016", + "1.0.10-runtime", + "1.0.11-runtime-deps-jessie", + "1.0.11-runtime-deps", + "1.0.11-runtime-jessie", + "1.0.11-runtime-nanoserver-sac2016", + "1.0.11-runtime", + "1.0.12-runtime-deps-jessie", + "1.0.12-runtime-deps", + "1.0.12-runtime-jessie", + "1.0.12-runtime-nanoserver-sac2016", + "1.0.12-runtime", + "1.0.3-core-deps", + "1.0.3-core", + "1.0.3-runtime-deps", + "1.0.3-runtime-nanoserver-10.0.14393.447", + "1.0.3-runtime-nanoserver-10.0.14393.576", + "1.0.3-runtime-nanoserver-10.0.14393.693", + "1.0.3-runtime-nanoserver", + "1.0.3-runtime", + "1.0.3-sdk-msbuild-rc3-nanoserver-10.0.14393.693", + "1.0.3-sdk-msbuild-rc3-nanoserver", + "1.0.3-sdk-msbuild-rc3", + "1.0.3-sdk-msbuild-rc4-nanoserver-10.0.14393.693", + "1.0.3-sdk-msbuild-rc4-nanoserver", + "1.0.3-sdk-msbuild-rc4", + "1.0.3-sdk-msbuild", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.447", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.576", + "1.0.3-sdk-projectjson-nanoserver-10.0.14393.693", + "1.0.3-sdk-projectjson-nanoserver", + "1.0.3-sdk-projectjson", + "1.0.4-core-deps", + "1.0.4-core", + "1.0.4-runtime-deps", + "1.0.4-runtime-nanoserver-10.0.14393.1066", + "1.0.4-runtime-nanoserver-10.0.14393.693", + "1.0.4-runtime-nanoserver-10.0.14393.953", + "1.0.4-runtime-nanoserver", + "1.0.4-runtime", + "1.0.4-sdk-1.0.0-nanoserver-10.0.14393.693", + "1.0.4-sdk-1.0.0-nanoserver", + "1.0.4-sdk-1.0.0", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.1066", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.693", + "1.0.4-sdk-1.0.1-nanoserver-10.0.14393.953", + "1.0.4-sdk-1.0.1-nanoserver", + "1.0.4-sdk-1.0.1", + "1.0.4-sdk-nanoserver-10.0.14393.1066", + "1.0.4-sdk-nanoserver-10.0.14393.693", + "1.0.4-sdk-nanoserver-10.0.14393.953", + "1.0.4-sdk-nanoserver", + "1.0.4-sdk", + "1.0.5-core-deps", + "1.0.5-core" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/dotnet_page_2.json b/helm/spec/fixtures/docker/registry_tags/dotnet_page_2.json new file mode 100644 index 00000000000..b260723cf48 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/dotnet_page_2.json @@ -0,0 +1,836 @@ +{ + "name": "microsoft/dotnet", + "tags": [ + "1.0.5-runtime-deps-jessie", + "1.0.5-runtime-deps", + "1.0.5-runtime-jessie", + "1.0.5-runtime-nanoserver-10.0.14393.1066", + "1.0.5-runtime-nanoserver-10.0.14393.1198", + "1.0.5-runtime-nanoserver-10.0.14393.1358", + "1.0.5-runtime-nanoserver-10.0.14393.1480", + "1.0.5-runtime-nanoserver-10.0.14393.1593", + "1.0.5-runtime-nanoserver-10.0.14393.1715", + "1.0.5-runtime-nanoserver", + "1.0.5-runtime", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1066", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1198", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1358", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1480", + "1.0.5-sdk-1.0.4-nanoserver-10.0.14393.1593", + "1.0.5-sdk-1.0.4-nanoserver", + "1.0.5-sdk-1.0.4", + "1.0.5-sdk-1.1.0-nanoserver-10.0.14393.1593", + "1.0.5-sdk-1.1.0-nanoserver-10.0.14393.1715", + "1.0.5-sdk-1.1.0-nanoserver", + "1.0.5-sdk-1.1.0", + "1.0.5-sdk-jessie", + "1.0.5-sdk-nanoserver-10.0.14393.1066", + "1.0.5-sdk-nanoserver-10.0.14393.1198", + "1.0.5-sdk-nanoserver-10.0.14393.1358", + "1.0.5-sdk-nanoserver-10.0.14393.1480", + "1.0.5-sdk-nanoserver-10.0.14393.1593", + "1.0.5-sdk-nanoserver-10.0.14393.1715", + "1.0.5-sdk-nanoserver", + "1.0.5-sdk", + "1.0.7-runtime-deps-jessie", + "1.0.7-runtime-deps", + "1.0.7-runtime-jessie", + "1.0.7-runtime-nanoserver-10.0.14393.1715", + "1.0.7-runtime-nanoserver-10.0.14393.1770", + "1.0.7-runtime-nanoserver-sac2016", + "1.0.7-runtime-nanoserver", + "1.0.7-runtime", + "1.0.7-sdk-jessie", + "1.0.7-sdk-nanoserver-10.0.14393.1715", + "1.0.7-sdk-nanoserver-10.0.14393.1770", + "1.0.7-sdk-nanoserver", + "1.0.7-sdk", + "1.0.8-runtime-deps-jessie", + "1.0.8-runtime-deps", + "1.0.8-runtime-jessie", + "1.0.8-runtime-nanoserver-sac2016", + "1.0.8-runtime", + "1.0.9-runtime-deps-jessie", + "1.0.9-runtime-deps", + "1.0.9-runtime-jessie", + "1.0.9-runtime-nanoserver-sac2016", + "1.0.9-runtime", + "1.1-runtime-deps", + "1.1-runtime-jessie", + "1.1-runtime-nanoserver-10.0.14393.1066", + "1.1-runtime-nanoserver-10.0.14393.1198", + "1.1-runtime-nanoserver-10.0.14393.1358", + "1.1-runtime-nanoserver-10.0.14393.1480", + "1.1-runtime-nanoserver-10.0.14393.1593", + "1.1-runtime-nanoserver-10.0.14393.1715", + "1.1-runtime-nanoserver-10.0.14393.447", + "1.1-runtime-nanoserver-10.0.14393.576", + "1.1-runtime-nanoserver-10.0.14393.693", + "1.1-runtime-nanoserver-10.0.14393.953", + "1.1-runtime-nanoserver-sac2016", + "1.1-runtime-nanoserver", + "1.1-runtime", + "1.1-sdk-jessie", + "1.1-sdk-msbuild-nanoserver-10.0.14393.693", + "1.1-sdk-msbuild-nanoserver", + "1.1-sdk-msbuild", + "1.1-sdk-nanoserver-10.0.14393.1066", + "1.1-sdk-nanoserver-10.0.14393.1198", + "1.1-sdk-nanoserver-10.0.14393.1358", + "1.1-sdk-nanoserver-10.0.14393.1480", + "1.1-sdk-nanoserver-10.0.14393.1593", + "1.1-sdk-nanoserver-10.0.14393.1715", + "1.1-sdk-nanoserver-10.0.14393.693", + "1.1-sdk-nanoserver-10.0.14393.953", + "1.1-sdk-nanoserver-sac2016", + "1.1-sdk-nanoserver", + "1.1-sdk-projectjson-nanoserver-10.0.14393.447", + "1.1-sdk-projectjson-nanoserver-10.0.14393.576", + "1.1-sdk-projectjson-nanoserver-10.0.14393.693", + "1.1-sdk-projectjson-nanoserver", + "1.1-sdk-projectjson", + "1.1-sdk", + "1.1.0-preview1-core-deps", + "1.1.0-preview1-core", + "1.1.0-preview1-nanoserver-10.0.14393.321-core", + "1.1.0-preview1-nanoserver-10.0.14393.321-runtime", + "1.1.0-preview1-nanoserver-10.0.14393.447-runtime", + "1.1.0-preview1-nanoserver-core", + "1.1.0-preview1-nanoserver-runtime", + "1.1.0-preview1-runtime-deps", + "1.1.0-preview1-runtime", + "1.1.0-runtime-deps", + "1.1.0-runtime-nanoserver-10.0.14393.447", + "1.1.0-runtime-nanoserver-10.0.14393.576", + "1.1.0-runtime-nanoserver-10.0.14393.693", + "1.1.0-runtime-nanoserver", + "1.1.0-runtime", + "1.1.0-sdk-msbuild-rc3-nanoserver-10.0.14393.693", + "1.1.0-sdk-msbuild-rc3-nanoserver", + "1.1.0-sdk-msbuild-rc3", + "1.1.0-sdk-msbuild-rc4-nanoserver-10.0.14393.693", + "1.1.0-sdk-msbuild-rc4-nanoserver", + "1.1.0-sdk-msbuild-rc4", + "1.1.0-sdk-msbuild", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.447", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.576", + "1.1.0-sdk-projectjson-nanoserver-10.0.14393.693", + "1.1.0-sdk-projectjson-nanoserver", + "1.1.0-sdk-projectjson", + "1.1.1-runtime-deps", + "1.1.1-runtime-nanoserver-10.0.14393.1066", + "1.1.1-runtime-nanoserver-10.0.14393.693", + "1.1.1-runtime-nanoserver-10.0.14393.953", + "1.1.1-runtime-nanoserver", + "1.1.1-runtime", + "1.1.1-sdk-1.0.0-nanoserver-10.0.14393.693", + "1.1.1-sdk-1.0.0-nanoserver", + "1.1.1-sdk-1.0.0", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.1066", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.693", + "1.1.1-sdk-1.0.1-nanoserver-10.0.14393.953", + "1.1.1-sdk-1.0.1-nanoserver", + "1.1.1-sdk-1.0.1", + "1.1.1-sdk-nanoserver-10.0.14393.1066", + "1.1.1-sdk-nanoserver-10.0.14393.693", + "1.1.1-sdk-nanoserver-10.0.14393.953", + "1.1.1-sdk-nanoserver", + "1.1.1-sdk", + "1.1.2-runtime-deps-jessie", + "1.1.2-runtime-deps", + "1.1.2-runtime-jessie", + "1.1.2-runtime-nanoserver-10.0.14393.1066", + "1.1.2-runtime-nanoserver-10.0.14393.1198", + "1.1.2-runtime-nanoserver-10.0.14393.1358", + "1.1.2-runtime-nanoserver-10.0.14393.1480", + "1.1.2-runtime-nanoserver-10.0.14393.1593", + "1.1.2-runtime-nanoserver-10.0.14393.1715", + "1.1.2-runtime-nanoserver", + "1.1.2-runtime", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1066", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1198", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1358", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1480", + "1.1.2-sdk-1.0.4-nanoserver-10.0.14393.1593", + "1.1.2-sdk-1.0.4-nanoserver", + "1.1.2-sdk-1.0.4", + "1.1.2-sdk-1.1.0-nanoserver-10.0.14393.1593", + "1.1.2-sdk-1.1.0-nanoserver-10.0.14393.1715", + "1.1.2-sdk-1.1.0-nanoserver", + "1.1.2-sdk-1.1.0", + "1.1.2-sdk-jessie", + "1.1.2-sdk-nanoserver-10.0.14393.1066", + "1.1.2-sdk-nanoserver-10.0.14393.1198", + "1.1.2-sdk-nanoserver-10.0.14393.1358", + "1.1.2-sdk-nanoserver-10.0.14393.1480", + "1.1.2-sdk-nanoserver-10.0.14393.1593", + "1.1.2-sdk-nanoserver-10.0.14393.1715", + "1.1.2-sdk-nanoserver", + "1.1.2-sdk", + "1.1.4-runtime-deps-jessie", + "1.1.4-runtime-deps", + "1.1.4-runtime-jessie", + "1.1.4-runtime-nanoserver-10.0.14393.1715", + "1.1.4-runtime-nanoserver-10.0.14393.1770", + "1.1.4-runtime-nanoserver-sac2016", + "1.1.4-runtime-nanoserver", + "1.1.4-runtime", + "1.1.4-sdk-jessie", + "1.1.4-sdk-nanoserver-10.0.14393.1715", + "1.1.4-sdk-nanoserver-10.0.14393.1770", + "1.1.4-sdk-nanoserver-sac2016", + "1.1.4-sdk-nanoserver", + "1.1.4-sdk", + "1.1.5-runtime-jessie", + "1.1.5-runtime-nanoserver-sac2016", + "1.1.5-runtime", + "1.1.5-sdk-1.1.6-jessie", + "1.1.5-sdk-1.1.6-nanoserver-sac2016", + "1.1.5-sdk-1.1.6", + "1.1.5-sdk-jessie", + "1.1.5-sdk-nanoserver-sac2016", + "1.1.5-sdk", + "1.1.6-runtime-jessie", + "1.1.6-runtime-nanoserver-sac2016", + "1.1.6-runtime", + "1.1.6-sdk-1.1.7-jessie", + "1.1.6-sdk-1.1.7-nanoserver-sac2016", + "1.1.6-sdk-1.1.7", + "1.1.7-runtime-jessie", + "1.1.7-runtime-nanoserver-sac2016", + "1.1.7-runtime", + "1.1.7-sdk-1.1.8-jessie", + "1.1.7-sdk-1.1.8-nanoserver-sac2016", + "1.1.7-sdk-1.1.8", + "1.1.8-runtime-jessie", + "1.1.8-runtime-nanoserver-sac2016", + "1.1.8-runtime", + "1.1.8-sdk-1.1.9-jessie", + "1.1.8-sdk-1.1.9-nanoserver-sac2016", + "1.1.8-sdk-1.1.9", + "1.1.9-runtime-jessie", + "1.1.9-runtime-nanoserver-sac2016", + "1.1.9-runtime", + "1.1.9-sdk-1.1.10-jessie", + "1.1.9-sdk-1.1.10-nanoserver-sac2016", + "1.1.9-sdk-1.1.10", + "2-aspnetcore-runtime", + "2-runtime-deps-jessie", + "2-runtime-deps-stretch-arm32v7", + "2-runtime-deps", + "2-runtime-jessie", + "2-runtime-nanoserver-10.0.14393.1198", + "2-runtime-nanoserver-10.0.14393.1358", + "2-runtime-nanoserver-10.0.14393.1480", + "2-runtime-nanoserver-10.0.14393.1593", + "2-runtime-nanoserver-10.0.14393.1715", + "2-runtime-nanoserver", + "2-runtime-stretch-arm32v7", + "2-runtime", + "2-sdk-jessie", + "2-sdk-nanoserver-10.0.14393.1198", + "2-sdk-nanoserver-10.0.14393.1358", + "2-sdk-nanoserver-10.0.14393.1480", + "2-sdk-nanoserver-10.0.14393.1593", + "2-sdk-nanoserver-10.0.14393.1715", + "2-sdk-nanoserver", + "2-sdk", + "2.0-runtime-deps-jessie", + "2.0-runtime-deps-stretch-arm32v7", + "2.0-runtime-deps-stretch", + "2.0-runtime-deps", + "2.0-runtime-jessie", + "2.0-runtime-nanoserver-10.0.14393.1198", + "2.0-runtime-nanoserver-10.0.14393.1358", + "2.0-runtime-nanoserver-10.0.14393.1480", + "2.0-runtime-nanoserver-10.0.14393.1593", + "2.0-runtime-nanoserver-10.0.14393.1715", + "2.0-runtime-nanoserver-1709", + "2.0-runtime-nanoserver-1803", + "2.0-runtime-nanoserver-sac2016", + "2.0-runtime-nanoserver", + "2.0-runtime-stretch-arm32v7", + "2.0-runtime-stretch", + "2.0-runtime", + "2.0-sdk-jessie", + "2.0-sdk-nanoserver-10.0.14393.1198", + "2.0-sdk-nanoserver-10.0.14393.1358", + "2.0-sdk-nanoserver-10.0.14393.1480", + "2.0-sdk-nanoserver-10.0.14393.1593", + "2.0-sdk-nanoserver-10.0.14393.1715", + "2.0-sdk-nanoserver-1709", + "2.0-sdk-nanoserver-1803", + "2.0-sdk-nanoserver-sac2016", + "2.0-sdk-nanoserver", + "2.0-sdk-stretch", + "2.0-sdk", + "2.0.0-preview1-runtime-deps-jessie", + "2.0.0-preview1-runtime-deps", + "2.0.0-preview1-runtime-jessie", + "2.0.0-preview1-runtime-nanoserver-10.0.14393.1198", + "2.0.0-preview1-runtime-nanoserver-10.0.14393.1358", + "2.0.0-preview1-runtime-nanoserver", + "2.0.0-preview1-runtime", + "2.0.0-preview1-sdk-jessie", + "2.0.0-preview1-sdk-nanoserver-10.0.14393.1198", + "2.0.0-preview1-sdk-nanoserver-10.0.14393.1358", + "2.0.0-preview1-sdk-nanoserver", + "2.0.0-preview1-sdk", + "2.0.0-preview2-runtime-deps-jessie", + "2.0.0-preview2-runtime-deps-stretch", + "2.0.0-preview2-runtime-deps", + "2.0.0-preview2-runtime-jessie", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1358", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1480", + "2.0.0-preview2-runtime-nanoserver-10.0.14393.1593", + "2.0.0-preview2-runtime-nanoserver", + "2.0.0-preview2-runtime-stretch", + "2.0.0-preview2-runtime", + "2.0.0-preview2-sdk-jessie", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1358", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1480", + "2.0.0-preview2-sdk-nanoserver-10.0.14393.1593", + "2.0.0-preview2-sdk-nanoserver", + "2.0.0-preview2-sdk-stretch", + "2.0.0-preview2-sdk", + "2.0.0-runtime-deps-jessie", + "2.0.0-runtime-deps-stretch-arm32v7", + "2.0.0-runtime-deps-stretch", + "2.0.0-runtime-deps", + "2.0.0-runtime-jessie", + "2.0.0-runtime-nanoserver-10.0.14393.1593", + "2.0.0-runtime-nanoserver-10.0.14393.1715", + "2.0.0-runtime-nanoserver-10.0.14393.1770", + "2.0.0-runtime-nanoserver-1709", + "2.0.0-runtime-nanoserver-sac2016", + "2.0.0-runtime-nanoserver", + "2.0.0-runtime-stretch-arm32v7", + "2.0.0-runtime-stretch", + "2.0.0-runtime", + "2.0.0-sdk-2.0.2-jessie", + "2.0.0-sdk-2.0.2-nanoserver-10.0.14393.1770", + "2.0.0-sdk-2.0.2-nanoserver-1709", + "2.0.0-sdk-2.0.2-nanoserver-sac2016", + "2.0.0-sdk-2.0.2-nanoserver", + "2.0.0-sdk-2.0.2-stretch", + "2.0.0-sdk-2.0.2", + "2.0.0-sdk-jessie", + "2.0.0-sdk-nanoserver-10.0.14393.1593", + "2.0.0-sdk-nanoserver-10.0.14393.1715", + "2.0.0-sdk-nanoserver-2.0.2-10.0.14393.1715", + "2.0.0-sdk-nanoserver-2.0.2-10.0.14393.1770", + "2.0.0-sdk-nanoserver-2.0.2", + "2.0.0-sdk-nanoserver", + "2.0.0-sdk-stretch", + "2.0.0-sdk", + "2.0.3-runtime-deps-jessie", + "2.0.3-runtime-deps-stretch-arm32v7", + "2.0.3-runtime-deps-stretch", + "2.0.3-runtime-deps", + "2.0.3-runtime-jessie", + "2.0.3-runtime-nanoserver-1709", + "2.0.3-runtime-nanoserver-sac2016", + "2.0.3-runtime-stretch-arm32v7", + "2.0.3-runtime-stretch", + "2.0.3-runtime", + "2.0.3-sdk-2.1.2-jessie", + "2.0.3-sdk-2.1.2-nanoserver-1709", + "2.0.3-sdk-2.1.2-nanoserver-sac2016", + "2.0.3-sdk-2.1.2-stretch", + "2.0.3-sdk-2.1.2", + "2.0.3-sdk-jessie", + "2.0.3-sdk-nanoserver-1709", + "2.0.3-sdk-nanoserver-sac2016", + "2.0.3-sdk-stretch", + "2.0.3-sdk", + "2.0.4-runtime-deps-jessie", + "2.0.4-runtime-deps-stretch-arm32v7", + "2.0.4-runtime-deps-stretch", + "2.0.4-runtime-deps", + "2.0.4-runtime-jessie", + "2.0.4-runtime-nanoserver-1709", + "2.0.4-runtime-nanoserver-sac2016", + "2.0.4-runtime-stretch-arm32v7", + "2.0.4-runtime-stretch", + "2.0.4-runtime", + "2.0.4-sdk-2.1.3-jessie", + "2.0.4-sdk-2.1.3-nanoserver-1709", + "2.0.4-sdk-2.1.3-nanoserver-sac2016", + "2.0.4-sdk-2.1.3-stretch", + "2.0.4-sdk-2.1.3", + "2.0.5-runtime-deps-jessie", + "2.0.5-runtime-deps-stretch-arm32v7", + "2.0.5-runtime-deps-stretch", + "2.0.5-runtime-deps", + "2.0.5-runtime-jessie", + "2.0.5-runtime-nanoserver-1709", + "2.0.5-runtime-nanoserver-sac2016", + "2.0.5-runtime-stretch-arm32v7", + "2.0.5-runtime-stretch", + "2.0.5-runtime", + "2.0.5-sdk-2.1.4-jessie", + "2.0.5-sdk-2.1.4-nanoserver-1709", + "2.0.5-sdk-2.1.4-nanoserver-sac2016", + "2.0.5-sdk-2.1.4-stretch", + "2.0.5-sdk-2.1.4", + "2.0.6-runtime-deps-jessie", + "2.0.6-runtime-deps-stretch-arm32v7", + "2.0.6-runtime-deps-stretch", + "2.0.6-runtime-deps", + "2.0.6-runtime-jessie", + "2.0.6-runtime-nanoserver-1709", + "2.0.6-runtime-nanoserver-sac2016", + "2.0.6-runtime-stretch-arm32v7", + "2.0.6-runtime-stretch", + "2.0.6-runtime", + "2.0.6-sdk-2.1.101-jessie", + "2.0.6-sdk-2.1.101-nanoserver-1709", + "2.0.6-sdk-2.1.101-nanoserver-sac2016", + "2.0.6-sdk-2.1.101-stretch", + "2.0.6-sdk-2.1.101", + "2.0.6-sdk-2.1.104-jessie", + "2.0.6-sdk-2.1.104-nanoserver-1709", + "2.0.6-sdk-2.1.104-nanoserver-sac2016", + "2.0.6-sdk-2.1.104-stretch", + "2.0.6-sdk-2.1.104", + "2.0.7-runtime-deps-jessie", + "2.0.7-runtime-deps-stretch-arm32v7", + "2.0.7-runtime-deps-stretch", + "2.0.7-runtime-deps", + "2.0.7-runtime-jessie", + "2.0.7-runtime-nanoserver-1709", + "2.0.7-runtime-nanoserver-1803", + "2.0.7-runtime-nanoserver-sac2016", + "2.0.7-runtime-stretch-arm32v7", + "2.0.7-runtime-stretch", + "2.0.7-runtime", + "2.0.7-sdk-2.1.105-jessie", + "2.0.7-sdk-2.1.105-nanoserver-1709", + "2.0.7-sdk-2.1.105-nanoserver-sac2016", + "2.0.7-sdk-2.1.105-stretch", + "2.0.7-sdk-2.1.105", + "2.0.7-sdk-2.1.200-jessie", + "2.0.7-sdk-2.1.200-nanoserver-1709", + "2.0.7-sdk-2.1.200-nanoserver-1803", + "2.0.7-sdk-2.1.200-nanoserver-sac2016", + "2.0.7-sdk-2.1.200-stretch", + "2.0.7-sdk-2.1.200", + "2.0.9-runtime-deps-jessie", + "2.0.9-runtime-deps-stretch", + "2.0.9-runtime-deps", + "2.0.9-runtime-jessie", + "2.0.9-runtime-nanoserver-1709", + "2.0.9-runtime-nanoserver-1803", + "2.0.9-runtime-nanoserver-sac2016", + "2.0.9-runtime-stretch", + "2.0.9-runtime", + "2.0.9-sdk-2.1.202-jessie", + "2.0.9-sdk-2.1.202-nanoserver-1709", + "2.0.9-sdk-2.1.202-nanoserver-1803", + "2.0.9-sdk-2.1.202-nanoserver-sac2016", + "2.0.9-sdk-2.1.202-stretch", + "2.0.9-sdk-2.1.202", + "2.1-aspnetcore-runtime-alpine", + "2.1-aspnetcore-runtime-alpine3.7", + "2.1-aspnetcore-runtime-bionic-arm32v7", + "2.1-aspnetcore-runtime-bionic", + "2.1-aspnetcore-runtime-nanoserver-1709", + "2.1-aspnetcore-runtime-nanoserver-1803", + "2.1-aspnetcore-runtime-nanoserver-sac2016", + "2.1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1-aspnetcore-runtime-stretch-slim", + "2.1-aspnetcore-runtime", + "2.1-runtime-alpine", + "2.1-runtime-alpine3.7", + "2.1-runtime-bionic-arm32v7", + "2.1-runtime-bionic", + "2.1-runtime-deps-alpine", + "2.1-runtime-deps-alpine3.7", + "2.1-runtime-deps-bionic-arm32v7", + "2.1-runtime-deps-bionic", + "2.1-runtime-deps-stretch-slim-arm32v7", + "2.1-runtime-deps-stretch-slim", + "2.1-runtime-deps", + "2.1-runtime-nanoserver-1709", + "2.1-runtime-nanoserver-1803", + "2.1-runtime-nanoserver-sac2016", + "2.1-runtime-stretch-slim-arm32v7", + "2.1-runtime-stretch-slim", + "2.1-runtime", + "2.1-sdk-alpine", + "2.1-sdk-alpine3.7", + "2.1-sdk-bionic-arm32v7", + "2.1-sdk-bionic", + "2.1-sdk-nanoserver-1709", + "2.1-sdk-nanoserver-1803", + "2.1-sdk-nanoserver-sac2016", + "2.1-sdk-stretch-arm32v7", + "2.1-sdk-stretch", + "2.1-sdk", + "2.1.0-aspnetcore-runtime-alpine", + "2.1.0-aspnetcore-runtime-alpine3.7", + "2.1.0-aspnetcore-runtime-bionic-arm32v7", + "2.1.0-aspnetcore-runtime-bionic", + "2.1.0-aspnetcore-runtime-nanoserver-1709", + "2.1.0-aspnetcore-runtime-nanoserver-1803", + "2.1.0-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.0-aspnetcore-runtime-stretch-slim", + "2.1.0-aspnetcore-runtime", + "2.1.0-preview1-runtime-alpine", + "2.1.0-preview1-runtime-bionic-arm32v7", + "2.1.0-preview1-runtime-bionic", + "2.1.0-preview1-runtime-deps-alpine", + "2.1.0-preview1-runtime-deps-bionic-arm32v7", + "2.1.0-preview1-runtime-deps-bionic", + "2.1.0-preview1-runtime-deps-stretch-slim-arm32v7", + "2.1.0-preview1-runtime-deps-stretch-slim", + "2.1.0-preview1-runtime-deps", + "2.1.0-preview1-runtime-nanoserver-1709", + "2.1.0-preview1-runtime-nanoserver-sac2016", + "2.1.0-preview1-runtime-stretch-slim-arm32v7", + "2.1.0-preview1-runtime-stretch-slim", + "2.1.0-preview1-runtime", + "2.1.0-preview2-aspnetcore-runtime-alpine", + "2.1.0-preview2-aspnetcore-runtime-bionic", + "2.1.0-preview2-aspnetcore-runtime-nanoserver-1709", + "2.1.0-preview2-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-preview2-aspnetcore-runtime-stretch-slim", + "2.1.0-preview2-aspnetcore-runtime", + "2.1.0-preview2-runtime-alpine", + "2.1.0-preview2-runtime-bionic-arm32v7", + "2.1.0-preview2-runtime-bionic", + "2.1.0-preview2-runtime-deps-alpine", + "2.1.0-preview2-runtime-deps-bionic-arm32v7", + "2.1.0-preview2-runtime-deps-bionic", + "2.1.0-preview2-runtime-deps-stretch-slim-arm32v7", + "2.1.0-preview2-runtime-deps-stretch-slim", + "2.1.0-preview2-runtime-deps", + "2.1.0-preview2-runtime-nanoserver-1709", + "2.1.0-preview2-runtime-nanoserver-sac2016", + "2.1.0-preview2-runtime-stretch-slim-arm32v7", + "2.1.0-preview2-runtime-stretch-slim", + "2.1.0-preview2-runtime", + "2.1.0-rc1-aspnetcore-runtime-alpine", + "2.1.0-rc1-aspnetcore-runtime-alpine3.7", + "2.1.0-rc1-aspnetcore-runtime-bionic-arm32v7", + "2.1.0-rc1-aspnetcore-runtime-bionic", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-1709", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-1803", + "2.1.0-rc1-aspnetcore-runtime-nanoserver-sac2016", + "2.1.0-rc1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.0-rc1-aspnetcore-runtime-stretch-slim", + "2.1.0-rc1-aspnetcore-runtime", + "2.1.0-rc1-runtime-alpine", + "2.1.0-rc1-runtime-alpine3.7", + "2.1.0-rc1-runtime-bionic-arm32v7", + "2.1.0-rc1-runtime-bionic", + "2.1.0-rc1-runtime-deps-alpine", + "2.1.0-rc1-runtime-deps-alpine3.7", + "2.1.0-rc1-runtime-deps-bionic-arm32v7", + "2.1.0-rc1-runtime-deps-bionic", + "2.1.0-rc1-runtime-deps-stretch-slim-arm32v7", + "2.1.0-rc1-runtime-deps-stretch-slim", + "2.1.0-rc1-runtime-deps", + "2.1.0-rc1-runtime-nanoserver-1709", + "2.1.0-rc1-runtime-nanoserver-1803", + "2.1.0-rc1-runtime-nanoserver-sac2016", + "2.1.0-rc1-runtime-stretch-slim-arm32v7", + "2.1.0-rc1-runtime-stretch-slim", + "2.1.0-rc1-runtime", + "2.1.0-runtime-alpine", + "2.1.0-runtime-alpine3.7", + "2.1.0-runtime-bionic-arm32v7", + "2.1.0-runtime-bionic", + "2.1.0-runtime-deps-alpine", + "2.1.0-runtime-deps-alpine3.7", + "2.1.0-runtime-deps-bionic-arm32v7", + "2.1.0-runtime-deps-bionic", + "2.1.0-runtime-deps-stretch-slim-arm32v7", + "2.1.0-runtime-deps-stretch-slim", + "2.1.0-runtime-deps", + "2.1.0-runtime-nanoserver-1709", + "2.1.0-runtime-nanoserver-1803", + "2.1.0-runtime-nanoserver-sac2016", + "2.1.0-runtime-stretch-slim-arm32v7", + "2.1.0-runtime-stretch-slim", + "2.1.0-runtime", + "2.1.1-aspnetcore-runtime-alpine", + "2.1.1-aspnetcore-runtime-alpine3.7", + "2.1.1-aspnetcore-runtime-bionic-arm32v7", + "2.1.1-aspnetcore-runtime-bionic", + "2.1.1-aspnetcore-runtime-nanoserver-1709", + "2.1.1-aspnetcore-runtime-nanoserver-1803", + "2.1.1-aspnetcore-runtime-nanoserver-sac2016", + "2.1.1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.1-aspnetcore-runtime-stretch-slim", + "2.1.1-aspnetcore-runtime", + "2.1.1-runtime-alpine", + "2.1.1-runtime-alpine3.7", + "2.1.1-runtime-bionic-arm32v7", + "2.1.1-runtime-bionic", + "2.1.1-runtime-deps-alpine", + "2.1.1-runtime-deps-alpine3.7", + "2.1.1-runtime-deps-bionic-arm32v7", + "2.1.1-runtime-deps-bionic", + "2.1.1-runtime-deps-stretch-slim-arm32v7", + "2.1.1-runtime-deps-stretch-slim", + "2.1.1-runtime-deps", + "2.1.1-runtime-nanoserver-1709", + "2.1.1-runtime-nanoserver-1803", + "2.1.1-runtime-nanoserver-sac2016", + "2.1.1-runtime-stretch-slim-arm32v7", + "2.1.1-runtime-stretch-slim", + "2.1.1-runtime", + "2.1.2-aspnetcore-runtime-alpine", + "2.1.2-aspnetcore-runtime-alpine3.7", + "2.1.2-aspnetcore-runtime-bionic-arm32v7", + "2.1.2-aspnetcore-runtime-bionic", + "2.1.2-aspnetcore-runtime-nanoserver-1709", + "2.1.2-aspnetcore-runtime-nanoserver-1803", + "2.1.2-aspnetcore-runtime-nanoserver-sac2016", + "2.1.2-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.2-aspnetcore-runtime-stretch-slim", + "2.1.2-aspnetcore-runtime", + "2.1.2-runtime-alpine", + "2.1.2-runtime-alpine3.7", + "2.1.2-runtime-bionic-arm32v7", + "2.1.2-runtime-bionic", + "2.1.2-runtime-deps-alpine", + "2.1.2-runtime-deps-alpine3.7", + "2.1.2-runtime-deps-bionic-arm32v7", + "2.1.2-runtime-deps-bionic", + "2.1.2-runtime-deps-stretch-slim-arm32v7", + "2.1.2-runtime-deps-stretch-slim", + "2.1.2-runtime-deps", + "2.1.2-runtime-nanoserver-1709", + "2.1.2-runtime-nanoserver-1803", + "2.1.2-runtime-nanoserver-sac2016", + "2.1.2-runtime-stretch-slim-arm32v7", + "2.1.2-runtime-stretch-slim", + "2.1.2-runtime", + "2.1.3-aspnetcore-runtime-alpine", + "2.1.3-aspnetcore-runtime-alpine3.7", + "2.1.3-aspnetcore-runtime-bionic-arm32v7", + "2.1.3-aspnetcore-runtime-bionic", + "2.1.3-aspnetcore-runtime-nanoserver-1709", + "2.1.3-aspnetcore-runtime-nanoserver-1803", + "2.1.3-aspnetcore-runtime-nanoserver-sac2016", + "2.1.3-aspnetcore-runtime-stretch-slim-arm32v7", + "2.1.3-aspnetcore-runtime-stretch-slim", + "2.1.3-aspnetcore-runtime", + "2.1.3-runtime-alpine", + "2.1.3-runtime-alpine3.7", + "2.1.3-runtime-bionic-arm32v7", + "2.1.3-runtime-bionic", + "2.1.3-runtime-deps-alpine", + "2.1.3-runtime-deps-alpine3.7", + "2.1.3-runtime-deps-bionic-arm32v7", + "2.1.3-runtime-deps-bionic", + "2.1.3-runtime-deps-stretch-slim-arm32v7", + "2.1.3-runtime-deps-stretch-slim", + "2.1.3-runtime-deps", + "2.1.3-runtime-nanoserver-1709", + "2.1.3-runtime-nanoserver-1803", + "2.1.3-runtime-nanoserver-sac2016", + "2.1.3-runtime-stretch-slim-arm32v7", + "2.1.3-runtime-stretch-slim", + "2.1.3-runtime", + "2.1.300-preview1-sdk-alpine", + "2.1.300-preview1-sdk-bionic", + "2.1.300-preview1-sdk-nanoserver-1709", + "2.1.300-preview1-sdk-nanoserver-sac2016", + "2.1.300-preview1-sdk-stretch", + "2.1.300-preview1-sdk", + "2.1.300-preview2-sdk-alpine", + "2.1.300-preview2-sdk-bionic-arm32v7", + "2.1.300-preview2-sdk-bionic", + "2.1.300-preview2-sdk-nanoserver-1709", + "2.1.300-preview2-sdk-nanoserver-sac2016", + "2.1.300-preview2-sdk-stretch-arm32v7", + "2.1.300-preview2-sdk-stretch", + "2.1.300-preview2-sdk", + "2.1.300-rc1-sdk-alpine", + "2.1.300-rc1-sdk-alpine3.7", + "2.1.300-rc1-sdk-bionic-arm32v7", + "2.1.300-rc1-sdk-bionic", + "2.1.300-rc1-sdk-nanoserver-1709", + "2.1.300-rc1-sdk-nanoserver-1803", + "2.1.300-rc1-sdk-nanoserver-sac2016", + "2.1.300-rc1-sdk-stretch-arm32v7", + "2.1.300-rc1-sdk-stretch", + "2.1.300-rc1-sdk", + "2.1.300-sdk-alpine", + "2.1.300-sdk-alpine3.7", + "2.1.300-sdk-bionic-arm32v7", + "2.1.300-sdk-bionic", + "2.1.300-sdk-nanoserver-1709", + "2.1.300-sdk-nanoserver-1803", + "2.1.300-sdk-nanoserver-sac2016", + "2.1.300-sdk-stretch-arm32v7", + "2.1.300-sdk-stretch", + "2.1.300-sdk", + "2.1.301-sdk-alpine", + "2.1.301-sdk-alpine3.7", + "2.1.301-sdk-bionic-arm32v7", + "2.1.301-sdk-bionic", + "2.1.301-sdk-nanoserver-1709", + "2.1.301-sdk-nanoserver-1803", + "2.1.301-sdk-nanoserver-sac2016", + "2.1.301-sdk-stretch-arm32v7", + "2.1.301-sdk-stretch", + "2.1.301-sdk", + "2.1.302-sdk-alpine", + "2.1.302-sdk-alpine3.7", + "2.1.302-sdk-bionic-arm32v7", + "2.1.302-sdk-bionic", + "2.1.302-sdk-nanoserver-1709", + "2.1.302-sdk-nanoserver-1803", + "2.1.302-sdk-nanoserver-sac2016", + "2.1.302-sdk-stretch-arm32v7", + "2.1.302-sdk-stretch", + "2.1.302-sdk", + "2.1.400-sdk-alpine", + "2.1.400-sdk-alpine3.7", + "2.1.400-sdk-bionic-arm32v7", + "2.1.400-sdk-bionic", + "2.1.400-sdk-nanoserver-1709", + "2.1.400-sdk-nanoserver-1803", + "2.1.400-sdk-nanoserver-sac2016", + "2.1.400-sdk-stretch-arm32v7", + "2.1.400-sdk-stretch", + "2.1.400-sdk", + "2.1.401-sdk-alpine", + "2.1.401-sdk-alpine3.7", + "2.1.401-sdk-bionic-arm32v7", + "2.1.401-sdk-bionic", + "2.1.401-sdk-nanoserver-1709", + "2.1.401-sdk-nanoserver-1803", + "2.1.401-sdk-nanoserver-sac2016", + "2.1.401-sdk-stretch-arm32v7", + "2.1.401-sdk-stretch", + "2.1.401-sdk", + "2.2-aspnetcore-runtime-alpine", + "2.2-aspnetcore-runtime-alpine3.8", + "2.2-aspnetcore-runtime-bionic-arm32v7", + "2.2-aspnetcore-runtime-bionic", + "2.2-aspnetcore-runtime-nanoserver-1709", + "2.2-aspnetcore-runtime-nanoserver-1803", + "2.2-aspnetcore-runtime-nanoserver-sac2016", + "2.2-aspnetcore-runtime-stretch-slim-arm32v7", + "2.2-aspnetcore-runtime-stretch-slim", + "2.2-aspnetcore-runtime", + "2.2-runtime-alpine", + "2.2-runtime-alpine3.8", + "2.2-runtime-bionic-arm32v7", + "2.2-runtime-bionic", + "2.2-runtime-deps-alpine", + "2.2-runtime-deps-alpine3.8", + "2.2-runtime-deps-bionic-arm32v7", + "2.2-runtime-deps-bionic", + "2.2-runtime-deps-stretch-slim-arm32v7", + "2.2-runtime-deps-stretch-slim", + "2.2-runtime-deps", + "2.2-runtime-nanoserver-1709", + "2.2-runtime-nanoserver-1803", + "2.2-runtime-nanoserver-sac2016", + "2.2-runtime-stretch-slim-arm32v7", + "2.2-runtime-stretch-slim", + "2.2-runtime", + "2.2-sdk-alpine", + "2.2-sdk-alpine3.8", + "2.2-sdk-bionic-arm32v7", + "2.2-sdk-bionic", + "2.2-sdk-nanoserver-1709", + "2.2-sdk-nanoserver-1803", + "2.2-sdk-nanoserver-sac2016", + "2.2-sdk-stretch-arm32v7", + "2.2-sdk-stretch", + "2.2-sdk", + "2.2.0-preview1-aspnetcore-runtime-alpine", + "2.2.0-preview1-aspnetcore-runtime-alpine3.8", + "2.2.0-preview1-aspnetcore-runtime-bionic-arm32v7", + "2.2.0-preview1-aspnetcore-runtime-bionic", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-1709", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-1803", + "2.2.0-preview1-aspnetcore-runtime-nanoserver-sac2016", + "2.2.0-preview1-aspnetcore-runtime-stretch-slim-arm32v7", + "2.2.0-preview1-aspnetcore-runtime-stretch-slim", + "2.2.0-preview1-aspnetcore-runtime", + "2.2.0-preview1-runtime-alpine", + "2.2.0-preview1-runtime-alpine3.8", + "2.2.0-preview1-runtime-bionic-arm32v7", + "2.2.0-preview1-runtime-bionic", + "2.2.0-preview1-runtime-deps-alpine", + "2.2.0-preview1-runtime-deps-alpine3.8", + "2.2.0-preview1-runtime-deps-bionic-arm32v7", + "2.2.0-preview1-runtime-deps-bionic", + "2.2.0-preview1-runtime-deps-stretch-slim-arm32v7", + "2.2.0-preview1-runtime-deps-stretch-slim", + "2.2.0-preview1-runtime-deps", + "2.2.0-preview1-runtime-nanoserver-1709", + "2.2.0-preview1-runtime-nanoserver-1803", + "2.2.0-preview1-runtime-nanoserver-sac2016", + "2.2.0-preview1-runtime-stretch-slim-arm32v7", + "2.2.0-preview1-runtime-stretch-slim", + "2.2.0-preview1-runtime", + "2.2.100-preview1-sdk-alpine", + "2.2.100-preview1-sdk-alpine3.8", + "2.2.100-preview1-sdk-bionic-arm32v7", + "2.2.100-preview1-sdk-bionic", + "2.2.100-preview1-sdk-nanoserver-1709", + "2.2.100-preview1-sdk-nanoserver-1803", + "2.2.100-preview1-sdk-nanoserver-sac2016", + "2.2.100-preview1-sdk-stretch-arm32v7", + "2.2.100-preview1-sdk-stretch", + "2.2.100-preview1-sdk", + "aspnetcore-runtime", + "core-deps", + "core", + "latest", + "nanoserver-10.0.14393.1066", + "nanoserver-10.0.14393.1198", + "nanoserver-10.0.14393.1358", + "nanoserver-10.0.14393.1480", + "nanoserver-10.0.14393.1593", + "nanoserver-10.0.14393.1715", + "nanoserver-10.0.14393.447", + "nanoserver-10.0.14393.576", + "nanoserver-10.0.14393.693", + "nanoserver-10.0.14393.953", + "nanoserver-core", + "nanoserver-onbuild", + "nanoserver-runtime", + "nanoserver-sdk", + "nanoserver", + "onbuild", + "runtime-deps", + "runtime-nanoserver-10.0.14393.1066", + "runtime-nanoserver-10.0.14393.1198", + "runtime-nanoserver-10.0.14393.1358", + "runtime-nanoserver-10.0.14393.1480", + "runtime-nanoserver-10.0.14393.1593", + "runtime-nanoserver-10.0.14393.1715", + "runtime-nanoserver-10.0.14393.447", + "runtime-nanoserver-10.0.14393.576", + "runtime-nanoserver-10.0.14393.693", + "runtime-nanoserver-10.0.14393.953", + "runtime-nanoserver", + "runtime", + "sdk-nanoserver-10.0.14393.1066", + "sdk-nanoserver-10.0.14393.1198", + "sdk-nanoserver-10.0.14393.1358", + "sdk-nanoserver-10.0.14393.1480", + "sdk-nanoserver-10.0.14393.1593", + "sdk-nanoserver-10.0.14393.1715", + "sdk-nanoserver-10.0.14393.447", + "sdk-nanoserver-10.0.14393.576", + "sdk-nanoserver-10.0.14393.693", + "sdk-nanoserver-10.0.14393.953", + "sdk-nanoserver", + "sdk", + "windowsservercore-core", + "windowsservercore-onbuild", + "windowsservercore" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/eclipse-temurin.json b/helm/spec/fixtures/docker/registry_tags/eclipse-temurin.json new file mode 100644 index 00000000000..376e68b7968 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/eclipse-temurin.json @@ -0,0 +1,13 @@ +{ + "name": "library/eclipse-temurin", + "tags": [ + "17.0.1_12-jre-windowsservercore-ltsc2022", + "17.0.2_8-jre-alpine", + "17.0.1_12-jre-alpine", + "17-jre-alpine", + "11.0.14_9-jre-alpine", + "11-jre-alpine", + "11.0.16_8-jdk", + "11.0.16.1_1-jdk" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/fulldate_in_tag.json b/helm/spec/fixtures/docker/registry_tags/fulldate_in_tag.json new file mode 100644 index 00000000000..5d87e6114ad --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/fulldate_in_tag.json @@ -0,0 +1,7 @@ +{ + "name": "dated_image", + "tags": [ + "img_20230915.3", + "img_20231011.1" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/git_describe.json b/helm/spec/fixtures/docker/registry_tags/git_describe.json new file mode 100644 index 00000000000..fb205fd5e12 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/git_describe.json @@ -0,0 +1,41 @@ +{ + "name": "infoblox/grafana-operator", + "tags": [ + "v3.2.0-10-g0208ead", + "v3.2.0-10-g17a8c8f", + "v3.2.0-10-g2fe2e69", + "v3.2.0-10-g3a24f62", + "v3.2.0-10-gd2eda66", + "v3.2.0-11-gb85335c", + "v3.2.0-11-gffe830d", + "v3.2.0-12-gbb83bba", + "v3.2.0-12-gd0ca143", + "v3.2.0-12-gfe00835", + "v3.2.0-13-gb4ee0f2", + "v3.2.0-164-ge71f8af", + "v3.2.0-230-gbabf17f", + "v3.2.0-6-g2d0df1d", + "v3.2.0-6-g42944f4", + "v3.2.0-6-gdcf49b7", + "v3.2.0-7-g52cd8b3", + "v3.2.0-7-g634e39d", + "v3.2.0-7-gf7faf90", + "v3.2.0-7-gfad2538", + "v3.2.0-7-gff3ea81", + "v3.2.0-8-g1648a84", + "v3.2.0-8-g1ca2017", + "v3.2.0-8-gf4eeefd", + "v3.2.0-9-g12202a3", + "v3.7.0-13-g02d4c9ef", + "v3.7.0-14-g051e1a97", + "v3.7.0-15-g5c997230", + "v3.7.0-16-ga9d63825", + "v3.7.0-16-gd5a70ddc", + "v3.7.0-18-ga7fdf65c", + "v3.9.0-173-g4d84d01", + "v3.9.0-177-ged5bcde", + "v3.9.0-181-gbabf17f", + "v3.10.0-17-gfefefef", + "v3.10.0-169-gfe040d3" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/kube_state_metrics.json b/helm/spec/fixtures/docker/registry_tags/kube_state_metrics.json new file mode 100644 index 00000000000..9edea40d0cf --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/kube_state_metrics.json @@ -0,0 +1,203 @@ +{ + "child": [], + "manifest": { + "sha256:15c89813ccd3d426c2023df9c1ab2edff33a279ac9779be488a3e4463c555739": { + "imageSizeBytes": "6780847", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.3.1" + ], + "timeCreatedMs": "1524216160338", + "timeUploadedMs": "1524216904115" + }, + "sha256:215e94b068075298cb866f119b7884b52f78261a3116d52da3bcd7fb3f216f45": { + "imageSizeBytes": "10038648", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v1+prettyjws", + "tag": [ + "v0.2.0" + ], + "timeCreatedMs": "1474537722597", + "timeUploadedMs": "1474538948671" + }, + "sha256:249d036d5cebecf86d0f7dc3894aec249a1ac0107cd72678f7beea80df03dc50": { + "imageSizeBytes": "10024426", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v0.4.0" + ], + "timeCreatedMs": "1487154466072", + "timeUploadedMs": "1487154652739" + }, + "sha256:37c4ddfa160043a7fd73703b7cae41cf38b692ca19c1dff722293c90a386b59f": { + "imageSizeBytes": "10676570", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.5.0" + ], + "timeCreatedMs": "1547200357273", + "timeUploadedMs": "1547470381771" + }, + "sha256:45fa82f5887bb1d0f52696a1b7b9ad1e081fe8d1f720258aa2d960a28e78d4a4": { + "imageSizeBytes": "8586027", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.1.0-rc.0" + ], + "timeCreatedMs": "1507803069707", + "timeUploadedMs": "1507804265946" + }, + "sha256:49b0d96d872c3c85959d57bcb9bc4e661fda9e66991490b2ec738464396a4010": { + "imageSizeBytes": "9288304", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.4.0" + ], + "timeCreatedMs": "1535712151207", + "timeUploadedMs": "1535714594176" + }, + "sha256:53416b3d560a1b821b7e302460a387fef887ce72206c3ccbf82fd9e2d1f71fd9": { + "imageSizeBytes": "8586024", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.1.0" + ], + "timeCreatedMs": "1508409515171", + "timeUploadedMs": "1508411047660" + }, + "sha256:55de3d663a6d5bdeb8f87fc8ee364f07775b23612f2d4938ef6f09810677c634": { + "imageSizeBytes": "10163340", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.0.0-rc.1" + ], + "timeCreatedMs": "1501680226392", + "timeUploadedMs": "1501680681946" + }, + "sha256:5b1c49bf1e47ea731db9b162115e847278de9a0c4ce390f96b22e8b373880cc9": { + "imageSizeBytes": "8935207", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.3.0" + ], + "timeCreatedMs": "1523533423938", + "timeUploadedMs": "1523534493090" + }, + "sha256:5b933aa0556f4410b3aeeeabfdbb1dd0769eaad9d4c31a2e0a906acf805493bd": { + "imageSizeBytes": "9927197", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v1+prettyjws", + "tag": [ + "v0.3.0" + ], + "timeCreatedMs": "1476816853352", + "timeUploadedMs": "1476817772722" + }, + "sha256:65d4e8e285deb9b7eac2e1d5bc0f9408c438bae9117fcf4ca1ef3a16b06bc24a": { + "imageSizeBytes": "8935207", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.3.0-rc.0" + ], + "timeCreatedMs": "1522065538503", + "timeUploadedMs": "1522065696210" + }, + "sha256:8566372bd88c6de72462b4b8b4cc3a49121b91f5dd971e047e814b89d657fd1b": { + "imageSizeBytes": "10163340", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.0.0" + ], + "timeCreatedMs": "1502278099212", + "timeUploadedMs": "1502278308383" + }, + "sha256:953a3b6bf0046333c656fcfa2fc3a08f4055dc3fbd5b1dcdcdf865a2534db526": { + "imageSizeBytes": "8923553", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.2.0" + ], + "timeCreatedMs": "1516020793197", + "timeUploadedMs": "1516021407482" + }, + "sha256:b8b536771d5c23a9344c90662b2ca9ba00421e050ae593264bc51803470a2526": { + "imageSizeBytes": "10454407", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.0.1" + ], + "timeCreatedMs": "1503923932205", + "timeUploadedMs": "1503925239231" + }, + "sha256:c6fe216dd978fab3099069db9a1970fe9810479a1c61a3cfe40389978501bc3f": { + "imageSizeBytes": "6780849", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [], + "timeCreatedMs": "1523547428484", + "timeUploadedMs": "1523548918815" + }, + "sha256:c98991f50115fe6188d7b4213690628f0149cf160ac47daf9f21366d7cc62740": { + "imageSizeBytes": "12176267", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v1.6.0" + ], + "timeCreatedMs": "1557149025125", + "timeUploadedMs": "1557229943504" + }, + "sha256:e913a24b0a0a89e23968d5e3fbf99501d17c04011fb54b24df0aca6bea232022": { + "imageSizeBytes": "10034535", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v0.5.0" + ], + "timeCreatedMs": "1494236243587", + "timeUploadedMs": "1494237662166" + }, + "sha256:f10a63848dbb9823ab2b870e5d656107bf5c4905d33ba7ecb4e4165c228787d2": { + "imageSizeBytes": "10023925", + "layerId": "", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "tag": [ + "v0.4.1" + ], + "timeCreatedMs": "1487154587695", + "timeUploadedMs": "1487156439117" + } + }, + "name": "kube-state-metrics", + "tags": [ + "v0.2.0", + "v0.3.0", + "v0.4.0", + "v0.4.1", + "v0.5.0", + "v1.0.0", + "v1.0.0-rc.1", + "v1.0.1", + "v1.1.0", + "v1.1.0-rc.0", + "v1.2.0", + "v1.3.0", + "v1.3.0-rc.0", + "v1.3.1", + "v1.4.0", + "v1.5.0", + "v1.6.0" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/multiple-intermediate-words.json b/helm/spec/fixtures/docker/registry_tags/multiple-intermediate-words.json new file mode 100644 index 00000000000..041baf9e79f --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/multiple-intermediate-words.json @@ -0,0 +1,10 @@ +{ + "name": "openjdk", + "tags": [ + "21-ea-32", + "22-ea-7", + "22-ea-7-windowsservercore-1809", + "22-ea-jdk-nanoserver-1809", + "22-ea-9-windowsservercore-1809" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/nixos-nix.json b/helm/spec/fixtures/docker/registry_tags/nixos-nix.json new file mode 100644 index 00000000000..beadd25e9c2 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/nixos-nix.json @@ -0,0 +1,8 @@ +{ + "name": "nixos/nix", + "tags": [ + "2.1.3", + "2.10.0", + "2.10.0pre20220530_929ab5b" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/openjdk.json b/helm/spec/fixtures/docker/registry_tags/openjdk.json new file mode 100644 index 00000000000..d0dddc805a4 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/openjdk.json @@ -0,0 +1,8 @@ +{ + "name": "openjdk", + "tags": [ + "21-ea-32", + "22-ea-7", + "22-ea-jdk-nanoserver-1809" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/openjdk11.json b/helm/spec/fixtures/docker/registry_tags/openjdk11.json new file mode 100644 index 00000000000..b5feab4e09f --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/openjdk11.json @@ -0,0 +1,97 @@ +{ + "name": "adoptopenjdk/openjdk11", + "tags": [ + "aarch64-ubuntu-jdk-11.0.1.13-slim", + "aarch64-ubuntu-jdk-11.0.1.13", + "aarch64-ubuntu-jdk-11.0.2.7-slim", + "aarch64-ubuntu-jdk-11.0.2.7", + "aarch64-ubuntu-jdk-11.0.2.9-slim", + "aarch64-ubuntu-jdk-11.0.2.9", + "aarch64-ubuntu-jdk-11.28-slim", + "aarch64-ubuntu-jdk-11.28", + "aarch64-ubuntu-jdk11-nightly-slim", + "aarch64-ubuntu-jdk11-nightly", + "aarch64-ubuntu-jdk11u-nightly-slim", + "aarch64-ubuntu-jdk11u-nightly", + "alpine-nightly-slim", + "alpine-nightly", + "alpine-slim", + "alpine", + "jdk-11.0.1.13-alpine-slim", + "jdk-11.0.1.13-alpine", + "jdk-11.0.1.13-slim", + "jdk-11.0.1.13", + "jdk-11.0.2.7-alpine-slim", + "jdk-11.0.2.7-alpine", + "jdk-11.0.2.7-slim", + "jdk-11.0.2.7", + "jdk-11.0.2.9-alpine-slim", + "jdk-11.0.2.9-alpine", + "jdk-11.0.2.9-slim", + "jdk-11.0.2.9", + "jdk-11.28-alpine-slim", + "jdk-11.28-alpine", + "jdk-11.28-slim", + "jdk-11.28", + "jdk11-alpine-nightly-slim", + "jdk11-alpine-nightly", + "jdk11-nightly-slim", + "jdk11-nightly", + "jdk11u-alpine-nightly-slim", + "jdk11u-alpine-nightly", + "jdk11u-nightly-slim", + "jdk11u-nightly", + "latest", + "nightly-slim", + "nightly", + "ppc64le-ubuntu-jdk-11.0.1.13-slim", + "ppc64le-ubuntu-jdk-11.0.1.13", + "ppc64le-ubuntu-jdk-11.0.2.7-slim", + "ppc64le-ubuntu-jdk-11.0.2.7", + "ppc64le-ubuntu-jdk-11.0.2.9-slim", + "ppc64le-ubuntu-jdk-11.0.2.9", + "ppc64le-ubuntu-jdk-11.28-slim", + "ppc64le-ubuntu-jdk-11.28", + "ppc64le-ubuntu-jdk11-nightly-slim", + "ppc64le-ubuntu-jdk11-nightly", + "ppc64le-ubuntu-jdk11u-nightly-slim", + "ppc64le-ubuntu-jdk11u-nightly", + "s390x-ubuntu-jdk-11.0.1.13-slim", + "s390x-ubuntu-jdk-11.0.1.13", + "s390x-ubuntu-jdk-11.0.2.7-slim", + "s390x-ubuntu-jdk-11.0.2.7", + "s390x-ubuntu-jdk-11.0.2.9-slim", + "s390x-ubuntu-jdk-11.0.2.9", + "s390x-ubuntu-jdk-11.28-slim", + "s390x-ubuntu-jdk-11.28", + "s390x-ubuntu-jdk11-nightly-slim", + "s390x-ubuntu-jdk11-nightly", + "s390x-ubuntu-jdk11u-nightly-slim", + "s390x-ubuntu-jdk11u-nightly", + "slim", + "x86_64-alpine-jdk-11.0.1.13-slim", + "x86_64-alpine-jdk-11.0.1.13", + "x86_64-alpine-jdk-11.0.2.7-slim", + "x86_64-alpine-jdk-11.0.2.7", + "x86_64-alpine-jdk-11.0.2.9-slim", + "x86_64-alpine-jdk-11.0.2.9", + "x86_64-alpine-jdk-11.28-slim", + "x86_64-alpine-jdk-11.28", + "x86_64-alpine-jdk11-nightly-slim", + "x86_64-alpine-jdk11-nightly", + "x86_64-alpine-jdk11u-nightly-slim", + "x86_64-alpine-jdk11u-nightly", + "x86_64-ubuntu-jdk-11.0.1.13-slim", + "x86_64-ubuntu-jdk-11.0.1.13", + "x86_64-ubuntu-jdk-11.0.2.7-slim", + "x86_64-ubuntu-jdk-11.0.2.7", + "x86_64-ubuntu-jdk-11.0.2.9-slim", + "x86_64-ubuntu-jdk-11.0.2.9", + "x86_64-ubuntu-jdk-11.28-slim", + "x86_64-ubuntu-jdk-11.28", + "x86_64-ubuntu-jdk11-nightly-slim", + "x86_64-ubuntu-jdk11-nightly", + "x86_64-ubuntu-jdk11u-nightly-slim", + "x86_64-ubuntu-jdk11u-nightly" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/php.json b/helm/spec/fixtures/docker/registry_tags/php.json new file mode 100644 index 00000000000..5bd1f55b361 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/php.json @@ -0,0 +1,3496 @@ +{ + "name":"library/php", + "tags":[ + "5-alpine", + "5-alpine3.4", + "5-alpine3.7", + "5-alpine3.8", + "5-apache-jessie", + "5-apache-stretch", + "5-apache", + "5-cli-alpine", + "5-cli-alpine3.4", + "5-cli-alpine3.7", + "5-cli-alpine3.8", + "5-cli-jessie", + "5-cli-stretch", + "5-cli", + "5-fpm-alpine", + "5-fpm-alpine3.4", + "5-fpm-alpine3.7", + "5-fpm-alpine3.8", + "5-fpm-jessie", + "5-fpm-stretch", + "5-fpm", + "5-jessie", + "5-stretch", + "5-zts-alpine", + "5-zts-alpine3.4", + "5-zts-alpine3.7", + "5-zts-alpine3.8", + "5-zts-jessie", + "5-zts-stretch", + "5-zts", + "5.3-apache", + "5.3-cli", + "5.3.29-apache", + "5.3.29-cli", + "5.3.29", + "5.3", + "5.4-apache", + "5.4-cli", + "5.4-fpm", + "5.4.32-apache", + "5.4.32-cli", + "5.4.33-apache", + "5.4.33-cli", + "5.4.33", + "5.4.34-apache", + "5.4.34-cli", + "5.4.34", + "5.4.35-apache", + "5.4.35-cli", + "5.4.35-fpm", + "5.4.35", + "5.4.36-apache", + "5.4.36-cli", + "5.4.36-fpm", + "5.4.36", + "5.4.37-apache", + "5.4.37-cli", + "5.4.37-fpm", + "5.4.37", + "5.4.38-apache", + "5.4.38-cli", + "5.4.38-fpm", + "5.4.38", + "5.4.39-apache", + "5.4.39-cli", + "5.4.39-fpm", + "5.4.39", + "5.4.40-apache", + "5.4.40-cli", + "5.4.40-fpm", + "5.4.40", + "5.4.41-apache", + "5.4.41-cli", + "5.4.41-fpm", + "5.4.41", + "5.4.42-apache", + "5.4.42-cli", + "5.4.42-fpm", + "5.4.42", + "5.4.43-apache", + "5.4.43-cli", + "5.4.43-fpm", + "5.4.43", + "5.4.44-apache", + "5.4.44-cli", + "5.4.44-fpm", + "5.4.44", + "5.4.45-apache", + "5.4.45-cli", + "5.4.45-fpm", + "5.4.45", + "5.4", + "5.5-alpine", + "5.5-apache", + "5.5-cli", + "5.5-fpm-alpine", + "5.5-fpm", + "5.5-zts-alpine", + "5.5-zts", + "5.5.16-apache", + "5.5.16-cli", + "5.5.17-apache", + "5.5.17-cli", + "5.5.17", + "5.5.18-apache", + "5.5.18-cli", + "5.5.18", + "5.5.19-apache", + "5.5.19-cli", + "5.5.19-fpm", + "5.5.19", + "5.5.20-apache", + "5.5.20-cli", + "5.5.20-fpm", + "5.5.20", + "5.5.21-apache", + "5.5.21-cli", + "5.5.21-fpm", + "5.5.21", + "5.5.22-apache", + "5.5.22-cli", + "5.5.22-fpm", + "5.5.22", + "5.5.23-apache", + "5.5.23-cli", + "5.5.23-fpm", + "5.5.23", + "5.5.24-apache", + "5.5.24-cli", + "5.5.24-fpm", + "5.5.24", + "5.5.25-apache", + "5.5.25-cli", + "5.5.25-fpm", + "5.5.25", + "5.5.26-apache", + "5.5.26-cli", + "5.5.26-fpm", + "5.5.26", + "5.5.27-apache", + "5.5.27-cli", + "5.5.27-fpm", + "5.5.27", + "5.5.28-apache", + "5.5.28-cli", + "5.5.28-fpm", + "5.5.28", + "5.5.29-apache", + "5.5.29-cli", + "5.5.29-fpm", + "5.5.29", + "5.5.30-apache", + "5.5.30-cli", + "5.5.30-fpm", + "5.5.30", + "5.5.31-apache", + "5.5.31-cli", + "5.5.31-fpm", + "5.5.31-zts", + "5.5.31", + "5.5.32-apache", + "5.5.32-cli", + "5.5.32-fpm", + "5.5.32-zts", + "5.5.32", + "5.5.33-alpine", + "5.5.33-apache", + "5.5.33-cli", + "5.5.33-fpm-alpine", + "5.5.33-fpm", + "5.5.33-zts-alpine", + "5.5.33-zts", + "5.5.33", + "5.5.34-alpine", + "5.5.34-apache", + "5.5.34-cli", + "5.5.34-fpm-alpine", + "5.5.34-fpm", + "5.5.34-zts-alpine", + "5.5.34-zts", + "5.5.34", + "5.5.35-alpine", + "5.5.35-apache", + "5.5.35-cli", + "5.5.35-fpm-alpine", + "5.5.35-fpm", + "5.5.35-zts-alpine", + "5.5.35-zts", + "5.5.35", + "5.5.36-alpine", + "5.5.36-apache", + "5.5.36-cli", + "5.5.36-fpm-alpine", + "5.5.36-fpm", + "5.5.36-zts-alpine", + "5.5.36-zts", + "5.5.36", + "5.5.37-alpine", + "5.5.37-apache", + "5.5.37-cli", + "5.5.37-fpm-alpine", + "5.5.37-fpm", + "5.5.37-zts-alpine", + "5.5.37-zts", + "5.5.37", + "5.5.38-alpine", + "5.5.38-apache", + "5.5.38-cli", + "5.5.38-fpm-alpine", + "5.5.38-fpm", + "5.5.38-zts-alpine", + "5.5.38-zts", + "5.5.38", + "5.5", + "5.6-alpine", + "5.6-alpine3.4", + "5.6-alpine3.7", + "5.6-alpine3.8", + "5.6-apache-jessie", + "5.6-apache-stretch", + "5.6-apache", + "5.6-cli-alpine", + "5.6-cli-alpine3.4", + "5.6-cli-alpine3.7", + "5.6-cli-alpine3.8", + "5.6-cli-jessie", + "5.6-cli-stretch", + "5.6-cli", + "5.6-fpm-alpine", + "5.6-fpm-alpine3.4", + "5.6-fpm-alpine3.7", + "5.6-fpm-alpine3.8", + "5.6-fpm-jessie", + "5.6-fpm-stretch", + "5.6-fpm", + "5.6-jessie", + "5.6-stretch", + "5.6-zts-alpine", + "5.6-zts-alpine3.4", + "5.6-zts-alpine3.7", + "5.6-zts-alpine3.8", + "5.6-zts-jessie", + "5.6-zts-stretch", + "5.6-zts", + "5.6.0-apache", + "5.6.0-cli", + "5.6.1-apache", + "5.6.1-cli", + "5.6.1", + "5.6.10-apache", + "5.6.10-cli", + "5.6.10-fpm", + "5.6.10", + "5.6.11-apache", + "5.6.11-cli", + "5.6.11-fpm", + "5.6.11", + "5.6.12-apache", + "5.6.12-cli", + "5.6.12-fpm", + "5.6.12", + "5.6.13-apache", + "5.6.13-cli", + "5.6.13-fpm", + "5.6.13", + "5.6.14-apache", + "5.6.14-cli", + "5.6.14-fpm", + "5.6.14", + "5.6.15-apache", + "5.6.15-cli", + "5.6.15-fpm", + "5.6.15", + "5.6.16-apache", + "5.6.16-cli", + "5.6.16-fpm", + "5.6.16", + "5.6.17-apache", + "5.6.17-cli", + "5.6.17-fpm", + "5.6.17-zts", + "5.6.17", + "5.6.18-apache", + "5.6.18-cli", + "5.6.18-fpm", + "5.6.18-zts", + "5.6.18", + "5.6.19-alpine", + "5.6.19-apache", + "5.6.19-cli", + "5.6.19-fpm-alpine", + "5.6.19-fpm", + "5.6.19-zts-alpine", + "5.6.19-zts", + "5.6.19", + "5.6.2-apache", + "5.6.2-cli", + "5.6.2", + "5.6.20-alpine", + "5.6.20-apache", + "5.6.20-cli", + "5.6.20-fpm-alpine", + "5.6.20-fpm", + "5.6.20-zts-alpine", + "5.6.20-zts", + "5.6.20", + "5.6.21-alpine", + "5.6.21-apache", + "5.6.21-cli", + "5.6.21-fpm-alpine", + "5.6.21-fpm", + "5.6.21-zts-alpine", + "5.6.21-zts", + "5.6.21", + "5.6.22-alpine", + "5.6.22-apache", + "5.6.22-cli", + "5.6.22-fpm-alpine", + "5.6.22-fpm", + "5.6.22-zts-alpine", + "5.6.22-zts", + "5.6.22", + "5.6.23-alpine", + "5.6.23-apache", + "5.6.23-cli", + "5.6.23-fpm-alpine", + "5.6.23-fpm", + "5.6.23-zts-alpine", + "5.6.23-zts", + "5.6.23", + "5.6.24-alpine", + "5.6.24-apache", + "5.6.24-cli", + "5.6.24-fpm-alpine", + "5.6.24-fpm", + "5.6.24-zts-alpine", + "5.6.24-zts", + "5.6.24", + "5.6.25-alpine", + "5.6.25-apache", + "5.6.25-cli", + "5.6.25-fpm-alpine", + "5.6.25-fpm", + "5.6.25-zts-alpine", + "5.6.25-zts", + "5.6.25", + "5.6.26-alpine", + "5.6.26-apache", + "5.6.26-cli", + "5.6.26-fpm-alpine", + "5.6.26-fpm", + "5.6.26-zts-alpine", + "5.6.26-zts", + "5.6.26", + "5.6.27-alpine", + "5.6.27-apache", + "5.6.27-cli", + "5.6.27-fpm-alpine", + "5.6.27-fpm", + "5.6.27-zts-alpine", + "5.6.27-zts", + "5.6.27", + "5.6.28-alpine", + "5.6.28-apache", + "5.6.28-cli", + "5.6.28-fpm-alpine", + "5.6.28-fpm", + "5.6.28-zts-alpine", + "5.6.28-zts", + "5.6.28", + "5.6.29-alpine", + "5.6.29-apache", + "5.6.29-cli", + "5.6.29-fpm-alpine", + "5.6.29-fpm", + "5.6.29-zts-alpine", + "5.6.29-zts", + "5.6.29", + "5.6.3-apache", + "5.6.3-cli", + "5.6.3-fpm", + "5.6.3", + "5.6.30-alpine", + "5.6.30-apache", + "5.6.30-cli", + "5.6.30-fpm-alpine", + "5.6.30-fpm", + "5.6.30-zts-alpine", + "5.6.30-zts", + "5.6.30", + "5.6.31-alpine", + "5.6.31-alpine3.4", + "5.6.31-apache-jessie", + "5.6.31-apache", + "5.6.31-cli-alpine", + "5.6.31-cli-alpine3.4", + "5.6.31-cli-jessie", + "5.6.31-cli", + "5.6.31-fpm-alpine", + "5.6.31-fpm-alpine3.4", + "5.6.31-fpm-jessie", + "5.6.31-fpm", + "5.6.31-jessie", + "5.6.31-zts-alpine", + "5.6.31-zts-alpine3.4", + "5.6.31-zts-jessie", + "5.6.31-zts", + "5.6.31", + "5.6.32-alpine", + "5.6.32-alpine3.4", + "5.6.32-apache-jessie", + "5.6.32-apache", + "5.6.32-cli-alpine", + "5.6.32-cli-alpine3.4", + "5.6.32-cli-jessie", + "5.6.32-cli", + "5.6.32-fpm-alpine", + "5.6.32-fpm-alpine3.4", + "5.6.32-fpm-jessie", + "5.6.32-fpm", + "5.6.32-jessie", + "5.6.32-zts-alpine", + "5.6.32-zts-alpine3.4", + "5.6.32-zts-jessie", + "5.6.32-zts", + "5.6.32", + "5.6.33-alpine", + "5.6.33-alpine3.4", + "5.6.33-apache-jessie", + "5.6.33-apache", + "5.6.33-cli-alpine", + "5.6.33-cli-alpine3.4", + "5.6.33-cli-jessie", + "5.6.33-cli", + "5.6.33-fpm-alpine", + "5.6.33-fpm-alpine3.4", + "5.6.33-fpm-jessie", + "5.6.33-fpm", + "5.6.33-jessie", + "5.6.33-zts-alpine", + "5.6.33-zts-alpine3.4", + "5.6.33-zts-jessie", + "5.6.33-zts", + "5.6.33", + "5.6.34-alpine", + "5.6.34-alpine3.4", + "5.6.34-apache-jessie", + "5.6.34-apache", + "5.6.34-cli-alpine", + "5.6.34-cli-alpine3.4", + "5.6.34-cli-jessie", + "5.6.34-cli", + "5.6.34-fpm-alpine", + "5.6.34-fpm-alpine3.4", + "5.6.34-fpm-jessie", + "5.6.34-fpm", + "5.6.34-jessie", + "5.6.34-zts-alpine", + "5.6.34-zts-alpine3.4", + "5.6.34-zts-jessie", + "5.6.34-zts", + "5.6.34", + "5.6.35-alpine", + "5.6.35-alpine3.4", + "5.6.35-apache-jessie", + "5.6.35-apache", + "5.6.35-cli-alpine", + "5.6.35-cli-alpine3.4", + "5.6.35-cli-jessie", + "5.6.35-cli", + "5.6.35-fpm-alpine", + "5.6.35-fpm-alpine3.4", + "5.6.35-fpm-jessie", + "5.6.35-fpm", + "5.6.35-jessie", + "5.6.35-zts-alpine", + "5.6.35-zts-alpine3.4", + "5.6.35-zts-jessie", + "5.6.35-zts", + "5.6.35", + "5.6.36-alpine", + "5.6.36-alpine3.4", + "5.6.36-alpine3.7", + "5.6.36-apache-jessie", + "5.6.36-apache-stretch", + "5.6.36-apache", + "5.6.36-cli-alpine", + "5.6.36-cli-alpine3.4", + "5.6.36-cli-alpine3.7", + "5.6.36-cli-jessie", + "5.6.36-cli-stretch", + "5.6.36-cli", + "5.6.36-fpm-alpine", + "5.6.36-fpm-alpine3.4", + "5.6.36-fpm-alpine3.7", + "5.6.36-fpm-jessie", + "5.6.36-fpm-stretch", + "5.6.36-fpm", + "5.6.36-jessie", + "5.6.36-stretch", + "5.6.36-zts-alpine", + "5.6.36-zts-alpine3.4", + "5.6.36-zts-alpine3.7", + "5.6.36-zts-jessie", + "5.6.36-zts-stretch", + "5.6.36-zts", + "5.6.36", + "5.6.37-alpine", + "5.6.37-alpine3.7", + "5.6.37-alpine3.8", + "5.6.37-apache-jessie", + "5.6.37-apache-stretch", + "5.6.37-apache", + "5.6.37-cli-alpine", + "5.6.37-cli-alpine3.7", + "5.6.37-cli-alpine3.8", + "5.6.37-cli-jessie", + "5.6.37-cli-stretch", + "5.6.37-cli", + "5.6.37-fpm-alpine", + "5.6.37-fpm-alpine3.7", + "5.6.37-fpm-alpine3.8", + "5.6.37-fpm-jessie", + "5.6.37-fpm-stretch", + "5.6.37-fpm", + "5.6.37-jessie", + "5.6.37-stretch", + "5.6.37-zts-alpine", + "5.6.37-zts-alpine3.7", + "5.6.37-zts-alpine3.8", + "5.6.37-zts-jessie", + "5.6.37-zts-stretch", + "5.6.37-zts", + "5.6.37", + "5.6.38-alpine", + "5.6.38-alpine3.7", + "5.6.38-alpine3.8", + "5.6.38-apache-jessie", + "5.6.38-apache-stretch", + "5.6.38-apache", + "5.6.38-cli-alpine", + "5.6.38-cli-alpine3.7", + "5.6.38-cli-alpine3.8", + "5.6.38-cli-jessie", + "5.6.38-cli-stretch", + "5.6.38-cli", + "5.6.38-fpm-alpine", + "5.6.38-fpm-alpine3.7", + "5.6.38-fpm-alpine3.8", + "5.6.38-fpm-jessie", + "5.6.38-fpm-stretch", + "5.6.38-fpm", + "5.6.38-jessie", + "5.6.38-stretch", + "5.6.38-zts-alpine", + "5.6.38-zts-alpine3.7", + "5.6.38-zts-alpine3.8", + "5.6.38-zts-jessie", + "5.6.38-zts-stretch", + "5.6.38-zts", + "5.6.38", + "5.6.39-alpine", + "5.6.39-alpine3.8", + "5.6.39-apache-jessie", + "5.6.39-apache-stretch", + "5.6.39-apache", + "5.6.39-cli-alpine", + "5.6.39-cli-alpine3.8", + "5.6.39-cli-jessie", + "5.6.39-cli-stretch", + "5.6.39-cli", + "5.6.39-fpm-alpine", + "5.6.39-fpm-alpine3.8", + "5.6.39-fpm-jessie", + "5.6.39-fpm-stretch", + "5.6.39-fpm", + "5.6.39-jessie", + "5.6.39-stretch", + "5.6.39-zts-alpine", + "5.6.39-zts-alpine3.8", + "5.6.39-zts-jessie", + "5.6.39-zts-stretch", + "5.6.39-zts", + "5.6.39", + "5.6.4-apache", + "5.6.4-cli", + "5.6.4-fpm", + "5.6.4", + "5.6.40-alpine", + "5.6.40-alpine3.8", + "5.6.40-apache-jessie", + "5.6.40-apache-stretch", + "5.6.40-apache", + "5.6.40-cli-alpine", + "5.6.40-cli-alpine3.8", + "5.6.40-cli-jessie", + "5.6.40-cli-stretch", + "5.6.40-cli", + "5.6.40-fpm-alpine", + "5.6.40-fpm-alpine3.8", + "5.6.40-fpm-jessie", + "5.6.40-fpm-stretch", + "5.6.40-fpm", + "5.6.40-jessie", + "5.6.40-stretch", + "5.6.40-zts-alpine", + "5.6.40-zts-alpine3.8", + "5.6.40-zts-jessie", + "5.6.40-zts-stretch", + "5.6.40-zts", + "5.6.40", + "5.6.5-apache", + "5.6.5-cli", + "5.6.5-fpm", + "5.6.5", + "5.6.6-apache", + "5.6.6-cli", + "5.6.6-fpm", + "5.6.6", + "5.6.7-apache", + "5.6.7-cli", + "5.6.7-fpm", + "5.6.7", + "5.6.8-apache", + "5.6.8-cli", + "5.6.8-fpm", + "5.6.8", + "5.6.9-apache", + "5.6.9-cli", + "5.6.9-fpm", + "5.6.9", + "5.6", + "5", + "7-alpine", + "7-alpine3.10", + "7-alpine3.4", + "7-alpine3.6", + "7-alpine3.7", + "7-alpine3.8", + "7-alpine3.9", + "7-apache-buster", + "7-apache-jessie", + "7-apache-stretch", + "7-apache", + "7-buster", + "7-cli-alpine", + "7-cli-alpine3.10", + "7-cli-alpine3.4", + "7-cli-alpine3.6", + "7-cli-alpine3.7", + "7-cli-alpine3.8", + "7-cli-alpine3.9", + "7-cli-buster", + "7-cli-jessie", + "7-cli-stretch", + "7-cli", + "7-fpm-alpine", + "7-fpm-alpine3.10", + "7-fpm-alpine3.4", + "7-fpm-alpine3.6", + "7-fpm-alpine3.7", + "7-fpm-alpine3.8", + "7-fpm-alpine3.9", + "7-fpm-buster", + "7-fpm-jessie", + "7-fpm-stretch", + "7-fpm", + "7-jessie", + "7-stretch", + "7-zts-alpine", + "7-zts-alpine3.10", + "7-zts-alpine3.4", + "7-zts-alpine3.6", + "7-zts-alpine3.7", + "7-zts-alpine3.8", + "7-zts-alpine3.9", + "7-zts-buster", + "7-zts-jessie", + "7-zts-stretch", + "7-zts", + "7.0-alpine", + "7.0-alpine3.4", + "7.0-alpine3.7", + "7.0-apache-jessie", + "7.0-apache-stretch", + "7.0-apache", + "7.0-cli-alpine", + "7.0-cli-alpine3.4", + "7.0-cli-alpine3.7", + "7.0-cli-jessie", + "7.0-cli-stretch", + "7.0-cli", + "7.0-fpm-alpine", + "7.0-fpm-alpine3.4", + "7.0-fpm-alpine3.7", + "7.0-fpm-jessie", + "7.0-fpm-stretch", + "7.0-fpm", + "7.0-jessie", + "7.0-stretch", + "7.0-zts-alpine", + "7.0-zts-alpine3.4", + "7.0-zts-alpine3.7", + "7.0-zts-jessie", + "7.0-zts-stretch", + "7.0-zts", + "7.0.0-apache", + "7.0.0-cli", + "7.0.0-fpm", + "7.0.0", + "7.0.0RC1-apache", + "7.0.0RC1-cli", + "7.0.0RC1-fpm", + "7.0.0RC1", + "7.0.0RC2-apache", + "7.0.0RC2-cli", + "7.0.0RC2-fpm", + "7.0.0RC2", + "7.0.0RC3-apache", + "7.0.0RC3-cli", + "7.0.0RC3-fpm", + "7.0.0RC3", + "7.0.0RC4-apache", + "7.0.0RC4-cli", + "7.0.0RC4-fpm", + "7.0.0RC4", + "7.0.0RC5-apache", + "7.0.0RC5-cli", + "7.0.0RC5-fpm", + "7.0.0RC5", + "7.0.0RC6-apache", + "7.0.0RC6-cli", + "7.0.0RC6-fpm", + "7.0.0RC6", + "7.0.0RC7-apache", + "7.0.0RC7-cli", + "7.0.0RC7-fpm", + "7.0.0RC7", + "7.0.0RC8-apache", + "7.0.0RC8-cli", + "7.0.0RC8-fpm", + "7.0.0RC8", + "7.0.0beta1-apache", + "7.0.0beta1-cli", + "7.0.0beta1-fpm", + "7.0.0beta1", + "7.0.0beta2-apache", + "7.0.0beta2-cli", + "7.0.0beta2-fpm", + "7.0.0beta2", + "7.0.0beta3-apache", + "7.0.0beta3-cli", + "7.0.0beta3-fpm", + "7.0.0beta3", + "7.0.1-apache", + "7.0.1-cli", + "7.0.1-fpm", + "7.0.1", + "7.0.10-alpine", + "7.0.10-apache", + "7.0.10-cli", + "7.0.10-fpm-alpine", + "7.0.10-fpm", + "7.0.10-zts-alpine", + "7.0.10-zts", + "7.0.10", + "7.0.11-alpine", + "7.0.11-apache", + "7.0.11-cli", + "7.0.11-fpm-alpine", + "7.0.11-fpm", + "7.0.11-zts-alpine", + "7.0.11-zts", + "7.0.11", + "7.0.12-alpine", + "7.0.12-apache", + "7.0.12-cli", + "7.0.12-fpm-alpine", + "7.0.12-fpm", + "7.0.12-zts-alpine", + "7.0.12-zts", + "7.0.12", + "7.0.13-alpine", + "7.0.13-apache", + "7.0.13-cli", + "7.0.13-fpm-alpine", + "7.0.13-fpm", + "7.0.13-zts-alpine", + "7.0.13-zts", + "7.0.13", + "7.0.14-alpine", + "7.0.14-apache", + "7.0.14-cli", + "7.0.14-fpm-alpine", + "7.0.14-fpm", + "7.0.14-zts-alpine", + "7.0.14-zts", + "7.0.14", + "7.0.15-alpine", + "7.0.15-apache", + "7.0.15-cli", + "7.0.15-fpm-alpine", + "7.0.15-fpm", + "7.0.15-zts-alpine", + "7.0.15-zts", + "7.0.15", + "7.0.16-alpine", + "7.0.16-apache", + "7.0.16-cli", + "7.0.16-fpm-alpine", + "7.0.16-fpm", + "7.0.16-zts-alpine", + "7.0.16-zts", + "7.0.16", + "7.0.17-alpine", + "7.0.17-apache", + "7.0.17-cli", + "7.0.17-fpm-alpine", + "7.0.17-fpm", + "7.0.17-zts-alpine", + "7.0.17-zts", + "7.0.17", + "7.0.18-alpine", + "7.0.18-apache", + "7.0.18-cli", + "7.0.18-fpm-alpine", + "7.0.18-fpm", + "7.0.18-zts-alpine", + "7.0.18-zts", + "7.0.18", + "7.0.19-alpine", + "7.0.19-apache", + "7.0.19-cli", + "7.0.19-fpm-alpine", + "7.0.19-fpm", + "7.0.19-zts-alpine", + "7.0.19-zts", + "7.0.19", + "7.0.2-apache", + "7.0.2-cli", + "7.0.2-fpm", + "7.0.2-zts", + "7.0.2", + "7.0.20-alpine", + "7.0.20-apache", + "7.0.20-cli", + "7.0.20-fpm-alpine", + "7.0.20-fpm", + "7.0.20-zts-alpine", + "7.0.20-zts", + "7.0.20", + "7.0.21-alpine", + "7.0.21-apache", + "7.0.21-cli", + "7.0.21-fpm-alpine", + "7.0.21-fpm", + "7.0.21-zts-alpine", + "7.0.21-zts", + "7.0.21", + "7.0.22-alpine", + "7.0.22-apache", + "7.0.22-cli", + "7.0.22-fpm-alpine", + "7.0.22-fpm", + "7.0.22-zts-alpine", + "7.0.22-zts", + "7.0.22", + "7.0.23-alpine", + "7.0.23-apache", + "7.0.23-cli", + "7.0.23-fpm-alpine", + "7.0.23-fpm", + "7.0.23-zts-alpine", + "7.0.23-zts", + "7.0.23", + "7.0.24-alpine", + "7.0.24-alpine3.4", + "7.0.24-apache-jessie", + "7.0.24-apache", + "7.0.24-cli-alpine", + "7.0.24-cli-alpine3.4", + "7.0.24-cli-jessie", + "7.0.24-cli", + "7.0.24-fpm-alpine", + "7.0.24-fpm-alpine3.4", + "7.0.24-fpm-jessie", + "7.0.24-fpm", + "7.0.24-jessie", + "7.0.24-zts-alpine", + "7.0.24-zts-alpine3.4", + "7.0.24-zts-jessie", + "7.0.24-zts", + "7.0.24", + "7.0.25-alpine", + "7.0.25-alpine3.4", + "7.0.25-apache-jessie", + "7.0.25-apache", + "7.0.25-cli-alpine", + "7.0.25-cli-alpine3.4", + "7.0.25-cli-jessie", + "7.0.25-cli", + "7.0.25-fpm-alpine", + "7.0.25-fpm-alpine3.4", + "7.0.25-fpm-jessie", + "7.0.25-fpm", + "7.0.25-jessie", + "7.0.25-zts-alpine", + "7.0.25-zts-alpine3.4", + "7.0.25-zts-jessie", + "7.0.25-zts", + "7.0.25", + "7.0.26-alpine", + "7.0.26-alpine3.4", + "7.0.26-apache-jessie", + "7.0.26-apache", + "7.0.26-cli-alpine", + "7.0.26-cli-alpine3.4", + "7.0.26-cli-jessie", + "7.0.26-cli", + "7.0.26-fpm-alpine", + "7.0.26-fpm-alpine3.4", + "7.0.26-fpm-jessie", + "7.0.26-fpm", + "7.0.26-jessie", + "7.0.26-zts-alpine", + "7.0.26-zts-alpine3.4", + "7.0.26-zts-jessie", + "7.0.26-zts", + "7.0.26", + "7.0.27-alpine", + "7.0.27-alpine3.4", + "7.0.27-apache-jessie", + "7.0.27-apache", + "7.0.27-cli-alpine", + "7.0.27-cli-alpine3.4", + "7.0.27-cli-jessie", + "7.0.27-cli", + "7.0.27-fpm-alpine", + "7.0.27-fpm-alpine3.4", + "7.0.27-fpm-jessie", + "7.0.27-fpm", + "7.0.27-jessie", + "7.0.27-zts-alpine", + "7.0.27-zts-alpine3.4", + "7.0.27-zts-jessie", + "7.0.27-zts", + "7.0.27", + "7.0.28-alpine", + "7.0.28-alpine3.4", + "7.0.28-apache-jessie", + "7.0.28-apache", + "7.0.28-cli-alpine", + "7.0.28-cli-alpine3.4", + "7.0.28-cli-jessie", + "7.0.28-cli", + "7.0.28-fpm-alpine", + "7.0.28-fpm-alpine3.4", + "7.0.28-fpm-jessie", + "7.0.28-fpm", + "7.0.28-jessie", + "7.0.28-zts-alpine", + "7.0.28-zts-alpine3.4", + "7.0.28-zts-jessie", + "7.0.28-zts", + "7.0.28", + "7.0.29-alpine", + "7.0.29-alpine3.4", + "7.0.29-apache-jessie", + "7.0.29-apache", + "7.0.29-cli-alpine", + "7.0.29-cli-alpine3.4", + "7.0.29-cli-jessie", + "7.0.29-cli", + "7.0.29-fpm-alpine", + "7.0.29-fpm-alpine3.4", + "7.0.29-fpm-jessie", + "7.0.29-fpm", + "7.0.29-jessie", + "7.0.29-zts-alpine", + "7.0.29-zts-alpine3.4", + "7.0.29-zts-jessie", + "7.0.29-zts", + "7.0.29", + "7.0.3-apache", + "7.0.3-cli", + "7.0.3-fpm", + "7.0.3-zts", + "7.0.3", + "7.0.30-alpine", + "7.0.30-alpine3.4", + "7.0.30-alpine3.7", + "7.0.30-apache-jessie", + "7.0.30-apache-stretch", + "7.0.30-apache", + "7.0.30-cli-alpine", + "7.0.30-cli-alpine3.4", + "7.0.30-cli-alpine3.7", + "7.0.30-cli-jessie", + "7.0.30-cli-stretch", + "7.0.30-cli", + "7.0.30-fpm-alpine", + "7.0.30-fpm-alpine3.4", + "7.0.30-fpm-alpine3.7", + "7.0.30-fpm-jessie", + "7.0.30-fpm-stretch", + "7.0.30-fpm", + "7.0.30-jessie", + "7.0.30-stretch", + "7.0.30-zts-alpine", + "7.0.30-zts-alpine3.4", + "7.0.30-zts-alpine3.7", + "7.0.30-zts-jessie", + "7.0.30-zts-stretch", + "7.0.30-zts", + "7.0.30", + "7.0.31-alpine", + "7.0.31-alpine3.7", + "7.0.31-apache-jessie", + "7.0.31-apache-stretch", + "7.0.31-apache", + "7.0.31-cli-alpine", + "7.0.31-cli-alpine3.7", + "7.0.31-cli-jessie", + "7.0.31-cli-stretch", + "7.0.31-cli", + "7.0.31-fpm-alpine", + "7.0.31-fpm-alpine3.7", + "7.0.31-fpm-jessie", + "7.0.31-fpm-stretch", + "7.0.31-fpm", + "7.0.31-jessie", + "7.0.31-stretch", + "7.0.31-zts-alpine", + "7.0.31-zts-alpine3.7", + "7.0.31-zts-jessie", + "7.0.31-zts-stretch", + "7.0.31-zts", + "7.0.31", + "7.0.32-alpine", + "7.0.32-alpine3.7", + "7.0.32-apache-jessie", + "7.0.32-apache-stretch", + "7.0.32-apache", + "7.0.32-cli-alpine", + "7.0.32-cli-alpine3.7", + "7.0.32-cli-jessie", + "7.0.32-cli-stretch", + "7.0.32-cli", + "7.0.32-fpm-alpine", + "7.0.32-fpm-alpine3.7", + "7.0.32-fpm-jessie", + "7.0.32-fpm-stretch", + "7.0.32-fpm", + "7.0.32-jessie", + "7.0.32-stretch", + "7.0.32-zts-alpine", + "7.0.32-zts-alpine3.7", + "7.0.32-zts-jessie", + "7.0.32-zts-stretch", + "7.0.32-zts", + "7.0.32", + "7.0.33-alpine", + "7.0.33-alpine3.7", + "7.0.33-apache-jessie", + "7.0.33-apache-stretch", + "7.0.33-apache", + "7.0.33-cli-alpine", + "7.0.33-cli-alpine3.7", + "7.0.33-cli-jessie", + "7.0.33-cli-stretch", + "7.0.33-cli", + "7.0.33-fpm-alpine", + "7.0.33-fpm-alpine3.7", + "7.0.33-fpm-jessie", + "7.0.33-fpm-stretch", + "7.0.33-fpm", + "7.0.33-jessie", + "7.0.33-stretch", + "7.0.33-zts-alpine", + "7.0.33-zts-alpine3.7", + "7.0.33-zts-jessie", + "7.0.33-zts-stretch", + "7.0.33-zts", + "7.0.33", + "7.0.4-alpine", + "7.0.4-apache", + "7.0.4-cli", + "7.0.4-fpm-alpine", + "7.0.4-fpm", + "7.0.4-zts-alpine", + "7.0.4-zts", + "7.0.4", + "7.0.5-alpine", + "7.0.5-apache", + "7.0.5-cli", + "7.0.5-fpm-alpine", + "7.0.5-fpm", + "7.0.5-zts-alpine", + "7.0.5-zts", + "7.0.5", + "7.0.6-alpine", + "7.0.6-apache", + "7.0.6-cli", + "7.0.6-fpm-alpine", + "7.0.6-fpm", + "7.0.6-zts-alpine", + "7.0.6-zts", + "7.0.6", + "7.0.7-alpine", + "7.0.7-apache", + "7.0.7-cli", + "7.0.7-fpm-alpine", + "7.0.7-fpm", + "7.0.7-zts-alpine", + "7.0.7-zts", + "7.0.7", + "7.0.8-alpine", + "7.0.8-apache", + "7.0.8-cli", + "7.0.8-fpm-alpine", + "7.0.8-fpm", + "7.0.8-zts-alpine", + "7.0.8-zts", + "7.0.8", + "7.0.9-alpine", + "7.0.9-apache", + "7.0.9-cli", + "7.0.9-fpm-alpine", + "7.0.9-fpm", + "7.0.9-zts-alpine", + "7.0.9-zts", + "7.0.9", + "7.0", + "7.1-alpine", + "7.1-alpine3.10", + "7.1-alpine3.4", + "7.1-alpine3.7", + "7.1-alpine3.8", + "7.1-alpine3.9", + "7.1-apache-buster", + "7.1-apache-jessie", + "7.1-apache-stretch", + "7.1-apache", + "7.1-buster", + "7.1-cli-alpine", + "7.1-cli-alpine3.10", + "7.1-cli-alpine3.4", + "7.1-cli-alpine3.7", + "7.1-cli-alpine3.8", + "7.1-cli-alpine3.9", + "7.1-cli-buster", + "7.1-cli-jessie", + "7.1-cli-stretch", + "7.1-cli", + "7.1-fpm-alpine", + "7.1-fpm-alpine3.10", + "7.1-fpm-alpine3.4", + "7.1-fpm-alpine3.7", + "7.1-fpm-alpine3.8", + "7.1-fpm-alpine3.9", + "7.1-fpm-buster", + "7.1-fpm-jessie", + "7.1-fpm-stretch", + "7.1-fpm", + "7.1-jessie", + "7.1-rc-alpine", + "7.1-rc-apache", + "7.1-rc-cli", + "7.1-rc-fpm-alpine", + "7.1-rc-fpm", + "7.1-rc-zts-alpine", + "7.1-rc-zts", + "7.1-rc", + "7.1-stretch", + "7.1-zts-alpine", + "7.1-zts-alpine3.10", + "7.1-zts-alpine3.4", + "7.1-zts-alpine3.7", + "7.1-zts-alpine3.8", + "7.1-zts-alpine3.9", + "7.1-zts-buster", + "7.1-zts-jessie", + "7.1-zts-stretch", + "7.1-zts", + "7.1.0-alpine", + "7.1.0-apache", + "7.1.0-cli", + "7.1.0-fpm-alpine", + "7.1.0-fpm", + "7.1.0-zts-alpine", + "7.1.0-zts", + "7.1.0", + "7.1.0RC1-alpine", + "7.1.0RC1-apache", + "7.1.0RC1-cli", + "7.1.0RC1-fpm-alpine", + "7.1.0RC1-fpm", + "7.1.0RC1-zts-alpine", + "7.1.0RC1-zts", + "7.1.0RC1", + "7.1.0RC2-alpine", + "7.1.0RC2-apache", + "7.1.0RC2-cli", + "7.1.0RC2-fpm-alpine", + "7.1.0RC2-fpm", + "7.1.0RC2-zts-alpine", + "7.1.0RC2-zts", + "7.1.0RC2", + "7.1.0RC3-alpine", + "7.1.0RC3-apache", + "7.1.0RC3-cli", + "7.1.0RC3-fpm-alpine", + "7.1.0RC3-fpm", + "7.1.0RC3-zts-alpine", + "7.1.0RC3-zts", + "7.1.0RC3", + "7.1.0RC4-alpine", + "7.1.0RC4-apache", + "7.1.0RC4-cli", + "7.1.0RC4-fpm-alpine", + "7.1.0RC4-fpm", + "7.1.0RC4-zts-alpine", + "7.1.0RC4-zts", + "7.1.0RC4", + "7.1.0RC5-alpine", + "7.1.0RC5-apache", + "7.1.0RC5-cli", + "7.1.0RC5-fpm-alpine", + "7.1.0RC5-fpm", + "7.1.0RC5-zts-alpine", + "7.1.0RC5-zts", + "7.1.0RC5", + "7.1.0RC6-alpine", + "7.1.0RC6-apache", + "7.1.0RC6-cli", + "7.1.0RC6-fpm-alpine", + "7.1.0RC6-fpm", + "7.1.0RC6-zts-alpine", + "7.1.0RC6-zts", + "7.1.0RC6", + "7.1.1-alpine", + "7.1.1-apache", + "7.1.1-cli", + "7.1.1-fpm-alpine", + "7.1.1-fpm", + "7.1.1-zts-alpine", + "7.1.1-zts", + "7.1.1", + "7.1.10-alpine", + "7.1.10-alpine3.4", + "7.1.10-apache-jessie", + "7.1.10-apache", + "7.1.10-cli-alpine", + "7.1.10-cli-alpine3.4", + "7.1.10-cli-jessie", + "7.1.10-cli", + "7.1.10-fpm-alpine", + "7.1.10-fpm-alpine3.4", + "7.1.10-fpm-jessie", + "7.1.10-fpm", + "7.1.10-jessie", + "7.1.10-zts-alpine", + "7.1.10-zts-alpine3.4", + "7.1.10-zts-jessie", + "7.1.10-zts", + "7.1.10", + "7.1.11-alpine", + "7.1.11-alpine3.4", + "7.1.11-apache-jessie", + "7.1.11-apache", + "7.1.11-cli-alpine", + "7.1.11-cli-alpine3.4", + "7.1.11-cli-jessie", + "7.1.11-cli", + "7.1.11-fpm-alpine", + "7.1.11-fpm-alpine3.4", + "7.1.11-fpm-jessie", + "7.1.11-fpm", + "7.1.11-jessie", + "7.1.11-zts-alpine", + "7.1.11-zts-alpine3.4", + "7.1.11-zts-jessie", + "7.1.11-zts", + "7.1.11", + "7.1.12-alpine", + "7.1.12-alpine3.4", + "7.1.12-apache-jessie", + "7.1.12-apache", + "7.1.12-cli-alpine", + "7.1.12-cli-alpine3.4", + "7.1.12-cli-jessie", + "7.1.12-cli", + "7.1.12-fpm-alpine", + "7.1.12-fpm-alpine3.4", + "7.1.12-fpm-jessie", + "7.1.12-fpm", + "7.1.12-jessie", + "7.1.12-zts-alpine", + "7.1.12-zts-alpine3.4", + "7.1.12-zts-jessie", + "7.1.12-zts", + "7.1.12", + "7.1.13-alpine", + "7.1.13-alpine3.4", + "7.1.13-apache-jessie", + "7.1.13-apache", + "7.1.13-cli-alpine", + "7.1.13-cli-alpine3.4", + "7.1.13-cli-jessie", + "7.1.13-cli", + "7.1.13-fpm-alpine", + "7.1.13-fpm-alpine3.4", + "7.1.13-fpm-jessie", + "7.1.13-fpm", + "7.1.13-jessie", + "7.1.13-zts-alpine", + "7.1.13-zts-alpine3.4", + "7.1.13-zts-jessie", + "7.1.13-zts", + "7.1.13", + "7.1.14-alpine", + "7.1.14-alpine3.4", + "7.1.14-apache-jessie", + "7.1.14-apache", + "7.1.14-cli-alpine", + "7.1.14-cli-alpine3.4", + "7.1.14-cli-jessie", + "7.1.14-cli", + "7.1.14-fpm-alpine", + "7.1.14-fpm-alpine3.4", + "7.1.14-fpm-jessie", + "7.1.14-fpm", + "7.1.14-jessie", + "7.1.14-zts-alpine", + "7.1.14-zts-alpine3.4", + "7.1.14-zts-jessie", + "7.1.14-zts", + "7.1.14", + "7.1.15-alpine", + "7.1.15-alpine3.4", + "7.1.15-apache-jessie", + "7.1.15-apache", + "7.1.15-cli-alpine", + "7.1.15-cli-alpine3.4", + "7.1.15-cli-jessie", + "7.1.15-cli", + "7.1.15-fpm-alpine", + "7.1.15-fpm-alpine3.4", + "7.1.15-fpm-jessie", + "7.1.15-fpm", + "7.1.15-jessie", + "7.1.15-zts-alpine", + "7.1.15-zts-alpine3.4", + "7.1.15-zts-jessie", + "7.1.15-zts", + "7.1.15", + "7.1.16-alpine", + "7.1.16-alpine3.4", + "7.1.16-apache-jessie", + "7.1.16-apache", + "7.1.16-cli-alpine", + "7.1.16-cli-alpine3.4", + "7.1.16-cli-jessie", + "7.1.16-cli", + "7.1.16-fpm-alpine", + "7.1.16-fpm-alpine3.4", + "7.1.16-fpm-jessie", + "7.1.16-fpm", + "7.1.16-jessie", + "7.1.16-zts-alpine", + "7.1.16-zts-alpine3.4", + "7.1.16-zts-jessie", + "7.1.16-zts", + "7.1.16", + "7.1.17-alpine", + "7.1.17-alpine3.4", + "7.1.17-alpine3.7", + "7.1.17-apache-jessie", + "7.1.17-apache-stretch", + "7.1.17-apache", + "7.1.17-cli-alpine", + "7.1.17-cli-alpine3.4", + "7.1.17-cli-alpine3.7", + "7.1.17-cli-jessie", + "7.1.17-cli-stretch", + "7.1.17-cli", + "7.1.17-fpm-alpine", + "7.1.17-fpm-alpine3.4", + "7.1.17-fpm-alpine3.7", + "7.1.17-fpm-jessie", + "7.1.17-fpm-stretch", + "7.1.17-fpm", + "7.1.17-jessie", + "7.1.17-stretch", + "7.1.17-zts-alpine", + "7.1.17-zts-alpine3.4", + "7.1.17-zts-alpine3.7", + "7.1.17-zts-jessie", + "7.1.17-zts-stretch", + "7.1.17-zts", + "7.1.17", + "7.1.18-alpine", + "7.1.18-alpine3.7", + "7.1.18-apache-jessie", + "7.1.18-apache-stretch", + "7.1.18-apache", + "7.1.18-cli-alpine", + "7.1.18-cli-alpine3.7", + "7.1.18-cli-jessie", + "7.1.18-cli-stretch", + "7.1.18-cli", + "7.1.18-fpm-alpine", + "7.1.18-fpm-alpine3.7", + "7.1.18-fpm-jessie", + "7.1.18-fpm-stretch", + "7.1.18-fpm", + "7.1.18-jessie", + "7.1.18-stretch", + "7.1.18-zts-alpine", + "7.1.18-zts-alpine3.7", + "7.1.18-zts-jessie", + "7.1.18-zts-stretch", + "7.1.18-zts", + "7.1.18", + "7.1.19-alpine", + "7.1.19-alpine3.7", + "7.1.19-apache-jessie", + "7.1.19-apache-stretch", + "7.1.19-apache", + "7.1.19-cli-alpine", + "7.1.19-cli-alpine3.7", + "7.1.19-cli-jessie", + "7.1.19-cli-stretch", + "7.1.19-cli", + "7.1.19-fpm-alpine", + "7.1.19-fpm-alpine3.7", + "7.1.19-fpm-jessie", + "7.1.19-fpm-stretch", + "7.1.19-fpm", + "7.1.19-jessie", + "7.1.19-stretch", + "7.1.19-zts-alpine", + "7.1.19-zts-alpine3.7", + "7.1.19-zts-jessie", + "7.1.19-zts-stretch", + "7.1.19-zts", + "7.1.19", + "7.1.2-alpine", + "7.1.2-apache", + "7.1.2-cli", + "7.1.2-fpm-alpine", + "7.1.2-fpm", + "7.1.2-zts-alpine", + "7.1.2-zts", + "7.1.2", + "7.1.20-alpine", + "7.1.20-alpine3.7", + "7.1.20-apache-jessie", + "7.1.20-apache-stretch", + "7.1.20-apache", + "7.1.20-cli-alpine", + "7.1.20-cli-alpine3.7", + "7.1.20-cli-jessie", + "7.1.20-cli-stretch", + "7.1.20-cli", + "7.1.20-fpm-alpine", + "7.1.20-fpm-alpine3.7", + "7.1.20-fpm-jessie", + "7.1.20-fpm-stretch", + "7.1.20-fpm", + "7.1.20-jessie", + "7.1.20-stretch", + "7.1.20-zts-alpine", + "7.1.20-zts-alpine3.7", + "7.1.20-zts-jessie", + "7.1.20-zts-stretch", + "7.1.20-zts", + "7.1.20", + "7.1.21-alpine", + "7.1.21-alpine3.7", + "7.1.21-alpine3.8", + "7.1.21-apache-jessie", + "7.1.21-apache-stretch", + "7.1.21-apache", + "7.1.21-cli-alpine", + "7.1.21-cli-alpine3.7", + "7.1.21-cli-alpine3.8", + "7.1.21-cli-jessie", + "7.1.21-cli-stretch", + "7.1.21-cli", + "7.1.21-fpm-alpine", + "7.1.21-fpm-alpine3.7", + "7.1.21-fpm-alpine3.8", + "7.1.21-fpm-jessie", + "7.1.21-fpm-stretch", + "7.1.21-fpm", + "7.1.21-jessie", + "7.1.21-stretch", + "7.1.21-zts-alpine", + "7.1.21-zts-alpine3.7", + "7.1.21-zts-alpine3.8", + "7.1.21-zts-jessie", + "7.1.21-zts-stretch", + "7.1.21-zts", + "7.1.21", + "7.1.22-alpine", + "7.1.22-alpine3.7", + "7.1.22-alpine3.8", + "7.1.22-apache-jessie", + "7.1.22-apache-stretch", + "7.1.22-apache", + "7.1.22-cli-alpine", + "7.1.22-cli-alpine3.7", + "7.1.22-cli-alpine3.8", + "7.1.22-cli-jessie", + "7.1.22-cli-stretch", + "7.1.22-cli", + "7.1.22-fpm-alpine", + "7.1.22-fpm-alpine3.7", + "7.1.22-fpm-alpine3.8", + "7.1.22-fpm-jessie", + "7.1.22-fpm-stretch", + "7.1.22-fpm", + "7.1.22-jessie", + "7.1.22-stretch", + "7.1.22-zts-alpine", + "7.1.22-zts-alpine3.7", + "7.1.22-zts-alpine3.8", + "7.1.22-zts-jessie", + "7.1.22-zts-stretch", + "7.1.22-zts", + "7.1.22", + "7.1.23-alpine", + "7.1.23-alpine3.7", + "7.1.23-alpine3.8", + "7.1.23-apache-jessie", + "7.1.23-apache-stretch", + "7.1.23-apache", + "7.1.23-cli-alpine", + "7.1.23-cli-alpine3.7", + "7.1.23-cli-alpine3.8", + "7.1.23-cli-jessie", + "7.1.23-cli-stretch", + "7.1.23-cli", + "7.1.23-fpm-alpine", + "7.1.23-fpm-alpine3.7", + "7.1.23-fpm-alpine3.8", + "7.1.23-fpm-jessie", + "7.1.23-fpm-stretch", + "7.1.23-fpm", + "7.1.23-jessie", + "7.1.23-stretch", + "7.1.23-zts-alpine", + "7.1.23-zts-alpine3.7", + "7.1.23-zts-alpine3.8", + "7.1.23-zts-jessie", + "7.1.23-zts-stretch", + "7.1.23-zts", + "7.1.23", + "7.1.24-alpine", + "7.1.24-alpine3.8", + "7.1.24-apache-jessie", + "7.1.24-apache-stretch", + "7.1.24-apache", + "7.1.24-cli-alpine", + "7.1.24-cli-alpine3.8", + "7.1.24-cli-jessie", + "7.1.24-cli-stretch", + "7.1.24-cli", + "7.1.24-fpm-alpine", + "7.1.24-fpm-alpine3.8", + "7.1.24-fpm-jessie", + "7.1.24-fpm-stretch", + "7.1.24-fpm", + "7.1.24-jessie", + "7.1.24-stretch", + "7.1.24-zts-alpine", + "7.1.24-zts-alpine3.8", + "7.1.24-zts-jessie", + "7.1.24-zts-stretch", + "7.1.24-zts", + "7.1.24", + "7.1.25-alpine", + "7.1.25-alpine3.8", + "7.1.25-apache-jessie", + "7.1.25-apache-stretch", + "7.1.25-apache", + "7.1.25-cli-alpine", + "7.1.25-cli-alpine3.8", + "7.1.25-cli-jessie", + "7.1.25-cli-stretch", + "7.1.25-cli", + "7.1.25-fpm-alpine", + "7.1.25-fpm-alpine3.8", + "7.1.25-fpm-jessie", + "7.1.25-fpm-stretch", + "7.1.25-fpm", + "7.1.25-jessie", + "7.1.25-stretch", + "7.1.25-zts-alpine", + "7.1.25-zts-alpine3.8", + "7.1.25-zts-jessie", + "7.1.25-zts-stretch", + "7.1.25-zts", + "7.1.25", + "7.1.26-alpine", + "7.1.26-alpine3.8", + "7.1.26-alpine3.9", + "7.1.26-apache-jessie", + "7.1.26-apache-stretch", + "7.1.26-apache", + "7.1.26-cli-alpine", + "7.1.26-cli-alpine3.8", + "7.1.26-cli-alpine3.9", + "7.1.26-cli-jessie", + "7.1.26-cli-stretch", + "7.1.26-cli", + "7.1.26-fpm-alpine", + "7.1.26-fpm-alpine3.8", + "7.1.26-fpm-alpine3.9", + "7.1.26-fpm-jessie", + "7.1.26-fpm-stretch", + "7.1.26-fpm", + "7.1.26-jessie", + "7.1.26-stretch", + "7.1.26-zts-alpine", + "7.1.26-zts-alpine3.8", + "7.1.26-zts-alpine3.9", + "7.1.26-zts-jessie", + "7.1.26-zts-stretch", + "7.1.26-zts", + "7.1.26", + "7.1.27-alpine", + "7.1.27-alpine3.8", + "7.1.27-alpine3.9", + "7.1.27-apache-jessie", + "7.1.27-apache-stretch", + "7.1.27-apache", + "7.1.27-cli-alpine", + "7.1.27-cli-alpine3.8", + "7.1.27-cli-alpine3.9", + "7.1.27-cli-jessie", + "7.1.27-cli-stretch", + "7.1.27-cli", + "7.1.27-fpm-alpine", + "7.1.27-fpm-alpine3.8", + "7.1.27-fpm-alpine3.9", + "7.1.27-fpm-jessie", + "7.1.27-fpm-stretch", + "7.1.27-fpm", + "7.1.27-jessie", + "7.1.27-stretch", + "7.1.27-zts-alpine", + "7.1.27-zts-alpine3.8", + "7.1.27-zts-alpine3.9", + "7.1.27-zts-jessie", + "7.1.27-zts-stretch", + "7.1.27-zts", + "7.1.27", + "7.1.28-alpine", + "7.1.28-alpine3.8", + "7.1.28-alpine3.9", + "7.1.28-apache-jessie", + "7.1.28-apache-stretch", + "7.1.28-apache", + "7.1.28-cli-alpine", + "7.1.28-cli-alpine3.8", + "7.1.28-cli-alpine3.9", + "7.1.28-cli-jessie", + "7.1.28-cli-stretch", + "7.1.28-cli", + "7.1.28-fpm-alpine", + "7.1.28-fpm-alpine3.8", + "7.1.28-fpm-alpine3.9", + "7.1.28-fpm-jessie", + "7.1.28-fpm-stretch", + "7.1.28-fpm", + "7.1.28-jessie", + "7.1.28-stretch", + "7.1.28-zts-alpine", + "7.1.28-zts-alpine3.8", + "7.1.28-zts-alpine3.9", + "7.1.28-zts-jessie", + "7.1.28-zts-stretch", + "7.1.28-zts", + "7.1.28", + "7.1.29-alpine", + "7.1.29-alpine3.8", + "7.1.29-alpine3.9", + "7.1.29-apache-jessie", + "7.1.29-apache-stretch", + "7.1.29-apache", + "7.1.29-cli-alpine", + "7.1.29-cli-alpine3.8", + "7.1.29-cli-alpine3.9", + "7.1.29-cli-jessie", + "7.1.29-cli-stretch", + "7.1.29-cli", + "7.1.29-fpm-alpine", + "7.1.29-fpm-alpine3.8", + "7.1.29-fpm-alpine3.9", + "7.1.29-fpm-jessie", + "7.1.29-fpm-stretch", + "7.1.29-fpm", + "7.1.29-jessie", + "7.1.29-stretch", + "7.1.29-zts-alpine", + "7.1.29-zts-alpine3.8", + "7.1.29-zts-alpine3.9", + "7.1.29-zts-jessie", + "7.1.29-zts-stretch", + "7.1.29-zts", + "7.1.29", + "7.1.3-alpine", + "7.1.3-apache", + "7.1.3-cli", + "7.1.3-fpm-alpine", + "7.1.3-fpm", + "7.1.3-zts-alpine", + "7.1.3-zts", + "7.1.3", + "7.1.30-alpine", + "7.1.30-alpine3.10", + "7.1.30-alpine3.8", + "7.1.30-alpine3.9", + "7.1.30-apache-buster", + "7.1.30-apache-jessie", + "7.1.30-apache-stretch", + "7.1.30-apache", + "7.1.30-buster", + "7.1.30-cli-alpine", + "7.1.30-cli-alpine3.10", + "7.1.30-cli-alpine3.8", + "7.1.30-cli-alpine3.9", + "7.1.30-cli-buster", + "7.1.30-cli-jessie", + "7.1.30-cli-stretch", + "7.1.30-cli", + "7.1.30-fpm-alpine", + "7.1.30-fpm-alpine3.10", + "7.1.30-fpm-alpine3.8", + "7.1.30-fpm-alpine3.9", + "7.1.30-fpm-buster", + "7.1.30-fpm-jessie", + "7.1.30-fpm-stretch", + "7.1.30-fpm", + "7.1.30-jessie", + "7.1.30-stretch", + "7.1.30-zts-alpine", + "7.1.30-zts-alpine3.10", + "7.1.30-zts-alpine3.8", + "7.1.30-zts-alpine3.9", + "7.1.30-zts-buster", + "7.1.30-zts-jessie", + "7.1.30-zts-stretch", + "7.1.30-zts", + "7.1.30", + "7.1.31-alpine", + "7.1.31-alpine3.10", + "7.1.31-alpine3.9", + "7.1.31-apache-buster", + "7.1.31-apache-stretch", + "7.1.31-apache", + "7.1.31-buster", + "7.1.31-cli-alpine", + "7.1.31-cli-alpine3.10", + "7.1.31-cli-alpine3.9", + "7.1.31-cli-buster", + "7.1.31-cli-stretch", + "7.1.31-cli", + "7.1.31-fpm-alpine", + "7.1.31-fpm-alpine3.10", + "7.1.31-fpm-alpine3.9", + "7.1.31-fpm-buster", + "7.1.31-fpm-stretch", + "7.1.31-fpm", + "7.1.31-stretch", + "7.1.31-zts-alpine", + "7.1.31-zts-alpine3.10", + "7.1.31-zts-alpine3.9", + "7.1.31-zts-buster", + "7.1.31-zts-stretch", + "7.1.31-zts", + "7.1.31", + "7.1.32-alpine", + "7.1.32-alpine3.10", + "7.1.32-alpine3.9", + "7.1.32-apache-buster", + "7.1.32-apache-stretch", + "7.1.32-apache", + "7.1.32-buster", + "7.1.32-cli-alpine", + "7.1.32-cli-alpine3.10", + "7.1.32-cli-alpine3.9", + "7.1.32-cli-buster", + "7.1.32-cli-stretch", + "7.1.32-cli", + "7.1.32-fpm-alpine", + "7.1.32-fpm-alpine3.10", + "7.1.32-fpm-alpine3.9", + "7.1.32-fpm-buster", + "7.1.32-fpm-stretch", + "7.1.32-fpm", + "7.1.32-stretch", + "7.1.32-zts-alpine", + "7.1.32-zts-alpine3.10", + "7.1.32-zts-alpine3.9", + "7.1.32-zts-buster", + "7.1.32-zts-stretch", + "7.1.32-zts", + "7.1.32", + "7.1.33-alpine", + "7.1.33-alpine3.10", + "7.1.33-alpine3.9", + "7.1.33-apache-buster", + "7.1.33-apache-stretch", + "7.1.33-apache", + "7.1.33-buster", + "7.1.33-cli-alpine", + "7.1.33-cli-alpine3.10", + "7.1.33-cli-alpine3.9", + "7.1.33-cli-buster", + "7.1.33-cli-stretch", + "7.1.33-cli", + "7.1.33-fpm-alpine", + "7.1.33-fpm-alpine3.10", + "7.1.33-fpm-alpine3.9", + "7.1.33-fpm-buster", + "7.1.33-fpm-stretch", + "7.1.33-fpm", + "7.1.33-stretch", + "7.1.33-zts-alpine", + "7.1.33-zts-alpine3.10", + "7.1.33-zts-alpine3.9", + "7.1.33-zts-buster", + "7.1.33-zts-stretch", + "7.1.33-zts", + "7.1.33", + "7.1.4-alpine", + "7.1.4-apache", + "7.1.4-cli", + "7.1.4-fpm-alpine", + "7.1.4-fpm", + "7.1.4-zts-alpine", + "7.1.4-zts", + "7.1.4", + "7.1.5-alpine", + "7.1.5-apache", + "7.1.5-cli", + "7.1.5-fpm-alpine", + "7.1.5-fpm", + "7.1.5-zts-alpine", + "7.1.5-zts", + "7.1.5", + "7.1.6-alpine", + "7.1.6-apache", + "7.1.6-cli", + "7.1.6-fpm-alpine", + "7.1.6-fpm", + "7.1.6-zts-alpine", + "7.1.6-zts", + "7.1.6", + "7.1.7-alpine", + "7.1.7-apache", + "7.1.7-cli", + "7.1.7-fpm-alpine", + "7.1.7-fpm", + "7.1.7-zts-alpine", + "7.1.7-zts", + "7.1.7", + "7.1.8-alpine", + "7.1.8-apache", + "7.1.8-cli", + "7.1.8-fpm-alpine", + "7.1.8-fpm", + "7.1.8-zts-alpine", + "7.1.8-zts", + "7.1.8", + "7.1.9-alpine", + "7.1.9-apache", + "7.1.9-cli", + "7.1.9-fpm-alpine", + "7.1.9-fpm", + "7.1.9-zts-alpine", + "7.1.9-zts", + "7.1.9", + "7.1", + "7.2-alpine", + "7.2-alpine3.10", + "7.2-alpine3.6", + "7.2-alpine3.7", + "7.2-alpine3.8", + "7.2-alpine3.9", + "7.2-apache-buster", + "7.2-apache-stretch", + "7.2-apache", + "7.2-buster", + "7.2-cli-alpine", + "7.2-cli-alpine3.10", + "7.2-cli-alpine3.6", + "7.2-cli-alpine3.7", + "7.2-cli-alpine3.8", + "7.2-cli-alpine3.9", + "7.2-cli-buster", + "7.2-cli-stretch", + "7.2-cli", + "7.2-fpm-alpine", + "7.2-fpm-alpine3.10", + "7.2-fpm-alpine3.6", + "7.2-fpm-alpine3.7", + "7.2-fpm-alpine3.8", + "7.2-fpm-alpine3.9", + "7.2-fpm-buster", + "7.2-fpm-stretch", + "7.2-fpm", + "7.2-rc-alpine", + "7.2-rc-alpine3.6", + "7.2-rc-apache-stretch", + "7.2-rc-apache", + "7.2-rc-cli-alpine", + "7.2-rc-cli-alpine3.6", + "7.2-rc-cli-stretch", + "7.2-rc-cli", + "7.2-rc-fpm-alpine", + "7.2-rc-fpm-alpine3.6", + "7.2-rc-fpm-stretch", + "7.2-rc-fpm", + "7.2-rc-stretch", + "7.2-rc-zts-alpine", + "7.2-rc-zts-alpine3.6", + "7.2-rc-zts-stretch", + "7.2-rc-zts", + "7.2-rc", + "7.2-stretch", + "7.2-zts-alpine", + "7.2-zts-alpine3.10", + "7.2-zts-alpine3.6", + "7.2-zts-alpine3.7", + "7.2-zts-alpine3.8", + "7.2-zts-alpine3.9", + "7.2-zts-buster", + "7.2-zts-stretch", + "7.2-zts", + "7.2.0-alpine", + "7.2.0-alpine3.6", + "7.2.0-alpine3.7", + "7.2.0-apache-stretch", + "7.2.0-apache", + "7.2.0-cli-alpine", + "7.2.0-cli-alpine3.6", + "7.2.0-cli-alpine3.7", + "7.2.0-cli-stretch", + "7.2.0-cli", + "7.2.0-fpm-alpine", + "7.2.0-fpm-alpine3.6", + "7.2.0-fpm-alpine3.7", + "7.2.0-fpm-stretch", + "7.2.0-fpm", + "7.2.0-stretch", + "7.2.0-zts-alpine", + "7.2.0-zts-alpine3.6", + "7.2.0-zts-alpine3.7", + "7.2.0-zts-stretch", + "7.2.0-zts", + "7.2.0", + "7.2.0RC1-alpine", + "7.2.0RC1-apache", + "7.2.0RC1-cli", + "7.2.0RC1-fpm-alpine", + "7.2.0RC1-fpm", + "7.2.0RC1-zts-alpine", + "7.2.0RC1-zts", + "7.2.0RC1", + "7.2.0RC2-alpine", + "7.2.0RC2-apache", + "7.2.0RC2-cli", + "7.2.0RC2-fpm-alpine", + "7.2.0RC2-fpm", + "7.2.0RC2-zts-alpine", + "7.2.0RC2-zts", + "7.2.0RC2", + "7.2.0RC3-alpine", + "7.2.0RC3-apache", + "7.2.0RC3-cli", + "7.2.0RC3-fpm-alpine", + "7.2.0RC3-fpm", + "7.2.0RC3-zts-alpine", + "7.2.0RC3-zts", + "7.2.0RC3", + "7.2.0RC4-alpine", + "7.2.0RC4-alpine3.6", + "7.2.0RC4-apache-stretch", + "7.2.0RC4-apache", + "7.2.0RC4-cli-alpine", + "7.2.0RC4-cli-alpine3.6", + "7.2.0RC4-cli-stretch", + "7.2.0RC4-cli", + "7.2.0RC4-fpm-alpine", + "7.2.0RC4-fpm-alpine3.6", + "7.2.0RC4-fpm-stretch", + "7.2.0RC4-fpm", + "7.2.0RC4-stretch", + "7.2.0RC4-zts-alpine", + "7.2.0RC4-zts-alpine3.6", + "7.2.0RC4-zts-stretch", + "7.2.0RC4-zts", + "7.2.0RC4", + "7.2.0RC5-alpine", + "7.2.0RC5-alpine3.6", + "7.2.0RC5-apache-stretch", + "7.2.0RC5-apache", + "7.2.0RC5-cli-alpine", + "7.2.0RC5-cli-alpine3.6", + "7.2.0RC5-cli-stretch", + "7.2.0RC5-cli", + "7.2.0RC5-fpm-alpine", + "7.2.0RC5-fpm-alpine3.6", + "7.2.0RC5-fpm-stretch", + "7.2.0RC5-fpm", + "7.2.0RC5-stretch", + "7.2.0RC5-zts-alpine", + "7.2.0RC5-zts-alpine3.6", + "7.2.0RC5-zts-stretch", + "7.2.0RC5-zts", + "7.2.0RC5", + "7.2.0RC6-alpine", + "7.2.0RC6-alpine3.6", + "7.2.0RC6-apache-stretch", + "7.2.0RC6-apache", + "7.2.0RC6-cli-alpine", + "7.2.0RC6-cli-alpine3.6", + "7.2.0RC6-cli-stretch", + "7.2.0RC6-cli", + "7.2.0RC6-fpm-alpine", + "7.2.0RC6-fpm-alpine3.6", + "7.2.0RC6-fpm-stretch", + "7.2.0RC6-fpm", + "7.2.0RC6-stretch", + "7.2.0RC6-zts-alpine", + "7.2.0RC6-zts-alpine3.6", + "7.2.0RC6-zts-stretch", + "7.2.0RC6-zts", + "7.2.0RC6", + "7.2.0alpha3-alpine", + "7.2.0alpha3-apache", + "7.2.0alpha3-cli", + "7.2.0alpha3-fpm-alpine", + "7.2.0alpha3-fpm", + "7.2.0alpha3-zts-alpine", + "7.2.0alpha3-zts", + "7.2.0alpha3", + "7.2.0beta1-alpine", + "7.2.0beta1-apache", + "7.2.0beta1-cli", + "7.2.0beta1-fpm-alpine", + "7.2.0beta1-fpm", + "7.2.0beta1-zts-alpine", + "7.2.0beta1-zts", + "7.2.0beta1", + "7.2.0beta2-alpine", + "7.2.0beta2-apache", + "7.2.0beta2-cli", + "7.2.0beta2-fpm-alpine", + "7.2.0beta2-fpm", + "7.2.0beta2-zts-alpine", + "7.2.0beta2-zts", + "7.2.0beta2", + "7.2.0beta3-alpine", + "7.2.0beta3-apache", + "7.2.0beta3-cli", + "7.2.0beta3-fpm-alpine", + "7.2.0beta3-fpm", + "7.2.0beta3-zts-alpine", + "7.2.0beta3-zts", + "7.2.0beta3", + "7.2.1-alpine", + "7.2.1-alpine3.6", + "7.2.1-alpine3.7", + "7.2.1-apache-stretch", + "7.2.1-apache", + "7.2.1-cli-alpine", + "7.2.1-cli-alpine3.6", + "7.2.1-cli-alpine3.7", + "7.2.1-cli-stretch", + "7.2.1-cli", + "7.2.1-fpm-alpine", + "7.2.1-fpm-alpine3.6", + "7.2.1-fpm-alpine3.7", + "7.2.1-fpm-stretch", + "7.2.1-fpm", + "7.2.1-stretch", + "7.2.1-zts-alpine", + "7.2.1-zts-alpine3.6", + "7.2.1-zts-alpine3.7", + "7.2.1-zts-stretch", + "7.2.1-zts", + "7.2.1", + "7.2.10-alpine", + "7.2.10-alpine3.6", + "7.2.10-alpine3.7", + "7.2.10-alpine3.8", + "7.2.10-apache-stretch", + "7.2.10-apache", + "7.2.10-cli-alpine", + "7.2.10-cli-alpine3.6", + "7.2.10-cli-alpine3.7", + "7.2.10-cli-alpine3.8", + "7.2.10-cli-stretch", + "7.2.10-cli", + "7.2.10-fpm-alpine", + "7.2.10-fpm-alpine3.6", + "7.2.10-fpm-alpine3.7", + "7.2.10-fpm-alpine3.8", + "7.2.10-fpm-stretch", + "7.2.10-fpm", + "7.2.10-stretch", + "7.2.10-zts-alpine", + "7.2.10-zts-alpine3.6", + "7.2.10-zts-alpine3.7", + "7.2.10-zts-alpine3.8", + "7.2.10-zts-stretch", + "7.2.10-zts", + "7.2.10", + "7.2.11-alpine", + "7.2.11-alpine3.6", + "7.2.11-alpine3.7", + "7.2.11-alpine3.8", + "7.2.11-apache-stretch", + "7.2.11-apache", + "7.2.11-cli-alpine", + "7.2.11-cli-alpine3.6", + "7.2.11-cli-alpine3.7", + "7.2.11-cli-alpine3.8", + "7.2.11-cli-stretch", + "7.2.11-cli", + "7.2.11-fpm-alpine", + "7.2.11-fpm-alpine3.6", + "7.2.11-fpm-alpine3.7", + "7.2.11-fpm-alpine3.8", + "7.2.11-fpm-stretch", + "7.2.11-fpm", + "7.2.11-stretch", + "7.2.11-zts-alpine", + "7.2.11-zts-alpine3.6", + "7.2.11-zts-alpine3.7", + "7.2.11-zts-alpine3.8", + "7.2.11-zts-stretch", + "7.2.11-zts", + "7.2.11", + "7.2.12-alpine", + "7.2.12-alpine3.8", + "7.2.12-apache-stretch", + "7.2.12-apache", + "7.2.12-cli-alpine", + "7.2.12-cli-alpine3.8", + "7.2.12-cli-stretch", + "7.2.12-cli", + "7.2.12-fpm-alpine", + "7.2.12-fpm-alpine3.8", + "7.2.12-fpm-stretch", + "7.2.12-fpm", + "7.2.12-stretch", + "7.2.12-zts-alpine", + "7.2.12-zts-alpine3.8", + "7.2.12-zts-stretch", + "7.2.12-zts", + "7.2.12", + "7.2.13-alpine", + "7.2.13-alpine3.8", + "7.2.13-apache-stretch", + "7.2.13-apache", + "7.2.13-cli-alpine", + "7.2.13-cli-alpine3.8", + "7.2.13-cli-stretch", + "7.2.13-cli", + "7.2.13-fpm-alpine", + "7.2.13-fpm-alpine3.8", + "7.2.13-fpm-stretch", + "7.2.13-fpm", + "7.2.13-stretch", + "7.2.13-zts-alpine", + "7.2.13-zts-alpine3.8", + "7.2.13-zts-stretch", + "7.2.13-zts", + "7.2.13", + "7.2.14-alpine", + "7.2.14-alpine3.8", + "7.2.14-alpine3.9", + "7.2.14-apache-stretch", + "7.2.14-apache", + "7.2.14-cli-alpine", + "7.2.14-cli-alpine3.8", + "7.2.14-cli-alpine3.9", + "7.2.14-cli-stretch", + "7.2.14-cli", + "7.2.14-fpm-alpine", + "7.2.14-fpm-alpine3.8", + "7.2.14-fpm-alpine3.9", + "7.2.14-fpm-stretch", + "7.2.14-fpm", + "7.2.14-stretch", + "7.2.14-zts-alpine", + "7.2.14-zts-alpine3.8", + "7.2.14-zts-alpine3.9", + "7.2.14-zts-stretch", + "7.2.14-zts", + "7.2.14", + "7.2.15-alpine", + "7.2.15-alpine3.8", + "7.2.15-alpine3.9", + "7.2.15-apache-stretch", + "7.2.15-apache", + "7.2.15-cli-alpine", + "7.2.15-cli-alpine3.8", + "7.2.15-cli-alpine3.9", + "7.2.15-cli-stretch", + "7.2.15-cli", + "7.2.15-fpm-alpine", + "7.2.15-fpm-alpine3.8", + "7.2.15-fpm-alpine3.9", + "7.2.15-fpm-stretch", + "7.2.15-fpm", + "7.2.15-stretch", + "7.2.15-zts-alpine", + "7.2.15-zts-alpine3.8", + "7.2.15-zts-alpine3.9", + "7.2.15-zts-stretch", + "7.2.15-zts", + "7.2.15", + "7.2.16-alpine", + "7.2.16-alpine3.8", + "7.2.16-alpine3.9", + "7.2.16-apache-stretch", + "7.2.16-apache", + "7.2.16-cli-alpine", + "7.2.16-cli-alpine3.8", + "7.2.16-cli-alpine3.9", + "7.2.16-cli-stretch", + "7.2.16-cli", + "7.2.16-fpm-alpine", + "7.2.16-fpm-alpine3.8", + "7.2.16-fpm-alpine3.9", + "7.2.16-fpm-stretch", + "7.2.16-fpm", + "7.2.16-stretch", + "7.2.16-zts-alpine", + "7.2.16-zts-alpine3.8", + "7.2.16-zts-alpine3.9", + "7.2.16-zts-stretch", + "7.2.16-zts", + "7.2.16", + "7.2.17-alpine", + "7.2.17-alpine3.8", + "7.2.17-alpine3.9", + "7.2.17-apache-stretch", + "7.2.17-apache", + "7.2.17-cli-alpine", + "7.2.17-cli-alpine3.8", + "7.2.17-cli-alpine3.9", + "7.2.17-cli-stretch", + "7.2.17-cli", + "7.2.17-fpm-alpine", + "7.2.17-fpm-alpine3.8", + "7.2.17-fpm-alpine3.9", + "7.2.17-fpm-stretch", + "7.2.17-fpm", + "7.2.17-stretch", + "7.2.17-zts-alpine", + "7.2.17-zts-alpine3.8", + "7.2.17-zts-alpine3.9", + "7.2.17-zts-stretch", + "7.2.17-zts", + "7.2.17", + "7.2.18-alpine", + "7.2.18-alpine3.8", + "7.2.18-alpine3.9", + "7.2.18-apache-stretch", + "7.2.18-apache", + "7.2.18-cli-alpine", + "7.2.18-cli-alpine3.8", + "7.2.18-cli-alpine3.9", + "7.2.18-cli-stretch", + "7.2.18-cli", + "7.2.18-fpm-alpine", + "7.2.18-fpm-alpine3.8", + "7.2.18-fpm-alpine3.9", + "7.2.18-fpm-stretch", + "7.2.18-fpm", + "7.2.18-stretch", + "7.2.18-zts-alpine", + "7.2.18-zts-alpine3.8", + "7.2.18-zts-alpine3.9", + "7.2.18-zts-stretch", + "7.2.18-zts", + "7.2.18", + "7.2.19-alpine", + "7.2.19-alpine3.10", + "7.2.19-alpine3.8", + "7.2.19-alpine3.9", + "7.2.19-apache-stretch", + "7.2.19-apache", + "7.2.19-cli-alpine", + "7.2.19-cli-alpine3.10", + "7.2.19-cli-alpine3.8", + "7.2.19-cli-alpine3.9", + "7.2.19-cli-stretch", + "7.2.19-cli", + "7.2.19-fpm-alpine", + "7.2.19-fpm-alpine3.10", + "7.2.19-fpm-alpine3.8", + "7.2.19-fpm-alpine3.9", + "7.2.19-fpm-stretch", + "7.2.19-fpm", + "7.2.19-stretch", + "7.2.19-zts-alpine", + "7.2.19-zts-alpine3.10", + "7.2.19-zts-alpine3.8", + "7.2.19-zts-alpine3.9", + "7.2.19-zts-stretch", + "7.2.19-zts", + "7.2.19", + "7.2.2-alpine", + "7.2.2-alpine3.6", + "7.2.2-alpine3.7", + "7.2.2-apache-stretch", + "7.2.2-apache", + "7.2.2-cli-alpine", + "7.2.2-cli-alpine3.6", + "7.2.2-cli-alpine3.7", + "7.2.2-cli-stretch", + "7.2.2-cli", + "7.2.2-fpm-alpine", + "7.2.2-fpm-alpine3.6", + "7.2.2-fpm-alpine3.7", + "7.2.2-fpm-stretch", + "7.2.2-fpm", + "7.2.2-stretch", + "7.2.2-zts-alpine", + "7.2.2-zts-alpine3.6", + "7.2.2-zts-alpine3.7", + "7.2.2-zts-stretch", + "7.2.2-zts", + "7.2.2", + "7.2.20-alpine", + "7.2.20-alpine3.10", + "7.2.20-alpine3.9", + "7.2.20-apache-buster", + "7.2.20-apache-stretch", + "7.2.20-apache", + "7.2.20-buster", + "7.2.20-cli-alpine", + "7.2.20-cli-alpine3.10", + "7.2.20-cli-alpine3.9", + "7.2.20-cli-buster", + "7.2.20-cli-stretch", + "7.2.20-cli", + "7.2.20-fpm-alpine", + "7.2.20-fpm-alpine3.10", + "7.2.20-fpm-alpine3.9", + "7.2.20-fpm-buster", + "7.2.20-fpm-stretch", + "7.2.20-fpm", + "7.2.20-stretch", + "7.2.20-zts-alpine", + "7.2.20-zts-alpine3.10", + "7.2.20-zts-alpine3.9", + "7.2.20-zts-buster", + "7.2.20-zts-stretch", + "7.2.20-zts", + "7.2.20", + "7.2.21-alpine", + "7.2.21-alpine3.10", + "7.2.21-alpine3.9", + "7.2.21-apache-buster", + "7.2.21-apache-stretch", + "7.2.21-apache", + "7.2.21-buster", + "7.2.21-cli-alpine", + "7.2.21-cli-alpine3.10", + "7.2.21-cli-alpine3.9", + "7.2.21-cli-buster", + "7.2.21-cli-stretch", + "7.2.21-cli", + "7.2.21-fpm-alpine", + "7.2.21-fpm-alpine3.10", + "7.2.21-fpm-alpine3.9", + "7.2.21-fpm-buster", + "7.2.21-fpm-stretch", + "7.2.21-fpm", + "7.2.21-stretch", + "7.2.21-zts-alpine", + "7.2.21-zts-alpine3.10", + "7.2.21-zts-alpine3.9", + "7.2.21-zts-buster", + "7.2.21-zts-stretch", + "7.2.21-zts", + "7.2.21", + "7.2.22-alpine", + "7.2.22-alpine3.10", + "7.2.22-alpine3.9", + "7.2.22-apache-buster", + "7.2.22-apache-stretch", + "7.2.22-apache", + "7.2.22-buster", + "7.2.22-cli-alpine", + "7.2.22-cli-alpine3.10", + "7.2.22-cli-alpine3.9", + "7.2.22-cli-buster", + "7.2.22-cli-stretch", + "7.2.22-cli", + "7.2.22-fpm-alpine", + "7.2.22-fpm-alpine3.10", + "7.2.22-fpm-alpine3.9", + "7.2.22-fpm-buster", + "7.2.22-fpm-stretch", + "7.2.22-fpm", + "7.2.22-stretch", + "7.2.22-zts-alpine", + "7.2.22-zts-alpine3.10", + "7.2.22-zts-alpine3.9", + "7.2.22-zts-buster", + "7.2.22-zts-stretch", + "7.2.22-zts", + "7.2.22", + "7.2.23-alpine", + "7.2.23-alpine3.10", + "7.2.23-alpine3.9", + "7.2.23-apache-buster", + "7.2.23-apache-stretch", + "7.2.23-apache", + "7.2.23-buster", + "7.2.23-cli-alpine", + "7.2.23-cli-alpine3.10", + "7.2.23-cli-alpine3.9", + "7.2.23-cli-buster", + "7.2.23-cli-stretch", + "7.2.23-cli", + "7.2.23-fpm-alpine", + "7.2.23-fpm-alpine3.10", + "7.2.23-fpm-alpine3.9", + "7.2.23-fpm-buster", + "7.2.23-fpm-stretch", + "7.2.23-fpm", + "7.2.23-stretch", + "7.2.23-zts-alpine", + "7.2.23-zts-alpine3.10", + "7.2.23-zts-alpine3.9", + "7.2.23-zts-buster", + "7.2.23-zts-stretch", + "7.2.23-zts", + "7.2.23", + "7.2.24-alpine", + "7.2.24-alpine3.10", + "7.2.24-alpine3.9", + "7.2.24-apache-buster", + "7.2.24-apache-stretch", + "7.2.24-apache", + "7.2.24-buster", + "7.2.24-cli-alpine", + "7.2.24-cli-alpine3.10", + "7.2.24-cli-alpine3.9", + "7.2.24-cli-buster", + "7.2.24-cli-stretch", + "7.2.24-cli", + "7.2.24-fpm-alpine", + "7.2.24-fpm-alpine3.10", + "7.2.24-fpm-alpine3.9", + "7.2.24-fpm-buster", + "7.2.24-fpm-stretch", + "7.2.24-fpm", + "7.2.24-stretch", + "7.2.24-zts-alpine", + "7.2.24-zts-alpine3.10", + "7.2.24-zts-alpine3.9", + "7.2.24-zts-buster", + "7.2.24-zts-stretch", + "7.2.24-zts", + "7.2.24", + "7.2.25-alpine", + "7.2.25-alpine3.10", + "7.2.25-alpine3.9", + "7.2.25-apache-buster", + "7.2.25-apache-stretch", + "7.2.25-apache", + "7.2.25-buster", + "7.2.25-cli-alpine", + "7.2.25-cli-alpine3.10", + "7.2.25-cli-alpine3.9", + "7.2.25-cli-buster", + "7.2.25-cli-stretch", + "7.2.25-cli", + "7.2.25-fpm-alpine", + "7.2.25-fpm-alpine3.10", + "7.2.25-fpm-alpine3.9", + "7.2.25-fpm-buster", + "7.2.25-fpm-stretch", + "7.2.25-fpm", + "7.2.25-stretch", + "7.2.25-zts-alpine", + "7.2.25-zts-alpine3.10", + "7.2.25-zts-alpine3.9", + "7.2.25-zts-buster", + "7.2.25-zts-stretch", + "7.2.25-zts", + "7.2.25", + "7.2.3-alpine", + "7.2.3-alpine3.6", + "7.2.3-alpine3.7", + "7.2.3-apache-stretch", + "7.2.3-apache", + "7.2.3-cli-alpine", + "7.2.3-cli-alpine3.6", + "7.2.3-cli-alpine3.7", + "7.2.3-cli-stretch", + "7.2.3-cli", + "7.2.3-fpm-alpine", + "7.2.3-fpm-alpine3.6", + "7.2.3-fpm-alpine3.7", + "7.2.3-fpm-stretch", + "7.2.3-fpm", + "7.2.3-stretch", + "7.2.3-zts-alpine", + "7.2.3-zts-alpine3.6", + "7.2.3-zts-alpine3.7", + "7.2.3-zts-stretch", + "7.2.3-zts", + "7.2.3", + "7.2.4-alpine", + "7.2.4-alpine3.6", + "7.2.4-alpine3.7", + "7.2.4-apache-stretch", + "7.2.4-apache", + "7.2.4-cli-alpine", + "7.2.4-cli-alpine3.6", + "7.2.4-cli-alpine3.7", + "7.2.4-cli-stretch", + "7.2.4-cli", + "7.2.4-fpm-alpine", + "7.2.4-fpm-alpine3.6", + "7.2.4-fpm-alpine3.7", + "7.2.4-fpm-stretch", + "7.2.4-fpm", + "7.2.4-stretch", + "7.2.4-zts-alpine", + "7.2.4-zts-alpine3.6", + "7.2.4-zts-alpine3.7", + "7.2.4-zts-stretch", + "7.2.4-zts", + "7.2.4", + "7.2.5-alpine", + "7.2.5-alpine3.6", + "7.2.5-alpine3.7", + "7.2.5-apache-stretch", + "7.2.5-apache", + "7.2.5-cli-alpine", + "7.2.5-cli-alpine3.6", + "7.2.5-cli-alpine3.7", + "7.2.5-cli-stretch", + "7.2.5-cli", + "7.2.5-fpm-alpine", + "7.2.5-fpm-alpine3.6", + "7.2.5-fpm-alpine3.7", + "7.2.5-fpm-stretch", + "7.2.5-fpm", + "7.2.5-stretch", + "7.2.5-zts-alpine", + "7.2.5-zts-alpine3.6", + "7.2.5-zts-alpine3.7", + "7.2.5-zts-stretch", + "7.2.5-zts", + "7.2.5", + "7.2.6-alpine", + "7.2.6-alpine3.6", + "7.2.6-alpine3.7", + "7.2.6-apache-stretch", + "7.2.6-apache", + "7.2.6-cli-alpine", + "7.2.6-cli-alpine3.6", + "7.2.6-cli-alpine3.7", + "7.2.6-cli-stretch", + "7.2.6-cli", + "7.2.6-fpm-alpine", + "7.2.6-fpm-alpine3.6", + "7.2.6-fpm-alpine3.7", + "7.2.6-fpm-stretch", + "7.2.6-fpm", + "7.2.6-stretch", + "7.2.6-zts-alpine", + "7.2.6-zts-alpine3.6", + "7.2.6-zts-alpine3.7", + "7.2.6-zts-stretch", + "7.2.6-zts", + "7.2.6", + "7.2.7-alpine", + "7.2.7-alpine3.6", + "7.2.7-alpine3.7", + "7.2.7-apache-stretch", + "7.2.7-apache", + "7.2.7-cli-alpine", + "7.2.7-cli-alpine3.6", + "7.2.7-cli-alpine3.7", + "7.2.7-cli-stretch", + "7.2.7-cli", + "7.2.7-fpm-alpine", + "7.2.7-fpm-alpine3.6", + "7.2.7-fpm-alpine3.7", + "7.2.7-fpm-stretch", + "7.2.7-fpm", + "7.2.7-stretch", + "7.2.7-zts-alpine", + "7.2.7-zts-alpine3.6", + "7.2.7-zts-alpine3.7", + "7.2.7-zts-stretch", + "7.2.7-zts", + "7.2.7", + "7.2.8-alpine", + "7.2.8-alpine3.6", + "7.2.8-alpine3.7", + "7.2.8-apache-stretch", + "7.2.8-apache", + "7.2.8-cli-alpine", + "7.2.8-cli-alpine3.6", + "7.2.8-cli-alpine3.7", + "7.2.8-cli-stretch", + "7.2.8-cli", + "7.2.8-fpm-alpine", + "7.2.8-fpm-alpine3.6", + "7.2.8-fpm-alpine3.7", + "7.2.8-fpm-stretch", + "7.2.8-fpm", + "7.2.8-stretch", + "7.2.8-zts-alpine", + "7.2.8-zts-alpine3.6", + "7.2.8-zts-alpine3.7", + "7.2.8-zts-stretch", + "7.2.8-zts", + "7.2.8", + "7.2.9-alpine", + "7.2.9-alpine3.6", + "7.2.9-alpine3.7", + "7.2.9-alpine3.8", + "7.2.9-apache-stretch", + "7.2.9-apache", + "7.2.9-cli-alpine", + "7.2.9-cli-alpine3.6", + "7.2.9-cli-alpine3.7", + "7.2.9-cli-alpine3.8", + "7.2.9-cli-stretch", + "7.2.9-cli", + "7.2.9-fpm-alpine", + "7.2.9-fpm-alpine3.6", + "7.2.9-fpm-alpine3.7", + "7.2.9-fpm-alpine3.8", + "7.2.9-fpm-stretch", + "7.2.9-fpm", + "7.2.9-stretch", + "7.2.9-zts-alpine", + "7.2.9-zts-alpine3.6", + "7.2.9-zts-alpine3.7", + "7.2.9-zts-alpine3.8", + "7.2.9-zts-stretch", + "7.2.9-zts", + "7.2.9", + "7.2", + "7.3-alpine", + "7.3-alpine3.10", + "7.3-alpine3.8", + "7.3-alpine3.9", + "7.3-apache-buster", + "7.3-apache-stretch", + "7.3-apache", + "7.3-buster", + "7.3-cli-alpine", + "7.3-cli-alpine3.10", + "7.3-cli-alpine3.8", + "7.3-cli-alpine3.9", + "7.3-cli-buster", + "7.3-cli-stretch", + "7.3-cli", + "7.3-fpm-alpine", + "7.3-fpm-alpine3.10", + "7.3-fpm-alpine3.8", + "7.3-fpm-alpine3.9", + "7.3-fpm-buster", + "7.3-fpm-stretch", + "7.3-fpm", + "7.3-rc-alpine", + "7.3-rc-alpine3.8", + "7.3-rc-apache-stretch", + "7.3-rc-apache", + "7.3-rc-cli-alpine", + "7.3-rc-cli-alpine3.8", + "7.3-rc-cli-stretch", + "7.3-rc-cli", + "7.3-rc-fpm-alpine", + "7.3-rc-fpm-alpine3.8", + "7.3-rc-fpm-stretch", + "7.3-rc-fpm", + "7.3-rc-stretch", + "7.3-rc-zts-alpine", + "7.3-rc-zts-alpine3.8", + "7.3-rc-zts-stretch", + "7.3-rc-zts", + "7.3-rc", + "7.3-stretch", + "7.3-zts-alpine", + "7.3-zts-alpine3.10", + "7.3-zts-alpine3.8", + "7.3-zts-alpine3.9", + "7.3-zts-buster", + "7.3-zts-stretch", + "7.3-zts", + "7.3.0-alpine", + "7.3.0-alpine3.8", + "7.3.0-apache-stretch", + "7.3.0-apache", + "7.3.0-cli-alpine", + "7.3.0-cli-alpine3.8", + "7.3.0-cli-stretch", + "7.3.0-cli", + "7.3.0-fpm-alpine", + "7.3.0-fpm-alpine3.8", + "7.3.0-fpm-stretch", + "7.3.0-fpm", + "7.3.0-stretch", + "7.3.0-zts-alpine", + "7.3.0-zts-alpine3.8", + "7.3.0-zts-stretch", + "7.3.0-zts", + "7.3.0", + "7.3.0RC1-alpine", + "7.3.0RC1-alpine3.8", + "7.3.0RC1-apache-stretch", + "7.3.0RC1-apache", + "7.3.0RC1-cli-alpine", + "7.3.0RC1-cli-alpine3.8", + "7.3.0RC1-cli-stretch", + "7.3.0RC1-cli", + "7.3.0RC1-fpm-alpine", + "7.3.0RC1-fpm-alpine3.8", + "7.3.0RC1-fpm-stretch", + "7.3.0RC1-fpm", + "7.3.0RC1-stretch", + "7.3.0RC1-zts-alpine", + "7.3.0RC1-zts-alpine3.8", + "7.3.0RC1-zts-stretch", + "7.3.0RC1-zts", + "7.3.0RC1", + "7.3.0RC2-alpine", + "7.3.0RC2-alpine3.8", + "7.3.0RC2-apache-stretch", + "7.3.0RC2-apache", + "7.3.0RC2-cli-alpine", + "7.3.0RC2-cli-alpine3.8", + "7.3.0RC2-cli-stretch", + "7.3.0RC2-cli", + "7.3.0RC2-fpm-alpine", + "7.3.0RC2-fpm-alpine3.8", + "7.3.0RC2-fpm-stretch", + "7.3.0RC2-fpm", + "7.3.0RC2-stretch", + "7.3.0RC2-zts-alpine", + "7.3.0RC2-zts-alpine3.8", + "7.3.0RC2-zts-stretch", + "7.3.0RC2-zts", + "7.3.0RC2", + "7.3.0RC3-alpine", + "7.3.0RC3-alpine3.8", + "7.3.0RC3-apache-stretch", + "7.3.0RC3-apache", + "7.3.0RC3-cli-alpine", + "7.3.0RC3-cli-alpine3.8", + "7.3.0RC3-cli-stretch", + "7.3.0RC3-cli", + "7.3.0RC3-fpm-alpine", + "7.3.0RC3-fpm-alpine3.8", + "7.3.0RC3-fpm-stretch", + "7.3.0RC3-fpm", + "7.3.0RC3-stretch", + "7.3.0RC3-zts-alpine", + "7.3.0RC3-zts-alpine3.8", + "7.3.0RC3-zts-stretch", + "7.3.0RC3-zts", + "7.3.0RC3", + "7.3.0RC4-alpine", + "7.3.0RC4-alpine3.8", + "7.3.0RC4-apache-stretch", + "7.3.0RC4-apache", + "7.3.0RC4-cli-alpine", + "7.3.0RC4-cli-alpine3.8", + "7.3.0RC4-cli-stretch", + "7.3.0RC4-cli", + "7.3.0RC4-fpm-alpine", + "7.3.0RC4-fpm-alpine3.8", + "7.3.0RC4-fpm-stretch", + "7.3.0RC4-fpm", + "7.3.0RC4-stretch", + "7.3.0RC4-zts-alpine", + "7.3.0RC4-zts-alpine3.8", + "7.3.0RC4-zts-stretch", + "7.3.0RC4-zts", + "7.3.0RC4", + "7.3.0RC5-alpine", + "7.3.0RC5-alpine3.8", + "7.3.0RC5-apache-stretch", + "7.3.0RC5-apache", + "7.3.0RC5-cli-alpine", + "7.3.0RC5-cli-alpine3.8", + "7.3.0RC5-cli-stretch", + "7.3.0RC5-cli", + "7.3.0RC5-fpm-alpine", + "7.3.0RC5-fpm-alpine3.8", + "7.3.0RC5-fpm-stretch", + "7.3.0RC5-fpm", + "7.3.0RC5-stretch", + "7.3.0RC5-zts-alpine", + "7.3.0RC5-zts-alpine3.8", + "7.3.0RC5-zts-stretch", + "7.3.0RC5-zts", + "7.3.0RC5", + "7.3.0RC6-alpine", + "7.3.0RC6-alpine3.8", + "7.3.0RC6-apache-stretch", + "7.3.0RC6-apache", + "7.3.0RC6-cli-alpine", + "7.3.0RC6-cli-alpine3.8", + "7.3.0RC6-cli-stretch", + "7.3.0RC6-cli", + "7.3.0RC6-fpm-alpine", + "7.3.0RC6-fpm-alpine3.8", + "7.3.0RC6-fpm-stretch", + "7.3.0RC6-fpm", + "7.3.0RC6-stretch", + "7.3.0RC6-zts-alpine", + "7.3.0RC6-zts-alpine3.8", + "7.3.0RC6-zts-stretch", + "7.3.0RC6-zts", + "7.3.0RC6", + "7.3.0beta2-alpine", + "7.3.0beta2-alpine3.8", + "7.3.0beta2-apache-stretch", + "7.3.0beta2-apache", + "7.3.0beta2-cli-alpine", + "7.3.0beta2-cli-alpine3.8", + "7.3.0beta2-cli-stretch", + "7.3.0beta2-cli", + "7.3.0beta2-fpm-alpine", + "7.3.0beta2-fpm-alpine3.8", + "7.3.0beta2-fpm-stretch", + "7.3.0beta2-fpm", + "7.3.0beta2-stretch", + "7.3.0beta2-zts-alpine", + "7.3.0beta2-zts-alpine3.8", + "7.3.0beta2-zts-stretch", + "7.3.0beta2-zts", + "7.3.0beta2", + "7.3.0beta3-alpine", + "7.3.0beta3-alpine3.8", + "7.3.0beta3-apache-stretch", + "7.3.0beta3-apache", + "7.3.0beta3-cli-alpine", + "7.3.0beta3-cli-alpine3.8", + "7.3.0beta3-cli-stretch", + "7.3.0beta3-cli", + "7.3.0beta3-fpm-alpine", + "7.3.0beta3-fpm-alpine3.8", + "7.3.0beta3-fpm-stretch", + "7.3.0beta3-fpm", + "7.3.0beta3-stretch", + "7.3.0beta3-zts-alpine", + "7.3.0beta3-zts-alpine3.8", + "7.3.0beta3-zts-stretch", + "7.3.0beta3-zts", + "7.3.0beta3", + "7.3.1-alpine", + "7.3.1-alpine3.8", + "7.3.1-alpine3.9", + "7.3.1-apache-stretch", + "7.3.1-apache", + "7.3.1-cli-alpine", + "7.3.1-cli-alpine3.8", + "7.3.1-cli-alpine3.9", + "7.3.1-cli-stretch", + "7.3.1-cli", + "7.3.1-fpm-alpine", + "7.3.1-fpm-alpine3.8", + "7.3.1-fpm-alpine3.9", + "7.3.1-fpm-stretch", + "7.3.1-fpm", + "7.3.1-stretch", + "7.3.1-zts-alpine", + "7.3.1-zts-alpine3.8", + "7.3.1-zts-alpine3.9", + "7.3.1-zts-stretch", + "7.3.1-zts", + "7.3.1", + "7.3.10-alpine", + "7.3.10-alpine3.10", + "7.3.10-alpine3.9", + "7.3.10-apache-buster", + "7.3.10-apache-stretch", + "7.3.10-apache", + "7.3.10-buster", + "7.3.10-cli-alpine", + "7.3.10-cli-alpine3.10", + "7.3.10-cli-alpine3.9", + "7.3.10-cli-buster", + "7.3.10-cli-stretch", + "7.3.10-cli", + "7.3.10-fpm-alpine", + "7.3.10-fpm-alpine3.10", + "7.3.10-fpm-alpine3.9", + "7.3.10-fpm-buster", + "7.3.10-fpm-stretch", + "7.3.10-fpm", + "7.3.10-stretch", + "7.3.10-zts-alpine", + "7.3.10-zts-alpine3.10", + "7.3.10-zts-alpine3.9", + "7.3.10-zts-buster", + "7.3.10-zts-stretch", + "7.3.10-zts", + "7.3.10", + "7.3.11-alpine", + "7.3.11-alpine3.10", + "7.3.11-alpine3.9", + "7.3.11-apache-buster", + "7.3.11-apache-stretch", + "7.3.11-apache", + "7.3.11-buster", + "7.3.11-cli-alpine", + "7.3.11-cli-alpine3.10", + "7.3.11-cli-alpine3.9", + "7.3.11-cli-buster", + "7.3.11-cli-stretch", + "7.3.11-cli", + "7.3.11-fpm-alpine", + "7.3.11-fpm-alpine3.10", + "7.3.11-fpm-alpine3.9", + "7.3.11-fpm-buster", + "7.3.11-fpm-stretch", + "7.3.11-fpm", + "7.3.11-stretch", + "7.3.11-zts-alpine", + "7.3.11-zts-alpine3.10", + "7.3.11-zts-alpine3.9", + "7.3.11-zts-buster", + "7.3.11-zts-stretch", + "7.3.11-zts", + "7.3.11", + "7.3.12-alpine", + "7.3.12-alpine3.10", + "7.3.12-alpine3.9", + "7.3.12-apache-buster", + "7.3.12-apache-stretch", + "7.3.12-apache", + "7.3.12-buster", + "7.3.12-cli-alpine", + "7.3.12-cli-alpine3.10", + "7.3.12-cli-alpine3.9", + "7.3.12-cli-buster", + "7.3.12-cli-stretch", + "7.3.12-cli", + "7.3.12-fpm-alpine", + "7.3.12-fpm-alpine3.10", + "7.3.12-fpm-alpine3.9", + "7.3.12-fpm-buster", + "7.3.12-fpm-stretch", + "7.3.12-fpm", + "7.3.12-stretch", + "7.3.12-zts-alpine", + "7.3.12-zts-alpine3.10", + "7.3.12-zts-alpine3.9", + "7.3.12-zts-buster", + "7.3.12-zts-stretch", + "7.3.12-zts", + "7.3.12", + "7.3.2-alpine", + "7.3.2-alpine3.8", + "7.3.2-alpine3.9", + "7.3.2-apache-stretch", + "7.3.2-apache", + "7.3.2-cli-alpine", + "7.3.2-cli-alpine3.8", + "7.3.2-cli-alpine3.9", + "7.3.2-cli-stretch", + "7.3.2-cli", + "7.3.2-fpm-alpine", + "7.3.2-fpm-alpine3.8", + "7.3.2-fpm-alpine3.9", + "7.3.2-fpm-stretch", + "7.3.2-fpm", + "7.3.2-stretch", + "7.3.2-zts-alpine", + "7.3.2-zts-alpine3.8", + "7.3.2-zts-alpine3.9", + "7.3.2-zts-stretch", + "7.3.2-zts", + "7.3.2", + "7.3.3-alpine", + "7.3.3-alpine3.8", + "7.3.3-alpine3.9", + "7.3.3-apache-stretch", + "7.3.3-apache", + "7.3.3-cli-alpine", + "7.3.3-cli-alpine3.8", + "7.3.3-cli-alpine3.9", + "7.3.3-cli-stretch", + "7.3.3-cli", + "7.3.3-fpm-alpine", + "7.3.3-fpm-alpine3.8", + "7.3.3-fpm-alpine3.9", + "7.3.3-fpm-stretch", + "7.3.3-fpm", + "7.3.3-stretch", + "7.3.3-zts-alpine", + "7.3.3-zts-alpine3.8", + "7.3.3-zts-alpine3.9", + "7.3.3-zts-stretch", + "7.3.3-zts", + "7.3.3", + "7.3.4-alpine", + "7.3.4-alpine3.8", + "7.3.4-alpine3.9", + "7.3.4-apache-stretch", + "7.3.4-apache", + "7.3.4-cli-alpine", + "7.3.4-cli-alpine3.8", + "7.3.4-cli-alpine3.9", + "7.3.4-cli-stretch", + "7.3.4-cli", + "7.3.4-fpm-alpine", + "7.3.4-fpm-alpine3.8", + "7.3.4-fpm-alpine3.9", + "7.3.4-fpm-stretch", + "7.3.4-fpm", + "7.3.4-stretch", + "7.3.4-zts-alpine", + "7.3.4-zts-alpine3.8", + "7.3.4-zts-alpine3.9", + "7.3.4-zts-stretch", + "7.3.4-zts", + "7.3.4", + "7.3.5-alpine", + "7.3.5-alpine3.8", + "7.3.5-alpine3.9", + "7.3.5-apache-stretch", + "7.3.5-apache", + "7.3.5-cli-alpine", + "7.3.5-cli-alpine3.8", + "7.3.5-cli-alpine3.9", + "7.3.5-cli-stretch", + "7.3.5-cli", + "7.3.5-fpm-alpine", + "7.3.5-fpm-alpine3.8", + "7.3.5-fpm-alpine3.9", + "7.3.5-fpm-stretch", + "7.3.5-fpm", + "7.3.5-stretch", + "7.3.5-zts-alpine", + "7.3.5-zts-alpine3.8", + "7.3.5-zts-alpine3.9", + "7.3.5-zts-stretch", + "7.3.5-zts", + "7.3.5", + "7.3.6-alpine", + "7.3.6-alpine3.10", + "7.3.6-alpine3.8", + "7.3.6-alpine3.9", + "7.3.6-apache-stretch", + "7.3.6-apache", + "7.3.6-cli-alpine", + "7.3.6-cli-alpine3.10", + "7.3.6-cli-alpine3.8", + "7.3.6-cli-alpine3.9", + "7.3.6-cli-stretch", + "7.3.6-cli", + "7.3.6-fpm-alpine", + "7.3.6-fpm-alpine3.10", + "7.3.6-fpm-alpine3.8", + "7.3.6-fpm-alpine3.9", + "7.3.6-fpm-stretch", + "7.3.6-fpm", + "7.3.6-stretch", + "7.3.6-zts-alpine", + "7.3.6-zts-alpine3.10", + "7.3.6-zts-alpine3.8", + "7.3.6-zts-alpine3.9", + "7.3.6-zts-stretch", + "7.3.6-zts", + "7.3.6", + "7.3.7-alpine", + "7.3.7-alpine3.10", + "7.3.7-alpine3.9", + "7.3.7-apache-buster", + "7.3.7-apache-stretch", + "7.3.7-apache", + "7.3.7-buster", + "7.3.7-cli-alpine", + "7.3.7-cli-alpine3.10", + "7.3.7-cli-alpine3.9", + "7.3.7-cli-buster", + "7.3.7-cli-stretch", + "7.3.7-cli", + "7.3.7-fpm-alpine", + "7.3.7-fpm-alpine3.10", + "7.3.7-fpm-alpine3.9", + "7.3.7-fpm-buster", + "7.3.7-fpm-stretch", + "7.3.7-fpm", + "7.3.7-stretch", + "7.3.7-zts-alpine", + "7.3.7-zts-alpine3.10", + "7.3.7-zts-alpine3.9", + "7.3.7-zts-buster", + "7.3.7-zts-stretch", + "7.3.7-zts", + "7.3.7", + "7.3.8-alpine", + "7.3.8-alpine3.10", + "7.3.8-alpine3.9", + "7.3.8-apache-buster", + "7.3.8-apache-stretch", + "7.3.8-apache", + "7.3.8-buster", + "7.3.8-cli-alpine", + "7.3.8-cli-alpine3.10", + "7.3.8-cli-alpine3.9", + "7.3.8-cli-buster", + "7.3.8-cli-stretch", + "7.3.8-cli", + "7.3.8-fpm-alpine", + "7.3.8-fpm-alpine3.10", + "7.3.8-fpm-alpine3.9", + "7.3.8-fpm-buster", + "7.3.8-fpm-stretch", + "7.3.8-fpm", + "7.3.8-stretch", + "7.3.8-zts-alpine", + "7.3.8-zts-alpine3.10", + "7.3.8-zts-alpine3.9", + "7.3.8-zts-buster", + "7.3.8-zts-stretch", + "7.3.8-zts", + "7.3.8", + "7.3.9-alpine", + "7.3.9-alpine3.10", + "7.3.9-alpine3.9", + "7.3.9-apache-buster", + "7.3.9-apache-stretch", + "7.3.9-apache", + "7.3.9-buster", + "7.3.9-cli-alpine", + "7.3.9-cli-alpine3.10", + "7.3.9-cli-alpine3.9", + "7.3.9-cli-buster", + "7.3.9-cli-stretch", + "7.3.9-cli", + "7.3.9-fpm-alpine", + "7.3.9-fpm-alpine3.10", + "7.3.9-fpm-alpine3.9", + "7.3.9-fpm-buster", + "7.3.9-fpm-stretch", + "7.3.9-fpm", + "7.3.9-stretch", + "7.3.9-zts-alpine", + "7.3.9-zts-alpine3.10", + "7.3.9-zts-alpine3.9", + "7.3.9-zts-buster", + "7.3.9-zts-stretch", + "7.3.9-zts", + "7.3.9", + "7.3", + "7.4-rc-alpine", + "7.4-rc-alpine3.10", + "7.4-rc-alpine3.9", + "7.4-rc-apache-buster", + "7.4-rc-apache-stretch", + "7.4-rc-apache", + "7.4-rc-buster", + "7.4-rc-cli-alpine", + "7.4-rc-cli-alpine3.10", + "7.4-rc-cli-alpine3.9", + "7.4-rc-cli-buster", + "7.4-rc-cli-stretch", + "7.4-rc-cli", + "7.4-rc-fpm-alpine", + "7.4-rc-fpm-alpine3.10", + "7.4-rc-fpm-alpine3.9", + "7.4-rc-fpm-buster", + "7.4-rc-fpm-stretch", + "7.4-rc-fpm", + "7.4-rc-stretch", + "7.4-rc-zts-alpine", + "7.4-rc-zts-alpine3.10", + "7.4-rc-zts-alpine3.9", + "7.4-rc-zts-buster", + "7.4-rc-zts-stretch", + "7.4-rc-zts", + "7.4-rc", + "7.4.0RC1-alpine", + "7.4.0RC1-alpine3.10", + "7.4.0RC1-apache-buster", + "7.4.0RC1-apache", + "7.4.0RC1-buster", + "7.4.0RC1-cli-alpine", + "7.4.0RC1-cli-alpine3.10", + "7.4.0RC1-cli-buster", + "7.4.0RC1-cli", + "7.4.0RC1-fpm-alpine", + "7.4.0RC1-fpm-alpine3.10", + "7.4.0RC1-fpm-buster", + "7.4.0RC1-fpm", + "7.4.0RC1-zts-alpine", + "7.4.0RC1-zts-alpine3.10", + "7.4.0RC1-zts-buster", + "7.4.0RC1-zts", + "7.4.0RC1", + "7.4.0RC3-alpine", + "7.4.0RC3-alpine3.10", + "7.4.0RC3-apache-buster", + "7.4.0RC3-apache", + "7.4.0RC3-buster", + "7.4.0RC3-cli-alpine", + "7.4.0RC3-cli-alpine3.10", + "7.4.0RC3-cli-buster", + "7.4.0RC3-cli", + "7.4.0RC3-fpm-alpine", + "7.4.0RC3-fpm-alpine3.10", + "7.4.0RC3-fpm-buster", + "7.4.0RC3-fpm", + "7.4.0RC3-zts-alpine", + "7.4.0RC3-zts-alpine3.10", + "7.4.0RC3-zts-buster", + "7.4.0RC3-zts", + "7.4.0RC3", + "7.4.0RC4-alpine", + "7.4.0RC4-alpine3.10", + "7.4.0RC4-apache-buster", + "7.4.0RC4-apache", + "7.4.0RC4-buster", + "7.4.0RC4-cli-alpine", + "7.4.0RC4-cli-alpine3.10", + "7.4.0RC4-cli-buster", + "7.4.0RC4-cli", + "7.4.0RC4-fpm-alpine", + "7.4.0RC4-fpm-alpine3.10", + "7.4.0RC4-fpm-buster", + "7.4.0RC4-fpm", + "7.4.0RC4-zts-alpine", + "7.4.0RC4-zts-alpine3.10", + "7.4.0RC4-zts-buster", + "7.4.0RC4-zts", + "7.4.0RC4", + "7.4.0RC5-alpine", + "7.4.0RC5-alpine3.10", + "7.4.0RC5-apache-buster", + "7.4.0RC5-apache", + "7.4.0RC5-buster", + "7.4.0RC5-cli-alpine", + "7.4.0RC5-cli-alpine3.10", + "7.4.0RC5-cli-buster", + "7.4.0RC5-cli", + "7.4.0RC5-fpm-alpine", + "7.4.0RC5-fpm-alpine3.10", + "7.4.0RC5-fpm-buster", + "7.4.0RC5-fpm", + "7.4.0RC5-zts-alpine", + "7.4.0RC5-zts-alpine3.10", + "7.4.0RC5-zts-buster", + "7.4.0RC5-zts", + "7.4.0RC5", + "7.4.0RC6-alpine", + "7.4.0RC6-alpine3.10", + "7.4.0RC6-apache-buster", + "7.4.0RC6-apache", + "7.4.0RC6-buster", + "7.4.0RC6-cli-alpine", + "7.4.0RC6-cli-alpine3.10", + "7.4.0RC6-cli-buster", + "7.4.0RC6-cli", + "7.4.0RC6-fpm-alpine", + "7.4.0RC6-fpm-alpine3.10", + "7.4.0RC6-fpm-buster", + "7.4.0RC6-fpm", + "7.4.0RC6-zts-alpine", + "7.4.0RC6-zts-alpine3.10", + "7.4.0RC6-zts-buster", + "7.4.0RC6-zts", + "7.4.0RC6", + "7.4.0alpha1-alpine", + "7.4.0alpha1-alpine3.9", + "7.4.0alpha1-apache-stretch", + "7.4.0alpha1-apache", + "7.4.0alpha1-cli-alpine", + "7.4.0alpha1-cli-alpine3.9", + "7.4.0alpha1-cli-stretch", + "7.4.0alpha1-cli", + "7.4.0alpha1-fpm-alpine", + "7.4.0alpha1-fpm-alpine3.9", + "7.4.0alpha1-fpm-stretch", + "7.4.0alpha1-fpm", + "7.4.0alpha1-stretch", + "7.4.0alpha1-zts-alpine", + "7.4.0alpha1-zts-alpine3.9", + "7.4.0alpha1-zts-stretch", + "7.4.0alpha1-zts", + "7.4.0alpha1", + "7.4.0alpha2-alpine", + "7.4.0alpha2-alpine3.10", + "7.4.0alpha2-alpine3.9", + "7.4.0alpha2-apache-buster", + "7.4.0alpha2-apache-stretch", + "7.4.0alpha2-apache", + "7.4.0alpha2-buster", + "7.4.0alpha2-cli-alpine", + "7.4.0alpha2-cli-alpine3.10", + "7.4.0alpha2-cli-alpine3.9", + "7.4.0alpha2-cli-buster", + "7.4.0alpha2-cli-stretch", + "7.4.0alpha2-cli", + "7.4.0alpha2-fpm-alpine", + "7.4.0alpha2-fpm-alpine3.10", + "7.4.0alpha2-fpm-alpine3.9", + "7.4.0alpha2-fpm-buster", + "7.4.0alpha2-fpm-stretch", + "7.4.0alpha2-fpm", + "7.4.0alpha2-stretch", + "7.4.0alpha2-zts-alpine", + "7.4.0alpha2-zts-alpine3.10", + "7.4.0alpha2-zts-alpine3.9", + "7.4.0alpha2-zts-buster", + "7.4.0alpha2-zts-stretch", + "7.4.0alpha2-zts", + "7.4.0alpha2", + "7.4.0alpha3-alpine", + "7.4.0alpha3-alpine3.10", + "7.4.0alpha3-apache-buster", + "7.4.0alpha3-apache", + "7.4.0alpha3-buster", + "7.4.0alpha3-cli-alpine", + "7.4.0alpha3-cli-alpine3.10", + "7.4.0alpha3-cli-buster", + "7.4.0alpha3-cli", + "7.4.0alpha3-fpm-alpine", + "7.4.0alpha3-fpm-alpine3.10", + "7.4.0alpha3-fpm-buster", + "7.4.0alpha3-fpm", + "7.4.0alpha3-zts-alpine", + "7.4.0alpha3-zts-alpine3.10", + "7.4.0alpha3-zts-buster", + "7.4.0alpha3-zts", + "7.4.0alpha3", + "7.4.0beta1-alpine", + "7.4.0beta1-alpine3.10", + "7.4.0beta1-apache-buster", + "7.4.0beta1-apache", + "7.4.0beta1-buster", + "7.4.0beta1-cli-alpine", + "7.4.0beta1-cli-alpine3.10", + "7.4.0beta1-cli-buster", + "7.4.0beta1-cli", + "7.4.0beta1-fpm-alpine", + "7.4.0beta1-fpm-alpine3.10", + "7.4.0beta1-fpm-buster", + "7.4.0beta1-fpm", + "7.4.0beta1-zts-alpine", + "7.4.0beta1-zts-alpine3.10", + "7.4.0beta1-zts-buster", + "7.4.0beta1-zts", + "7.4.0beta1", + "7.4.0beta2-alpine", + "7.4.0beta2-alpine3.10", + "7.4.0beta2-apache-buster", + "7.4.0beta2-apache", + "7.4.0beta2-buster", + "7.4.0beta2-cli-alpine", + "7.4.0beta2-cli-alpine3.10", + "7.4.0beta2-cli-buster", + "7.4.0beta2-cli", + "7.4.0beta2-fpm-alpine", + "7.4.0beta2-fpm-alpine3.10", + "7.4.0beta2-fpm-buster", + "7.4.0beta2-fpm", + "7.4.0beta2-zts-alpine", + "7.4.0beta2-zts-alpine3.10", + "7.4.0beta2-zts-buster", + "7.4.0beta2-zts", + "7.4.0beta2", + "7.4.0beta4-alpine", + "7.4.0beta4-alpine3.10", + "7.4.0beta4-apache-buster", + "7.4.0beta4-apache", + "7.4.0beta4-buster", + "7.4.0beta4-cli-alpine", + "7.4.0beta4-cli-alpine3.10", + "7.4.0beta4-cli-buster", + "7.4.0beta4-cli", + "7.4.0beta4-fpm-alpine", + "7.4.0beta4-fpm-alpine3.10", + "7.4.0beta4-fpm-buster", + "7.4.0beta4-fpm", + "7.4.0beta4-zts-alpine", + "7.4.0beta4-zts-alpine3.10", + "7.4.0beta4-zts-buster", + "7.4.0beta4-zts", + "7.4.0beta4", + "7", + "alpine", + "alpine3.10", + "alpine3.4", + "alpine3.6", + "alpine3.7", + "alpine3.8", + "alpine3.9", + "apache-buster", + "apache-jessie", + "apache-stretch", + "apache", + "buster", + "cli-alpine", + "cli-alpine3.10", + "cli-alpine3.4", + "cli-alpine3.6", + "cli-alpine3.7", + "cli-alpine3.8", + "cli-alpine3.9", + "cli-buster", + "cli-jessie", + "cli-stretch", + "cli", + "fpm-alpine", + "fpm-alpine3.10", + "fpm-alpine3.4", + "fpm-alpine3.6", + "fpm-alpine3.7", + "fpm-alpine3.8", + "fpm-alpine3.9", + "fpm-buster", + "fpm-jessie", + "fpm-stretch", + "fpm", + "jessie", + "latest", + "rc-alpine", + "rc-alpine3.10", + "rc-alpine3.6", + "rc-alpine3.8", + "rc-alpine3.9", + "rc-apache-buster", + "rc-apache-stretch", + "rc-apache", + "rc-buster", + "rc-cli-alpine", + "rc-cli-alpine3.10", + "rc-cli-alpine3.6", + "rc-cli-alpine3.8", + "rc-cli-alpine3.9", + "rc-cli-buster", + "rc-cli-stretch", + "rc-cli", + "rc-fpm-alpine", + "rc-fpm-alpine3.10", + "rc-fpm-alpine3.6", + "rc-fpm-alpine3.8", + "rc-fpm-alpine3.9", + "rc-fpm-buster", + "rc-fpm-stretch", + "rc-fpm", + "rc-stretch", + "rc-zts-alpine", + "rc-zts-alpine3.10", + "rc-zts-alpine3.6", + "rc-zts-alpine3.8", + "rc-zts-alpine3.9", + "rc-zts-buster", + "rc-zts-stretch", + "rc-zts", + "rc", + "stretch", + "zts-alpine", + "zts-alpine3.10", + "zts-alpine3.4", + "zts-alpine3.6", + "zts-alpine3.7", + "zts-alpine3.8", + "zts-alpine3.9", + "zts-buster", + "zts-jessie", + "zts-stretch", + "zts" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/python.json b/helm/spec/fixtures/docker/registry_tags/python.json new file mode 100644 index 00000000000..8248f1d283d --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/python.json @@ -0,0 +1,354 @@ +{ + "name": "library/python", + "tags": [ + "2-alpine", + "2-alpine3.4", + "2-alpine3.6", + "2-jessie", + "2-onbuild", + "2-slim-jessie", + "2-slim-stretch", + "2-slim", + "2-stretch", + "2-wheezy", + "2-windowsservercore", + "2.7-alpine", + "2.7-alpine3.4", + "2.7-alpine3.6", + "2.7-jessie", + "2.7-onbuild", + "2.7-slim-jessie", + "2.7-slim-stretch", + "2.7-slim", + "2.7-stretch", + "2.7-wheezy", + "2.7-windowsservercore", + "2.7.10-onbuild", + "2.7.10-slim", + "2.7.10-wheezy", + "2.7.10", + "2.7.11-alpine", + "2.7.11-onbuild", + "2.7.11-slim", + "2.7.11-wheezy", + "2.7.11", + "2.7.12-alpine", + "2.7.12-onbuild", + "2.7.12-slim", + "2.7.12-wheezy", + "2.7.12-windowsservercore", + "2.7.12", + "2.7.13-alpine", + "2.7.13-alpine3.4", + "2.7.13-alpine3.6", + "2.7.13-jessie", + "2.7.13-onbuild", + "2.7.13-slim", + "2.7.13-stretch", + "2.7.13-wheezy", + "2.7.13-windowsservercore", + "2.7.13", + "2.7.14-alpine", + "2.7.14-alpine3.4", + "2.7.14-alpine3.6", + "2.7.14-jessie", + "2.7.14-onbuild", + "2.7.14-slim-jessie", + "2.7.14-slim-stretch", + "2.7.14-slim", + "2.7.14-stretch", + "2.7.14-wheezy", + "2.7.14-windowsservercore", + "2.7.14", + "2.7.7", + "2.7.8-onbuild", + "2.7.8-slim", + "2.7.8-wheezy", + "2.7.8", + "2.7.9-onbuild", + "2.7.9-slim", + "2.7.9-wheezy", + "2.7.9", + "2.7", + "2", + "3-alpine", + "3-alpine3.4", + "3-alpine3.6", + "3-jessie", + "3-onbuild", + "3-slim-jessie", + "3-slim-stretch", + "3-slim", + "3-stretch", + "3-wheezy", + "3-windowsservercore", + "3.2-onbuild", + "3.2-slim", + "3.2-wheezy", + "3.2.6-onbuild", + "3.2.6-slim", + "3.2.6-wheezy", + "3.2.6", + "3.2", + "3.3-alpine", + "3.3-alpine3.4", + "3.3-jessie", + "3.3-onbuild", + "3.3-rc-alpine", + "3.3-rc-alpine3.4", + "3.3-rc-jessie", + "3.3-rc-onbuild", + "3.3-rc-slim", + "3.3-rc-wheezy", + "3.3-rc", + "3.3-slim", + "3.3-wheezy", + "3.3.5-onbuild", + "3.3.5", + "3.3.6-alpine", + "3.3.6-alpine3.4", + "3.3.6-jessie", + "3.3.6-onbuild", + "3.3.6-slim", + "3.3.6-wheezy", + "3.3.6", + "3.3.7-alpine", + "3.3.7-alpine3.4", + "3.3.7-jessie", + "3.3.7-onbuild", + "3.3.7-slim", + "3.3.7-wheezy", + "3.3.7", + "3.3.7rc1-alpine", + "3.3.7rc1-alpine3.4", + "3.3.7rc1-jessie", + "3.3.7rc1-onbuild", + "3.3.7rc1-slim", + "3.3.7rc1-wheezy", + "3.3.7rc1", + "3.3", + "3.4-alpine", + "3.4-alpine3.4", + "3.4-jessie", + "3.4-onbuild", + "3.4-slim-jessie", + "3.4-slim", + "3.4-wheezy", + "3.4.1-onbuild", + "3.4.1", + "3.4.2-onbuild", + "3.4.2-slim", + "3.4.2-wheezy", + "3.4.2", + "3.4.3-onbuild", + "3.4.3-slim", + "3.4.3-wheezy", + "3.4.3", + "3.4.4-alpine", + "3.4.4-onbuild", + "3.4.4-slim", + "3.4.4-wheezy", + "3.4.4", + "3.4.5-alpine", + "3.4.5-onbuild", + "3.4.5-slim", + "3.4.5-wheezy", + "3.4.5", + "3.4.6-alpine", + "3.4.6-alpine3.4", + "3.4.6-jessie", + "3.4.6-onbuild", + "3.4.6-slim", + "3.4.6-wheezy", + "3.4.6", + "3.4.7-alpine", + "3.4.7-alpine3.4", + "3.4.7-jessie", + "3.4.7-onbuild", + "3.4.7-slim-jessie", + "3.4.7-slim", + "3.4.7-wheezy", + "3.4.7", + "3.4", + "3.5-alpine", + "3.5-alpine3.4", + "3.5-jessie", + "3.5-onbuild", + "3.5-slim-jessie", + "3.5-slim", + "3.5-windowsservercore", + "3.5.0-onbuild", + "3.5.0-slim", + "3.5.0", + "3.5.0b3-onbuild", + "3.5.0b3-slim", + "3.5.0b3", + "3.5.1-alpine", + "3.5.1-onbuild", + "3.5.1-slim", + "3.5.1", + "3.5.2-alpine", + "3.5.2-onbuild", + "3.5.2-slim", + "3.5.2-windowsservercore", + "3.5.2", + "3.5.3-alpine", + "3.5.3-alpine3.4", + "3.5.3-jessie", + "3.5.3-onbuild", + "3.5.3-slim", + "3.5.3-windowsservercore", + "3.5.3", + "3.5.4-alpine", + "3.5.4-alpine3.4", + "3.5.4-jessie", + "3.5.4-onbuild", + "3.5.4-slim-jessie", + "3.5.4-slim", + "3.5.4-windowsservercore", + "3.5.4", + "3.5", + "3.6-alpine", + "3.6-alpine3.4", + "3.6-alpine3.6", + "3.6-jessie", + "3.6-onbuild", + "3.6-rc-alpine", + "3.6-rc-alpine3.6", + "3.6-rc-onbuild", + "3.6-rc-slim", + "3.6-rc-windowsservercore", + "3.6-rc", + "3.6-slim-jessie", + "3.6-slim-stretch", + "3.6-slim", + "3.6-stretch", + "3.6-windowsservercore", + "3.6.0-alpine", + "3.6.0-onbuild", + "3.6.0-slim", + "3.6.0-windowsservercore", + "3.6.0", + "3.6.0a2-alpine", + "3.6.0a2-onbuild", + "3.6.0a2-slim", + "3.6.0a2", + "3.6.0a3-alpine", + "3.6.0a3-onbuild", + "3.6.0a3-slim", + "3.6.0a3", + "3.6.0a4-alpine", + "3.6.0a4-onbuild", + "3.6.0a4-slim", + "3.6.0a4-windowsservercore", + "3.6.0a4", + "3.6.0b1-alpine", + "3.6.0b1-onbuild", + "3.6.0b1-slim", + "3.6.0b1", + "3.6.0b2-alpine", + "3.6.0b2-onbuild", + "3.6.0b2-slim", + "3.6.0b2-windowsservercore", + "3.6.0b2", + "3.6.0b3-alpine", + "3.6.0b3-onbuild", + "3.6.0b3-slim", + "3.6.0b3-windowsservercore", + "3.6.0b3", + "3.6.0b4-alpine", + "3.6.0b4-onbuild", + "3.6.0b4-slim", + "3.6.0b4-windowsservercore", + "3.6.0b4", + "3.6.0rc1-alpine", + "3.6.0rc1-onbuild", + "3.6.0rc1-slim", + "3.6.0rc1-windowsservercore", + "3.6.0rc1", + "3.6.0rc2-alpine", + "3.6.0rc2-onbuild", + "3.6.0rc2-slim", + "3.6.0rc2-windowsservercore", + "3.6.0rc2", + "3.6.1-alpine", + "3.6.1-alpine3.6", + "3.6.1-onbuild", + "3.6.1-slim", + "3.6.1-windowsservercore", + "3.6.1", + "3.6.2-alpine", + "3.6.2-alpine3.4", + "3.6.2-alpine3.6", + "3.6.2-jessie", + "3.6.2-onbuild", + "3.6.2-slim", + "3.6.2-stretch", + "3.6.2-windowsservercore", + "3.6.2", + "3.6.2rc1-alpine", + "3.6.2rc1-alpine3.6", + "3.6.2rc1-onbuild", + "3.6.2rc1-slim", + "3.6.2rc1-windowsservercore", + "3.6.2rc1", + "3.6.2rc2-alpine", + "3.6.2rc2-alpine3.6", + "3.6.2rc2-onbuild", + "3.6.2rc2-slim", + "3.6.2rc2-windowsservercore", + "3.6.2rc2", + "3.6.3-alpine", + "3.6.3-alpine3.4", + "3.6.3-alpine3.6", + "3.6.3-jessie", + "3.6.3-onbuild", + "3.6.3-slim-jessie", + "3.6.3-slim-stretch", + "3.6.3-slim", + "3.6.3-stretch", + "3.6.3-windowsservercore", + "3.6.3", + "3.6", + "3.7-rc-alpine", + "3.7-rc-alpine3.6", + "3.7-rc-slim-stretch", + "3.7-rc-slim", + "3.7-rc-stretch", + "3.7-rc-windowsservercore", + "3.7-rc", + "3.7.0a1-alpine", + "3.7.0a1-alpine3.6", + "3.7.0a1-slim", + "3.7.0a1-stretch", + "3.7.0a1-windowsservercore", + "3.7.0a1", + "3.7.0a2-alpine", + "3.7.0a2-alpine3.6", + "3.7.0a2-slim-stretch", + "3.7.0a2-slim", + "3.7.0a2-stretch", + "3.7.0a2-windowsservercore", + "3.7.0a2", + "3", + "alpine", + "alpine3.4", + "alpine3.6", + "jessie", + "onbuild", + "rc-alpine", + "rc-alpine3.6", + "rc-onbuild", + "rc-slim-stretch", + "rc-slim", + "rc-stretch", + "rc-windowsservercore", + "rc", + "slim-jessie", + "slim-stretch", + "slim", + "stretch", + "wheezy", + "windowsservercore" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ruby.json b/helm/spec/fixtures/docker/registry_tags/ruby.json new file mode 100644 index 00000000000..6fcc71052a2 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ruby.json @@ -0,0 +1,246 @@ +{ + "name": "library/ruby", + "tags": [ + "1-onbuild", + "1-slim", + "1-wheezy", + "1.9-onbuild", + "1.9-slim", + "1.9-wheezy", + "1.9.3-onbuild", + "1.9.3-p547-onbuild", + "1.9.3-p547", + "1.9.3-p550-onbuild", + "1.9.3-p550", + "1.9.3-p551-onbuild", + "1.9.3-p551-slim", + "1.9.3-p551-wheezy", + "1.9.3-p551", + "1.9.3-slim", + "1.9.3-wheezy", + "1.9.3", + "1.9", + "1", + "2-alpine", + "2-alpine3.4", + "2-alpine3.6", + "2-jessie", + "2-onbuild", + "2-slim-jessie", + "2-slim-stretch", + "2-slim", + "2-stretch", + "2-wheezy", + "2.0-onbuild", + "2.0-slim", + "2.0-wheezy", + "2.0.0-onbuild", + "2.0.0-p576-onbuild", + "2.0.0-p576", + "2.0.0-p594-onbuild", + "2.0.0-p594", + "2.0.0-p598-onbuild", + "2.0.0-p598-slim", + "2.0.0-p598-wheezy", + "2.0.0-p598", + "2.0.0-p643-onbuild", + "2.0.0-p643-slim", + "2.0.0-p643-wheezy", + "2.0.0-p643", + "2.0.0-p645-onbuild", + "2.0.0-p645-slim", + "2.0.0-p645-wheezy", + "2.0.0-p645", + "2.0.0-p647-onbuild", + "2.0.0-p647-slim", + "2.0.0-p647", + "2.0.0-p648-onbuild", + "2.0.0-p648-slim", + "2.0.0-p648", + "2.0.0-slim", + "2.0.0-wheezy", + "2.0.0", + "2.0", + "2.1-alpine", + "2.1-onbuild", + "2.1-slim", + "2.1-wheezy", + "2.1.1", + "2.1.10-alpine", + "2.1.10-onbuild", + "2.1.10-slim", + "2.1.10", + "2.1.2-onbuild", + "2.1.2", + "2.1.3-onbuild", + "2.1.3", + "2.1.4-onbuild", + "2.1.4", + "2.1.5-onbuild", + "2.1.5-slim", + "2.1.5-wheezy", + "2.1.5", + "2.1.6-onbuild", + "2.1.6-slim", + "2.1.6-wheezy", + "2.1.6", + "2.1.7-onbuild", + "2.1.7-slim", + "2.1.7", + "2.1.8-alpine", + "2.1.8-onbuild", + "2.1.8-slim", + "2.1.8", + "2.1.9-alpine", + "2.1.9-onbuild", + "2.1.9-slim", + "2.1.9", + "2.1", + "2.2-alpine", + "2.2-alpine3.4", + "2.2-jessie", + "2.2-onbuild", + "2.2-slim-jessie", + "2.2-slim", + "2.2-wheezy", + "2.2.0-onbuild", + "2.2.0-rc1-onbuild", + "2.2.0-rc1-wheezy", + "2.2.0-rc1", + "2.2.0-slim", + "2.2.0-wheezy", + "2.2.0", + "2.2.1-onbuild", + "2.2.1-slim", + "2.2.1-wheezy", + "2.2.1", + "2.2.2-onbuild", + "2.2.2-slim", + "2.2.2-wheezy", + "2.2.2", + "2.2.3-onbuild", + "2.2.3-slim", + "2.2.3", + "2.2.4-alpine", + "2.2.4-onbuild", + "2.2.4-slim", + "2.2.4", + "2.2.5-alpine", + "2.2.5-onbuild", + "2.2.5-slim", + "2.2.5", + "2.2.6-alpine", + "2.2.6-onbuild", + "2.2.6-slim", + "2.2.6", + "2.2.7-alpine", + "2.2.7-alpine3.4", + "2.2.7-jessie", + "2.2.7-onbuild", + "2.2.7-slim-jessie", + "2.2.7-slim", + "2.2.7", + "2.2.8-alpine", + "2.2.8-alpine3.4", + "2.2.8-jessie", + "2.2.8-onbuild", + "2.2.8-slim-jessie", + "2.2.8-slim", + "2.2.8", + "2.2", + "2.3-alpine", + "2.3-alpine3.4", + "2.3-jessie", + "2.3-onbuild", + "2.3-slim-jessie", + "2.3-slim", + "2.3.0-alpine", + "2.3.0-onbuild", + "2.3.0-slim", + "2.3.0", + "2.3.1-alpine", + "2.3.1-onbuild", + "2.3.1-slim", + "2.3.1", + "2.3.2-alpine", + "2.3.2-onbuild", + "2.3.2-slim", + "2.3.2", + "2.3.3-alpine", + "2.3.3-onbuild", + "2.3.3-slim", + "2.3.3", + "2.3.4-alpine", + "2.3.4-alpine3.4", + "2.3.4-jessie", + "2.3.4-onbuild", + "2.3.4-slim-jessie", + "2.3.4-slim", + "2.3.4", + "2.3.5-alpine", + "2.3.5-alpine3.4", + "2.3.5-jessie", + "2.3.5-onbuild", + "2.3.5-slim-jessie", + "2.3.5-slim", + "2.3.5", + "2.3", + "2.4-alpine", + "2.4-alpine3.4", + "2.4-alpine3.6", + "2.4-jessie", + "2.4-onbuild", + "2.4-rc-alpine", + "2.4-rc-onbuild", + "2.4-rc-slim", + "2.4-rc", + "2.4-slim-jessie", + "2.4-slim-stretch", + "2.4-slim", + "2.4-stretch", + "2.4.0-alpine", + "2.4.0-onbuild", + "2.4.0-preview3-alpine", + "2.4.0-preview3-onbuild", + "2.4.0-preview3-slim", + "2.4.0-preview3", + "2.4.0-rc1-alpine", + "2.4.0-rc1-onbuild", + "2.4.0-rc1-slim", + "2.4.0-rc1", + "2.4.0-slim", + "2.4.0", + "2.4.1-alpine", + "2.4.1-alpine3.4", + "2.4.1-alpine3.6", + "2.4.1-jessie", + "2.4.1-onbuild", + "2.4.1-slim-jessie", + "2.4.1-slim-stretch", + "2.4.1-slim", + "2.4.1-stretch", + "2.4.1", + "2.4.2-alpine", + "2.4.2-alpine3.4", + "2.4.2-alpine3.6", + "2.4.2-jessie", + "2.4.2-onbuild", + "2.4.2-slim-jessie", + "2.4.2-slim-stretch", + "2.4.2-slim", + "2.4.2-stretch", + "2.4.2", + "2.4", + "2", + "alpine", + "alpine3.4", + "alpine3.6", + "jessie", + "onbuild", + "slim-jessie", + "slim-stretch", + "slim", + "stretch", + "wheezy" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ruby_25.json b/helm/spec/fixtures/docker/registry_tags/ruby_25.json new file mode 100644 index 00000000000..c33d21ea3ee --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ruby_25.json @@ -0,0 +1,272 @@ +{ + "name": "library/ruby", + "tags": [ + "1-onbuild", + "1-slim", + "1-wheezy", + "1.9-onbuild", + "1.9-slim", + "1.9-wheezy", + "1.9.3-onbuild", + "1.9.3-p547-onbuild", + "1.9.3-p547", + "1.9.3-p550-onbuild", + "1.9.3-p550", + "1.9.3-p551-onbuild", + "1.9.3-p551-slim", + "1.9.3-p551-wheezy", + "1.9.3-p551", + "1.9.3-slim", + "1.9.3-wheezy", + "1.9.3", + "1.9", + "1", + "2-alpine", + "2-alpine3.4", + "2-alpine3.6", + "2-jessie", + "2-onbuild", + "2-slim-jessie", + "2-slim-stretch", + "2-slim", + "2-stretch", + "2-wheezy", + "2.0-onbuild", + "2.0-slim", + "2.0-wheezy", + "2.0.0-onbuild", + "2.0.0-p576-onbuild", + "2.0.0-p576", + "2.0.0-p594-onbuild", + "2.0.0-p594", + "2.0.0-p598-onbuild", + "2.0.0-p598-slim", + "2.0.0-p598-wheezy", + "2.0.0-p598", + "2.0.0-p643-onbuild", + "2.0.0-p643-slim", + "2.0.0-p643-wheezy", + "2.0.0-p643", + "2.0.0-p645-onbuild", + "2.0.0-p645-slim", + "2.0.0-p645-wheezy", + "2.0.0-p645", + "2.0.0-p647-onbuild", + "2.0.0-p647-slim", + "2.0.0-p647", + "2.0.0-p648-onbuild", + "2.0.0-p648-slim", + "2.0.0-p648", + "2.0.0-slim", + "2.0.0-wheezy", + "2.0.0", + "2.0", + "2.1-alpine", + "2.1-onbuild", + "2.1-slim", + "2.1-wheezy", + "2.1.1", + "2.1.10-alpine", + "2.1.10-onbuild", + "2.1.10-slim", + "2.1.10", + "2.1.2-onbuild", + "2.1.2", + "2.1.3-onbuild", + "2.1.3", + "2.1.4-onbuild", + "2.1.4", + "2.1.5-onbuild", + "2.1.5-slim", + "2.1.5-wheezy", + "2.1.5", + "2.1.6-onbuild", + "2.1.6-slim", + "2.1.6-wheezy", + "2.1.6", + "2.1.7-onbuild", + "2.1.7-slim", + "2.1.7", + "2.1.8-alpine", + "2.1.8-onbuild", + "2.1.8-slim", + "2.1.8", + "2.1.9-alpine", + "2.1.9-onbuild", + "2.1.9-slim", + "2.1.9", + "2.1", + "2.2-alpine", + "2.2-alpine3.4", + "2.2-jessie", + "2.2-onbuild", + "2.2-slim-jessie", + "2.2-slim", + "2.2-wheezy", + "2.2.0-onbuild", + "2.2.0-rc1-onbuild", + "2.2.0-rc1-wheezy", + "2.2.0-rc1", + "2.2.0-slim", + "2.2.0-wheezy", + "2.2.0", + "2.2.1-onbuild", + "2.2.1-slim", + "2.2.1-wheezy", + "2.2.1", + "2.2.2-onbuild", + "2.2.2-slim", + "2.2.2-wheezy", + "2.2.2", + "2.2.3-onbuild", + "2.2.3-slim", + "2.2.3", + "2.2.4-alpine", + "2.2.4-onbuild", + "2.2.4-slim", + "2.2.4", + "2.2.5-alpine", + "2.2.5-onbuild", + "2.2.5-slim", + "2.2.5", + "2.2.6-alpine", + "2.2.6-onbuild", + "2.2.6-slim", + "2.2.6", + "2.2.7-alpine", + "2.2.7-alpine3.4", + "2.2.7-jessie", + "2.2.7-onbuild", + "2.2.7-slim-jessie", + "2.2.7-slim", + "2.2.7", + "2.2.8-alpine", + "2.2.8-alpine3.4", + "2.2.8-jessie", + "2.2.8-onbuild", + "2.2.8-slim-jessie", + "2.2.8-slim", + "2.2.8", + "2.2", + "2.3-alpine", + "2.3-alpine3.4", + "2.3-jessie", + "2.3-onbuild", + "2.3-slim-jessie", + "2.3-slim", + "2.3.0-alpine", + "2.3.0-onbuild", + "2.3.0-slim", + "2.3.0", + "2.3.1-alpine", + "2.3.1-onbuild", + "2.3.1-slim", + "2.3.1", + "2.3.2-alpine", + "2.3.2-onbuild", + "2.3.2-slim", + "2.3.2", + "2.3.3-alpine", + "2.3.3-onbuild", + "2.3.3-slim", + "2.3.3", + "2.3.4-alpine", + "2.3.4-alpine3.4", + "2.3.4-jessie", + "2.3.4-onbuild", + "2.3.4-slim-jessie", + "2.3.4-slim", + "2.3.4", + "2.3.5-alpine", + "2.3.5-alpine3.4", + "2.3.5-jessie", + "2.3.5-onbuild", + "2.3.5-slim-jessie", + "2.3.5-slim", + "2.3.5", + "2.3", + "2.4-alpine", + "2.4-alpine3.4", + "2.4-alpine3.6", + "2.4-jessie", + "2.4-onbuild", + "2.4-rc-alpine", + "2.4-rc-onbuild", + "2.4-rc-slim", + "2.4-rc", + "2.4-slim-jessie", + "2.4-slim-stretch", + "2.4-slim", + "2.4-stretch", + "2.4.0-alpine", + "2.4.0-onbuild", + "2.4.0-preview3-alpine", + "2.4.0-preview3-onbuild", + "2.4.0-preview3-slim", + "2.4.0-preview3", + "2.4.0-rc1-alpine", + "2.4.0-rc1-onbuild", + "2.4.0-rc1-slim", + "2.4.0-rc1", + "2.4.0-slim", + "2.4.0", + "2.4.1-alpine", + "2.4.1-alpine3.4", + "2.4.1-alpine3.6", + "2.4.1-jessie", + "2.4.1-onbuild", + "2.4.1-slim-jessie", + "2.4.1-slim-stretch", + "2.4.1-slim", + "2.4.1-stretch", + "2.4.1", + "2.4.2-alpine", + "2.4.2-alpine3.4", + "2.4.2-alpine3.6", + "2.4.2-jessie", + "2.4.2-onbuild", + "2.4.2-slim-jessie", + "2.4.2-slim-stretch", + "2.4.2-slim", + "2.4.2-stretch", + "2.4.2", + "2.4", + "2.5-alpine", + "2.5-alpine3.4", + "2.5-alpine3.6", + "2.5-jessie", + "2.5-onbuild", + "2.5-rc-alpine", + "2.5-rc-onbuild", + "2.5-rc-slim", + "2.5-rc", + "2.5-slim-jessie", + "2.5-slim-stretch", + "2.5-slim", + "2.5-stretch", + "2.5.0-alpine", + "2.5.0-onbuild", + "2.5.0-preview3-alpine", + "2.5.0-preview3-onbuild", + "2.5.0-preview3-slim", + "2.5.0-preview3", + "2.5.0-rc1-alpine", + "2.5.0-rc1-onbuild", + "2.5.0-rc1-slim", + "2.5.0-rc1", + "2.5.0-slim", + "2.5.0", + "2.5", + "2", + "alpine", + "alpine3.4", + "alpine3.6", + "jessie", + "onbuild", + "slim-jessie", + "slim-stretch", + "slim", + "stretch", + "wheezy" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/sha_suffices.json b/helm/spec/fixtures/docker/registry_tags/sha_suffices.json new file mode 100644 index 00000000000..db7196b9d85 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/sha_suffices.json @@ -0,0 +1,53 @@ +{ + "name": "library/ubuntu", + "tags": [ + "7.1", + "7.1-0.3.1", + "7.1-0.3", + "7.1-0.2.1", + "7.1-0.2", + "7.1-0.1.4", + "7.1-0.1.3", + "7.1-0.1.2", + "7.1-0.1.1", + "7.1-0.1", + "7.1-ed7eee0", + "7.1-2f653d4", + "7.1-5621d67", + "7.1-7b82110", + "7.1-g7b82110", + "7.1-b5b6a49", + "7.1-9658143", + "7.1-98060af", + "7.1-524a1d5", + "7.1-ce5a8af", + "7.1-d2d733e", + "7.1-b7a6caf", + "7.1-790dd8b", + "7.1-g790dd8b", + "7.2", + "7.2-0.3.1", + "7.2-0.3", + "7.2-0.2.1", + "7.2-0.2", + "7.2-0.1.4", + "7.2-0.1.3", + "7.2-0.1.2", + "7.2-0.1.1", + "7.2-0.1", + "7.2-g7b82110", + "7.2-g790dd8b", + "7.2-7b82110", + "7.2-790dd8b", + "7.2-ce5a8af", + "7.2-9658143", + "7.2-d2d733e", + "7.2-b7a6caf", + "7.2-5621d67", + "7.2-98060af", + "7.2-524a1d5", + "7.2-b5b6a49", + "7.2-2f653d4", + "7.2-ed7eee0" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/small_ubuntu.json b/helm/spec/fixtures/docker/registry_tags/small_ubuntu.json new file mode 100644 index 00000000000..72f211f180c --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/small_ubuntu.json @@ -0,0 +1,4 @@ +{ + "name": "library/ubuntu", + "tags": ["10.04", "12.04.5", "12.04"] +} diff --git a/helm/spec/fixtures/docker/registry_tags/truncated_tag_list.json b/helm/spec/fixtures/docker/registry_tags/truncated_tag_list.json new file mode 100644 index 00000000000..d743fb7e696 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/truncated_tag_list.json @@ -0,0 +1,55 @@ +{ + "name":"jetstack/cert-manager-controller", + "tags":[ + "master-6140", + "master-6147", + "master-6175", + "master-6193", + "master-6221", + "v0.5.1", + "v0.5.2", + "master-6274", + "master-6345", + "master-6387", + "master-6391", + "master-6393", + "master-6395", + "master-6397", + "master-6398", + "master-6399", + "master-6400", + "master-6415", + "master-6419", + "master-6435", + "master-6440", + "master-6441", + "master-6443", + "master-6446", + "master-6452", + "master-6460", + "master-6462", + "venafi-0", + "master-6507", + "master-6508", + "master-7106", + "master-7108", + "v0.6.0-alpha.0", + "master-7111", + "master-7116", + "master-7127", + "master-7129", + "master-7132", + "master-7133", + "master-7136", + "master-7137", + "master-7138", + "master-7141", + "v0.6.0-alpha.1", + "master-7145", + "master-7147", + "master-7148", + "master-7167", + "master-7177", + "master-7178" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ubi-minimal.json b/helm/spec/fixtures/docker/registry_tags/ubi-minimal.json new file mode 100644 index 00000000000..83d30c39878 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ubi-minimal.json @@ -0,0 +1,9 @@ +{ + "name": "ubi8/ubi-minimal", + "tags": [ + "8.5", + "8.7", + "8.7-923.1669829893", + "8.7-1049" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ubuntu.json b/helm/spec/fixtures/docker/registry_tags/ubuntu.json new file mode 100644 index 00000000000..a60a203cba3 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ubuntu.json @@ -0,0 +1,228 @@ +{ + "name": "library/ubuntu", + "tags": [ + "10.04", + "12.04.5", + "12.04", + "12.10", + "13.04", + "13.10", + "14.04.1", + "14.04.2", + "14.04.3", + "14.04.4", + "14.04.5", + "14.04", + "14.10", + "15.04", + "15.10", + "16.04", + "16.10", + "17.04", + "17.10", + "artful-20170511.1", + "artful-20170601", + "artful-20170619", + "artful-20170716", + "artful-20170728", + "artful-20170826", + "artful-20170916", + "artful", + "devel", + "latest", + "lucid", + "precise-20150212", + "precise-20150228.11", + "precise-20150320", + "precise-20150427", + "precise-20150528", + "precise-20150612", + "precise-20150626", + "precise-20150729", + "precise-20150813", + "precise-20150924", + "precise-20151020", + "precise-20151028", + "precise-20151208", + "precise-20160108", + "precise-20160217", + "precise-20160225", + "precise-20160303", + "precise-20160311", + "precise-20160318", + "precise-20160330", + "precise-20160425", + "precise-20160503", + "precise-20160526", + "precise-20160624", + "precise-20160707", + "precise-20160819", + "precise-20160923.1", + "precise-20161102", + "precise-20161123", + "precise-20161209", + "precise-20170214", + "precise-20170331", + "precise", + "quantal", + "raring", + "rolling", + "saucy", + "trusty-20150218.1", + "trusty-20150228.11", + "trusty-20150320", + "trusty-20150427", + "trusty-20150528", + "trusty-20150612", + "trusty-20150630", + "trusty-20150730", + "trusty-20150806", + "trusty-20150814", + "trusty-20151001", + "trusty-20151009", + "trusty-20151021", + "trusty-20151028", + "trusty-20151208", + "trusty-20151218", + "trusty-20160119", + "trusty-20160217", + "trusty-20160226", + "trusty-20160302", + "trusty-20160315", + "trusty-20160317", + "trusty-20160323", + "trusty-20160405", + "trusty-20160412", + "trusty-20160424", + "trusty-20160503.1", + "trusty-20160526", + "trusty-20160624", + "trusty-20160711", + "trusty-20160802", + "trusty-20160819", + "trusty-20160914", + "trusty-20160923.1", + "trusty-20161006", + "trusty-20161101", + "trusty-20161123", + "trusty-20161214", + "trusty-20170119", + "trusty-20170214", + "trusty-20170330", + "trusty-20170602", + "trusty-20170620", + "trusty-20170719", + "trusty-20170728", + "trusty-20170817", + "trusty", + "utopic-20150211", + "utopic-20150228.11", + "utopic-20150319", + "utopic-20150418", + "utopic-20150427", + "utopic-20150528", + "utopic-20150612", + "utopic-20150625", + "utopic", + "vivid-20150218", + "vivid-20150309", + "vivid-20150319.1", + "vivid-20150421", + "vivid-20150427", + "vivid-20150528", + "vivid-20150611", + "vivid-20150802", + "vivid-20150813", + "vivid-20150930", + "vivid-20151021", + "vivid-20151106", + "vivid-20151111", + "vivid-20151208", + "vivid-20160122", + "vivid", + "wily-20150528.1", + "wily-20150611", + "wily-20150708", + "wily-20150731", + "wily-20150807", + "wily-20150818", + "wily-20150829", + "wily-20151006", + "wily-20151009", + "wily-20151019", + "wily-20151208", + "wily-20160121", + "wily-20160217", + "wily-20160302", + "wily-20160316", + "wily-20160329", + "wily-20160424", + "wily-20160503", + "wily-20160526", + "wily-20160602", + "wily-20160706", + "wily", + "xenial-20151218.1", + "xenial-20160119.1", + "xenial-20160125", + "xenial-20160217.2", + "xenial-20160226", + "xenial-20160303.1", + "xenial-20160314.4", + "xenial-20160317", + "xenial-20160331.1", + "xenial-20160422", + "xenial-20160503", + "xenial-20160525", + "xenial-20160629", + "xenial-20160706", + "xenial-20160713", + "xenial-20160809", + "xenial-20160818", + "xenial-20160914", + "xenial-20160923.1", + "xenial-20161010", + "xenial-20161114", + "xenial-20161121", + "xenial-20161213", + "xenial-20170119", + "xenial-20170214", + "xenial-20170410", + "xenial-20170417.1", + "xenial-20170510", + "xenial-20170517.1", + "xenial-20170619", + "xenial-20170710", + "xenial-20170802", + "xenial-20170915", + "xenial", + "yakkety-20160708", + "yakkety-20160717", + "yakkety-20160806.1", + "yakkety-20160826", + "yakkety-20160919", + "yakkety-20160923.1", + "yakkety-20161013", + "yakkety-20161104", + "yakkety-20161121", + "yakkety-20161213", + "yakkety-20170104", + "yakkety-20170224", + "yakkety-20170327", + "yakkety-20170517.1", + "yakkety-20170619", + "yakkety-20170704", + "yakkety", + "zesty-20161129.1", + "zesty-20161212", + "zesty-20170118", + "zesty-20170224", + "zesty-20170411", + "zesty-20170517.1", + "zesty-20170619", + "zesty-20170703", + "zesty-20170913", + "zesty-20170915", + "zesty" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ubuntu_namespace.json b/helm/spec/fixtures/docker/registry_tags/ubuntu_namespace.json new file mode 100644 index 00000000000..d0ee379d3d9 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ubuntu_namespace.json @@ -0,0 +1,228 @@ +{ + "name": "myfork/ubuntu", + "tags": [ + "10.04", + "12.04.5", + "12.04", + "12.10", + "13.04", + "13.10", + "14.04.1", + "14.04.2", + "14.04.3", + "14.04.4", + "14.04.5", + "14.04", + "14.10", + "15.04", + "15.10", + "16.04", + "16.10", + "17.04", + "17.10", + "artful-20170511.1", + "artful-20170601", + "artful-20170619", + "artful-20170716", + "artful-20170728", + "artful-20170826", + "artful-20170916", + "artful", + "devel", + "latest", + "lucid", + "precise-20150212", + "precise-20150228.11", + "precise-20150320", + "precise-20150427", + "precise-20150528", + "precise-20150612", + "precise-20150626", + "precise-20150729", + "precise-20150813", + "precise-20150924", + "precise-20151020", + "precise-20151028", + "precise-20151208", + "precise-20160108", + "precise-20160217", + "precise-20160225", + "precise-20160303", + "precise-20160311", + "precise-20160318", + "precise-20160330", + "precise-20160425", + "precise-20160503", + "precise-20160526", + "precise-20160624", + "precise-20160707", + "precise-20160819", + "precise-20160923.1", + "precise-20161102", + "precise-20161123", + "precise-20161209", + "precise-20170214", + "precise-20170331", + "precise", + "quantal", + "raring", + "rolling", + "saucy", + "trusty-20150218.1", + "trusty-20150228.11", + "trusty-20150320", + "trusty-20150427", + "trusty-20150528", + "trusty-20150612", + "trusty-20150630", + "trusty-20150730", + "trusty-20150806", + "trusty-20150814", + "trusty-20151001", + "trusty-20151009", + "trusty-20151021", + "trusty-20151028", + "trusty-20151208", + "trusty-20151218", + "trusty-20160119", + "trusty-20160217", + "trusty-20160226", + "trusty-20160302", + "trusty-20160315", + "trusty-20160317", + "trusty-20160323", + "trusty-20160405", + "trusty-20160412", + "trusty-20160424", + "trusty-20160503.1", + "trusty-20160526", + "trusty-20160624", + "trusty-20160711", + "trusty-20160802", + "trusty-20160819", + "trusty-20160914", + "trusty-20160923.1", + "trusty-20161006", + "trusty-20161101", + "trusty-20161123", + "trusty-20161214", + "trusty-20170119", + "trusty-20170214", + "trusty-20170330", + "trusty-20170602", + "trusty-20170620", + "trusty-20170719", + "trusty-20170728", + "trusty-20170817", + "trusty", + "utopic-20150211", + "utopic-20150228.11", + "utopic-20150319", + "utopic-20150418", + "utopic-20150427", + "utopic-20150528", + "utopic-20150612", + "utopic-20150625", + "utopic", + "vivid-20150218", + "vivid-20150309", + "vivid-20150319.1", + "vivid-20150421", + "vivid-20150427", + "vivid-20150528", + "vivid-20150611", + "vivid-20150802", + "vivid-20150813", + "vivid-20150930", + "vivid-20151021", + "vivid-20151106", + "vivid-20151111", + "vivid-20151208", + "vivid-20160122", + "vivid", + "wily-20150528.1", + "wily-20150611", + "wily-20150708", + "wily-20150731", + "wily-20150807", + "wily-20150818", + "wily-20150829", + "wily-20151006", + "wily-20151009", + "wily-20151019", + "wily-20151208", + "wily-20160121", + "wily-20160217", + "wily-20160302", + "wily-20160316", + "wily-20160329", + "wily-20160424", + "wily-20160503", + "wily-20160526", + "wily-20160602", + "wily-20160706", + "wily", + "xenial-20151218.1", + "xenial-20160119.1", + "xenial-20160125", + "xenial-20160217.2", + "xenial-20160226", + "xenial-20160303.1", + "xenial-20160314.4", + "xenial-20160317", + "xenial-20160331.1", + "xenial-20160422", + "xenial-20160503", + "xenial-20160525", + "xenial-20160629", + "xenial-20160706", + "xenial-20160713", + "xenial-20160809", + "xenial-20160818", + "xenial-20160914", + "xenial-20160923.1", + "xenial-20161010", + "xenial-20161114", + "xenial-20161121", + "xenial-20161213", + "xenial-20170119", + "xenial-20170214", + "xenial-20170410", + "xenial-20170417.1", + "xenial-20170510", + "xenial-20170517.1", + "xenial-20170619", + "xenial-20170710", + "xenial-20170802", + "xenial-20170915", + "xenial", + "yakkety-20160708", + "yakkety-20160717", + "yakkety-20160806.1", + "yakkety-20160826", + "yakkety-20160919", + "yakkety-20160923.1", + "yakkety-20161013", + "yakkety-20161104", + "yakkety-20161121", + "yakkety-20161213", + "yakkety-20170104", + "yakkety-20170224", + "yakkety-20170327", + "yakkety-20170517.1", + "yakkety-20170619", + "yakkety-20170704", + "yakkety", + "zesty-20161129.1", + "zesty-20161212", + "zesty-20170118", + "zesty-20170224", + "zesty-20170411", + "zesty-20170517.1", + "zesty-20170619", + "zesty-20170703", + "zesty-20170913", + "zesty-20170915", + "zesty" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/ubuntu_no_latest.json b/helm/spec/fixtures/docker/registry_tags/ubuntu_no_latest.json new file mode 100644 index 00000000000..6b219a792e8 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/ubuntu_no_latest.json @@ -0,0 +1,229 @@ +{ + "name": "library/ubuntu", + "tags": [ + "10.04", + "12.04.5", + "12.04", + "12.10", + "13.04", + "13.10", + "14.04.1", + "14.04.2", + "14.04.3", + "14.04.4", + "14.04.5", + "14.04", + "14.10", + "15.04", + "15.10", + "16.04", + "16.10", + "17.04", + "17.10", + "1234567890", + "1234567891", + "artful-20170511.1", + "artful-20170601", + "artful-20170619", + "artful-20170716", + "artful-20170728", + "artful-20170826", + "artful-20170916", + "artful", + "devel", + "lucid", + "precise-20150212", + "precise-20150228.11", + "precise-20150320", + "precise-20150427", + "precise-20150528", + "precise-20150612", + "precise-20150626", + "precise-20150729", + "precise-20150813", + "precise-20150924", + "precise-20151020", + "precise-20151028", + "precise-20151208", + "precise-20160108", + "precise-20160217", + "precise-20160225", + "precise-20160303", + "precise-20160311", + "precise-20160318", + "precise-20160330", + "precise-20160425", + "precise-20160503", + "precise-20160526", + "precise-20160624", + "precise-20160707", + "precise-20160819", + "precise-20160923.1", + "precise-20161102", + "precise-20161123", + "precise-20161209", + "precise-20170214", + "precise-20170331", + "precise", + "quantal", + "raring", + "rolling", + "saucy", + "trusty-20150218.1", + "trusty-20150228.11", + "trusty-20150320", + "trusty-20150427", + "trusty-20150528", + "trusty-20150612", + "trusty-20150630", + "trusty-20150730", + "trusty-20150806", + "trusty-20150814", + "trusty-20151001", + "trusty-20151009", + "trusty-20151021", + "trusty-20151028", + "trusty-20151208", + "trusty-20151218", + "trusty-20160119", + "trusty-20160217", + "trusty-20160226", + "trusty-20160302", + "trusty-20160315", + "trusty-20160317", + "trusty-20160323", + "trusty-20160405", + "trusty-20160412", + "trusty-20160424", + "trusty-20160503.1", + "trusty-20160526", + "trusty-20160624", + "trusty-20160711", + "trusty-20160802", + "trusty-20160819", + "trusty-20160914", + "trusty-20160923.1", + "trusty-20161006", + "trusty-20161101", + "trusty-20161123", + "trusty-20161214", + "trusty-20170119", + "trusty-20170214", + "trusty-20170330", + "trusty-20170602", + "trusty-20170620", + "trusty-20170719", + "trusty-20170728", + "trusty-20170817", + "trusty", + "utopic-20150211", + "utopic-20150228.11", + "utopic-20150319", + "utopic-20150418", + "utopic-20150427", + "utopic-20150528", + "utopic-20150612", + "utopic-20150625", + "utopic", + "vivid-20150218", + "vivid-20150309", + "vivid-20150319.1", + "vivid-20150421", + "vivid-20150427", + "vivid-20150528", + "vivid-20150611", + "vivid-20150802", + "vivid-20150813", + "vivid-20150930", + "vivid-20151021", + "vivid-20151106", + "vivid-20151111", + "vivid-20151208", + "vivid-20160122", + "vivid", + "wily-20150528.1", + "wily-20150611", + "wily-20150708", + "wily-20150731", + "wily-20150807", + "wily-20150818", + "wily-20150829", + "wily-20151006", + "wily-20151009", + "wily-20151019", + "wily-20151208", + "wily-20160121", + "wily-20160217", + "wily-20160302", + "wily-20160316", + "wily-20160329", + "wily-20160424", + "wily-20160503", + "wily-20160526", + "wily-20160602", + "wily-20160706", + "wily", + "xenial-20151218.1", + "xenial-20160119.1", + "xenial-20160125", + "xenial-20160217.2", + "xenial-20160226", + "xenial-20160303.1", + "xenial-20160314.4", + "xenial-20160317", + "xenial-20160331.1", + "xenial-20160422", + "xenial-20160503", + "xenial-20160525", + "xenial-20160629", + "xenial-20160706", + "xenial-20160713", + "xenial-20160809", + "xenial-20160818", + "xenial-20160914", + "xenial-20160923.1", + "xenial-20161010", + "xenial-20161114", + "xenial-20161121", + "xenial-20161213", + "xenial-20170119", + "xenial-20170214", + "xenial-20170410", + "xenial-20170417.1", + "xenial-20170510", + "xenial-20170517.1", + "xenial-20170619", + "xenial-20170710", + "xenial-20170802", + "xenial-20170915", + "xenial", + "yakkety-20160708", + "yakkety-20160717", + "yakkety-20160806.1", + "yakkety-20160826", + "yakkety-20160919", + "yakkety-20160923.1", + "yakkety-20161013", + "yakkety-20161104", + "yakkety-20161121", + "yakkety-20161213", + "yakkety-20170104", + "yakkety-20170224", + "yakkety-20170327", + "yakkety-20170517.1", + "yakkety-20170619", + "yakkety-20170704", + "yakkety", + "zesty-20161129.1", + "zesty-20161212", + "zesty-20170118", + "zesty-20170224", + "zesty-20170411", + "zesty-20170517.1", + "zesty-20170619", + "zesty-20170703", + "zesty-20170913", + "zesty-20170915", + "zesty" + ] +} diff --git a/helm/spec/fixtures/docker/registry_tags/windows-servercore.json b/helm/spec/fixtures/docker/registry_tags/windows-servercore.json new file mode 100644 index 00000000000..aab440ae432 --- /dev/null +++ b/helm/spec/fixtures/docker/registry_tags/windows-servercore.json @@ -0,0 +1,813 @@ +{ + "name": "windows/servercore", + "tags": [ + "10.0.14300.1030", + "10.0.14393.1066", + "10.0.14393.1066_cs-cz", + "10.0.14393.1066_de-de", + "10.0.14393.1066_es-es", + "10.0.14393.1066_fr-fr", + "10.0.14393.1066_hu-hu", + "10.0.14393.1066_it-it", + "10.0.14393.1066_ja-jp", + "10.0.14393.1066_ko-kr", + "10.0.14393.1066_nl-nl", + "10.0.14393.1066_pl-pl", + "10.0.14393.1066_pt-br", + "10.0.14393.1066_pt-pt", + "10.0.14393.1066_ru-ru", + "10.0.14393.1066_sv-se", + "10.0.14393.1066_tr-tr", + "10.0.14393.1066_zh-cn", + "10.0.14393.1066_zh-tw", + "10.0.14393.1198", + "10.0.14393.1198_cs-cz", + "10.0.14393.1198_de-de", + "10.0.14393.1198_es-es", + "10.0.14393.1198_fr-fr", + "10.0.14393.1198_hu-hu", + "10.0.14393.1198_it-it", + "10.0.14393.1198_ja-jp", + "10.0.14393.1198_ko-kr", + "10.0.14393.1198_nl-nl", + "10.0.14393.1198_pl-pl", + "10.0.14393.1198_pt-br", + "10.0.14393.1198_pt-pt", + "10.0.14393.1198_ru-ru", + "10.0.14393.1198_sv-se", + "10.0.14393.1198_tr-tr", + "10.0.14393.1198_zh-cn", + "10.0.14393.1198_zh-tw", + "10.0.14393.1358", + "10.0.14393.1358_cs-cz", + "10.0.14393.1358_de-de", + "10.0.14393.1358_es-es", + "10.0.14393.1358_fr-fr", + "10.0.14393.1358_hu-hu", + "10.0.14393.1358_it-it", + "10.0.14393.1358_ja-jp", + "10.0.14393.1358_ko-kr", + "10.0.14393.1358_nl-nl", + "10.0.14393.1358_pl-pl", + "10.0.14393.1358_pt-br", + "10.0.14393.1358_pt-pt", + "10.0.14393.1358_ru-ru", + "10.0.14393.1358_sv-se", + "10.0.14393.1358_tr-tr", + "10.0.14393.1358_zh-cn", + "10.0.14393.1358_zh-tw", + "10.0.14393.1480", + "10.0.14393.1480_cs-cz", + "10.0.14393.1480_de-de", + "10.0.14393.1480_es-es", + "10.0.14393.1480_fr-fr", + "10.0.14393.1480_hu-hu", + "10.0.14393.1480_it-it", + "10.0.14393.1480_ja-jp", + "10.0.14393.1480_ko-kr", + "10.0.14393.1480_nl-nl", + "10.0.14393.1480_pl-pl", + "10.0.14393.1480_pt-br", + "10.0.14393.1480_pt-pt", + "10.0.14393.1480_ru-ru", + "10.0.14393.1480_sv-se", + "10.0.14393.1480_tr-tr", + "10.0.14393.1480_zh-cn", + "10.0.14393.1480_zh-tw", + "10.0.14393.1593", + "10.0.14393.1593_cs-cz", + "10.0.14393.1593_de-de", + "10.0.14393.1593_es-es", + "10.0.14393.1593_fr-fr", + "10.0.14393.1593_hu-hu", + "10.0.14393.1593_it-it", + "10.0.14393.1593_ja-jp", + "10.0.14393.1593_ko-kr", + "10.0.14393.1593_nl-nl", + "10.0.14393.1593_pl-pl", + "10.0.14393.1593_pt-br", + "10.0.14393.1593_pt-pt", + "10.0.14393.1593_ru-ru", + "10.0.14393.1593_sv-se", + "10.0.14393.1593_tr-tr", + "10.0.14393.1593_zh-cn", + "10.0.14393.1593_zh-tw", + "10.0.14393.1715", + "10.0.14393.1715_cs-cz", + "10.0.14393.1715_de-de", + "10.0.14393.1715_es-es", + "10.0.14393.1715_fr-fr", + "10.0.14393.1715_hu-hu", + "10.0.14393.1715_it-it", + "10.0.14393.1715_ja-jp", + "10.0.14393.1715_ko-kr", + "10.0.14393.1715_nl-nl", + "10.0.14393.1715_pl-pl", + "10.0.14393.1715_pt-br", + "10.0.14393.1715_pt-pt", + "10.0.14393.1715_ru-ru", + "10.0.14393.1715_sv-se", + "10.0.14393.1715_tr-tr", + "10.0.14393.1715_zh-cn", + "10.0.14393.1715_zh-tw", + "10.0.14393.1770", + "10.0.14393.1770_cs-cz", + "10.0.14393.1770_de-de", + "10.0.14393.1770_es-es", + "10.0.14393.1770_fr-fr", + "10.0.14393.1770_hu-hu", + "10.0.14393.1770_it-it", + "10.0.14393.1770_ja-jp", + "10.0.14393.1770_ko-kr", + "10.0.14393.1770_nl-nl", + "10.0.14393.1770_pl-pl", + "10.0.14393.1770_pt-br", + "10.0.14393.1770_pt-pt", + "10.0.14393.1770_ru-ru", + "10.0.14393.1770_sv-se", + "10.0.14393.1770_tr-tr", + "10.0.14393.1770_zh-cn", + "10.0.14393.1770_zh-tw", + "10.0.14393.1884", + "10.0.14393.1884_cs-cz", + "10.0.14393.1884_de-de", + "10.0.14393.1884_es-es", + "10.0.14393.1884_fr-fr", + "10.0.14393.1884_hu-hu", + "10.0.14393.1884_it-it", + "10.0.14393.1884_ja-jp", + "10.0.14393.1884_ko-kr", + "10.0.14393.1884_nl-nl", + "10.0.14393.1884_pl-pl", + "10.0.14393.1884_pt-br", + "10.0.14393.1884_pt-pt", + "10.0.14393.1884_ru-ru", + "10.0.14393.1884_sv-se", + "10.0.14393.1884_tr-tr", + "10.0.14393.1884_zh-cn", + "10.0.14393.1884_zh-tw", + "10.0.14393.1944", + "10.0.14393.1944_cs-cz", + "10.0.14393.1944_de-de", + "10.0.14393.1944_es-es", + "10.0.14393.1944_fr-fr", + "10.0.14393.1944_hu-hu", + "10.0.14393.1944_it-it", + "10.0.14393.1944_ja-jp", + "10.0.14393.1944_ko-kr", + "10.0.14393.1944_nl-nl", + "10.0.14393.1944_pl-pl", + "10.0.14393.1944_pt-br", + "10.0.14393.1944_pt-pt", + "10.0.14393.1944_ru-ru", + "10.0.14393.1944_sv-se", + "10.0.14393.1944_tr-tr", + "10.0.14393.1944_zh-cn", + "10.0.14393.1944_zh-tw", + "10.0.14393.2007", + "10.0.14393.2007_cs-cz", + "10.0.14393.2007_de-de", + "10.0.14393.2007_es-es", + "10.0.14393.2007_fr-fr", + "10.0.14393.2007_hu-hu", + "10.0.14393.2007_it-it", + "10.0.14393.2007_ja-jp", + "10.0.14393.2007_ko-kr", + "10.0.14393.2007_nl-nl", + "10.0.14393.2007_pl-pl", + "10.0.14393.2007_pt-br", + "10.0.14393.2007_pt-pt", + "10.0.14393.2007_ru-ru", + "10.0.14393.2007_sv-se", + "10.0.14393.2007_tr-tr", + "10.0.14393.2007_zh-cn", + "10.0.14393.2007_zh-tw", + "10.0.14393.206", + "10.0.14393.2068", + "10.0.14393.2068_cs-cz", + "10.0.14393.2068_de-de", + "10.0.14393.2068_es-es", + "10.0.14393.2068_fr-fr", + "10.0.14393.2068_hu-hu", + "10.0.14393.2068_it-it", + "10.0.14393.2068_ja-jp", + "10.0.14393.2068_ko-kr", + "10.0.14393.2068_nl-nl", + "10.0.14393.2068_pl-pl", + "10.0.14393.2068_pt-br", + "10.0.14393.2068_pt-pt", + "10.0.14393.2068_ru-ru", + "10.0.14393.2068_sv-se", + "10.0.14393.2068_tr-tr", + "10.0.14393.2068_zh-cn", + "10.0.14393.2068_zh-tw", + "10.0.14393.206_cs-cz", + "10.0.14393.206_de-de", + "10.0.14393.206_es-es", + "10.0.14393.206_fr-fr", + "10.0.14393.206_hu-hu", + "10.0.14393.206_it-it", + "10.0.14393.206_ja-jp", + "10.0.14393.206_ko-kr", + "10.0.14393.206_nl-nl", + "10.0.14393.206_pl-pl", + "10.0.14393.206_pt-br", + "10.0.14393.206_pt-pt", + "10.0.14393.206_ru-ru", + "10.0.14393.206_sv-se", + "10.0.14393.206_tr-tr", + "10.0.14393.206_zh-cn", + "10.0.14393.206_zh-tw", + "10.0.14393.2125", + "10.0.14393.2125_cs-cz", + "10.0.14393.2125_de-de", + "10.0.14393.2125_es-es", + "10.0.14393.2125_fr-fr", + "10.0.14393.2125_hu-hu", + "10.0.14393.2125_it-it", + "10.0.14393.2125_ja-jp", + "10.0.14393.2125_ko-kr", + "10.0.14393.2125_nl-nl", + "10.0.14393.2125_pl-pl", + "10.0.14393.2125_pt-br", + "10.0.14393.2125_pt-pt", + "10.0.14393.2125_ru-ru", + "10.0.14393.2125_sv-se", + "10.0.14393.2125_tr-tr", + "10.0.14393.2125_zh-cn", + "10.0.14393.2125_zh-tw", + "10.0.14393.2189", + "10.0.14393.2189_cs-cz", + "10.0.14393.2189_de-de", + "10.0.14393.2189_es-es", + "10.0.14393.2189_fr-fr", + "10.0.14393.2189_hu-hu", + "10.0.14393.2189_it-it", + "10.0.14393.2189_ja-jp", + "10.0.14393.2189_ko-kr", + "10.0.14393.2189_nl-nl", + "10.0.14393.2189_pl-pl", + "10.0.14393.2189_pt-br", + "10.0.14393.2189_pt-pt", + "10.0.14393.2189_ru-ru", + "10.0.14393.2189_sv-se", + "10.0.14393.2189_tr-tr", + "10.0.14393.2189_zh-cn", + "10.0.14393.2189_zh-tw", + "10.0.14393.2248", + "10.0.14393.2248_cs-cz", + "10.0.14393.2248_de-de", + "10.0.14393.2248_es-es", + "10.0.14393.2248_fr-fr", + "10.0.14393.2248_hu-hu", + "10.0.14393.2248_it-it", + "10.0.14393.2248_ja-jp", + "10.0.14393.2248_ko-kr", + "10.0.14393.2248_nl-nl", + "10.0.14393.2248_pl-pl", + "10.0.14393.2248_pt-br", + "10.0.14393.2248_pt-pt", + "10.0.14393.2248_ru-ru", + "10.0.14393.2248_sv-se", + "10.0.14393.2248_tr-tr", + "10.0.14393.2248_zh-cn", + "10.0.14393.2248_zh-tw", + "10.0.14393.2312", + "10.0.14393.2312_cs-cz", + "10.0.14393.2312_de-de", + "10.0.14393.2312_es-es", + "10.0.14393.2312_fr-fr", + "10.0.14393.2312_hu-hu", + "10.0.14393.2312_it-it", + "10.0.14393.2312_ja-jp", + "10.0.14393.2312_ko-kr", + "10.0.14393.2312_nl-nl", + "10.0.14393.2312_pl-pl", + "10.0.14393.2312_pt-br", + "10.0.14393.2312_pt-pt", + "10.0.14393.2312_ru-ru", + "10.0.14393.2312_sv-se", + "10.0.14393.2312_tr-tr", + "10.0.14393.2312_zh-cn", + "10.0.14393.2312_zh-tw", + "10.0.14393.2363", + "10.0.14393.2363_cs-cz", + "10.0.14393.2363_de-de", + "10.0.14393.2363_es-es", + "10.0.14393.2363_fr-fr", + "10.0.14393.2363_hu-hu", + "10.0.14393.2363_it-it", + "10.0.14393.2363_ja-jp", + "10.0.14393.2363_ko-kr", + "10.0.14393.2363_nl-nl", + "10.0.14393.2363_pl-pl", + "10.0.14393.2363_pt-br", + "10.0.14393.2363_pt-pt", + "10.0.14393.2363_ru-ru", + "10.0.14393.2363_sv-se", + "10.0.14393.2363_tr-tr", + "10.0.14393.2363_zh-cn", + "10.0.14393.2363_zh-tw", + "10.0.14393.2430", + "10.0.14393.2430_cs-cz", + "10.0.14393.2430_de-de", + "10.0.14393.2430_es-es", + "10.0.14393.2430_fr-fr", + "10.0.14393.2430_hu-hu", + "10.0.14393.2430_it-it", + "10.0.14393.2430_ja-jp", + "10.0.14393.2430_ko-kr", + "10.0.14393.2430_nl-nl", + "10.0.14393.2430_pl-pl", + "10.0.14393.2430_pt-br", + "10.0.14393.2430_pt-pt", + "10.0.14393.2430_ru-ru", + "10.0.14393.2430_sv-se", + "10.0.14393.2430_tr-tr", + "10.0.14393.2430_zh-cn", + "10.0.14393.2430_zh-tw", + "10.0.14393.2485", + "10.0.14393.2485_cs-cz", + "10.0.14393.2485_de-de", + "10.0.14393.2485_es-es", + "10.0.14393.2485_fr-fr", + "10.0.14393.2485_hu-hu", + "10.0.14393.2485_it-it", + "10.0.14393.2485_ja-jp", + "10.0.14393.2485_ko-kr", + "10.0.14393.2485_nl-nl", + "10.0.14393.2485_pl-pl", + "10.0.14393.2485_pt-br", + "10.0.14393.2485_pt-pt", + "10.0.14393.2485_ru-ru", + "10.0.14393.2485_sv-se", + "10.0.14393.2485_tr-tr", + "10.0.14393.2485_zh-cn", + "10.0.14393.2485_zh-tw", + "10.0.14393.2551", + "10.0.14393.2551_cs-cz", + "10.0.14393.2551_de-de", + "10.0.14393.2551_es-es", + "10.0.14393.2551_fr-fr", + "10.0.14393.2551_hu-hu", + "10.0.14393.2551_it-it", + "10.0.14393.2551_ja-jp", + "10.0.14393.2551_ko-kr", + "10.0.14393.2551_nl-nl", + "10.0.14393.2551_pl-pl", + "10.0.14393.2551_pt-br", + "10.0.14393.2551_pt-pt", + "10.0.14393.2551_ru-ru", + "10.0.14393.2551_sv-se", + "10.0.14393.2551_tr-tr", + "10.0.14393.2551_zh-cn", + "10.0.14393.2551_zh-tw", + "10.0.14393.2608", + "10.0.14393.2608_cs-cz", + "10.0.14393.2608_de-de", + "10.0.14393.2608_es-es", + "10.0.14393.2608_fr-fr", + "10.0.14393.2608_hu-hu", + "10.0.14393.2608_it-it", + "10.0.14393.2608_ja-jp", + "10.0.14393.2608_ko-kr", + "10.0.14393.2608_nl-nl", + "10.0.14393.2608_pl-pl", + "10.0.14393.2608_pt-br", + "10.0.14393.2608_pt-pt", + "10.0.14393.2608_ru-ru", + "10.0.14393.2608_sv-se", + "10.0.14393.2608_tr-tr", + "10.0.14393.2608_zh-cn", + "10.0.14393.2608_zh-tw", + "10.0.14393.2665", + "10.0.14393.2665_cs-cz", + "10.0.14393.2665_de-de", + "10.0.14393.2665_es-es", + "10.0.14393.2665_fr-fr", + "10.0.14393.2665_hu-hu", + "10.0.14393.2665_it-it", + "10.0.14393.2665_ja-jp", + "10.0.14393.2665_ko-kr", + "10.0.14393.2665_nl-nl", + "10.0.14393.2665_pl-pl", + "10.0.14393.2665_pt-br", + "10.0.14393.2665_pt-pt", + "10.0.14393.2665_ru-ru", + "10.0.14393.2665_sv-se", + "10.0.14393.2665_tr-tr", + "10.0.14393.2665_zh-cn", + "10.0.14393.2665_zh-tw", + "10.0.14393.2724", + "10.0.14393.2724_cs-cz", + "10.0.14393.2724_de-de", + "10.0.14393.2724_es-es", + "10.0.14393.2724_fr-fr", + "10.0.14393.2724_hu-hu", + "10.0.14393.2724_it-it", + "10.0.14393.2724_ja-jp", + "10.0.14393.2724_ko-kr", + "10.0.14393.2724_nl-nl", + "10.0.14393.2724_pl-pl", + "10.0.14393.2724_pt-br", + "10.0.14393.2724_pt-pt", + "10.0.14393.2724_ru-ru", + "10.0.14393.2724_sv-se", + "10.0.14393.2724_tr-tr", + "10.0.14393.2724_zh-cn", + "10.0.14393.2724_zh-tw", + "10.0.14393.2791", + "10.0.14393.2791_cs-cz", + "10.0.14393.2791_de-de", + "10.0.14393.2791_es-es", + "10.0.14393.2791_fr-fr", + "10.0.14393.2791_hu-hu", + "10.0.14393.2791_it-it", + "10.0.14393.2791_ja-jp", + "10.0.14393.2791_ko-kr", + "10.0.14393.2791_nl-nl", + "10.0.14393.2791_pl-pl", + "10.0.14393.2791_pt-br", + "10.0.14393.2791_pt-pt", + "10.0.14393.2791_ru-ru", + "10.0.14393.2791_sv-se", + "10.0.14393.2791_tr-tr", + "10.0.14393.2791_zh-cn", + "10.0.14393.2791_zh-tw", + "10.0.14393.2848", + "10.0.14393.2848_cs-cz", + "10.0.14393.2848_de-de", + "10.0.14393.2848_es-es", + "10.0.14393.2848_fr-fr", + "10.0.14393.2848_hu-hu", + "10.0.14393.2848_it-it", + "10.0.14393.2848_ja-jp", + "10.0.14393.2848_ko-kr", + "10.0.14393.2848_nl-nl", + "10.0.14393.2848_pl-pl", + "10.0.14393.2848_pt-br", + "10.0.14393.2848_pt-pt", + "10.0.14393.2848_ru-ru", + "10.0.14393.2848_sv-se", + "10.0.14393.2848_tr-tr", + "10.0.14393.2848_zh-cn", + "10.0.14393.2848_zh-tw", + "10.0.14393.2906", + "10.0.14393.2906-amd64", + "10.0.14393.2906-amd64-cs-cz", + "10.0.14393.2906-amd64-de-de", + "10.0.14393.2906-amd64-es-es", + "10.0.14393.2906-amd64-fr-fr", + "10.0.14393.2906-amd64-hu-hu", + "10.0.14393.2906-amd64-it-it", + "10.0.14393.2906-amd64-ja-jp", + "10.0.14393.2906-amd64-ko-kr", + "10.0.14393.2906-amd64-nl-nl", + "10.0.14393.2906-amd64-pl-pl", + "10.0.14393.2906-amd64-pt-br", + "10.0.14393.2906-amd64-pt-pt", + "10.0.14393.2906-amd64-ru-ru", + "10.0.14393.2906-amd64-sv-se", + "10.0.14393.2906-amd64-tr-tr", + "10.0.14393.2906-amd64-zh-cn", + "10.0.14393.2906-amd64-zh-tw", + "10.0.14393.2906-cs-cz", + "10.0.14393.2906-de-de", + "10.0.14393.2906-es-es", + "10.0.14393.2906-fr-fr", + "10.0.14393.2906-hu-hu", + "10.0.14393.2906-it-it", + "10.0.14393.2906-ja-jp", + "10.0.14393.2906-ko-kr", + "10.0.14393.2906-nl-nl", + "10.0.14393.2906-pl-pl", + "10.0.14393.2906-pt-br", + "10.0.14393.2906-pt-pt", + "10.0.14393.2906-ru-ru", + "10.0.14393.2906-sv-se", + "10.0.14393.2906-tr-tr", + "10.0.14393.2906-zh-cn", + "10.0.14393.2906-zh-tw", + "10.0.14393.2969", + "10.0.14393.2969-amd64", + "10.0.14393.2969-amd64-cs-cz", + "10.0.14393.2969-amd64-de-de", + "10.0.14393.2969-amd64-es-es", + "10.0.14393.2969-amd64-fr-fr", + "10.0.14393.2969-amd64-hu-hu", + "10.0.14393.2969-amd64-it-it", + "10.0.14393.2969-amd64-ja-jp", + "10.0.14393.2969-amd64-ko-kr", + "10.0.14393.2969-amd64-nl-nl", + "10.0.14393.2969-amd64-pl-pl", + "10.0.14393.2969-amd64-pt-br", + "10.0.14393.2969-amd64-pt-pt", + "10.0.14393.2969-amd64-ru-ru", + "10.0.14393.2969-amd64-sv-se", + "10.0.14393.2969-amd64-tr-tr", + "10.0.14393.2969-amd64-zh-cn", + "10.0.14393.2969-amd64-zh-tw", + "10.0.14393.2969-cs-cz", + "10.0.14393.2969-de-de", + "10.0.14393.2969-es-es", + "10.0.14393.2969-fr-fr", + "10.0.14393.2969-hu-hu", + "10.0.14393.2969-it-it", + "10.0.14393.2969-ja-jp", + "10.0.14393.2969-ko-kr", + "10.0.14393.2969-nl-nl", + "10.0.14393.2969-pl-pl", + "10.0.14393.2969-pt-br", + "10.0.14393.2969-pt-pt", + "10.0.14393.2969-ru-ru", + "10.0.14393.2969-sv-se", + "10.0.14393.2969-tr-tr", + "10.0.14393.2969-zh-cn", + "10.0.14393.2969-zh-tw", + "10.0.14393.2972", + "10.0.14393.2972-amd64", + "10.0.14393.2972-amd64-cs-cz", + "10.0.14393.2972-amd64-de-de", + "10.0.14393.2972-amd64-es-es", + "10.0.14393.2972-amd64-fr-fr", + "10.0.14393.2972-amd64-hu-hu", + "10.0.14393.2972-amd64-it-it", + "10.0.14393.2972-amd64-ja-jp", + "10.0.14393.2972-amd64-ko-kr", + "10.0.14393.2972-amd64-nl-nl", + "10.0.14393.2972-amd64-pl-pl", + "10.0.14393.2972-amd64-pt-br", + "10.0.14393.2972-amd64-pt-pt", + "10.0.14393.2972-amd64-ru-ru", + "10.0.14393.2972-amd64-sv-se", + "10.0.14393.2972-amd64-tr-tr", + "10.0.14393.2972-amd64-zh-cn", + "10.0.14393.2972-amd64-zh-tw", + "10.0.14393.2972-cs-cz", + "10.0.14393.2972-de-de", + "10.0.14393.2972-es-es", + "10.0.14393.2972-fr-fr", + "10.0.14393.2972-hu-hu", + "10.0.14393.2972-it-it", + "10.0.14393.2972-ja-jp", + "10.0.14393.2972-ko-kr", + "10.0.14393.2972-nl-nl", + "10.0.14393.2972-pl-pl", + "10.0.14393.2972-pt-br", + "10.0.14393.2972-pt-pt", + "10.0.14393.2972-ru-ru", + "10.0.14393.2972-sv-se", + "10.0.14393.2972-tr-tr", + "10.0.14393.2972-zh-cn", + "10.0.14393.2972-zh-tw", + "10.0.14393.3025", + "10.0.14393.3025-amd64", + "10.0.14393.3025-amd64-cs-cz", + "10.0.14393.3025-amd64-de-de", + "10.0.14393.3025-amd64-es-es", + "10.0.14393.3025-amd64-fr-fr", + "10.0.14393.3025-amd64-hu-hu", + "10.0.14393.3025-amd64-it-it", + "10.0.14393.3025-amd64-ja-jp", + "10.0.14393.3025-amd64-ko-kr", + "10.0.14393.3025-amd64-nl-nl", + "10.0.14393.3025-amd64-pl-pl", + "10.0.14393.3025-amd64-pt-br", + "10.0.14393.3025-amd64-pt-pt", + "10.0.14393.3025-amd64-ru-ru", + "10.0.14393.3025-amd64-sv-se", + "10.0.14393.3025-amd64-tr-tr", + "10.0.14393.3025-amd64-zh-cn", + "10.0.14393.3025-amd64-zh-tw", + "10.0.14393.3025-cs-cz", + "10.0.14393.3025-de-de", + "10.0.14393.3025-es-es", + "10.0.14393.3025-fr-fr", + "10.0.14393.3025-hu-hu", + "10.0.14393.3025-it-it", + "10.0.14393.3025-ja-jp", + "10.0.14393.3025-ko-kr", + "10.0.14393.3025-nl-nl", + "10.0.14393.3025-pl-pl", + "10.0.14393.3025-pt-br", + "10.0.14393.3025-pt-pt", + "10.0.14393.3025-ru-ru", + "10.0.14393.3025-sv-se", + "10.0.14393.3025-tr-tr", + "10.0.14393.3025-zh-cn", + "10.0.14393.3025-zh-tw", + "10.0.14393.321", + "10.0.14393.321_cs-cz", + "10.0.14393.321_de-de", + "10.0.14393.321_es-es", + "10.0.14393.321_fr-fr", + "10.0.14393.321_hu-hu", + "10.0.14393.321_it-it", + "10.0.14393.321_ja-jp", + "10.0.14393.321_ko-kr", + "10.0.14393.321_nl-nl", + "10.0.14393.321_pl-pl", + "10.0.14393.321_pt-br", + "10.0.14393.321_pt-pt", + "10.0.14393.321_ru-ru", + "10.0.14393.321_sv-se", + "10.0.14393.321_tr-tr", + "10.0.14393.321_zh-cn", + "10.0.14393.321_zh-tw", + "10.0.14393.447", + "10.0.14393.447_cs-cz", + "10.0.14393.447_de-de", + "10.0.14393.447_es-es", + "10.0.14393.447_fr-fr", + "10.0.14393.447_hu-hu", + "10.0.14393.447_it-it", + "10.0.14393.447_ja-jp", + "10.0.14393.447_ko-kr", + "10.0.14393.447_nl-nl", + "10.0.14393.447_pl-pl", + "10.0.14393.447_pt-br", + "10.0.14393.447_pt-pt", + "10.0.14393.447_ru-ru", + "10.0.14393.447_sv-se", + "10.0.14393.447_tr-tr", + "10.0.14393.447_zh-cn", + "10.0.14393.447_zh-tw", + "10.0.14393.576", + "10.0.14393.576_cs-cz", + "10.0.14393.576_de-de", + "10.0.14393.576_es-es", + "10.0.14393.576_fr-fr", + "10.0.14393.576_hu-hu", + "10.0.14393.576_it-it", + "10.0.14393.576_ja-jp", + "10.0.14393.576_ko-kr", + "10.0.14393.576_nl-nl", + "10.0.14393.576_pl-pl", + "10.0.14393.576_pt-br", + "10.0.14393.576_pt-pt", + "10.0.14393.576_ru-ru", + "10.0.14393.576_sv-se", + "10.0.14393.576_tr-tr", + "10.0.14393.576_zh-cn", + "10.0.14393.576_zh-tw", + "10.0.14393.693", + "10.0.14393.693_cs-cz", + "10.0.14393.693_de-de", + "10.0.14393.693_es-es", + "10.0.14393.693_fr-fr", + "10.0.14393.693_hu-hu", + "10.0.14393.693_it-it", + "10.0.14393.693_ja-jp", + "10.0.14393.693_ko-kr", + "10.0.14393.693_nl-nl", + "10.0.14393.693_pl-pl", + "10.0.14393.693_pt-br", + "10.0.14393.693_pt-pt", + "10.0.14393.693_ru-ru", + "10.0.14393.693_sv-se", + "10.0.14393.693_tr-tr", + "10.0.14393.693_zh-cn", + "10.0.14393.693_zh-tw", + "10.0.14393.953", + "10.0.14393.953_cs-cz", + "10.0.14393.953_de-de", + "10.0.14393.953_es-es", + "10.0.14393.953_fr-fr", + "10.0.14393.953_hu-hu", + "10.0.14393.953_it-it", + "10.0.14393.953_ja-jp", + "10.0.14393.953_ko-kr", + "10.0.14393.953_nl-nl", + "10.0.14393.953_pl-pl", + "10.0.14393.953_pt-br", + "10.0.14393.953_pt-pt", + "10.0.14393.953_ru-ru", + "10.0.14393.953_sv-se", + "10.0.14393.953_tr-tr", + "10.0.14393.953_zh-cn", + "10.0.14393.953_zh-tw", + "10.0.16299.1029", + "10.0.16299.1087", + "10.0.16299.1087-amd64", + "10.0.16299.967", + "10.0.17134.590", + "10.0.17134.648", + "10.0.17134.706", + "10.0.17134.706-amd64", + "10.0.17134.765", + "10.0.17134.765-amd64", + "10.0.17134.766", + "10.0.17134.766-amd64", + "10.0.17134.829", + "10.0.17134.829-amd64", + "10.0.17763.316", + "10.0.17763.316-amd64", + "10.0.17763.379", + "10.0.17763.379-amd64", + "10.0.17763.437", + "10.0.17763.437-amd64", + "10.0.17763.503", + "10.0.17763.503-amd64", + "10.0.17763.504", + "10.0.17763.504-amd64", + "10.0.17763.557", + "10.0.17763.557-amd64", + "10.0.18362.116", + "10.0.18362.116-amd64", + "10.0.18362.175", + "10.0.18362.175-amd64", + "1607", + "1607-KB4487026", + "1607-KB4489882", + "1607-KB4493470", + "1607-KB4493470-amd64", + "1607-KB4494440", + "1607-KB4494440-amd64", + "1607-KB4503267", + "1607-KB4503267-amd64", + "1607-KB4505052", + "1607-KB4505052-amd64", + "1607-amd64", + "1709", + "1709-KB4486996", + "1709-KB4489886", + "1709-KB4493441", + "1709-KB4493441-amd64", + "1709-amd64", + "1709_KB4043961", + "1709_KB4048955", + "1709_KB4054517", + "1709_KB4056892", + "1709_KB4074588", + "1709_KB4088776", + "1709_KB4093112", + "1709_KB4103727", + "1709_KB4284819", + "1709_KB4338825", + "1709_KB4343897", + "1709_KB4457142", + "1709_KB4462918", + "1709_KB4467686", + "1709_KB4471329", + "1709_KB4480978", + "1803", + "1803-KB4487017", + "1803-KB4489868", + "1803-KB4493464", + "1803-KB4493464-amd64", + "1803-KB4499167", + "1803-KB4499167-amd64", + "1803-KB4503286", + "1803-KB4503286-amd64", + "1803-KB4505064", + "1803-KB4505064-amd64", + "1803-amd64", + "1803_KB4103721", + "1803_KB4284835", + "1803_KB4338819", + "1803_KB4343909", + "1803_KB4457128", + "1803_KB4462919", + "1803_KB4467702", + "1803_KB4471324", + "1803_KB4480966", + "1809", + "1809-KB4464455", + "1809-KB4464455-amd64", + "1809-KB4467708", + "1809-KB4467708-amd64", + "1809-KB4487044", + "1809-KB4487044-amd64", + "1809-KB4489899", + "1809-KB4489899-amd64", + "1809-KB4493509", + "1809-KB4493509-amd64", + "1809-KB4494441", + "1809-KB4494441-amd64", + "1809-KB4503327", + "1809-KB4503327-amd64", + "1809-KB4505056", + "1809-KB4505056-amd64", + "1809-amd64", + "1809_KB4464455", + "1809_KB4464455_amd64", + "1809_KB4467708", + "1809_KB4467708_amd64", + "1809_KB4471332", + "1809_KB4471332_amd64", + "1809_KB4480116", + "1809_KB4480116_amd64", + "1809_amd64", + "1903", + "1903-KB4503293", + "1903-KB4503293-amd64", + "1903-KB4505057", + "1903-KB4505057-amd64", + "1903-amd64", + "ltsc2016", + "ltsc2016-amd64", + "ltsc2019", + "ltsc2019-amd64", + "ltsc2019_amd64" + ] +} diff --git a/helm/spec/fixtures/docker_compose/composefiles/bare b/helm/spec/fixtures/docker_compose/composefiles/bare new file mode 100644 index 00000000000..066287521d7 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/bare @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: ubuntu + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/digest b/helm/spec/fixtures/docker_compose/composefiles/digest new file mode 100644 index 00000000000..93b585ced9a --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/digest @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/digest_and_tag b/helm/spec/fixtures/docker_compose/composefiles/digest_and_tag new file mode 100644 index 00000000000..9e3aeb08829 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/digest_and_tag @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: ubuntu:12.04.5@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/inline_dockerfile b/helm/spec/fixtures/docker_compose/composefiles/inline_dockerfile new file mode 100644 index 00000000000..526a1b70e40 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/inline_dockerfile @@ -0,0 +1,8 @@ +version: '3' +services: + db: + build: + context: . + dockerfile_inline: | + FROM mariadb:10.11.2-jammy + RUN echo 'Hello' diff --git a/helm/spec/fixtures/docker_compose/composefiles/multiple b/helm/spec/fixtures/docker_compose/composefiles/multiple new file mode 100644 index 00000000000..fb7e79760bd --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/multiple @@ -0,0 +1,6 @@ +version: '2' +services: + os: + image: ubuntu:17.04 + interpreter: + image: python:3.6.3 diff --git a/helm/spec/fixtures/docker_compose/composefiles/multiple_identical b/helm/spec/fixtures/docker_compose/composefiles/multiple_identical new file mode 100644 index 00000000000..b7b8ead64e6 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/multiple_identical @@ -0,0 +1,6 @@ +version: '2' +services: + node-1: + image: node:10-alpine + node-2: + image: node:10-alpine diff --git a/helm/spec/fixtures/docker_compose/composefiles/namespace b/helm/spec/fixtures/docker_compose/composefiles/namespace new file mode 100644 index 00000000000..c1484ab7fc3 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/namespace @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: my-fork/ubuntu:17.04 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/non_numeric_version b/helm/spec/fixtures/docker_compose/composefiles/non_numeric_version new file mode 100644 index 00000000000..97e312804ad --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/non_numeric_version @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: ubuntu:artful + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/private_digest b/helm/spec/fixtures/docker_compose/composefiles/private_digest new file mode 100644 index 00000000000..2017b08be5e --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/private_digest @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: registry-host.io:5000/myreg/ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/private_ecr_digest b/helm/spec/fixtures/docker_compose/composefiles/private_ecr_digest new file mode 100644 index 00000000000..112545b53a1 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/private_ecr_digest @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: 695729449481.dkr.ecr.eu-west-2.amazonaws.com/docker-php@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/private_no_port b/helm/spec/fixtures/docker_compose/composefiles/private_no_port new file mode 100644 index 00000000000..ca01a020d25 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/private_no_port @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: aws-account-id.dkr.ecr.region.amazonaws.com/myreg/ubuntu:17.04 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/private_tag b/helm/spec/fixtures/docker_compose/composefiles/private_tag new file mode 100644 index 00000000000..374514ea03c --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/private_tag @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: registry-host.io:5000/myreg/ubuntu:17.04 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/tag b/helm/spec/fixtures/docker_compose/composefiles/tag new file mode 100644 index 00000000000..dce865acc7b --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/tag @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: ubuntu:17.04 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/tag_quoted b/helm/spec/fixtures/docker_compose/composefiles/tag_quoted new file mode 100644 index 00000000000..73f3d84e64f --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/tag_quoted @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: "elastic/elasticsearch:8.16.4" + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/docker_compose/composefiles/v1_tag b/helm/spec/fixtures/docker_compose/composefiles/v1_tag new file mode 100644 index 00000000000..e8d93a02354 --- /dev/null +++ b/helm/spec/fixtures/docker_compose/composefiles/v1_tag @@ -0,0 +1,5 @@ +version: '2' +services: + hello_world: + image: docker.io/myreg/ubuntu:17.04 + command: [/bin/echo, 'Hello world'] diff --git a/helm/spec/fixtures/github/contents_containerfile.json b/helm/spec/fixtures/github/contents_containerfile.json new file mode 100644 index 00000000000..553e727275a --- /dev/null +++ b/helm/spec/fixtures/github/contents_containerfile.json @@ -0,0 +1,18 @@ +{ + "name": "Containerfile", + "path": "Containerfile", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Containerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Containerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Containerfile", + "type": "file", + "content": "RlJPTSB1YnVudHU6MTguMDQKCiMjIyBTWVNURU0gREVQRU5ERU5DSUVTCgoj\nIEV2ZXJ5dGhpbmcgZnJvbSBgbWFrZWAgb253YXJkcyBpbiBhcHQtZ2V0IGlu\nc3RhbGwgaXMgb25seSBpbnN0YWxsZWQgdG8gZW5zdXJlCiMgUHl0aG9uIHN1\ncHBvcnQgd29ya3Mgd2l0aCBhbGwgcGFja2FnZXMgKHdoaWNoIG1heSByZXF1\naXJlIHNwZWNpZmljIGxpYnJhcmllcwojIGF0IGluc3RhbGwgdGltZSkuCkVO\nViBERUJJQU5fRlJPTlRFTkQgbm9uaW50ZXJhY3RpdmUKUlVOIGFwdC1nZXQg\ndXBkYXRlIFwKICAgICYmIGFwdC1nZXQgdXBncmFkZSAteSBcCiAgICAmJiBh\ncHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAog\nICAgICBidWlsZC1lc3NlbnRpYWwgXAogICAgICBkaXJtbmdyIFwKICAgICAg\nZ2l0IFwKICAgICAgZ251cGcyIFwKICAgICAgY3VybCBcCiAgICAgIHdnZXQg\nXAogICAgICB6bGliMWctZGV2IFwKICAgICAgbGlibHptYS1kZXYgXAogICAg\nICB0emRhdGEgXAogICAgICB6aXAgXAogICAgICB1bnppcCBcCiAgICAgIGxv\nY2FsZXMgXAogICAgICBvcGVuc3NoLWNsaWVudCBcCiAgICAgIG1ha2UgXAog\nICAgICBsaWJzc2wtZGV2IFwKICAgICAgbGliYnoyLWRldiBcCiAgICAgIGxp\nYnJlYWRsaW5lLWRldiBcCiAgICAgIGxpYnNxbGl0ZTMtZGV2IFwKICAgICAg\nbGx2bSBcCiAgICAgIGxpYm5jdXJzZXM1LWRldiBcCiAgICAgIGxpYm5jdXJz\nZXN3NS1kZXYgXAogICAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgICB4\nei11dGlscyBcCiAgICAgIHRrLWRldiBcCiAgICAmJiBsb2NhbGUtZ2VuIGVu\nX1VTLlVURi04CkVOViBMQ19BTEwgZW5fVVMuVVRGLTgKCgojIyMgUlVCWQoK\nIyBJbnN0YWxsIFJ1YnkgMi41LCB1cGRhdGUgUnVieUdlbXMsIGFuZCBpbnN0\nYWxsIEJ1bmRsZXIKUlVOIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNl\ncnZlci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEMzMTczQUE2IFwKICAgICYm\nIGVjaG8gImRlYiBodHRwOi8vcHBhLmxhdW5jaHBhZC5uZXQvYnJpZ2h0Ym94\nL3J1YnktbmcvdWJ1bnR1IGJpb25pYyBtYWluIiA+IC9ldGMvYXB0L3NvdXJj\nZXMubGlzdC5kL2JyaWdodGJveC5saXN0IFwKICAgICYmIGFwdC1nZXQgdXBk\nYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBydWJ5Mi41IHJ1Ynky\nLjUtZGV2IFwKICAgICYmIGdlbSB1cGRhdGUgLS1zeXN0ZW0gMi43LjcgXAog\nICAgJiYgZ2VtIGluc3RhbGwgLS1uby1yaSAtLW5vLXJkb2MgYnVuZGxlciAt\ndiAxLjE2LjQKCgojIyMgUFlUSE9OCgojIEluc3RhbGwgUHl0aG9uIDIuNyBh\nbmQgMy42IHdpdGggcHllbnYuIFVzaW5nIHB5ZW52IGxldHMgdXMgc3VwcG9y\ndCBtdWx0aXBsZSBQeXRob25zCkVOViBQWUVOVl9ST09UPS91c3IvbG9jYWwv\nLnB5ZW52IFwKICAgIFBBVEg9Ii91c3IvbG9jYWwvLnB5ZW52L2JpbjokUEFU\nSCIKUlVOIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vcHllbnYvcHll\nbnYuZ2l0IC91c3IvbG9jYWwvLnB5ZW52IFwKICAgICYmIGNkIC91c3IvbG9j\nYWwvLnB5ZW52ICYmIGdpdCBjaGVja291dCB2MS4yLjcgJiYgY2QgLSBcCiAg\nICAmJiBweWVudiBpbnN0YWxsIDMuNi41IFwKICAgICYmIHB5ZW52IGluc3Rh\nbGwgMi43LjE1IFwKICAgICYmIHB5ZW52IGdsb2JhbCAzLjYuNQoKCiMjIyBK\nQVZBU0NSSVBUCgojIEluc3RhbGwgTm9kZSA4LjAgYW5kIFlhcm4KUlVOIGN1\ncmwgLXNMIGh0dHBzOi8vZGViLm5vZGVzb3VyY2UuY29tL3NldHVwXzgueCB8\nIGJhc2ggLSBcCiAgICAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgbm9kZWpzIFwK\nICAgICYmIGN1cmwgLXNTIGh0dHBzOi8vZGwueWFybnBrZy5jb20vZGViaWFu\nL3B1YmtleS5ncGcgfCBhcHQta2V5IGFkZCAtIFwKICAgICYmIGVjaG8gImRl\nYiBodHRwczovL2RsLnlhcm5wa2cuY29tL2RlYmlhbi8gc3RhYmxlIG1haW4i\nIHwgdGVlIC9ldGMvYXB0L3NvdXJjZXMubGlzdC5kL3lhcm4ubGlzdCBcCiAg\nICAmJiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgeWFy\nbgoKCiMjIyBFTE0KCiMgSW5zdGFsbCBFbG0gMC4xOApFTlYgUEFUSD0iJFBB\nVEg6L25vZGVfbW9kdWxlcy8uYmluIgpSVU4gbnBtIGluc3RhbGwgZWxtQDAu\nMTguMAoKCiMjIyBQSFAKCiMgSW5zdGFsbCBQSFAgNy4yIGFuZCBDb21wb3Nl\ncgpSVU4gZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5ldC9vbmRy\nZWovcGhwL3VidW50dSBiaW9uaWMgbWFpbiIgPj4gL2V0Yy9hcHQvc291cmNl\ncy5saXN0LmQvb25kcmVqLXBocC5saXN0IFwKICAgICYmIGVjaG8gImRlYi1z\ncmMgaHR0cDovL3BwYS5sYXVuY2hwYWQubmV0L29uZHJlai9waHAvdWJ1bnR1\nIGJpb25pYyBtYWluIiA+PiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9vbmRy\nZWotcGhwLmxpc3QgXAogICAgJiYgYXB0LWtleSBhZHYgLS1rZXlzZXJ2ZXIg\na2V5c2VydmVyLnVidW50dS5jb20gLS1yZWN2LWtleXMgNEY0RUEwQUFFNTI2\nN0E2QyBcCiAgICAmJiBhcHQtZ2V0IHVwZGF0ZSBcCiAgICAmJiBhcHQtZ2V0\nIGluc3RhbGwgLXkgcGhwNy4yIHBocDcuMi14bWwgcGhwNy4yLWpzb24gcGhw\nNy4yLXppcCBwaHA3LjItbWJzdHJpbmcgcGhwNy4yLWludGwgcGhwNy4yLWNv\nbW1vbiBwaHA3LjItZ2V0dGV4dCBwaHA3LjItY3VybCBwaHAteGRlYnVnIHBo\ncDcuMi1iY21hdGggcGhwLWdtcCBwaHA3LjItaW1hZ2ljayBwaHA3LjItZ2Qg\ncGhwNy4yLXJlZGlzIHBocDcuMi1zb2FwIHBocDcuMi1sZGFwIFwKICAgICYm\nIGN1cmwgLXNTIGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2luc3RhbGxlciB8\nIHBocCBcCiAgICAmJiBtdiBjb21wb3Nlci5waGFyIC91c3IvbG9jYWwvYmlu\nL2NvbXBvc2VyCgoKIyMjIEdPCgojIEluc3RhbGwgR28gYW5kIGRlcApSVU4g\nY3VybCAtTyBodHRwczovL2RsLmdvb2dsZS5jb20vZ28vZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHRhciB4dmYgZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHdnZXQgaHR0cHM6Ly9naXRodWIu\nY29tL2dvbGFuZy9kZXAvcmVsZWFzZXMvZG93bmxvYWQvdjAuNS4wL2RlcC1s\naW51eC1hbWQ2NCBcCiAgICAmJiBtdiBkZXAtbGludXgtYW1kNjQgZ28vYmlu\nL2RlcCBcCiAgICAmJiBjaG1vZCAreCBnby9iaW4vZGVwIFwKICAgICYmIG12\nIGdvIC9yb290CkVOViBQQVRIPS9yb290L2dvL2JpbjokUEFUSAoKCiMjIyBF\nTElYSVIKCiMgSW5zdGFsbCBFcmxhbmcsIEVsaXhpciBhbmQgSGV4CkVOViBQ\nQVRIPSIkUEFUSDovdXNyL2xvY2FsL2VsaXhpci9iaW4iClJVTiB3Z2V0IGh0\ndHBzOi8vcGFja2FnZXMuZXJsYW5nLXNvbHV0aW9ucy5jb20vZXJsYW5nLXNv\nbHV0aW9uc18xLjBfYWxsLmRlYiBcCiAgICAmJiBkcGtnIC1pIGVybGFuZy1z\nb2x1dGlvbnNfMS4wX2FsbC5kZWIgXAogICAgJiYgYXB0LWdldCB1cGRhdGUg\nXAogICAgJiYgYXB0LWdldCBpbnN0YWxsIC15IGVzbC1lcmxhbmcgXAogICAg\nJiYgd2dldCBodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWxhbmcvZWxpeGly\nL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjcuMi9QcmVjb21waWxlZC56aXAgXAog\nICAgJiYgdW56aXAgLWQgL3Vzci9sb2NhbC9lbGl4aXIgLXggUHJlY29tcGls\nZWQuemlwIFwKICAgICYmIHJtIC1mIFByZWNvbXBpbGVkLnppcCBcCiAgICAm\nJiBtaXggbG9jYWwuaGV4IC0tZm9yY2UKCgojIyMgUlVTVAoKIyBJbnN0YWxs\nIFJ1c3QKRU5WIFJVU1RVUF9IT01FPS9vcHQvcnVzdCBcCiAgICBQQVRIPSIk\ne1BBVEh9Oi9vcHQvcnVzdC9iaW4iClJVTiBleHBvcnQgQ0FSR09fSE9NRT0v\nb3B0L3J1c3QgOyBjdXJsIGh0dHBzOi8vc2gucnVzdHVwLnJzIC1zU2YgfCBz\naCAtcyAtLSAteQoKCiMjIyBKQVZBLCBHUk9PVlkgQU5EIEdSQURMRQoKIyBJ\nbnN0YWxsIEphdmEsIEdyb292eSBhbmQgR3JhZGxlClJVTiBlY2hvICJvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIHNoYXJlZC9hY2NlcHRlZC1vcmFjbGUtbGlj\nZW5zZS12MS0xIHNlbGVjdCB0cnVlIiB8IGRlYmNvbmYtc2V0LXNlbGVjdGlv\nbnMgXAogICAgJiYgZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5l\ndC93ZWJ1cGQ4dGVhbS9qYXZhL3VidW50dSBiaW9uaWMgbWFpbiIgPiAvZXRj\nL2FwdC9zb3VyY2VzLmxpc3QuZC93ZWJ1cGQ4dGVhbS1qYXZhLXRydXN0eS5s\naXN0IFwKICAgICYmIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNlcnZl\nci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEVFQTE0ODg2IFwKICAgICYmIGFw\ndC1nZXQgdXBkYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIG9yYWNsZS1qYXZhOC1zZXQtZGVmYXVsdCBc\nCiAgICAmJiBjZCAvdG1wIFwKICAgICYmIHdnZXQgaHR0cDovL2RsLmJpbnRy\nYXkuY29tL2dyb292eS9tYXZlbi9hcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgdW56aXAgYXBhY2hlLWdyb292eS1iaW5hcnktMi41\nLjIuemlwIFwKICAgICYmIG12IGdyb292eS0yLjUuMiAvdXNyL2xvY2FsL2dy\nb292eSBcCiAgICAmJiBybSAtZiBhcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgY2QgL3RtcCBcCiAgICAmJiB3Z2V0IGh0dHBzOi8v\nc2VydmljZXMuZ3JhZGxlLm9yZy9kaXN0cmlidXRpb25zL2dyYWRsZS00Ljkt\nYmluLnppcCBcCiAgICAmJiB1bnppcCBncmFkbGUtNC45LWJpbi56aXAgXAog\nICAgJiYgbXYgZ3JhZGxlLTQuOSAvdXNyL2xvY2FsL2dyYWRsZSBcCiAgICAm\nJiBybSAtZiBncmFkbGUtNC45LWJpbi56aXAKRU5WIEpBVkFfSE9NRT0vdXNy\nL2xpYi9qdm0vamF2YS04LW9yYWNsZSBcCiAgICBHUk9PVllfSE9NRT0vdXNy\nL2xvY2FsL2dyb292eSBcCiAgICBHUkFETEVfSE9NRT0vdXNyL2xvY2FsL2dy\nYWRsZSBcCiAgICBQQVRIPS91c3IvbG9jYWwvZ3Jvb3Z5L2Jpbi86L3Vzci9s\nb2NhbC9ncmFkbGUvYmluOiRQQVRICg==\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Containerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Containerfile" + } +} diff --git a/helm/spec/fixtures/github/contents_docker-compose.json b/helm/spec/fixtures/github/contents_docker-compose.json new file mode 100644 index 00000000000..0faed57f5aa --- /dev/null +++ b/helm/spec/fixtures/github/contents_docker-compose.json @@ -0,0 +1,18 @@ +{ + "name": "docker-compose.yml", + "path": "docker-compose.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/master/docker-compose.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/docker-compose.yml", + "type": "file", + "content": "RlJPTSB1YnVudHU6MTguMDQKCiMjIyBTWVNURU0gREVQRU5ERU5DSUVTCgoj\nIEV2ZXJ5dGhpbmcgZnJvbSBgbWFrZWAgb253YXJkcyBpbiBhcHQtZ2V0IGlu\nc3RhbGwgaXMgb25seSBpbnN0YWxsZWQgdG8gZW5zdXJlCiMgUHl0aG9uIHN1\ncHBvcnQgd29ya3Mgd2l0aCBhbGwgcGFja2FnZXMgKHdoaWNoIG1heSByZXF1\naXJlIHNwZWNpZmljIGxpYnJhcmllcwojIGF0IGluc3RhbGwgdGltZSkuCkVO\nViBERUJJQU5fRlJPTlRFTkQgbm9uaW50ZXJhY3RpdmUKUlVOIGFwdC1nZXQg\ndXBkYXRlIFwKICAgICYmIGFwdC1nZXQgdXBncmFkZSAteSBcCiAgICAmJiBh\ncHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAog\nICAgICBidWlsZC1lc3NlbnRpYWwgXAogICAgICBkaXJtbmdyIFwKICAgICAg\nZ2l0IFwKICAgICAgZ251cGcyIFwKICAgICAgY3VybCBcCiAgICAgIHdnZXQg\nXAogICAgICB6bGliMWctZGV2IFwKICAgICAgbGlibHptYS1kZXYgXAogICAg\nICB0emRhdGEgXAogICAgICB6aXAgXAogICAgICB1bnppcCBcCiAgICAgIGxv\nY2FsZXMgXAogICAgICBvcGVuc3NoLWNsaWVudCBcCiAgICAgIG1ha2UgXAog\nICAgICBsaWJzc2wtZGV2IFwKICAgICAgbGliYnoyLWRldiBcCiAgICAgIGxp\nYnJlYWRsaW5lLWRldiBcCiAgICAgIGxpYnNxbGl0ZTMtZGV2IFwKICAgICAg\nbGx2bSBcCiAgICAgIGxpYm5jdXJzZXM1LWRldiBcCiAgICAgIGxpYm5jdXJz\nZXN3NS1kZXYgXAogICAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgICB4\nei11dGlscyBcCiAgICAgIHRrLWRldiBcCiAgICAmJiBsb2NhbGUtZ2VuIGVu\nX1VTLlVURi04CkVOViBMQ19BTEwgZW5fVVMuVVRGLTgKCgojIyMgUlVCWQoK\nIyBJbnN0YWxsIFJ1YnkgMi41LCB1cGRhdGUgUnVieUdlbXMsIGFuZCBpbnN0\nYWxsIEJ1bmRsZXIKUlVOIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNl\ncnZlci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEMzMTczQUE2IFwKICAgICYm\nIGVjaG8gImRlYiBodHRwOi8vcHBhLmxhdW5jaHBhZC5uZXQvYnJpZ2h0Ym94\nL3J1YnktbmcvdWJ1bnR1IGJpb25pYyBtYWluIiA+IC9ldGMvYXB0L3NvdXJj\nZXMubGlzdC5kL2JyaWdodGJveC5saXN0IFwKICAgICYmIGFwdC1nZXQgdXBk\nYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBydWJ5Mi41IHJ1Ynky\nLjUtZGV2IFwKICAgICYmIGdlbSB1cGRhdGUgLS1zeXN0ZW0gMi43LjcgXAog\nICAgJiYgZ2VtIGluc3RhbGwgLS1uby1yaSAtLW5vLXJkb2MgYnVuZGxlciAt\ndiAxLjE2LjQKCgojIyMgUFlUSE9OCgojIEluc3RhbGwgUHl0aG9uIDIuNyBh\nbmQgMy42IHdpdGggcHllbnYuIFVzaW5nIHB5ZW52IGxldHMgdXMgc3VwcG9y\ndCBtdWx0aXBsZSBQeXRob25zCkVOViBQWUVOVl9ST09UPS91c3IvbG9jYWwv\nLnB5ZW52IFwKICAgIFBBVEg9Ii91c3IvbG9jYWwvLnB5ZW52L2JpbjokUEFU\nSCIKUlVOIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vcHllbnYvcHll\nbnYuZ2l0IC91c3IvbG9jYWwvLnB5ZW52IFwKICAgICYmIGNkIC91c3IvbG9j\nYWwvLnB5ZW52ICYmIGdpdCBjaGVja291dCB2MS4yLjcgJiYgY2QgLSBcCiAg\nICAmJiBweWVudiBpbnN0YWxsIDMuNi41IFwKICAgICYmIHB5ZW52IGluc3Rh\nbGwgMi43LjE1IFwKICAgICYmIHB5ZW52IGdsb2JhbCAzLjYuNQoKCiMjIyBK\nQVZBU0NSSVBUCgojIEluc3RhbGwgTm9kZSA4LjAgYW5kIFlhcm4KUlVOIGN1\ncmwgLXNMIGh0dHBzOi8vZGViLm5vZGVzb3VyY2UuY29tL3NldHVwXzgueCB8\nIGJhc2ggLSBcCiAgICAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgbm9kZWpzIFwK\nICAgICYmIGN1cmwgLXNTIGh0dHBzOi8vZGwueWFybnBrZy5jb20vZGViaWFu\nL3B1YmtleS5ncGcgfCBhcHQta2V5IGFkZCAtIFwKICAgICYmIGVjaG8gImRl\nYiBodHRwczovL2RsLnlhcm5wa2cuY29tL2RlYmlhbi8gc3RhYmxlIG1haW4i\nIHwgdGVlIC9ldGMvYXB0L3NvdXJjZXMubGlzdC5kL3lhcm4ubGlzdCBcCiAg\nICAmJiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgeWFy\nbgoKCiMjIyBFTE0KCiMgSW5zdGFsbCBFbG0gMC4xOApFTlYgUEFUSD0iJFBB\nVEg6L25vZGVfbW9kdWxlcy8uYmluIgpSVU4gbnBtIGluc3RhbGwgZWxtQDAu\nMTguMAoKCiMjIyBQSFAKCiMgSW5zdGFsbCBQSFAgNy4yIGFuZCBDb21wb3Nl\ncgpSVU4gZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5ldC9vbmRy\nZWovcGhwL3VidW50dSBiaW9uaWMgbWFpbiIgPj4gL2V0Yy9hcHQvc291cmNl\ncy5saXN0LmQvb25kcmVqLXBocC5saXN0IFwKICAgICYmIGVjaG8gImRlYi1z\ncmMgaHR0cDovL3BwYS5sYXVuY2hwYWQubmV0L29uZHJlai9waHAvdWJ1bnR1\nIGJpb25pYyBtYWluIiA+PiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9vbmRy\nZWotcGhwLmxpc3QgXAogICAgJiYgYXB0LWtleSBhZHYgLS1rZXlzZXJ2ZXIg\na2V5c2VydmVyLnVidW50dS5jb20gLS1yZWN2LWtleXMgNEY0RUEwQUFFNTI2\nN0E2QyBcCiAgICAmJiBhcHQtZ2V0IHVwZGF0ZSBcCiAgICAmJiBhcHQtZ2V0\nIGluc3RhbGwgLXkgcGhwNy4yIHBocDcuMi14bWwgcGhwNy4yLWpzb24gcGhw\nNy4yLXppcCBwaHA3LjItbWJzdHJpbmcgcGhwNy4yLWludGwgcGhwNy4yLWNv\nbW1vbiBwaHA3LjItZ2V0dGV4dCBwaHA3LjItY3VybCBwaHAteGRlYnVnIHBo\ncDcuMi1iY21hdGggcGhwLWdtcCBwaHA3LjItaW1hZ2ljayBwaHA3LjItZ2Qg\ncGhwNy4yLXJlZGlzIHBocDcuMi1zb2FwIHBocDcuMi1sZGFwIFwKICAgICYm\nIGN1cmwgLXNTIGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2luc3RhbGxlciB8\nIHBocCBcCiAgICAmJiBtdiBjb21wb3Nlci5waGFyIC91c3IvbG9jYWwvYmlu\nL2NvbXBvc2VyCgoKIyMjIEdPCgojIEluc3RhbGwgR28gYW5kIGRlcApSVU4g\nY3VybCAtTyBodHRwczovL2RsLmdvb2dsZS5jb20vZ28vZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHRhciB4dmYgZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHdnZXQgaHR0cHM6Ly9naXRodWIu\nY29tL2dvbGFuZy9kZXAvcmVsZWFzZXMvZG93bmxvYWQvdjAuNS4wL2RlcC1s\naW51eC1hbWQ2NCBcCiAgICAmJiBtdiBkZXAtbGludXgtYW1kNjQgZ28vYmlu\nL2RlcCBcCiAgICAmJiBjaG1vZCAreCBnby9iaW4vZGVwIFwKICAgICYmIG12\nIGdvIC9yb290CkVOViBQQVRIPS9yb290L2dvL2JpbjokUEFUSAoKCiMjIyBF\nTElYSVIKCiMgSW5zdGFsbCBFcmxhbmcsIEVsaXhpciBhbmQgSGV4CkVOViBQ\nQVRIPSIkUEFUSDovdXNyL2xvY2FsL2VsaXhpci9iaW4iClJVTiB3Z2V0IGh0\ndHBzOi8vcGFja2FnZXMuZXJsYW5nLXNvbHV0aW9ucy5jb20vZXJsYW5nLXNv\nbHV0aW9uc18xLjBfYWxsLmRlYiBcCiAgICAmJiBkcGtnIC1pIGVybGFuZy1z\nb2x1dGlvbnNfMS4wX2FsbC5kZWIgXAogICAgJiYgYXB0LWdldCB1cGRhdGUg\nXAogICAgJiYgYXB0LWdldCBpbnN0YWxsIC15IGVzbC1lcmxhbmcgXAogICAg\nJiYgd2dldCBodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWxhbmcvZWxpeGly\nL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjcuMi9QcmVjb21waWxlZC56aXAgXAog\nICAgJiYgdW56aXAgLWQgL3Vzci9sb2NhbC9lbGl4aXIgLXggUHJlY29tcGls\nZWQuemlwIFwKICAgICYmIHJtIC1mIFByZWNvbXBpbGVkLnppcCBcCiAgICAm\nJiBtaXggbG9jYWwuaGV4IC0tZm9yY2UKCgojIyMgUlVTVAoKIyBJbnN0YWxs\nIFJ1c3QKRU5WIFJVU1RVUF9IT01FPS9vcHQvcnVzdCBcCiAgICBQQVRIPSIk\ne1BBVEh9Oi9vcHQvcnVzdC9iaW4iClJVTiBleHBvcnQgQ0FSR09fSE9NRT0v\nb3B0L3J1c3QgOyBjdXJsIGh0dHBzOi8vc2gucnVzdHVwLnJzIC1zU2YgfCBz\naCAtcyAtLSAteQoKCiMjIyBKQVZBLCBHUk9PVlkgQU5EIEdSQURMRQoKIyBJ\nbnN0YWxsIEphdmEsIEdyb292eSBhbmQgR3JhZGxlClJVTiBlY2hvICJvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIHNoYXJlZC9hY2NlcHRlZC1vcmFjbGUtbGlj\nZW5zZS12MS0xIHNlbGVjdCB0cnVlIiB8IGRlYmNvbmYtc2V0LXNlbGVjdGlv\nbnMgXAogICAgJiYgZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5l\ndC93ZWJ1cGQ4dGVhbS9qYXZhL3VidW50dSBiaW9uaWMgbWFpbiIgPiAvZXRj\nL2FwdC9zb3VyY2VzLmxpc3QuZC93ZWJ1cGQ4dGVhbS1qYXZhLXRydXN0eS5s\naXN0IFwKICAgICYmIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNlcnZl\nci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEVFQTE0ODg2IFwKICAgICYmIGFw\ndC1nZXQgdXBkYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIG9yYWNsZS1qYXZhOC1zZXQtZGVmYXVsdCBc\nCiAgICAmJiBjZCAvdG1wIFwKICAgICYmIHdnZXQgaHR0cDovL2RsLmJpbnRy\nYXkuY29tL2dyb292eS9tYXZlbi9hcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgdW56aXAgYXBhY2hlLWdyb292eS1iaW5hcnktMi41\nLjIuemlwIFwKICAgICYmIG12IGdyb292eS0yLjUuMiAvdXNyL2xvY2FsL2dy\nb292eSBcCiAgICAmJiBybSAtZiBhcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgY2QgL3RtcCBcCiAgICAmJiB3Z2V0IGh0dHBzOi8v\nc2VydmljZXMuZ3JhZGxlLm9yZy9kaXN0cmlidXRpb25zL2dyYWRsZS00Ljkt\nYmluLnppcCBcCiAgICAmJiB1bnppcCBncmFkbGUtNC45LWJpbi56aXAgXAog\nICAgJiYgbXYgZ3JhZGxlLTQuOSAvdXNyL2xvY2FsL2dyYWRsZSBcCiAgICAm\nJiBybSAtZiBncmFkbGUtNC45LWJpbi56aXAKRU5WIEpBVkFfSE9NRT0vdXNy\nL2xpYi9qdm0vamF2YS04LW9yYWNsZSBcCiAgICBHUk9PVllfSE9NRT0vdXNy\nL2xvY2FsL2dyb292eSBcCiAgICBHUkFETEVfSE9NRT0vdXNyL2xvY2FsL2dy\nYWRsZSBcCiAgICBQQVRIPS91c3IvbG9jYWwvZ3Jvb3Z5L2Jpbi86L3Vzci9s\nb2NhbC9ncmFkbGUvYmluOiRQQVRICg==\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/master/docker-compose.yml" + } +} diff --git a/helm/spec/fixtures/github/contents_docker_repo.json b/helm/spec/fixtures/github/contents_docker_repo.json new file mode 100644 index 00000000000..32736fec753 --- /dev/null +++ b/helm/spec/fixtures/github/contents_docker_repo.json @@ -0,0 +1,242 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "Dockerfile", + "path": "Dockerfile", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "docker-compose.yml", + "path": "docker-compose.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/main/docker-compose.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.yml" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_docker_repo_custom.json b/helm/spec/fixtures/github/contents_docker_repo_custom.json new file mode 100644 index 00000000000..a7e01e232c5 --- /dev/null +++ b/helm/spec/fixtures/github/contents_docker_repo_custom.json @@ -0,0 +1,242 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "Dockerfile-base", + "path": "Dockerfile-base", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile-base?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile-base", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile-base", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile-base?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile-base" + } + }, + { + "name": "docker-compose.override.yml", + "path": "docker-compose.override.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.override.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.override.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/main/docker-compose.override.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.override.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.override.yml" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_docker_repo_multiple.json b/helm/spec/fixtures/github/contents_docker_repo_multiple.json new file mode 100644 index 00000000000..a064bb237f6 --- /dev/null +++ b/helm/spec/fixtures/github/contents_docker_repo_multiple.json @@ -0,0 +1,290 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "Dockerfile", + "path": "Dockerfile", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "Containerfile", + "path": "Containerfile", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Containerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Containerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Containerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Containerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Containerfile" + } + }, + { + "name": "Dockerfile-base", + "path": "Dockerfile-base", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile-base?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile-base", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile-base", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile-base?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile-base" + } + }, + { + "name": "docker-compose.yml", + "path": "docker-compose.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/docker-compose.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.yml" + } + }, + { + "name": "docker-compose.override.yml", + "path": "docker-compose.override.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.override.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.override.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/docker-compose.override.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/docker-compose.override.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/docker-compose.override.yml" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_dockerfile.json b/helm/spec/fixtures/github/contents_dockerfile.json new file mode 100644 index 00000000000..b3698515388 --- /dev/null +++ b/helm/spec/fixtures/github/contents_dockerfile.json @@ -0,0 +1,18 @@ +{ + "name": "Dockerfile", + "path": "Dockerfile", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "content": "RlJPTSB1YnVudHU6MTguMDQKCiMjIyBTWVNURU0gREVQRU5ERU5DSUVTCgoj\nIEV2ZXJ5dGhpbmcgZnJvbSBgbWFrZWAgb253YXJkcyBpbiBhcHQtZ2V0IGlu\nc3RhbGwgaXMgb25seSBpbnN0YWxsZWQgdG8gZW5zdXJlCiMgUHl0aG9uIHN1\ncHBvcnQgd29ya3Mgd2l0aCBhbGwgcGFja2FnZXMgKHdoaWNoIG1heSByZXF1\naXJlIHNwZWNpZmljIGxpYnJhcmllcwojIGF0IGluc3RhbGwgdGltZSkuCkVO\nViBERUJJQU5fRlJPTlRFTkQgbm9uaW50ZXJhY3RpdmUKUlVOIGFwdC1nZXQg\ndXBkYXRlIFwKICAgICYmIGFwdC1nZXQgdXBncmFkZSAteSBcCiAgICAmJiBh\ncHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAog\nICAgICBidWlsZC1lc3NlbnRpYWwgXAogICAgICBkaXJtbmdyIFwKICAgICAg\nZ2l0IFwKICAgICAgZ251cGcyIFwKICAgICAgY3VybCBcCiAgICAgIHdnZXQg\nXAogICAgICB6bGliMWctZGV2IFwKICAgICAgbGlibHptYS1kZXYgXAogICAg\nICB0emRhdGEgXAogICAgICB6aXAgXAogICAgICB1bnppcCBcCiAgICAgIGxv\nY2FsZXMgXAogICAgICBvcGVuc3NoLWNsaWVudCBcCiAgICAgIG1ha2UgXAog\nICAgICBsaWJzc2wtZGV2IFwKICAgICAgbGliYnoyLWRldiBcCiAgICAgIGxp\nYnJlYWRsaW5lLWRldiBcCiAgICAgIGxpYnNxbGl0ZTMtZGV2IFwKICAgICAg\nbGx2bSBcCiAgICAgIGxpYm5jdXJzZXM1LWRldiBcCiAgICAgIGxpYm5jdXJz\nZXN3NS1kZXYgXAogICAgICBsaWJteXNxbGNsaWVudC1kZXYgXAogICAgICB4\nei11dGlscyBcCiAgICAgIHRrLWRldiBcCiAgICAmJiBsb2NhbGUtZ2VuIGVu\nX1VTLlVURi04CkVOViBMQ19BTEwgZW5fVVMuVVRGLTgKCgojIyMgUlVCWQoK\nIyBJbnN0YWxsIFJ1YnkgMi41LCB1cGRhdGUgUnVieUdlbXMsIGFuZCBpbnN0\nYWxsIEJ1bmRsZXIKUlVOIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNl\ncnZlci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEMzMTczQUE2IFwKICAgICYm\nIGVjaG8gImRlYiBodHRwOi8vcHBhLmxhdW5jaHBhZC5uZXQvYnJpZ2h0Ym94\nL3J1YnktbmcvdWJ1bnR1IGJpb25pYyBtYWluIiA+IC9ldGMvYXB0L3NvdXJj\nZXMubGlzdC5kL2JyaWdodGJveC5saXN0IFwKICAgICYmIGFwdC1nZXQgdXBk\nYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBydWJ5Mi41IHJ1Ynky\nLjUtZGV2IFwKICAgICYmIGdlbSB1cGRhdGUgLS1zeXN0ZW0gMi43LjcgXAog\nICAgJiYgZ2VtIGluc3RhbGwgLS1uby1yaSAtLW5vLXJkb2MgYnVuZGxlciAt\ndiAxLjE2LjQKCgojIyMgUFlUSE9OCgojIEluc3RhbGwgUHl0aG9uIDIuNyBh\nbmQgMy42IHdpdGggcHllbnYuIFVzaW5nIHB5ZW52IGxldHMgdXMgc3VwcG9y\ndCBtdWx0aXBsZSBQeXRob25zCkVOViBQWUVOVl9ST09UPS91c3IvbG9jYWwv\nLnB5ZW52IFwKICAgIFBBVEg9Ii91c3IvbG9jYWwvLnB5ZW52L2JpbjokUEFU\nSCIKUlVOIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vcHllbnYvcHll\nbnYuZ2l0IC91c3IvbG9jYWwvLnB5ZW52IFwKICAgICYmIGNkIC91c3IvbG9j\nYWwvLnB5ZW52ICYmIGdpdCBjaGVja291dCB2MS4yLjcgJiYgY2QgLSBcCiAg\nICAmJiBweWVudiBpbnN0YWxsIDMuNi41IFwKICAgICYmIHB5ZW52IGluc3Rh\nbGwgMi43LjE1IFwKICAgICYmIHB5ZW52IGdsb2JhbCAzLjYuNQoKCiMjIyBK\nQVZBU0NSSVBUCgojIEluc3RhbGwgTm9kZSA4LjAgYW5kIFlhcm4KUlVOIGN1\ncmwgLXNMIGh0dHBzOi8vZGViLm5vZGVzb3VyY2UuY29tL3NldHVwXzgueCB8\nIGJhc2ggLSBcCiAgICAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgbm9kZWpzIFwK\nICAgICYmIGN1cmwgLXNTIGh0dHBzOi8vZGwueWFybnBrZy5jb20vZGViaWFu\nL3B1YmtleS5ncGcgfCBhcHQta2V5IGFkZCAtIFwKICAgICYmIGVjaG8gImRl\nYiBodHRwczovL2RsLnlhcm5wa2cuY29tL2RlYmlhbi8gc3RhYmxlIG1haW4i\nIHwgdGVlIC9ldGMvYXB0L3NvdXJjZXMubGlzdC5kL3lhcm4ubGlzdCBcCiAg\nICAmJiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgeWFy\nbgoKCiMjIyBFTE0KCiMgSW5zdGFsbCBFbG0gMC4xOApFTlYgUEFUSD0iJFBB\nVEg6L25vZGVfbW9kdWxlcy8uYmluIgpSVU4gbnBtIGluc3RhbGwgZWxtQDAu\nMTguMAoKCiMjIyBQSFAKCiMgSW5zdGFsbCBQSFAgNy4yIGFuZCBDb21wb3Nl\ncgpSVU4gZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5ldC9vbmRy\nZWovcGhwL3VidW50dSBiaW9uaWMgbWFpbiIgPj4gL2V0Yy9hcHQvc291cmNl\ncy5saXN0LmQvb25kcmVqLXBocC5saXN0IFwKICAgICYmIGVjaG8gImRlYi1z\ncmMgaHR0cDovL3BwYS5sYXVuY2hwYWQubmV0L29uZHJlai9waHAvdWJ1bnR1\nIGJpb25pYyBtYWluIiA+PiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9vbmRy\nZWotcGhwLmxpc3QgXAogICAgJiYgYXB0LWtleSBhZHYgLS1rZXlzZXJ2ZXIg\na2V5c2VydmVyLnVidW50dS5jb20gLS1yZWN2LWtleXMgNEY0RUEwQUFFNTI2\nN0E2QyBcCiAgICAmJiBhcHQtZ2V0IHVwZGF0ZSBcCiAgICAmJiBhcHQtZ2V0\nIGluc3RhbGwgLXkgcGhwNy4yIHBocDcuMi14bWwgcGhwNy4yLWpzb24gcGhw\nNy4yLXppcCBwaHA3LjItbWJzdHJpbmcgcGhwNy4yLWludGwgcGhwNy4yLWNv\nbW1vbiBwaHA3LjItZ2V0dGV4dCBwaHA3LjItY3VybCBwaHAteGRlYnVnIHBo\ncDcuMi1iY21hdGggcGhwLWdtcCBwaHA3LjItaW1hZ2ljayBwaHA3LjItZ2Qg\ncGhwNy4yLXJlZGlzIHBocDcuMi1zb2FwIHBocDcuMi1sZGFwIFwKICAgICYm\nIGN1cmwgLXNTIGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2luc3RhbGxlciB8\nIHBocCBcCiAgICAmJiBtdiBjb21wb3Nlci5waGFyIC91c3IvbG9jYWwvYmlu\nL2NvbXBvc2VyCgoKIyMjIEdPCgojIEluc3RhbGwgR28gYW5kIGRlcApSVU4g\nY3VybCAtTyBodHRwczovL2RsLmdvb2dsZS5jb20vZ28vZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHRhciB4dmYgZ28xLjEwLjMubGlu\ndXgtYW1kNjQudGFyLmd6IFwKICAgICYmIHdnZXQgaHR0cHM6Ly9naXRodWIu\nY29tL2dvbGFuZy9kZXAvcmVsZWFzZXMvZG93bmxvYWQvdjAuNS4wL2RlcC1s\naW51eC1hbWQ2NCBcCiAgICAmJiBtdiBkZXAtbGludXgtYW1kNjQgZ28vYmlu\nL2RlcCBcCiAgICAmJiBjaG1vZCAreCBnby9iaW4vZGVwIFwKICAgICYmIG12\nIGdvIC9yb290CkVOViBQQVRIPS9yb290L2dvL2JpbjokUEFUSAoKCiMjIyBF\nTElYSVIKCiMgSW5zdGFsbCBFcmxhbmcsIEVsaXhpciBhbmQgSGV4CkVOViBQ\nQVRIPSIkUEFUSDovdXNyL2xvY2FsL2VsaXhpci9iaW4iClJVTiB3Z2V0IGh0\ndHBzOi8vcGFja2FnZXMuZXJsYW5nLXNvbHV0aW9ucy5jb20vZXJsYW5nLXNv\nbHV0aW9uc18xLjBfYWxsLmRlYiBcCiAgICAmJiBkcGtnIC1pIGVybGFuZy1z\nb2x1dGlvbnNfMS4wX2FsbC5kZWIgXAogICAgJiYgYXB0LWdldCB1cGRhdGUg\nXAogICAgJiYgYXB0LWdldCBpbnN0YWxsIC15IGVzbC1lcmxhbmcgXAogICAg\nJiYgd2dldCBodHRwczovL2dpdGh1Yi5jb20vZWxpeGlyLWxhbmcvZWxpeGly\nL3JlbGVhc2VzL2Rvd25sb2FkL3YxLjcuMi9QcmVjb21waWxlZC56aXAgXAog\nICAgJiYgdW56aXAgLWQgL3Vzci9sb2NhbC9lbGl4aXIgLXggUHJlY29tcGls\nZWQuemlwIFwKICAgICYmIHJtIC1mIFByZWNvbXBpbGVkLnppcCBcCiAgICAm\nJiBtaXggbG9jYWwuaGV4IC0tZm9yY2UKCgojIyMgUlVTVAoKIyBJbnN0YWxs\nIFJ1c3QKRU5WIFJVU1RVUF9IT01FPS9vcHQvcnVzdCBcCiAgICBQQVRIPSIk\ne1BBVEh9Oi9vcHQvcnVzdC9iaW4iClJVTiBleHBvcnQgQ0FSR09fSE9NRT0v\nb3B0L3J1c3QgOyBjdXJsIGh0dHBzOi8vc2gucnVzdHVwLnJzIC1zU2YgfCBz\naCAtcyAtLSAteQoKCiMjIyBKQVZBLCBHUk9PVlkgQU5EIEdSQURMRQoKIyBJ\nbnN0YWxsIEphdmEsIEdyb292eSBhbmQgR3JhZGxlClJVTiBlY2hvICJvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIHNoYXJlZC9hY2NlcHRlZC1vcmFjbGUtbGlj\nZW5zZS12MS0xIHNlbGVjdCB0cnVlIiB8IGRlYmNvbmYtc2V0LXNlbGVjdGlv\nbnMgXAogICAgJiYgZWNobyAiZGViIGh0dHA6Ly9wcGEubGF1bmNocGFkLm5l\ndC93ZWJ1cGQ4dGVhbS9qYXZhL3VidW50dSBiaW9uaWMgbWFpbiIgPiAvZXRj\nL2FwdC9zb3VyY2VzLmxpc3QuZC93ZWJ1cGQ4dGVhbS1qYXZhLXRydXN0eS5s\naXN0IFwKICAgICYmIGFwdC1rZXkgYWR2IC0ta2V5c2VydmVyIGtleXNlcnZl\nci51YnVudHUuY29tIC0tcmVjdi1rZXlzIEVFQTE0ODg2IFwKICAgICYmIGFw\ndC1nZXQgdXBkYXRlIFwKICAgICYmIGFwdC1nZXQgaW5zdGFsbCAteSBvcmFj\nbGUtamF2YTgtaW5zdGFsbGVyIG9yYWNsZS1qYXZhOC1zZXQtZGVmYXVsdCBc\nCiAgICAmJiBjZCAvdG1wIFwKICAgICYmIHdnZXQgaHR0cDovL2RsLmJpbnRy\nYXkuY29tL2dyb292eS9tYXZlbi9hcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgdW56aXAgYXBhY2hlLWdyb292eS1iaW5hcnktMi41\nLjIuemlwIFwKICAgICYmIG12IGdyb292eS0yLjUuMiAvdXNyL2xvY2FsL2dy\nb292eSBcCiAgICAmJiBybSAtZiBhcGFjaGUtZ3Jvb3Z5LWJpbmFyeS0yLjUu\nMi56aXAgXAogICAgJiYgY2QgL3RtcCBcCiAgICAmJiB3Z2V0IGh0dHBzOi8v\nc2VydmljZXMuZ3JhZGxlLm9yZy9kaXN0cmlidXRpb25zL2dyYWRsZS00Ljkt\nYmluLnppcCBcCiAgICAmJiB1bnppcCBncmFkbGUtNC45LWJpbi56aXAgXAog\nICAgJiYgbXYgZ3JhZGxlLTQuOSAvdXNyL2xvY2FsL2dyYWRsZSBcCiAgICAm\nJiBybSAtZiBncmFkbGUtNC45LWJpbi56aXAKRU5WIEpBVkFfSE9NRT0vdXNy\nL2xpYi9qdm0vamF2YS04LW9yYWNsZSBcCiAgICBHUk9PVllfSE9NRT0vdXNy\nL2xvY2FsL2dyb292eSBcCiAgICBHUkFETEVfSE9NRT0vdXNyL2xvY2FsL2dy\nYWRsZSBcCiAgICBQQVRIPS91c3IvbG9jYWwvZ3Jvb3Z5L2Jpbi86L3Vzci9s\nb2NhbC9ncmFkbGUvYmluOiRQQVRICg==\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } +} diff --git a/helm/spec/fixtures/github/contents_helm_repo.json b/helm/spec/fixtures/github/contents_helm_repo.json new file mode 100644 index 00000000000..66424fdfb67 --- /dev/null +++ b/helm/spec/fixtures/github/contents_helm_repo.json @@ -0,0 +1,434 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "other.values.yml", + "path": "other.values.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "other.values.yaml", + "path": "other.values.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "other-values.yml", + "path": "other-values.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "other-values.yaml", + "path": "other-values.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "other_values.yml", + "path": "other_values.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "other_values.yaml", + "path": "other_values.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values.yml", + "path": "values.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values.yaml", + "path": "values.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values-other.yml", + "path": "values_other.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values-other.yaml", + "path": "values_other.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values_other.yml", + "path": "values_other.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values_other.yaml", + "path": "values_other.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values2.yml", + "path": "values2.yml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "values2.yaml", + "path": "values2.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_image.json b/helm/spec/fixtures/github/contents_image.json new file mode 100644 index 00000000000..f5dd2633be1 --- /dev/null +++ b/helm/spec/fixtures/github/contents_image.json @@ -0,0 +1,18 @@ +{ + "name": "affine.png", + "path": "images/affine.png", + "sha": "2c9601bd6e7a46bedb4303f95fca181c961ee406", + "size": 2975, + "url": "https://api.github.com/repos/ImageMagick/ImageMagick/contents/images/affine.png?ref=master", + "html_url": "https://github.com/ImageMagick/ImageMagick/blob/master/images/affine.png", + "git_url": "https://api.github.com/repos/ImageMagick/ImageMagick/git/blobs/2c9601bd6e7a46bedb4303f95fca181c961ee406", + "download_url": "https://raw.githubusercontent.com/ImageMagick/ImageMagick/master/images/affine.png", + "type": "file", + "content": "iVBORw0KGgoAAAANSUhEUgAAATAAAABVCAIAAABB1y/5AAAALHRFWHRDcmVh\ndGlvbiBUaW1lAFNhdCAyMCBEZWMgMjAwOCAxNzowMDo0NiAtMDYwMBxDBZoA\nAAAHdElNRQfYDBQXAgwK24J3AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAABGdB\nTUEAALGPC/xhBQAACvZJREFUeNrtnet127oShem7TgNJCVEJVyXEJdgl2CVY\nJTglxCUoJSQlyCUoJdgl6OzLvYLDywc4GAAk5bO/H1q0IgLgDgYYPDi4uVwu\njRBiG/xn7QIIIf5BBinEhpBBCrEhZJBCbAgZpBAbQgYpxIaQQQqxIWSQIo3f\nv3//+PFj7VJsHUgEoRw3yiBFAu/v7/f392uX4jqAUJAr9S4ZpEjg27dvX758\nubu7W7sgKwDren19NdoYJIJQkCs1lxttnRNGfv36hVb/fD5/+vRp7bIsDUwL\nLujDwwNEwMXz8/OsCDDd3W53PB6/fv2akNNFCANvb29o8lER1y7ICtCowp9P\nLZYbIRdEg3T2vGSQwgT7hKS69WGAUX3//j38eTqdjFLgN/hlUiumMaSYB94X\nfDZ0C/9CZ/V3C2wyfINrCALfdfZeyAXRIJ19duevtZ9XXAEvLy/4xAgq9UZU\n5VBx/9tStmBcXYCFwKXkYgyqPmygYBavr69Na1rhG17je8vkFkSDQUJAa6nW\ndgfEFYAaj4qVetf5fEaV5TWct3BdCqRJTxLVGNUdf7LSl80FWSBNuKndL2lp\nxhTwSwho/LFcVjED5xUdSx3oFsJduHYsysVBl4j02YOh0qPjwufPnz/XFqwP\nCtn1FOLIIMUMsCX6hI57D4cDbkd1RN9V3FRQJBghKvqXlqYd3fnKWRUUCQWj\n2z+LDFLE4OyFr5bTVXt8fNztdre3t8XLRiM0juXcTM1jJc1vQUDIaPERZJAi\nBquRzyBhMOgVL+06HszG6LM5Slh8rqj3FE3bMIVveN2dd50FAhonZjXLKmJw\nhOYwSPSK6CE5y4IeLOxHx0XodbkZDebqLh6c4dH2omAusHZ0ht2d4rxO0oQ/\ntnTm6iFFDNRsdAWpy49cigiV772FbhunXvDJ2pk50zNavOK5oFnpdm645lZV\newooCX5vekum7Byx+Ei8vb01KfP7XZ6fn9EpnU4nfKJCn8/nS7sQwn+FcdKb\nzQSGMdzFVjwXrtlwww0SRLIhCztcxZ3d3yODFJNwXrS7aywJVD4Y5LDu0s5Z\nNTP34r21TP1TqVwIngVSuC2c65mzt8tlFZNwAJnkm3WBn4YBWPd2+GyvLfQz\n4UkaFwMiWQzd6eK5EDwLejn3skqYE47/TAYpJuHshdsgh3CnG8d4qJqwE8d2\nvI3kkgplnA0joPchxST7/R4VumwNQYLoatBroWrWW65YJpdUbm5uUBi4vrHf\nyCDFFLvdDp8YBK5dkA+CRU+5rGISdC//wvet6tFbzxxFBinGcexHEXGGm36G\nyCDFOGzL1UMWhGLGO8kqBok2gHuXNpKOENdCmkEagxG8vLz4glLWSIfhJ7KF\nSiMpasPCGAWRy1qcwi7r4XDgG2izv+y+opaDL53eA6PAKDYKn1mYGkItwPC/\n3yiIXNYeSXFZRynpsnJzrXFJB+UushSbmg4KeXt7O9zCy2JXev0nR6jaJRlV\nY2FBPgbwKdiEwWt7fHys6P4Yd+LZw0tymSV/92BSOsfjEabLV2xG914yrGhm\nkcoKVY9ZNSyCcO+leyPrR8Idl7WHRVJTD0nX0ei9oEku4rAlpXN3d4fnjLxs\nxvdfavcJSULVY1YNiyDsBDY7El4S9I1dMXHtCxFkkdRkkLQNY65r+auzhEiB\n9UgSanXigrBZWb1xWZ2cuKw9LJKaIgYgb/a2Ae6mR0EZwIeBHvhOKkiyXqbT\nDcKLBgl/JqVjAQOnIrv+k4SKa+UWp4id1BNkgXCpPeoFgM2My5qMxfdt/n8s\nx7dOL38ipdOfhvRQIcmlxu186ZMuFr/MHII20VFT5HkZ5HOW+Ptsw5K7tSoi\nThMdscQFcY8hlwmX2qVqANj8uKy9pHLHkMMWgiEMeB0imkD01LAlSIdOKd+U\n4Ze+mBEWQsNWPOUpoXK0WkCcSoIsHy61dgDYJfEEuQqeJETnolbjioPEukWX\nppvmKscPst4UT9at1abESX3kYbjU2hsM4MmzveMU6Noa+PFsnQsOemYEPt7L\nBjW0+rWj+i2MW6vrFWeZcKldqgaALRKX1U5WGEiInj/v0p0ImYrqtwDcNzv7\nM3dsbJ9WGxHHwej8ViUYALZp2y+YpTuy81TiTXZcVjvzPSSb5KFfzpnf0GD7\ndm/2Klm9AWR4hHo9zJRQbq1qi1NPkKm2A9/j2dGJMWs8Uf40L3rFsDU3zMwX\nzKhIXNYELLNDIQT1pd2mwB0ex+MRBeXsU5gSHIVnfY7OT3ZDgwE8fGQPRCSd\n7vTX1CwWbqy9WacrlFErtziZaswKkrNThycHj36PTxSboehQpzkF7QbpdIMy\nQituqSmbEVLrztz2/rRTbKcOnqc7F4eawcU0lAxtD64tcYRGF1K5EoDb8a9o\n0hgKxZEOvoSvwvED0sH18IWGIg52klB2rdziuNWoKsjUABJfdid78gvAEQQX\nbCEvHpOVvmxG/P+ihr9a8L9ZQ7f/YbFsBoftNkuhTepezzYzkXYOMPjP7CKb\n+5j7UmFz7ULZtXKL41ZjVhAuzPg6lki4VDQxIeJwKYdlNABs8Ywy47JebJKW\n31w+JdloOVAnQpVCqza72DqVjqUAm91c7hbHrYZFkEqby9HJs07j0XxbtLeW\nkZ1iLitTyXnNF37X6BC/+TM4Dn6dIx0LwZmpjUMotzhuNZYUpAedSbqXVZdw\nFsuoLNZlD56UYhnjDeFdw+nBMADgQIgzH450LAVo6k2L5QnlFsetxsKCdEGz\n0h1b1ivAYhmVJ6nPRSO9+st+qcRngCuxZaGMgtRwWcO4Du531TctF8soCYuk\nCpQsxkEvut/vWbNLpcl3Mowvu1xFRkkcDgf4z6fTKeI96cBWEaPsRm2YxzLH\nbCyWURI60lyIK0MGKcahWzUb+l7YoZjx2T4ZpIhx1e8Wbg25rCILtOXqIXvk\ntFCWs/FkkGISHj/svt0XCWqzGUXi3NrLObtuLIMUk7A5d8f4+NayQDlrZ8TX\nLDPNnjLO9pBa9hCThFO4fVvPFni9ZpmMGEsxMxHj+fDqIcUkOROtvXey67FY\nRplYplgb9ZAiAvfKprqs8B4ZMaBpnT3Ad6mLF2+xjIrAKGfzDcfa+/vEpmEI\nOceNT09PvVdDK7FYRpe5CAxxGHNw9mdyWUUM1CF0QQ6v9cMMIItgD1AmgxQx\nWIdS5/o1gOzRi68bQQYpYqCuO04N60aFrspiGWXCAD+WhkMGKWbguQBJOwQW\n67Wuonvk0cvGhRMZpJjh4eHBGEU60B3XhSV7Bke9v7/HJ77ERX7ZhhnVCP2a\nCcqAwhhfB5NBihm6p8oZCRFMeBRC8+fIIJ69w+6iyLb1YUa4eHp6Cl06rHH1\nhRCeGmqMdK51SDEPqjj6HHugIBheMIneeTs87jIE/89kmFHx0K9N25rwxMum\n7YeRJhI3HunDqEj2h1UID2ECBomuxn7iIKrvp5bul7Ccz58/86hMy05rX0aH\nw4ExphkwmodqrgU8czyp3SDlsgoTqN+hl7DQO4YE9zK+OL9HHS01tBuedxJm\nelY/vQ9y0YW236IeUljhNEzqsbzhXs7W8lQsHkdbaXTHs4xgk+gekdeKNulQ\nTAYprKCW73Y7VC/3gXwwEu77qbdW8d7C6/1+D391rUkdNDowyOQCLLMJUHwM\neE7GZkPOXjYTkZUnNTgOAlEPKdI4HA7o4nyO6wJsJCIr+kYUwBHSVgYpxIbQ\nLKsQG0IGKcSGkEEKsSFkkEJsCBmkEBtCBinEhvgb/dDUOgeJAaQAAAAASUVO\nRK5CYII=\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/ImageMagick/ImageMagick/contents/images/affine.png?ref=master", + "git": "https://api.github.com/repos/ImageMagick/ImageMagick/git/blobs/2c9601bd6e7a46bedb4303f95fca181c961ee406", + "html": "https://github.com/ImageMagick/ImageMagick/blob/master/images/affine.png" + } +} diff --git a/helm/spec/fixtures/github/contents_kubernetes.json b/helm/spec/fixtures/github/contents_kubernetes.json new file mode 100644 index 00000000000..6773d002e7c --- /dev/null +++ b/helm/spec/fixtures/github/contents_kubernetes.json @@ -0,0 +1,18 @@ +{ + "name": "pod.yaml", + "path": "pod.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/pod.yaml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/pod.yaml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/pod.yaml", + "type": "file", + "content": "YXBpVmVyc2lvbjogdjEKa2luZDogUG9kCm1ldGFkYXRhOgogIG5hbWU6IG5naW54CnNwZWM6CiAg\nY29udGFpbmVyczoKICAtIG5hbWU6IG5naW54CiAgICBpbWFnZTogbmdpbngKICAgIHBvcnRzOgog\nICAgLSBjb250YWluZXJQb3J0OiA4MA==", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/pod.yaml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/pod.yaml" + } +} diff --git a/helm/spec/fixtures/github/contents_kubernetes_repo.json b/helm/spec/fixtures/github/contents_kubernetes_repo.json new file mode 100644 index 00000000000..a1e17a0dc58 --- /dev/null +++ b/helm/spec/fixtures/github/contents_kubernetes_repo.json @@ -0,0 +1,226 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "pod.yaml", + "path": "pod.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Dockerfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Dockerfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Dockerfile" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_kubernetes_repo_multiple.json b/helm/spec/fixtures/github/contents_kubernetes_repo_multiple.json new file mode 100644 index 00000000000..7a3f555a249 --- /dev/null +++ b/helm/spec/fixtures/github/contents_kubernetes_repo_multiple.json @@ -0,0 +1,242 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "pod.yaml", + "path": "pod.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/pod.yaml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/pod.yaml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/pod.yaml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/pod.yaml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/pod.yaml" + } + }, + { + "name": "deployment.yaml", + "path": "deployment.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/deployment.yaml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/deployment.yaml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/deployment.yaml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/deployment.yaml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/deployment.yaml" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_no_docker_repo.json b/helm/spec/fixtures/github/contents_no_docker_repo.json new file mode 100644 index 00000000000..d69d483f6bc --- /dev/null +++ b/helm/spec/fixtures/github/contents_no_docker_repo.json @@ -0,0 +1,210 @@ +[ + { + "name": ".circleci", + "path": ".circleci", + "sha": "a55330d23efd5d7a9f6de2f199025afaee1ec850", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/.circleci", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.circleci?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/a55330d23efd5d7a9f6de2f199025afaee1ec850", + "html": "https://github.com/dependabot/dependabot-core/tree/master/.circleci" + } + }, + { + "name": ".editorconfig", + "path": ".editorconfig", + "sha": "90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "size": 198, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.editorconfig", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.editorconfig?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/90198c6fd1a76a01ccaa2bc945687b3fdf46401c", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.editorconfig" + } + }, + { + "name": ".gitignore", + "path": ".gitignore", + "sha": "952d80d51793764e2b9761b39dd714d6529c9c89", + "size": 346, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.gitignore", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.gitignore?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/952d80d51793764e2b9761b39dd714d6529c9c89", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.gitignore" + } + }, + { + "name": ".rubocop.yml", + "path": ".rubocop.yml", + "sha": "3610f39558406539335bcffbdcb6626ec30f8271", + "size": 746, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/.rubocop.yml", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/.rubocop.yml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/3610f39558406539335bcffbdcb6626ec30f8271", + "html": "https://github.com/dependabot/dependabot-core/blob/main/.rubocop.yml" + } + }, + { + "name": "CHANGELOG.md", + "path": "CHANGELOG.md", + "sha": "fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "size": 114851, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CHANGELOG.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CHANGELOG.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/fc4a6a0790fc4a903ed2a0636f46b361ad6144c6", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CHANGELOG.md" + } + }, + { + "name": "CONTRIBUTING.md", + "path": "CONTRIBUTING.md", + "sha": "c60e1930968302a75220f8c09201450ff65e78f7", + "size": 2239, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/CONTRIBUTING.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/CONTRIBUTING.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/c60e1930968302a75220f8c09201450ff65e78f7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/CONTRIBUTING.md" + } + }, + { + "name": "Gemfile", + "path": "Gemfile", + "sha": "be173b205f70152dd1e0a0319f131e51c49eb9cd", + "size": 70, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/Gemfile", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/Gemfile?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/be173b205f70152dd1e0a0319f131e51c49eb9cd", + "html": "https://github.com/dependabot/dependabot-core/blob/main/Gemfile" + } + }, + { + "name": "LICENSE", + "path": "LICENSE", + "sha": "7c97dc80776f919c97e2ad78893ef196726c3521", + "size": 1554, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/LICENSE", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/7c97dc80776f919c97e2ad78893ef196726c3521", + "html": "https://github.com/dependabot/dependabot-core/blob/main/LICENSE" + } + }, + { + "name": "README.md", + "path": "README.md", + "sha": "d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "size": 6078, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/README.md", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/README.md", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/README.md?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/d9e7b752b507ea93199b52a8866dabd26d0ddae7", + "html": "https://github.com/dependabot/dependabot-core/blob/main/README.md" + } + }, + { + "name": "dependabot-core.gemspec", + "path": "dependabot-core.gemspec", + "sha": "70ca6dcb9506728ca235748d27fb871497c349a0", + "size": 1571, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/dependabot-core.gemspec", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/dependabot-core.gemspec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/70ca6dcb9506728ca235748d27fb871497c349a0", + "html": "https://github.com/dependabot/dependabot-core/blob/main/dependabot-core.gemspec" + } + }, + { + "name": "helpers", + "path": "helpers", + "sha": "900f6c83a9611c92478918dfca8e541261912e8c", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/helpers", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/helpers?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/900f6c83a9611c92478918dfca8e541261912e8c", + "html": "https://github.com/dependabot/dependabot-core/tree/master/helpers" + } + }, + { + "name": "lib", + "path": "lib", + "sha": "8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/lib", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/lib?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/8493ef79eb42da9d8aaa1e78dab729e3c08d22ee", + "html": "https://github.com/dependabot/dependabot-core/tree/master/lib" + } + }, + { + "name": "spec", + "path": "spec", + "sha": "40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "size": 0, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/tree/master/spec", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "download_url": null, + "type": "dir", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/spec?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/trees/40e3fc7a0819fac4c3e30b0d4217ad11ffc2ceef", + "html": "https://github.com/dependabot/dependabot-core/tree/master/spec" + } + } +] diff --git a/helm/spec/fixtures/github/contents_other_yaml.json b/helm/spec/fixtures/github/contents_other_yaml.json new file mode 100644 index 00000000000..75491e0bc72 --- /dev/null +++ b/helm/spec/fixtures/github/contents_other_yaml.json @@ -0,0 +1,19 @@ +{ + "name": "other.yaml", + "path": "other.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/other.yaml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/other.yaml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/other.yaml", + "type": "file", + "content": "aW5oZXJpdF9mcm9tOiAuLi8ucnVib2NvcC55bWwK", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/other.yaml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/other.yaml" + } +} + diff --git a/helm/spec/fixtures/github/contents_values_yaml.json b/helm/spec/fixtures/github/contents_values_yaml.json new file mode 100644 index 00000000000..bca2b74f052 --- /dev/null +++ b/helm/spec/fixtures/github/contents_values_yaml.json @@ -0,0 +1,18 @@ +{ + "name": "values.yaml", + "path": "values.yaml", + "sha": "311f9743315183cc6751313cb251cfeb3de45c1a", + "size": 4927, + "url": "https://api.github.com/repos/dependabot/dependabot-core/contents/values.yaml?ref=master", + "html_url": "https://github.com/dependabot/dependabot-core/blob/main/values.yaml", + "git_url": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "download_url": "https://raw.githubusercontent.com/dependabot/dependabot-core/master/values.yaml", + "type": "file", + "content": "aW1hZ2U6CiAgcmVwb3NpdG9yeTogJ25naW54JwogIHRhZzogMS4xNC4yCiAgcmVnaXN0cnk6IHJlZ2lzdHJ5LmV4YW1wbGUuY29tCnNvbWU6CiAgb3RoZXI6CiAgICB0YWc6IGZvbw==", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/dependabot/dependabot-core/contents/values.yaml?ref=master", + "git": "https://api.github.com/repos/dependabot/dependabot-core/git/blobs/311f9743315183cc6751313cb251cfeb3de45c1a", + "html": "https://github.com/dependabot/dependabot-core/blob/main/values.yaml" + } +} diff --git a/helm/spec/fixtures/github/not_found.json b/helm/spec/fixtures/github/not_found.json new file mode 100644 index 00000000000..352b627b155 --- /dev/null +++ b/helm/spec/fixtures/github/not_found.json @@ -0,0 +1,4 @@ +{ + "message": "Not Found", + "documentation_url": "https://developer.github.com/v3" +} diff --git a/helm/spec/fixtures/helm/yaml/digest.yaml b/helm/spec/fixtures/helm/yaml/digest.yaml new file mode 100644 index 00000000000..8c9e3a681e8 --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/digest.yaml @@ -0,0 +1,7 @@ +foo: + image: nginx:1.14.2 + +bar: + image: + repository: 'canonical/ubuntu' + version: 'sha256:295c7be079025306c4f1d65997fcf7adb411c88f139ad1d34b537164aa060369' diff --git a/helm/spec/fixtures/helm/yaml/double-quotes.yaml b/helm/spec/fixtures/helm/yaml/double-quotes.yaml new file mode 100644 index 00000000000..db81f40e11d --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/double-quotes.yaml @@ -0,0 +1,4 @@ +image: + repository: "nginx" + tag: "1.14.2" + registry: "registry.example.com" diff --git a/helm/spec/fixtures/helm/yaml/empty.yaml b/helm/spec/fixtures/helm/yaml/empty.yaml new file mode 100644 index 00000000000..401bf3a7bb9 --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/empty.yaml @@ -0,0 +1,3 @@ +some: + other: + tag: foo diff --git a/helm/spec/fixtures/helm/yaml/mixed-image.yaml b/helm/spec/fixtures/helm/yaml/mixed-image.yaml new file mode 100644 index 00000000000..4a84c05c04b --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/mixed-image.yaml @@ -0,0 +1,7 @@ +foo: + image: nginx:1.14.2 + +bar: + image: + repository: 'canonical/ubuntu' + tag: 18.04 diff --git a/helm/spec/fixtures/helm/yaml/multi-image.yaml b/helm/spec/fixtures/helm/yaml/multi-image.yaml new file mode 100644 index 00000000000..85a3f91c1b2 --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/multi-image.yaml @@ -0,0 +1,10 @@ +foo: + image: + repository: 'nginx' + tag: 1.14.2 + registry: burns.azurecr.io + +bar: + image: + repository: 'canonical/ubuntu' + tag: 18.04 diff --git a/helm/spec/fixtures/helm/yaml/no-registry.yaml b/helm/spec/fixtures/helm/yaml/no-registry.yaml new file mode 100644 index 00000000000..d9b8c19504c --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/no-registry.yaml @@ -0,0 +1,3 @@ +image: + repository: 'mcr.microsoft.com/sql/sql' + version: v1.2.3 diff --git a/helm/spec/fixtures/helm/yaml/no-tag.yaml b/helm/spec/fixtures/helm/yaml/no-tag.yaml new file mode 100644 index 00000000000..ebffc3e0503 --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/no-tag.yaml @@ -0,0 +1,3 @@ +image: + repository: 'nginx' + registry: registry.example.com diff --git a/helm/spec/fixtures/helm/yaml/single-quotes.yaml b/helm/spec/fixtures/helm/yaml/single-quotes.yaml new file mode 100644 index 00000000000..17b6ffc7639 --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/single-quotes.yaml @@ -0,0 +1,4 @@ +image: + repository: 'nginx' + tag: '1.14.2' + registry: 'registry.example.com' diff --git a/helm/spec/fixtures/helm/yaml/values.yaml b/helm/spec/fixtures/helm/yaml/values.yaml new file mode 100644 index 00000000000..f40ac1a1aaf --- /dev/null +++ b/helm/spec/fixtures/helm/yaml/values.yaml @@ -0,0 +1,7 @@ +image: + repository: 'nginx' + tag: 1.14.2 + registry: registry.example.com +some: + other: + tag: foo diff --git a/helm/spec/fixtures/kubernetes/yaml/bare.yaml b/helm/spec/fixtures/kubernetes/yaml/bare.yaml new file mode 100644 index 00000000000..e65ec6f5b01 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/bare.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/digest.yaml b/helm/spec/fixtures/kubernetes/yaml/digest.yaml new file mode 100644 index 00000000000..3b496d9a013 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/digest.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/digest_and_tag.yaml b/helm/spec/fixtures/kubernetes/yaml/digest_and_tag.yaml new file mode 100644 index 00000000000..0f73153b0fb --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/digest_and_tag.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: ubuntu:12.04.5@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/hyphen.yaml b/helm/spec/fixtures/kubernetes/yaml/hyphen.yaml new file mode 100644 index 00000000000..ff55052b9ab --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/hyphen.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - image: nginx:1.14.2 + name: nginx + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/multiple-resources.yaml b/helm/spec/fixtures/kubernetes/yaml/multiple-resources.yaml new file mode 100644 index 00000000000..156ac6ec977 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/multiple-resources.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: nginx:1.2.34 + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: ubuntu:20.04.2 diff --git a/helm/spec/fixtures/kubernetes/yaml/multiple.yaml b/helm/spec/fixtures/kubernetes/yaml/multiple.yaml new file mode 100644 index 00000000000..56b7e46444b --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/multiple.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: ubuntu:17.04 + ports: + - containerPort: 80 + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/multiple_identical.yaml b/helm/spec/fixtures/kubernetes/yaml/multiple_identical.yaml new file mode 100644 index 00000000000..7edeb9c1581 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/multiple_identical.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: server +spec: + containers: + - name: nginx2 + image: nginx:1.14.2 + ports: + - containerPort: 80 + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/namespace.yaml b/helm/spec/fixtures/kubernetes/yaml/namespace.yaml new file mode 100644 index 00000000000..146ad1219c8 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/namespace.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: my-repo/nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/non-numeric.yaml b/helm/spec/fixtures/kubernetes/yaml/non-numeric.yaml new file mode 100644 index 00000000000..2d4536c593a --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/non-numeric.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: nginx:fancy + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/pod.yaml b/helm/spec/fixtures/kubernetes/yaml/pod.yaml new file mode 100644 index 00000000000..0e79d8a3c61 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/pod.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/private_digest.yaml b/helm/spec/fixtures/kubernetes/yaml/private_digest.yaml new file mode 100644 index 00000000000..8df4c34cee1 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/private_digest.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: registry-host.io:5000/myreg/ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/private_no_port.yaml b/helm/spec/fixtures/kubernetes/yaml/private_no_port.yaml new file mode 100644 index 00000000000..b994ce3b40c --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/private_no_port.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: aws-account-id.dkr.ecr.region.amazonaws.com/myreg/ubuntu:17.04 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/private_tag.yaml b/helm/spec/fixtures/kubernetes/yaml/private_tag.yaml new file mode 100644 index 00000000000..bb7f521aeff --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/private_tag.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: registry-host.io:5000/myreg/ubuntu:17.04 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/unexpected_image.yaml b/helm/spec/fixtures/kubernetes/yaml/unexpected_image.yaml new file mode 100644 index 00000000000..b2e1cdbaa4b --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/unexpected_image.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: <>/sdf/official/stuff/thing:<> + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/v1_tag.yaml b/helm/spec/fixtures/kubernetes/yaml/v1_tag.yaml new file mode 100644 index 00000000000..76b021418da --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/v1_tag.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: ubuntu +spec: + containers: + - name: ubuntu + image: docker.io/myreg/ubuntu:17.04 + ports: + - containerPort: 80 diff --git a/helm/spec/fixtures/kubernetes/yaml/with_bom.yaml b/helm/spec/fixtures/kubernetes/yaml/with_bom.yaml new file mode 100644 index 00000000000..0e79d8a3c61 --- /dev/null +++ b/helm/spec/fixtures/kubernetes/yaml/with_bom.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx +spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/helm/spec/spec_helper.rb b/helm/spec/spec_helper.rb new file mode 100644 index 00000000000..7e958fe4eb4 --- /dev/null +++ b/helm/spec/spec_helper.rb @@ -0,0 +1,12 @@ +# typed: true +# frozen_string_literal: true + +def common_dir + @common_dir ||= Gem::Specification.find_by_name("helm").gem_dir +end + +def require_common_spec(path) + require "#{common_dir}/spec/dependabot/#{path}" +end + +require "#{common_dir}/spec/spec_helper.rb" diff --git a/omnibus/lib/dependabot/omnibus.rb b/omnibus/lib/dependabot/omnibus.rb index da6541ca3e9..654a7bbe331 100644 --- a/omnibus/lib/dependabot/omnibus.rb +++ b/omnibus/lib/dependabot/omnibus.rb @@ -13,6 +13,7 @@ require "dependabot/nuget" require "dependabot/gradle" require "dependabot/maven" +require "dependabot/helm" require "dependabot/hex" require "dependabot/cargo" require "dependabot/go_modules"