lib/dependabot/credential.rb
# typed: strict # frozen_string_literal: true require "sorbet-runtime" require "forwardable" module Dependabot class Credential extend T::Sig extend Forwardable def_delegators :@credential, :fetch, :keys, :[]=, :delete, :slice, :values, :entries sig { params(credential: T::Hash[String, T.any(T::Boolean, String)]).void } def initialize(credential) @replaces_base = T.let(credential["replaces-base"] == true, T::Boolean) credential.delete("replaces-base") @credential = T.let(T.unsafe(credential), T::Hash[String, String]) end sig { returns(T::Boolean) } def replaces_base? @replaces_base end sig { params(key: String).returns(T.nilable(String)) } def [](key) @credential[key] end sig { params(other: Credential).returns(Credential) } def merge(other) Credential.new(@credential.merge(other.to_h)) end sig { returns(T::Hash[String, String]) } def to_h @credential end end end