получение имени репозитория с помощью набора инструментов octokit ruby ​​для github api

В основном я пытаюсь получить имя своего репозитория, используя инструментарий octokit github api ruby. Я просмотрел документацию и файлы кода:

# Get a single repository
  #
  # @see https://developer.github.com/v3/repos/#get
  # @see https://developer.github.com/v3/licenses/#get-a-repositorys-license
  # @param repo [Integer, String, Hash, Repository] A GitHub repository
  # @return [Sawyer::Resource] Repository information
  def repository(repo, options = {})
    get Repository.path(repo), options
  end
  alias :repo :repository

  # Edit a repository
  #
  # @see https://developer.github.com/v3/repos/#edit
  # @param repo [String, Hash, Repository] A GitHub repository
  # @param options [Hash] Repository information to update
  # @option options [String] :name Name of the repo
  # @option options [String] :description Description of the repo
  # @option options [String] :homepage Home page of the repo
  # @option options [String] :private `true` makes the repository private, and `false` makes it public.
  # @option options [String] :has_issues `true` enables issues for this repo, `false` disables issues.
  # @option options [String] :has_wiki `true` enables wiki for this repo, `false` disables wiki.
  # @option options [String] :has_downloads `true` enables downloads for this repo, `false` disables downloads.
  # @option options [String] :default_branch Update the default branch for this repository.
  # @return [Sawyer::Resource] Repository information

Я понимаю, что параметр options является хешем, но я все еще немного смущен тем, как указать аргумент для получения имени репозитория. Вот мой код:

require 'octokit'
require 'netrc'

class Base
 # attr_accessor :un, :pw

 # un = username
 # pw = password

def initialize
  @client = Octokit::Client.new(:access_token =>
   '<access_token>')

  print "Username you want to search?\t"
  @username = gets.chomp.to_s

  @user = @client.user(@username)

  puts "#{@username} email is:\t\t#{@user.email}"
  puts @user.repository('converse', :options => name)
 end
end



start = Base.new

с моим acess_token я могу получить свое или чужое имя github, адрес электронной почты, организацию и т. д., но когда я использую методы... у них всегда есть параметр options, и мне трудно указать правильный аргумент для этого.


person Predevsign    schedule 07.05.2017    source источник


Ответы (1)


Вам нужно будет использовать метод repos вместо метода user:

require 'octokit'
require 'netrc'

class Base

  def initialize
    @client = Octokit::Client.new(:access_token => ENV['GITHUB_API'])

    print "Username you want to search?\t"
    @username = ARGV[0] || gets.chomp.to_s

    @user = @client.user(@username)

    puts "#{@username} email is:\t\t#{@user.email}"

    @client.repos(@username).each do |r|
      puts r[:name]
    end
  end

end

start = Base.new

Полный список возможных ответов см. в документации GitHub API.

Я также сделал два небольших изменения:

  1. Поместите свой токен GitHub API в переменную среды (ENV['GITHUB_API']) вместо его жесткого кодирования.

  2. Во время тестирования мне надоело вводить тестовое имя пользователя вручную, поэтому я использовал параметр командной строки по умолчанию с ручным вводом в качестве запасного варианта:

    @username = ARGV[0] || gets.chomp.to_s
    
person Kathryn    schedule 08.05.2017