class BitBucket::Repos

Constants

DEFAULT_REPO_OPTIONS
VALID_REPO_OPTIONS

Public Class Methods

new(options = { }) click to toggle source

Creates new Repositories API

Calls superclass method BitBucket::API::new
# File lib/bitbucket_rest_api/repos.rb, line 46
def initialize(options = { })
  super(options)
end

Public Instance Methods

all(*args)
Alias for: list
branches(user_name, repo_name, params={}) { |el| ... } click to toggle source

List branches

Examples

bitbucket = BitBucket.new
bibucket.repos.branches 'user-name', 'repo-name'

repos = BitBucket::Repos.new
repos.branches 'user-name', 'repo-name'
# File lib/bitbucket_rest_api/repos.rb, line 114
def branches(user_name, repo_name, params={})
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless (user? && repo?)
  normalize! params

  response = get_request("/1.0/repositories/#{user}/#{repo.downcase}/branches/", params)
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: list_branches
changesets() click to toggle source

Access to Repos::Commits API

# File lib/bitbucket_rest_api/repos.rb, line 51
def changesets
  @changesets ||= ApiFactory.new 'Repos::Changesets'
end
commit() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 80
def commit
  @commit ||=ApiFactory.new 'Repos::Commit'
end
commits() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 77
def commits
  @commits ||=ApiFactory.new 'Repos::Commits'
end
components() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 96
def components
  @components ||= ApiFactory.new 'Repos::Components'
end
create(*args) click to toggle source

FIXME: 'POST a new repository' is a deprecated feature of the API Create a new repository for the authenticated user.

Parameters

<tt>:name</tt> - Required string
<tt>:description</tt> - Optional string
<tt>:website</tt> - Optional string
<tt>:is_private</tt> - Optional boolean - <tt>true</tt> to create a private repository, <tt>false</tt> to create a public one.
<tt>:has_issues</tt> - Optional boolean - <tt>true</tt> to enable issues for this repository, <tt>false</tt> to disable them
<tt>:has_wiki</tt> - Optional boolean - <tt>true</tt> to enable the wiki for this repository, <tt>false</tt> to disable it. Default is <tt>true</tt>
<tt>:owner</tt> Optional string - The team in which this repository will be created

Examples

bitbucket = BitBucket.new
bitbucket.repos.create "name" => 'repo-name'
  "description": "This is your first repo",
  "website": "https://bitbucket.com",
  "is_private": false,
  "has_issues": true,
  "has_wiki": true

Create a new repository in this team. The authenticated user must be a member of this team

Examples:

bitbucket = BitBucket.new :oauth_token => '...', :oauth_secret => '...'
bitbucket.repos.create :name => 'repo-name', :owner => 'team-name'
# File lib/bitbucket_rest_api/repos.rb, line 154
def create(*args)
  params = args.extract_options!
  normalize! params
  filter! VALID_REPO_OPTIONS + %w[ org ], params
  assert_required_keys(%w[ name ], params)

  # Requires authenticated user
  post_request("/1.0/repositories/", DEFAULT_REPO_OPTIONS.merge(params))
end
default_reviewers() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 92
def default_reviewers
  @default_reviewers ||= ApiFactory.new 'Repos::DefaultReviewers'
end
delete(user_name, repo_name) click to toggle source

FIXME: 'DELETE an existing repository' is a deprecated feature of the API Delete a repository

Examples

@bitbucket = BitBucket.new
@bitbucket.repos.delete 'user-name', 'repo-name'
# File lib/bitbucket_rest_api/repos.rb, line 217
def delete(user_name, repo_name)
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?

  delete_request("/1.0/repositories/#{user}/#{repo.downcase}")
end
download() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 83
def download
  @download ||=ApiFactory.new "Repos::Download"
end
edit(user_name, repo_name, params={ }) click to toggle source

Edit a repository

Parameters

  • :name Required string

  • :description Optional string

  • :website Optional string

  • :private - Optional boolean - false to create public reps, false to create a private one

  • :has_issues Optional boolean - true to enable issues for this repository, false to disable them

  • :has_wiki Optional boolean - true to enable the wiki for this repository, false to disable it. Default is true

  • :has_downloads Optional boolean - true to enable downloads for this repository

Examples

