Sha256: d43402685dbb257459e5cfafda6e29a7ac35fccfd66b27083e104116ee4e2d6f

Contents?: true

Size: 1.94 KB

Versions: 861

Compression:

Stored size: 1.94 KB

Contents

# frozen_string_literal: true

require "dependabot/file_updaters"
require "dependabot/file_updaters/base"
require "dependabot/shared_helpers"
require "dependabot/errors"

module Dependabot
  module Composer
    class FileUpdater < Dependabot::FileUpdaters::Base
      require_relative "file_updater/manifest_updater"
      require_relative "file_updater/lockfile_updater"

      def self.updated_files_regex
        [
          /^composer\.json$/,
          /^composer\.lock$/
        ]
      end

      def updated_dependency_files
        updated_files = []

        if file_changed?(composer_json)
          updated_files <<
            updated_file(
              file: composer_json,
              content: updated_composer_json_content
            )
        end

        if lockfile
          updated_files <<
            updated_file(file: lockfile, content: updated_lockfile_content)
        end

        if updated_files.none? ||
           updated_files.sort_by(&:name) == dependency_files.sort_by(&:name)
          raise "No files have changed!"
        end

        updated_files
      end

      private

      def check_required_files
        raise "No composer.json!" unless get_original_file("composer.json")
      end

      def updated_composer_json_content
        ManifestUpdater.new(
          dependencies: dependencies,
          manifest: composer_json
        ).updated_manifest_content
      end

      def updated_lockfile_content
        @updated_lockfile_content ||=
          LockfileUpdater.new(
            dependencies: dependencies,
            dependency_files: dependency_files,
            credentials: credentials
          ).updated_lockfile_content
      end

      def composer_json
        @composer_json ||= get_original_file("composer.json")
      end

      def lockfile
        @lockfile ||= get_original_file("composer.lock")
      end
    end
  end
end

Dependabot::FileUpdaters.register("composer", Dependabot::Composer::FileUpdater)

Version data entries

861 entries across 861 versions & 1 rubygems

Version Path
dependabot-composer-0.230.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.229.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.228.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.227.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.226.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.225.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.224.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.223.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.222.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.221.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.220.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.219.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.218.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.217.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.216.2 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.216.1 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.216.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.215.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.214.0 lib/dependabot/composer/file_updater.rb
dependabot-composer-0.213.0 lib/dependabot/composer/file_updater.rb