contributions, github: reorder requires
Per feedback to https://github.com/Homebrew/brew/pull/17806, this moves some `require` statements in `dev-cmd/contributions.rb` and `Utils::GitHub` into the methods that need them.
This commit is contained in:
parent
0f0e2c7bd9
commit
a6e61fd664
@ -2,8 +2,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "abstract_command"
|
||||
require "tap"
|
||||
require "utils/github"
|
||||
|
||||
module Homebrew
|
||||
module DevCmd
|
||||
@ -68,6 +66,7 @@ module Homebrew
|
||||
|
||||
contribution_types = [:author, :committer, :coauthor, :review]
|
||||
|
||||
require "utils/github"
|
||||
users = args.user.presence || GitHub.members_by_team("Homebrew", "maintainers").keys
|
||||
users.each do |username|
|
||||
# TODO: Using the GitHub username to scan the `git log` undercounts some
|
||||
@ -106,6 +105,7 @@ module Homebrew
|
||||
def find_repo_path_for_repo(repo)
|
||||
return HOMEBREW_REPOSITORY if repo == "brew"
|
||||
|
||||
require "tap"
|
||||
Tap.fetch("homebrew", repo).path
|
||||
end
|
||||
|
||||
@ -169,6 +169,8 @@ module Homebrew
|
||||
data = {}
|
||||
return data if repos.blank?
|
||||
|
||||
require "tap"
|
||||
require "utils/github"
|
||||
repos.each do |repo|
|
||||
repo_path = find_repo_path_for_repo(repo)
|
||||
tap = Tap.fetch("homebrew", repo)
|
||||
@ -229,6 +231,7 @@ module Homebrew
|
||||
to: T.nilable(String)).returns(Integer)
|
||||
}
|
||||
def count_reviews(repo_full_name, person, from:, to:)
|
||||
require "utils/github"
|
||||
GitHub.count_issues("", is: "pr", repo: repo_full_name, reviewed_by: person, review: "approved", from:, to:)
|
||||
rescue GitHub::API::ValidationFailedError
|
||||
if args.verbose?
|
||||
|
||||
@ -2,8 +2,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "uri"
|
||||
require "utils/curl"
|
||||
require "utils/popen"
|
||||
require "utils/github/actions"
|
||||
require "utils/github/api"
|
||||
|
||||
@ -705,6 +703,7 @@ module GitHub
|
||||
pr_message = info[:pr_message]
|
||||
|
||||
sourcefile_path.parent.cd do
|
||||
require "utils/popen"
|
||||
git_dir = Utils.popen_read("git", "rev-parse", "--git-dir").chomp
|
||||
shallow = !git_dir.empty? && File.exist?("#{git_dir}/shallow")
|
||||
changed_files = [sourcefile_path]
|
||||
@ -814,6 +813,7 @@ module GitHub
|
||||
def self.last_commit(user, repo, ref, version)
|
||||
return if Homebrew::EnvConfig.no_github_api?
|
||||
|
||||
require "utils/curl"
|
||||
output, _, status = Utils::Curl.curl_output(
|
||||
"--silent", "--head", "--location",
|
||||
"--header", "Accept: application/vnd.github.sha",
|
||||
@ -832,6 +832,7 @@ module GitHub
|
||||
def self.multiple_short_commits_exist?(user, repo, commit)
|
||||
return false if Homebrew::EnvConfig.no_github_api?
|
||||
|
||||
require "utils/curl"
|
||||
output, _, status = Utils::Curl.curl_output(
|
||||
"--silent", "--head", "--location",
|
||||
"--header", "Accept: application/vnd.github.sha",
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "securerandom"
|
||||
require "utils/tty"
|
||||
|
||||
module GitHub
|
||||
# Helper functions for interacting with GitHub Actions.
|
||||
#
|
||||
@ -22,6 +19,7 @@ module GitHub
|
||||
# Format multiline strings for environment files
|
||||
# See https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
|
||||
require "securerandom"
|
||||
delimiter = "ghadelimiter_#{SecureRandom.uuid}"
|
||||
|
||||
if name.include?(delimiter) || value.include?(delimiter)
|
||||
@ -84,6 +82,7 @@ module GitHub
|
||||
def initialize(type, message, file: nil, title: nil, line: nil, end_line: nil, column: nil, end_column: nil)
|
||||
raise ArgumentError, "Unsupported type: #{type.inspect}" if ANNOTATION_TYPES.exclude?(type)
|
||||
|
||||
require "utils/tty"
|
||||
@type = type
|
||||
@message = T.let(Tty.strip_ansi(message), String)
|
||||
@file = T.let(self.class.path_relative_to_workspace(file), T.nilable(Pathname)) if file.present?
|
||||
|
||||
@ -2,14 +2,11 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "system_command"
|
||||
require "tempfile"
|
||||
require "utils/curl"
|
||||
require "utils/shell"
|
||||
require "utils/formatter"
|
||||
require "utils/uid"
|
||||
|
||||
module GitHub
|
||||
def self.pat_blurb(scopes = ALL_SCOPES)
|
||||
require "utils/formatter"
|
||||
require "utils/shell"
|
||||
<<~EOS
|
||||
Create a GitHub personal access token:
|
||||
#{Formatter.url(
|
||||
@ -98,6 +95,7 @@ module GitHub
|
||||
printf "protocol=https\\nhost=github.com\\n" | git credential-osxkeychain erase
|
||||
EOS
|
||||
when :env_token
|
||||
require "utils/formatter"
|
||||
<<~EOS
|
||||
HOMEBREW_GITHUB_API_TOKEN may be invalid or expired; check:
|
||||
#{Formatter.url("https://github.com/settings/tokens")}
|
||||
@ -148,6 +146,7 @@ module GitHub
|
||||
# Gets the token from the GitHub CLI for github.com.
|
||||
sig { returns(T.nilable(String)) }
|
||||
def self.github_cli_token
|
||||
require "utils/uid"
|
||||
Utils::UID.drop_euid do
|
||||
# Avoid `Formula["gh"].opt_bin` so this method works even with `HOMEBREW_DISABLE_LOAD_FORMULA`.
|
||||
env = {
|
||||
@ -168,6 +167,7 @@ module GitHub
|
||||
# but only if that password looks like a GitHub Personal Access Token.
|
||||
sig { returns(T.nilable(String)) }
|
||||
def self.keychain_username_password
|
||||
require "utils/uid"
|
||||
Utils::UID.drop_euid do
|
||||
git_credential_out, _, result = system_command "git",
|
||||
args: ["credential-osxkeychain", "get"],
|
||||
@ -252,6 +252,7 @@ module GitHub
|
||||
args += ["--header", "Authorization: token #{token}"] if credentials_type != :none
|
||||
args += ["--header", "X-GitHub-Api-Version:2022-11-28"]
|
||||
|
||||
require "tempfile"
|
||||
data_tmpfile = nil
|
||||
if data
|
||||
begin
|
||||
@ -279,6 +280,7 @@ module GitHub
|
||||
|
||||
args += ["--dump-header", T.must(headers_tmpfile.path)]
|
||||
|
||||
require "utils/curl"
|
||||
output, errors, status = Utils::Curl.curl_output("--location", url.to_s, *args, secrets: [token])
|
||||
output, _, http_code = output.rpartition("\n")
|
||||
output, _, http_code = output.rpartition("\n") if http_code == "000"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user