Module: Octokit::Client::Users

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

Constant Summary collapse

EMAIL_RE =
/[\w.!#\$%+-]+@[\w-]+(?:\.[\w-]+)+/

Instance Method Summary collapse

Instance Method Details

#add_email(email, options = {}) ⇒ Object



88
89
90
# File 'lib/octokit/client/users.rb', line 88

def add_email(email, options={})
  post("/api/v2/json/user/email/add", options.merge({:email => email}))['emails']
end

#add_key(title, key, options = {}) ⇒ Object



76
77
78
# File 'lib/octokit/client/users.rb', line 76

def add_key(title, key, options={})
  post("/api/v2/json/user/key/add", options.merge({:title => title, :key => key}))['public_keys']
end

#emails(options = {}) ⇒ Object



84
85
86
# File 'lib/octokit/client/users.rb', line 84

def emails(options={})
  get("/api/v2/json/user/emails", options)['emails']
end

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



60
61
62
# File 'lib/octokit/client/users.rb', line 60

def follow(user, options={})
  post("/api/v2/json/user/follow/#{user}", options)['users']
end

#followers(user = login, options = {}) ⇒ Object



44
45
46
# File 'lib/octokit/client/users.rb', line 44

def followers(user=, options={})
  get("/api/v2/json/user/show/#{user}/followers", options)['users']
end

#following(user = login, options = {}) ⇒ Object



48
49
50
# File 'lib/octokit/client/users.rb', line 48

def following(user=, options={})
  get("/api/v2/json/user/show/#{user}/following", options)['users']
end

#follows?(*args) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
55
56
57
58
# File 'lib/octokit/client/users.rb', line 52

def follows?(*args)
  target = args.pop
  user = args.first
  user ||= 
  return if user.nil?
  following(user).include?(target)
end

#keys(options = {}) ⇒ Object



72
73
74
# File 'lib/octokit/client/users.rb', line 72

def keys(options={})
  get("/api/v2/json/user/keys", options)['public_keys']
end

#remove_email(email, options = {}) ⇒ Object



92
93
94
# File 'lib/octokit/client/users.rb', line 92

def remove_email(email, options={})
  post("/api/v2/json/user/email/remove", options.merge({:email => email}))['emails']
end

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



80
81
82
# File 'lib/octokit/client/users.rb', line 80

def remove_key(id, options={})
  post("/api/v2/json/user/key/remove", options.merge({:id => id}))['public_keys']
end

#search_users(search, options = {}) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/octokit/client/users.rb', line 5

def search_users(search, options={})
  if search.match(EMAIL_RE)
    get("/api/v2/json/user/email/#{search}", options)['user']
  else
    get("/api/v2/json/user/search/#{search}", options)['users']
  end
end

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



64
65
66
# File 'lib/octokit/client/users.rb', line 64

def unfollow(user, options={})
  post("/api/v2/json/user/unfollow/#{user}", options)['users']
end

#update_user(options) ⇒ Hashie::Mash

Update the authenticated user

Examples:

Octokit.user(:name => "Erik Michaels-Ober", :email => "[email protected]", :company => "Code for America", :location => "San Francisco", :hireable => false)

Parameters:

  • options (Hash)

    A customizable set of options.

Options Hash (options):

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

    Publically visible email address.

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

Returns:

  • (Hashie::Mash)


40
41
42
# File 'lib/octokit/client/users.rb', line 40

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

#user(user = nil) ⇒ Hashie::Mash

Get a single user

Examples:

Octokit.user("sferik")

Parameters:

  • user (String) (defaults to: nil)

    A GitHub user name.

Returns:

  • (Hashie::Mash)


19
20
21
22
23
24
25
# File 'lib/octokit/client/users.rb', line 19

def user(user=nil)
  if user
    get("/users/#{user}", {}, 3)
  else
    get("/user", {}, 3)
  end
end

#watched(user = login, options = {}) ⇒ Object



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

def watched(user=, options={})
  get("/api/v2/json/repos/watched/#{user}", options)['repositories']
end