mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-06-23 04:44:54 +00:00
23 lines
894 B
Ruby
23 lines
894 B
Ruby
module Pressa
|
|
# Pure git-related decisions for the coverage tasks. The actual git commands
|
|
# run in bake.rb; this just decides which remote to treat as canonical.
|
|
module Git
|
|
class Error < StandardError; end
|
|
|
|
# Remotes are preferred in this order when nothing else picks one.
|
|
DEFAULT_REMOTE_PREFERENCE = %w[github origin].freeze
|
|
|
|
module_function
|
|
|
|
# Pick the remote to resolve the coverage baseline against. An explicit
|
|
# upstream wins; otherwise fall back through the preference list, then to
|
|
# the first configured remote.
|
|
def choose_remote(remotes:, upstream_remote: nil, preference: DEFAULT_REMOTE_PREFERENCE)
|
|
return upstream_remote unless upstream_remote.to_s.empty?
|
|
|
|
raise Error, "no git remotes configured; pass baseline=<ref>." if remotes.empty?
|
|
|
|
preference.find { |name| remotes.include?(name) } || remotes.first
|
|
end
|
|
end
|
|
end
|