Модуль: Patch Приватный
- Определён в:
- patch.rb
Обзор
Этот модуль является частью приватного API. Этот модуль можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.
Вспомогательный модуль для создания патчей.
Краткое описание констант свернуть
- CVE_PATTERN =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
/CVE-?(\d{4})-(\d{4,})/i- GHSA_PATTERN =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
/\AGHSA(-[23456789cfghjmpqrvwx]{4}){3}\z/- TYPES =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
Значения CycloneDX
pedigree.patches.type, применимые к патчам исходного кода.monkeyне учитывается: этот тип описывает модификацию во время выполнения, которуюpatch doне может выразить. Синхронизируйте сPATCH_TYPESвLibrary/Homebrew/rubocops/patches.rb. T.let({ unofficial: "A patch that has not been developed by the upstream maintainers " \ "(e.g. a Homebrew- or distribution-specific build fix).", backport: "A patch that takes code from a newer version of the software and " \ "applies it to the older version Homebrew ships (e.g. an unreleased " \ "upstream security fix).", cherry_pick: "A patch created by selectively applying upstream commits that are " \ "not strictly from a newer release (e.g. a fix from a maintenance branch).", }.freeze, T::Hash[Symbol, String])
Краткое описание методов класса свернуть
- .create(strip, src, &block) ⇒ EmbeddedPatch, ExternalPatch приватный
- .extract_cves(*strings) ⇒ Array<String> приватный
- .resolves_type(id) ⇒ String приватный
Подробное описание методов класса
.create(strip, src, &block) ⇒ EmbeddedPatch, ExternalPatch
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | # File 'patch.rb', line 48 def self.create(strip, src, &block) case strip when :DATA DATAPatch.new(:p1) when String StringPatch.new(:p1, strip) when Symbol case src when :DATA DATAPatch.new(strip) when String StringPatch.new(strip, src) else external_patch = ExternalPatch.new(strip, &block) resource = external_patch.resource if (file = resource.file) raise ArgumentError, "Patch cannot have both `file` and `url`." if resource.url.present? raise ArgumentError, "Patch cannot use `sha256` with `file`." if resource.checksum raise ArgumentError, "Patch cannot use `apply` with `file`." if resource.patch_files.present? LocalPatch.new(strip, file, resource.directory, resolves: resource.resolves, type: resource.type) else external_patch end end end end |
.extract_cves(*strings) ⇒ Array<String>
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
28 29 30 31 32 | # File 'patch.rb', line 28 def self.extract_cves(*strings) strings.flat_map { |s| s.scan(CVE_PATTERN) } .map { |year, id| "CVE-#{year}-#{id}" } .uniq end |
.resolves_type(id) ⇒ String
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
35 36 37 38 39 | # File 'patch.rb', line 35 def self.resolves_type(id) return "security" if id.match?(/\ACVE-\d{4}-\d{4,}\z/) || id.match?(GHSA_PATTERN) "defect" end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Patch.html