bitbucket = BitBucket.new
bitbucket.repos.edit 'user-name', 'repo-name',
  :name => 'hello-world',
  :description => 'This is your first repo',
  :website => "https://bitbucket.com",
  :public => true, :has_issues => true
# File lib/bitbucket_rest_api/repos.rb, line 184
def edit(user_name, repo_name, params={ })
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?

  normalize! params
  filter! VALID_REPO_OPTIONS, params

  put_request("/1.0/repositories/#{user}/#{repo.downcase}/", DEFAULT_REPO_OPTIONS.merge(params))
end
find(user_name, repo_name, params={ })
Alias for: get
following() click to toggle source

Access to Repos::Watchin API

# File lib/bitbucket_rest_api/repos.rb, line 61
def following
  @following ||= ApiFactory.new 'Repos::Following'
end
forks() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 74
def forks
  @forks ||= ApiFactory.new 'Repos::Forks'
end
get(user_name, repo_name, params={ }) click to toggle source

Get a repository

Examples

bitbucket = BitBucket.new
bitbucket.repos.get 'user-name', 'repo-name'
# File lib/bitbucket_rest_api/repos.rb, line 200
def get(user_name, repo_name, params={ })
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  normalize! params

  get_request("/1.0/repositories/#{user}/#{repo.downcase}", params)
end
Also aliased as: find
keys() click to toggle source

Access to Repos::Keys API

# File lib/bitbucket_rest_api/repos.rb, line 56
def keys
  @keys ||= ApiFactory.new 'Repos::Keys'
end
list(*args) { |el| ... } click to toggle source

List repositories for the authenticated user

Examples

bitbucket = BitBucket.new :oauth_token => '...', :oauth_secret => '...'
bitbucket.repos.list
bitbucket.repos.list { |repo| ... }

List public repositories for the specified user.

Examples

bitbucket = BitBucket.new
bitbucket.repos.list :user => 'user-name', :role => 'owner'
bitbucket.repos.list :user => 'user-name', { |repo| ... }
# File lib/bitbucket_rest_api/repos.rb, line 237
def list(*args)
  params = args.extract_options!
  normalize! params
  _merge_user_into_params!(params) unless params.has_key?('user')
  params.merge!('pagelen' => 100) unless params.has_key?('pagelen')
  
  filter! %w[ user role pagelen ], params

  response = get_request("/2.0/repositories", params)

  response = response[:values]
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: all
list_branches(user_name, repo_name, params={})
Alias for: branches
list_tags(user_name, repo_name, params={ })
Alias for: tags
pull_request() click to toggle source

Access to Repos::PullRequests API

# File lib/bitbucket_rest_api/repos.rb, line 88
def pull_request
  @pull_request ||= ApiFactory.new 'Repos::PullRequest'
end
repo_tags(user_name, repo_name, params={ })
Alias for: tags
repository_tags(user_name, repo_name, params={ })
Alias for: tags
services() click to toggle source

Access to Repos::Services API

# File lib/bitbucket_rest_api/repos.rb, line 71
def services
  @services ||= ApiFactory.new 'Repos::Services'
end
sources() click to toggle source

Access to Repos::Commits API

# File lib/bitbucket_rest_api/repos.rb, line 66
def sources
  @sources ||= ApiFactory.new 'Repos::Sources'
end
tags(user_name, repo_name, params={ }) { |el| ... } click to toggle source

List tags

Examples

bitbucket = BitBucket.new
bitbucket.repos.tags 'user-name', 'repo-name'
bitbucket.repos.tags 'user-name', 'repo-name' { |tag| ... }
# File lib/bitbucket_rest_api/repos.rb, line 261
def tags(user_name, repo_name, params={ })
  _update_user_repo_params(user_name, repo_name)
  _validate_user_repo_params(user, repo) unless user? && repo?
  normalize! params

  response = get_request("/1.0/repositories/#{user}/#{repo.downcase}/tags/", params)
  return response unless block_given?
  response.each { |el| yield el }
end
Also aliased as: list_tags, repo_tags, repository_tags
webhooks() click to toggle source
# File lib/bitbucket_rest_api/repos.rb, line 100
def webhooks
  @webhooks ||= ApiFactory.new 'Repos::Webhooks'
end