Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
brew
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to JiHu GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KMSCAKKSCFKA AKFACAMADCAS
brew
Commits
28bfa0c9
Unverified
Commit
28bfa0c9
authored
4 years ago
by
Sam Ford
Browse files
Options
Downloads
Patches
Plain Diff
GithubLatest: Rework documentation comments
parent
524272ae
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Library/Homebrew/livecheck/strategy/github_latest.rb
+21
-10
21 additions, 10 deletions
Library/Homebrew/livecheck/strategy/github_latest.rb
with
21 additions
and
10 deletions
Library/Homebrew/livecheck/strategy/github_latest.rb
+
21
−
10
View file @
28bfa0c9
...
...
@@ -5,7 +5,7 @@ module Homebrew
module
Livecheck
module
Strategy
# The {GithubLatest} strategy identifies versions of software at
# github.com by checking a repository's latest release page.
# github.com by checking a repository's
"
latest
"
release page.
#
# GitHub URLs take a few different formats:
#
...
...
@@ -13,17 +13,30 @@ module Homebrew
# * `https://github.com/example/example/archive/v1.2.3.tar.gz`
# * `https://github.com/downloads/example/example/example-1.2.3.tar.gz`
#
#
This strategy is used when latest releases are marked for software hosted
#
on GitHub. It is necessary to use `strategy :github_latest` in a `livecheck`
#
block for Livecheck to use this strategy
.
#
A repository's `/releases/latest` URL normally redirects to a release
#
tag (e.g., `/releases/tag/1.2.3`). When there isn't a "latest" release,
#
it will redirect to the `/releases` page
.
#
# The default regex identifies versions from `href` attributes containing the
# tag name.
# This strategy should only be used when we know the upstream repository
# has a "latest" release and the tagged release is appropriate to use
# (e.g., "latest" isn't wrongly pointing to an unstable version, not
# picking up the actual latest version, etc.). The strategy can only be
# applied by using `strategy :github_latest` in a `livecheck` block.
#
# The default regex identifies versions like `1.2.3`/`v1.2.3` in `href`
# attributes containing the tag URL (e.g.,
# `/example/example/releases/tag/v1.2.3`). This is a common tag format
# but a modified regex can be provided in a `livecheck` block to override
# the default if a repository uses a different format (e.g.,
# `example-1.2.3`, `1.2.3d`, `1.2.3-4`, etc.).
#
# @api public
class
GithubLatest
NICE_NAME
=
"GitHub - Latest"
# A priority of zero causes livecheck to skip the strategy. We do this
# for {GithubLatest} so we can selectively apply the strategy using
# `strategy :github_latest` in a `livecheck` block.
PRIORITY
=
0
# The `Regexp` used to determine if the strategy applies to the URL.
...
...
@@ -46,12 +59,10 @@ module Homebrew
def
self
.
find_versions
(
url
,
regex
=
nil
)
%r{github
\.
com/(?:downloads/)?(?<username>[^/]+)/(?<repository>[^/]+)}i
=~
url
.
sub
(
/\.git$/i
,
""
)
#
The page containing the latest release
#
Example URL: `https://github.com/example/example/releases/latest`
page_url
=
"https://github.com/
#{
username
}
/
#{
repository
}
/releases/latest"
# The default regex applies to most repositories, but may have to be
# replaced with a specific regex when the tag names contain the package
# name or other characters apart from the version.
# The default regex is the same for all URLs using this strategy
regex
||=
%r{href=.*?/tag/v?(
\d
+(?:
\.\d
+)+)["' >]}i
Homebrew
::
Livecheck
::
Strategy
::
PageMatch
.
find_versions
(
page_url
,
regex
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment