Spec-Zone.ru › Homebrew

Класс: CurlGitHubPackagesDownloadStrategy

Наследует:
CurlDownloadStrategy
  • Object
  • AbstractDownloadStrategy
  • AbstractFileDownloadStrategy
  • CurlDownloadStrategy
  • CurlGitHubPackagesDownloadStrategy
показать все
Определено в:
download_strategy/curl_github_packages_download_strategy.rb

Обзор

Стратегия загрузки файла по URL-адресу GitHub Packages.

Краткое описание констант

Константы, унаследованные от CurlDownloadStrategy

CurlDownloadStrategy::URLMetadata

Краткое описание атрибутов экземпляра свернуть

  • #resolved_basename ⇒ String? только для записи закрытый

Атрибуты, унаследованные от CurlDownloadStrategy

#mirrors

Атрибуты, унаследованные от AbstractDownloadStrategy

#cache, #url

Краткое описание методов экземпляра свернуть

  • #bottle_blob_sha256 ⇒ String? закрытый
  • #cached_location ⇒ Pathname закрытый
  • #immutable_bottle_blob? ⇒ Boolean закрытый
  • #initialize(url, name, version, **meta) ⇒ void конструктор закрытый

Методы, унаследованные от CurlDownloadStrategy

#clear_cache, #fetch, #resolved_time_file_size, #total_size

Методы, включённые из Utils::Curl

clear_path_cache, curl, curl_args, curl_check_http_content, curl_download, curl_executable, curl_headers, curl_http_content_headers_and_checksum, curl_output, curl_path, curl_response_follow_redirections, curl_response_last_location, curl_supports_fail_with_body?, curl_supports_tls13?, curl_version, curl_with_workarounds, http_status_ok?, insecure_redirect?, no_insecure_redirect_curl_args, parse_curl_output, parse_curl_response, url_protected_by_cloudflare?, url_protected_by_incapsula?

Методы, включённые из SystemCommand::Mixin

#system_command, #system_command!

Методы, включённые из Utils::Output::Mixin

#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_upgradable, #pretty_warning

Методы, унаследованные от AbstractFileDownloadStrategy

#basename, #create_symlink_to_cached_download, #fetched_size, #symlink_location, #temporary_path

Методы, унаследованные от AbstractDownloadStrategy

#basename, #clear_cache, #fetch, #fetched_size, #ohai, #quiet!, #quiet?, #source_modified_time, #source_revision, #stage, #total_size

Методы, включённые из Context

current, current=, #debug?, #quiet?, #verbose?, #with_context

Подробное описание конструкторов

#initialize(url, name, version, **meta) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • url (String)
  • name (String)
  • version (String, Version, nil)
  • meta (T.untyped)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'download_strategy/curl_github_packages_download_strategy.rb', line 12

def initialize(url, name, version, **meta)
  meta[:headers] ||= []
  # GitHub Packages authorization header.
  # HOMEBREW_GITHUB_PACKAGES_AUTH set in brew.sh
  # If using a private GHCR mirror with no Authentication set or HOMEBREW_GITHUB_PACKAGES_AUTH is empty
  # then do not add the header. In all other cases add it.
  if HOMEBREW_GITHUB_PACKAGES_AUTH.presence && (
     !Homebrew::EnvConfig.artifact_domain.presence ||
     Homebrew::EnvConfig.docker_registry_basic_auth_token.presence ||
     Homebrew::EnvConfig.docker_registry_token.presence
   )
    meta[:headers] << "Authorization: #{HOMEBREW_GITHUB_PACKAGES_AUTH}"
  end
  super
end

Подробное описание атрибутов экземпляра

#resolved_basename=(value) ⇒ String? (только для записи)

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String, nil)


9
10
11
# File 'download_strategy/curl_github_packages_download_strategy.rb', line 9

def resolved_basename=(value)
  @resolved_basename = value
end

Подробное описание методов экземпляра

#bottle_blob_sha256 ⇒ String?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String, nil)


48
49
50
# File 'download_strategy/curl_github_packages_download_strategy.rb', line 48

def bottle_blob_sha256
  url[%r{/blobs/sha256:([0-9a-f]{64})(?:[?#]|$)}i, 1]&.downcase
end

#cached_location ⇒ Pathname

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


29
30
31
32
33
34
35
36
# File 'download_strategy/curl_github_packages_download_strategy.rb', line 29

def cached_location
  return super unless immutable_bottle_blob?

  cached_location = @cached_location
  return cached_location unless cached_location.nil?

  @cached_location = HOMEBREW_CACHE/"downloads/#{Digest::SHA256.hexdigest(url)}--#{Utils.safe_filename(@resolved_basename.to_s)}"
end

#immutable_bottle_blob? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


39
40
41
42
43
44
45
# File 'download_strategy/curl_github_packages_download_strategy.rb', line 39

def immutable_bottle_blob?
  return false if meta[:bottle] != true
  return false unless mirrors.empty?
  return false if @resolved_basename.blank?

  !bottle_blob_sha256.nil?
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/CurlGitHubPackagesDownloadStrategy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API