Skip to content

Commit 3c76671

Browse files
committed
Merge pull request #36 from JHanley85/master
Add Forking
2 parents e0f70ce + 9768410 commit 3c76671

File tree

5 files changed

+101
-2
lines changed

5 files changed

+101
-2
lines changed

lib/bitbucket_rest_api/repos.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ class Repos < API
1010
:Keys => 'keys',
1111
:Services => 'services',
1212
:Following => 'following',
13-
:Sources => 'sources'
13+
:Sources => 'sources',
14+
:Forks => 'forks',
15+
:Commits =>'commits',
16+
:Download=>'download'
1417

1518
DEFAULT_REPO_OPTIONS = {
1619
"website" => "",
@@ -63,7 +66,15 @@ def sources
6366
def services
6467
@services ||= ApiFactory.new 'Repos::Services'
6568
end
66-
69+
def forks
70+
@services ||= ApiFactory.new 'Repos::Forks'
71+
end
72+
def commits
73+
@services ||=ApiFactory.new 'Repos::Commits'
74+
end
75+
def download
76+
@services ||=ApiFactory.new "Repos::Download"
77+
end
6778
# List branches
6879
#
6980
# = Examples
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# encoding: utf-8
2+
3+
module BitBucket
4+
class Repos::Commits < API
5+
6+
def get(user_name, repo_name)
7+
_update_user_repo_params(user_name, repo_name)
8+
_validate_user_repo_params(user, repo) unless user? && repo?
9+
get_request("/repositories/#{user}/#{repo.downcase}/commits")
10+
end
11+
12+
13+
end # Repos::Keys
14+
end # BitBucket
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# encoding: utf-8
2+
3+
module BitBucket
4+
class Repos::Download < API
5+
REQUIRED_KEY_PARAM_NAMES = %w[ commit_hash ].freeze
6+
def get(user_name, repo_name, params={})
7+
_update_user_repo_params(user_name, repo_name)
8+
_validate_user_repo_params(user, repo) unless user? && repo?
9+
# normalize! params
10+
# assert_required_keys(REQUIRED_KEY_PARAM_NAMES, params)
11+
12+
#https://bitbucket.org/jhanley85/eternum_canvas_demo/get/fd931f96f12d.zip
13+
"https://bitbucket.org/#{user}/#{repo.downcase}/get/#{params[:commit_hash]}.tar.gz"
14+
end
15+
16+
17+
18+
19+
20+
end # Repos::Keys
21+
end # BitBucket
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# encoding: utf-8
2+
3+
module BitBucket
4+
class Repos::Forks < API
5+
6+
REQUIRED_KEY_PARAM_NAMES = %w[ name ].freeze
7+
DEFAULT_REPO_OPTIONS = {
8+
"website" => "",
9+
"is_private" => false,
10+
"has_issues" => false,
11+
"has_wiki" => false,
12+
"scm" => "git",
13+
"no_public_forks" => false
14+
}.freeze
15+
16+
VALID_REPO_OPTIONS = %w[
17+
owner
18+
name
19+
description
20+
website
21+
is_private
22+
has_issues
23+
has_wiki
24+
no_public_forks
25+
language
26+
scm
27+
].freeze
28+
29+
30+
# Create a fork
31+
#
32+
# = Inputs
33+
# * <tt>:type</tt> - One of the supported services. The type is a case-insensitive value.
34+
#
35+
# = Examples
36+
# bitbucket = BitBucket.new
37+
# bitbucket.repos.forks.create 'user-name', 'repo-name',
38+
# "name" => "Basecamp",
39+
#
40+
def create(user_name, repo_name, params={})
41+
_update_user_repo_params(user_name, repo_name)
42+
_validate_user_repo_params(user, repo) unless user? && repo?
43+
normalize! params
44+
assert_required_keys(REQUIRED_KEY_PARAM_NAMES, params)
45+
filter! VALID_REPO_OPTIONS, params
46+
47+
post_request("/repositories/#{user}/#{repo.downcase}/fork", params)
48+
end
49+
50+
51+
end # Repos::Keys
52+
end # BitBucket

lib/bitbucket_rest_api/request.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module Request
1010
def get_request(path, params={}, options={})
1111
request(:get, path, params, options)
1212
end
13+
1314

1415
def patch_request(path, params={}, options={})
1516
request(:patch, path, params, options)

0 commit comments

Comments
 (0)