Module: Octokit::Client::Users

Included in:
Octokit::Client
Defined in:
lib/octokit/client/users.rb

Overview

Methods for the Users API

Instance Method Summary collapse

Instance Method Details

#add_email(email, options = {}) ⇒ Array<String>

Add email address to user.

Requires authenticated client.

Examples:

@client.add_email('new_email@user.com')

See Also:



312
313
314
315
# File 'lib/octokit/client/users.rb', line 312

def add_email(email, options = {})
  email = Array(email)
  post "user/emails", email
end

#add_key(title, key, options = {}) ⇒ Sawyer::Resource

Add public key to user account.

Requires authenticated client.

Examples:

@client.add_key('Personal projects key', 'ssh-rsa AAA...')

See Also:



255
256
257
# File 'lib/octokit/client/users.rb', line 255

def add_key(title, key, options = {})
  post "user/keys", options.merge({:title => title, :key => key})
end

#all_users(options = {}) ⇒ Array<Sawyer::Resource>

List all GitHub users

This provides a list of every user, in the order that they signed up for GitHub.

Options Hash (options):

  • :since (Integer)

    The integer ID of the last User that you’ve seen.

See Also:



21
22
23
# File 'lib/octokit/client/users.rb', line 21

def all_users(options = {})
  paginate "users", options
end

#emails(options = {}) ⇒ Array<String>

List email addresses for a user.

Requires authenticated client.



299
300
301
# File 'lib/octokit/client/users.rb', line 299

def emails(options = {})
  paginate "user/emails", options
end

#exchange_code_for_token(code, app_id = client_id, app_secret = client_secret, options = {}) ⇒ Sawyer::Resource

Retrieve the access_token.

Examples:

Octokit.exchange_code_for_token('aaaa', 'xxxx', 'yyyy', {:accept => 'application/json'})

See Also:



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/octokit/client/users.rb', line 46

def exchange_code_for_token(code, app_id = client_id, app_secret = client_secret, options = {})
  options = options.merge({
    :code => code,
    :client_id => app_id,
    :client_secret => app_secret,
    :headers => {
      :content_type => 'application/json',
      :accept       => 'application/json'
    }
  })

  post "#{web_endpoint}login/oauth/access_token", options
end

#follow(user, options = {}) ⇒ Boolean

Follow a user.

Requires authenticatied client.

Examples:

@client.follow('holman')

See Also:



149
150
151
# File 'lib/octokit/client/users.rb', line 149

def follow(user, options = {})
  boolean_from_response :put, "user/following/#{user}", options
end

#followers(user = login, options = {}) ⇒ Array<Sawyer::Resource>

Get a user's followers.



99
100
101
# File 'lib/octokit/client/users.rb', line 99

def followers(user=, options = {})
  paginate "#{User.path user}/followers", options
end

#following(user = login, options = {}) ⇒ Array<Sawyer::Resource>

Get list of users a user is following.



112
113
114
# File 'lib/octokit/client/users.rb', line 112

def following(user=, options = {})
  paginate "#{User.path user}/following", options
end

#follows?(target) ⇒ Boolean #follows?(user, target) ⇒ Boolean

Check if you are following a user. Alternatively, check if a given user is following a target user.

Requries an authenticated client.

Examples:

@client.follows?('pengwynn')
@client.follows?('catsby', 'pengwynn')

Overloads:

  • #follows?(target) ⇒ Boolean

    check if you are following.

See Also:



134
135
136
137
138
# File 'lib/octokit/client/users.rb', line 134

def follows?(*args)
  target = args.pop
  user = args.first
  boolean_from_response :get, "#{User.path user}/following/#{target}"
end

#key(key_id, options = {}) ⇒ Sawyer::Resource

Get a public key.

Note, when using dot notation to retrieve the values, ruby will return the hash key for the public keys value instead of the actual value, use symbol or key string to retrieve the value. See example.

Requires authenticated client.

Examples:

@client.key(1)

Retrieve public key contents

public_key = @client.key(1)
public_key.key
# => Error

public_key[:key]
# => "ssh-rsa AAA..."

public_key['key']
# => "ssh-rsa AAA..."

See Also:



217
218
219
# File 'lib/octokit/client/users.rb', line 217

def key(key_id, options = {})
  get "user/keys/#{key_id}", options
end

#keys(options = {}) ⇒ Array<Sawyer::Resource>

