Module: GitHub::Client::Repos

Included in:
GitHub::Client
Defined in:
lib/github_api_v3/client/repos.rb

Overview

Contains methods for the Repos API.

Instance Method Summary collapse

Instance Method Details

#add_collaborator(owner, repo, user) ⇒ Boolean

Add a collaborator to a repository.

Requires authentication.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

  • user (String)

    User to add.

Returns:

  • (Boolean)

    True if successful, false if not.

See Also:



219
220
221
# File 'lib/github_api_v3/client/repos.rb', line 219

def add_collaborator(owner, repo, user)
  boolean_request :put, "/repos/#{owner}/#{repo}/collaborators/#{user}"
end

#all_reposArray

List all repositories

Get a list of all repositories.



15
16
17
# File 'lib/github_api_v3/client/repos.rb', line 15

def all_repos
  get '/repositories'
end

#assignee?(owner, repo, assignee) ⇒ Boolean

Check to see if a particular user is an assignee for a repository.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

  • assignee (String)

    Username for the assignee to check for.

Returns:

  • (Boolean)

    True if yes, false if no.

See Also:



342
343
344
# File 'lib/github_api_v3/client/repos.rb', line 342

def assignee?(owner, repo, assignee)
  boolean_request :get, "/repos/#{owner}/#{repo}/assignees/#{assignee}"
end

#assignees(owner, repo) ⇒ Array

List available assignees (owner + collaborators) to which issues may be assigned.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of assignees.

See Also:



331
332
333
# File 'lib/github_api_v3/client/repos.rb', line 331

def assignees(owner, repo)
  get "/repos/#{owner}/#{repo}/assignees"
end

#branch(owner, repo, branch) ⇒ Object

Get information about a branch.

Examples:

GitHub.branch('caseyscarborough','github','master')

Parameters:

  • owner (String)

    Owner of repository.

  • repo (String)

    Repository name.

  • branch (String)

    Branch name.

See Also:



181
182
183
# File 'lib/github_api_v3/client/repos.rb', line 181

def branch(owner, repo, branch)
  get "/repos/#{owner}/#{repo}/branches/#{branch}"
end

#branches(owner, repo) ⇒ Array

List branches for a repository.

Examples:

GitHub.branches('caseyscarborough','github')

Parameters:

  • owner (String)

    Owner of repository.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of branches and their information.

See Also:



169
170
171
# File 'lib/github_api_v3/client/repos.rb', line 169

def branches(owner, repo)
  get "/repos/#{owner}/#{repo}/branches"
end

#collaborator?(owner, repo, user) ⇒ Boolean

Determine if a user is a collaborator to a repository.

Examples:

GitHub.collaborator?('caseyscarborough','github','caseyscarborough')

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

  • user (String)

    User to check against.

Returns:

  • (Boolean)

    True if user is a collaborator, false if not.

See Also:



206
207
208
# File 'lib/github_api_v3/client/repos.rb', line 206

def collaborator?(owner, repo, user)
  boolean_request :get, "/repos/#{owner}/#{repo}/collaborators/#{user}"
end

#collaborators(owner, repo) ⇒ Array

Get list of collaborators for a repository.

Examples:

GitHub.collaborators('caseyscarborough','github')

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    Array of collaborators.

See Also:



193
194
195
# File 'lib/github_api_v3/client/repos.rb', line 193

def collaborators(owner, repo)
  get "/repos/#{owner}/#{repo}/collaborators"
end

#contributors(owner, repo) ⇒ Array

List contributors for a repository.

Examples:

GitHub.contributors('caseyscarborough','github')

Parameters:

  • owner (String)

    Owner of repository.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of contributors.

See Also:



129
130
131
# File 'lib/github_api_v3/client/repos.rb', line 129

def contributors(owner, repo)
  get "/repos/#{owner}/#{repo}/contributors"
end

#create_repo(name, options = {}) ⇒ Hash

Create a repository.

