module Dependabot::Composer::Helpers

Constants

COMPOSER_V2_NAME_REGEX

From composers json-schema: getcomposer.org/schema.json

PLATFORM_PACKAGE_REGEX

From github.com/composer/composer/blob/b7d770659b4e3ef21423bd67ade935572913a4c1/src/Composer/Repository/PlatformRepository.php#L33

Public Class Methods

composer_version(composer_json, parsed_lockfile = nil) click to toggle source
# File lib/dependabot/composer/helpers.rb, line 16
def self.composer_version(composer_json, parsed_lockfile = nil)
  if parsed_lockfile && parsed_lockfile["plugin-api-version"]
    version = Composer::Version.new(parsed_lockfile["plugin-api-version"])
    return version.canonical_segments.first == 1 ? "v1" : "v2"
  else
    return "v1" if composer_json["name"] && composer_json["name"] !~ COMPOSER_V2_NAME_REGEX
    return "v1" if invalid_v2_requirement?(composer_json)
  end

  "v2"
end

Private Class Methods

invalid_v2_requirement?(composer_json) click to toggle source
# File lib/dependabot/composer/helpers.rb, line 28
def self.invalid_v2_requirement?(composer_json)
  return false unless composer_json.key?("require")

  composer_json["require"].keys.any? do |key|
    key !~ PLATFORM_PACKAGE_REGEX && key !~ COMPOSER_V2_NAME_REGEX
  end
end