Merge pull request #10283 from SeekingMeaning/github-util-cleanup
utils/github: cleanup
This commit is contained in:
		
						commit
						f113f78ae2
					
				@ -92,6 +92,14 @@ module GitHub
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  API_ERRORS = [
 | 
			
		||||
    AuthenticationFailedError,
 | 
			
		||||
    HTTPNotFoundError,
 | 
			
		||||
    RateLimitExceededError,
 | 
			
		||||
    Error,
 | 
			
		||||
    JSON::ParserError,
 | 
			
		||||
  ].freeze
 | 
			
		||||
 | 
			
		||||
  # Gets the password field from `git-credential-osxkeychain` for github.com,
 | 
			
		||||
  # but only if that password looks like a GitHub Personal Access Token.
 | 
			
		||||
  sig { returns(T.nilable(String)) }
 | 
			
		||||
@ -151,7 +159,7 @@ module GitHub
 | 
			
		||||
    needed_human_scopes = "none" if needed_human_scopes.blank?
 | 
			
		||||
    credentials_scopes = "none" if credentials_scopes.blank?
 | 
			
		||||
 | 
			
		||||
    what = case GitHub.api_credentials_type
 | 
			
		||||
    what = case api_credentials_type
 | 
			
		||||
    when :keychain_username_password
 | 
			
		||||
      "macOS keychain GitHub"
 | 
			
		||||
    when :env_token
 | 
			
		||||
@ -265,7 +273,7 @@ module GitHub
 | 
			
		||||
      raise RateLimitExceededError.new(reset, message)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    GitHub.api_credentials_error_message(meta, scopes)
 | 
			
		||||
    api_credentials_error_message(meta, scopes)
 | 
			
		||||
 | 
			
		||||
    case http_code
 | 
			
		||||
    when "401", "403"
 | 
			
		||||
@ -604,25 +612,20 @@ module GitHub
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_repo_license(user, repo)
 | 
			
		||||
    response = GitHub.open_api("#{GitHub::API_URL}/repos/#{user}/#{repo}/license")
 | 
			
		||||
    response = open_api("#{API_URL}/repos/#{user}/#{repo}/license")
 | 
			
		||||
    return unless response.key?("license")
 | 
			
		||||
 | 
			
		||||
    response["license"]["spdx_id"]
 | 
			
		||||
  rescue GitHub::HTTPNotFoundError
 | 
			
		||||
  rescue HTTPNotFoundError
 | 
			
		||||
    nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def api_errors
 | 
			
		||||
    [GitHub::AuthenticationFailedError, GitHub::HTTPNotFoundError,
 | 
			
		||||
     GitHub::RateLimitExceededError, GitHub::Error, JSON::ParserError].freeze
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def fetch_pull_requests(query, tap_full_name, state: nil)
 | 
			
		||||
    GitHub.issues_for_formula(query, tap_full_name: tap_full_name, state: state).select do |pr|
 | 
			
		||||
    issues_for_formula(query, tap_full_name: tap_full_name, state: state).select do |pr|
 | 
			
		||||
      pr["html_url"].include?("/pull/") &&
 | 
			
		||||
        /(^|\s)#{Regexp.quote(query)}(:|\s|$)/i =~ pr["title"]
 | 
			
		||||
    end
 | 
			
		||||
  rescue GitHub::RateLimitExceededError => e
 | 
			
		||||
  rescue RateLimitExceededError => e
 | 
			
		||||
    opoo e.message
 | 
			
		||||
    []
 | 
			
		||||
  end
 | 
			
		||||
@ -653,9 +656,9 @@ module GitHub
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def forked_repo_info!(tap_full_name)
 | 
			
		||||
    response = GitHub.create_fork(tap_full_name)
 | 
			
		||||
    response = create_fork(tap_full_name)
 | 
			
		||||
    # GitHub API responds immediately but fork takes a few seconds to be ready.
 | 
			
		||||
    sleep 1 until GitHub.check_fork_exists(tap_full_name)
 | 
			
		||||
    sleep 1 until check_fork_exists(tap_full_name)
 | 
			
		||||
    remote_url = if system("git", "config", "--local", "--get-regexp", "remote\..*\.url", "git@github.com:.*")
 | 
			
		||||
      response.fetch("ssh_url")
 | 
			
		||||
    else
 | 
			
		||||
@ -706,8 +709,8 @@ module GitHub
 | 
			
		||||
            username = tap.user
 | 
			
		||||
          else
 | 
			
		||||
            begin
 | 
			
		||||
              remote_url, username = GitHub.forked_repo_info!(tap_full_name)
 | 
			
		||||
            rescue *GitHub.api_errors => e
 | 
			
		||||
              remote_url, username = forked_repo_info!(tap_full_name)
 | 
			
		||||
            rescue *API_ERRORS => e
 | 
			
		||||
              sourcefile_path.atomic_write(old_contents)
 | 
			
		||||
              odie "Unable to fork: #{e.message}!"
 | 
			
		||||
            end
 | 
			
		||||
@ -740,14 +743,14 @@ module GitHub
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        begin
 | 
			
		||||
          url = GitHub.create_pull_request(tap_full_name, commit_message,
 | 
			
		||||
          url = create_pull_request(tap_full_name, commit_message,
 | 
			
		||||
                                    "#{username}:#{branch}", remote_branch, pr_message)["html_url"]
 | 
			
		||||
          if args.no_browse?
 | 
			
		||||
            puts url
 | 
			
		||||
          else
 | 
			
		||||
            exec_browser url
 | 
			
		||||
          end
 | 
			
		||||
        rescue *GitHub.api_errors => e
 | 
			
		||||
        rescue *API_ERRORS => e
 | 
			
		||||
          odie "Unable to open pull request: #{e.message}!"
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user