Requires authentication.

Examples:

client.create_repo('new-repo', description: 'New repository.', private: true)

Parameters:

  • name (String)

    Repository name.

  • options (Hash) (defaults to: {})

    Repository information.

Options Hash (options):

  • :description (String)

    Repository description.

  • :homepage (String)

    Repository homepage.

  • :private (Boolean)
  • :has_issues (Boolean)
  • :has_wiki (Boolean)
  • :has_downloads (Boolean)
  • :team_id (Integer)

    ID of team

  • :auto_init (Boolean)

    Create README.md automatically.

  • :gitignore_template (String)

    Desired .gitignore template to apply.

Returns:

  • (Hash)

    Repository information.

See Also:



69
70
71
# File 'lib/github_api_v3/client/repos.rb', line 69

def create_repo(name, options={})
  post "/user/repos", body: options.merge(name: name)
end

#delete_repo(owner, repo) ⇒ Boolean

Delete a repository.

Requires authentication.

Examples:

client.delete_repo('repo-name')

Parameters:

  • repo (String)

    Name of repository to delete.

Returns:

  • (Boolean)

    True if successful, false if not.

See Also:



106
107
108
# File 'lib/github_api_v3/client/repos.rb', line 106

def delete_repo(owner, repo)
  boolean_request :delete, "/repos/#{owner}/#{repo}"
end

#edit_repo(owner, repo, options = {}) ⇒ Hash

Edit a repository.

Requires authentication.

Examples:

client.edit_repo('caseyscarborough','github', name: 'github', description: 'An awesome repository!')

Parameters:

  • owner (String)

    The repository owner.

  • repo (String)

    The repository name.

  • options (Hash) (defaults to: {})

    Optional information.

Options Hash (options):

  • :name (String)

    The repository name.

  • :description (String)

    Repository description.

  • :homepage (String)

    Repository homepage.

  • :private (Boolean)
  • :has_issues (Boolean)
  • :has_wiki (Boolean)
  • :has_downloads (Boolean)
  • :default_branch (String)

    The default branch.

Returns:

  • (Hash)

    Repository information.

See Also:



92
93
94
95
# File 'lib/github_api_v3/client/repos.rb', line 92

def edit_repo(owner, repo, options={})
  options[:name] = repo unless options[:name]
  patch "/repos/#{owner}/#{repo}", body: options
end

#languages(owner, repo) ⇒ Hash

List languages for a repository.

Examples:

GitHub.languages('caseyscarborough','github')

Parameters:

  • owner (String)

    Owner of repository.

  • repo (String)

    Repository name.

Returns:

  • (Hash)

    Language information.

See Also:



141
142
143
# File 'lib/github_api_v3/client/repos.rb', line 141

def languages(owner, repo)
  get "/repos/#{owner}/#{repo}/languages"
end

#org_repos(org) ⇒ Array

Get organization repositories.

Examples:

GitHub.org_repos('rails')

Parameters:

  • org (String)

    Organization name.

Returns:

  • (Array)

    List of all repositories for org.

See Also:



117
118
119
# File 'lib/github_api_v3/client/repos.rb', line 117

def org_repos(org)
  get "/orgs/#{org}/repos"
end

#remove_collaborator(owner, repo, user) ⇒ Boolean

Remove a collaborator from a repository.

Requires authentication.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

  • user (String)

    User to remove.

Returns:

  • (Boolean)

    True if successful, false if not.

See Also:



232
233
234
# File 'lib/github_api_v3/client/repos.rb', line 232

def remove_collaborator(owner, repo, user)
  boolean_request :delete, "/repos/#{owner}/#{repo}/collaborators/#{user}"
end

#repo(owner, repo) ⇒ Hash

Get one repository.

Examples:

GitHub.repo('caseyscarborough','github')

Parameters:

  • owner (String)

    Username of repository owner.

  • repo (String)

    Name of repository.

Returns:

  • (Hash)

    Repository information.

See Also:



