module

Fetcher::Software

Constants

CODEBERG_RELEASES_PATTERN = /https?:\/\/(?:www\.)?codeberg\.org\/([^\/]+\/[^\/]+)(?:\/[^\/]*)*\/releases/
CODEBERG_REPO_PATTERN = /https:\/\/(?:www\.)?codeberg\.org\/([^\/]+\/[^\/]+)\/?/
GITHUB_RELEASES_PATTERN = /https?:\/\/(?:www\.)?github\.com\/([^\/]+\/[^\/]+)(?:\/[^\/]*)*\/releases/
GITHUB_REPO_PATTERN = /https:\/\/(?:www\.)?github\.com\/([^\/]+\/[^\/]+)\/?/

Pre-compiled patterns for repo extraction (using %r for cleaner regex)

GITLAB_RELEASES_PATTERN = /https?:\/\/([^\/.]+\.[^\/]+)\/([^\/]+\/[^\/]+)\/-\/releases/

Class methods

debug_build_codeberg_provider(repo : String) : SoftwareProvider

Debug helper for tests: construct a Codeberg provider with correct encoding

Source
parse_software_entry(release : JSON::Any, provider : SoftwareProvider, body_field : String = "body") : Entry
Source
pull(url : String, headers : HTTP::Headers, limit : Int32 = 100, config : RequestConfig = RequestConfig.new) : Result
Source
try_atom_fallback(provider : SoftwareProvider, limit : Int32, http_client : CrestHttpClient, headers : HTTP::Headers) : Result | Nil
Source
try_releases_sequence(provider_name : String, provider : SoftwareProvider, limit : Int32, http_client : CrestHttpClient, headers : HTTP::Headers) : Result
Source
try_software_api(provider_name : String, provider : SoftwareProvider, limit : Int32, http_client : CrestHttpClient, headers : HTTP::Headers) : Result | Nil
Source

Nested types