Get list of public keys for user.

Requires authenticated client.



229
230
231
# File 'lib/octokit/client/users.rb', line 229

def keys(options = {})
  paginate "user/keys", options
end

#remove_email(email) ⇒ Array<String>

Remove email from user.

Requires authenticated client.

Examples:

@client.remove_email('old_email@user.com')

See Also:



326
327
328
329
# File 'lib/octokit/client/users.rb', line 326

def remove_email(email)
  email = Array(email)
  boolean_from_response :delete, "user/emails", email
end

#remove_key(id, options = {}) ⇒ Boolean

Remove a public key from user account.

Requires authenticated client.

Examples:

@client.remove_key(1)

See Also:



287
288
289
# File 'lib/octokit/client/users.rb', line 287

def remove_key(id, options = {})
  boolean_from_response :delete, "user/keys/#{id}", options
end

#starred(user = login, options = {}) ⇒ Array<Sawyer::Resource>

Get list of repos starred by a user.

Examples:

Octokit.starred('pengwynn')

Options Hash (options):

  • :sort (String) — default: created

    Sort: created or updated.

  • :direction (String) — default: desc

    Direction: asc or desc.

See Also:



177
178
179
# File 'lib/octokit/client/users.rb', line 177

def starred(user=, options = {})
  paginate user_path(user, 'starred'), options
end

#starred?(repo, options = {}) ⇒ Boolean

Check if you are starring a repo.

Requires authenticated client.



190
191
192
# File 'lib/octokit/client/users.rb', line 190

def starred?(repo, options = {})
  boolean_from_response :get, "user/starred/#{Repository.new(repo)}", options
end

#subscriptions(user = login, options = {}) ⇒ Array<Sawyer::Resource> Also known as: watched

List repositories being watched by a user.

Examples:

@client.subscriptions("pengwynn")

See Also:



338
339
340
# File 'lib/octokit/client/users.rb', line 338

def subscriptions(user=, options = {})
  paginate user_path(user, 'subscriptions'), options
end

#unfollow(user, options = {}) ⇒ Boolean

Unfollow a user.

Requires authenticated client.

Examples:

@client.unfollow('holman')

See Also:



162
163
164
# File 'lib/octokit/client/users.rb', line 162

def unfollow(user, options = {})
  boolean_from_response :delete, "user/following/#{user}", options
end

#update_key(key_id, options = {}) ⇒ Sawyer::Resource

Deprecated.

This method is no longer supported in the API

Update a public key

Requires authenticated client

Examples:

@client.update_key(1, :title => 'new title', :key => "ssh-rsa BBB")

Options Hash (options):

  • :title (String)
  • :key (String)

See Also:



274
275
276
# File 'lib/octokit/client/users.rb', line 274

def update_key(key_id, options = {})
  patch "user/keys/#{key_id}", options
end

#update_user(options) ⇒ Sawyer::Resource

Update the authenticated user

Examples:

Octokit.update_user(:name => "Erik Michaels-Ober", :email => "sferik@gmail.com", :company => "Code for America", :location => "San Francisco", :hireable => false)

Options Hash (options):

  • :name (String)
  • :email (String)

    Publically visible email address.

  • :blog (String)
  • :company (String)
  • :location (String)
  • :hireable (Boolean)
  • :bio (String)

See Also:



86
87
88
# File 'lib/octokit/client/users.rb', line 86

def update_user(options)
  patch "user", options
end

#user(user = nil, options = {}) ⇒ Sawyer::Resource

Get a single user



33
34
35
# File 'lib/octokit/client/users.rb', line 33

def user(user=nil, options = {})
  get User.path(user), options
end

#user_keys(user, options = {}) ⇒ Array<Sawyer::Resource>

Get list of public keys for user.

Examples:

@client.user_keys('pengwynn')

See Also:



240
241
242
243
# File 'lib/octokit/client/users.rb', line 240

def user_keys(user, options = {})
  # TODO: Roll this into .keys
  paginate "#{User.path user}/keys", options
end

#validate_credentials(options = {}) ⇒ Boolean

Validate user username and password

Options Hash (options):

  • :login (String)

    GitHub login

  • :password (String)

    GitHub password



66
67
68
69
70
# File 'lib/octokit/client/users.rb', line 66

def validate_credentials(options = {})
  !self.class.new(options).user.nil?
rescue Octokit::Unauthorized
  false
end