27
28
29
# File 'lib/github_api_v3/client/repos.rb', line 27

def repo(owner, repo)
  get "/repos/#{owner}/#{repo}"
end

#repos(username = nil) ⇒ Array

Get all repositories for a user.

If authenticated, returns all repos for authenticated user.

Examples:

GitHub.repos('caseyscarborough')
client.repos

Parameters:

  • username (String) (defaults to: nil)

    Username for repos owner.

Returns:

  • (Array)

    List of repositories.

See Also:



42
43
44
45
46
47
48
# File 'lib/github_api_v3/client/repos.rb', line 42

def repos(username=nil)
  if username
    get "/users/#{username}/repos"
  else
    get '/user/repos'
  end
end

#star(owner, repo) ⇒ Boolean

Star a repository.

Requires authentication.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Boolean)

    True if successful, false if not.

See Also:



256
257
258
# File 'lib/github_api_v3/client/repos.rb', line 256

def star(owner, repo)
  boolean_request :put, "/user/starred/#{owner}/#{repo}"
end

#stargazers(owner, repo) ⇒ Array

List Stargazers for a repository.

Examples:

GitHub.stargazers('caseyscarborough','github')

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of users.

See Also:



244
245
246
# File 'lib/github_api_v3/client/repos.rb', line 244

def stargazers(owner, repo)
  get "/repos/#{owner}/#{repo}/stargazers"
end

#subscribe(owner, repo, options = {}) ⇒ Hash

Set a repository subscription.

Requires authentication.

Examples:

client.subscribe('caseyscarborough','github')

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Hash)

    Subscription information.

See Also:



306
307
308
309
310
# File 'lib/github_api_v3/client/repos.rb', line 306

def subscribe(owner, repo, options={})
  options[:subscribed] = true unless options[:subscribed]
  options[:ignored] = false unless options[:ignored]
  put "/repos/#{owner}/#{repo}/subscription", body: options
end

#subscription(owner, repo) ⇒ Hash

Get subscription information.

Requires authentication.

Examples:

client.subscription('caseyscarborough','github')

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Hash)

    Subscription information.

See Also:



292
293
294
# File 'lib/github_api_v3/client/repos.rb', line 292

def subscription(owner, repo)
  get "/repos/#{owner}/#{repo}/subscription"
end

#tags(owner, repo) ⇒ Array

List tags for a repository.

Examples:

GitHub.tags('caseyscarborough','github')

Parameters:

  • owner (String)

    Owner of repository.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of tags and their information.

See Also:



157
158
159
# File 'lib/github_api_v3/client/repos.rb', line 157

def tags(owner, repo)
  get "/repos/#{owner}/#{repo}/tags"
end

#unstar(owner, repo) ⇒ Boolean

Unstar a repository.

Requires authentication.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Boolean)

    True if successful, false if not.

See Also:



268
269
270
# File 'lib/github_api_v3/client/repos.rb', line 268

def unstar(owner, repo)
  boolean_request :delete, "/user/starred/#{owner}/#{repo}"
end

#unsubscribe(owner, repo) ⇒ Hash

Delete a repository subscription.

Requires authentication.

Examples:

client.unsubscribe('caseyscarborough','github')

Parameters:

  • repo (String)

    Repository name.

Returns:

  • (Hash)

    Subscription information.

See Also:



321
322
323
# File 'lib/github_api_v3/client/repos.rb', line 321

def unsubscribe(owner, repo)
  boolean_request :delete, "/repos/#{owner}/#{repo}/subscription"
end

#watchers(owner, repo) ⇒ Array

List Watchers for a repository.

Parameters:

  • owner (String)

    Repository owner.

  • repo (String)

    Repository name.

Returns:

  • (Array)

    List of users.

See Also:



278
279
280
# File 'lib/github_api_v3/client/repos.rb', line 278

def watchers(owner, repo)
  get "/repos/#{owner}/#{repo}/subscribers"
end