diff --git a/lib/bitbucket_rest_api/repos.rb b/lib/bitbucket_rest_api/repos.rb index b4d83fb..e118e89 100644 --- a/lib/bitbucket_rest_api/repos.rb +++ b/lib/bitbucket_rest_api/repos.rb @@ -13,6 +13,7 @@ class Repos < API :Sources => 'sources', :Forks => 'forks', :Commits => 'commits', + :Commit => 'commit', :Download => 'download', :Webhooks => 'webhooks', :PullRequest => 'pull_request', @@ -75,6 +76,11 @@ def forks def commits @commits ||=ApiFactory.new 'Repos::Commits' end + + def commit + @commit ||= ApiFactory.new 'Repos::Commit' + end + def download @download ||=ApiFactory.new "Repos::Download" end diff --git a/lib/bitbucket_rest_api/repos/commit.rb b/lib/bitbucket_rest_api/repos/commit.rb new file mode 100644 index 0000000..c028ec9 --- /dev/null +++ b/lib/bitbucket_rest_api/repos/commit.rb @@ -0,0 +1,15 @@ +# encoding: utf-8 + +module BitBucket + class Repos::Commit < API + + def get(user_name, repo_name, revision) + _update_user_repo_params(user_name, repo_name) + _validate_user_repo_params(user, repo) unless user? && repo? + + path = "/2.0/repositories/#{user}/#{repo.downcase}/commit/#{revision}" + get_request(path) + end + + end # Repos::Commits +end # BitBucket diff --git a/spec/bitbucket_rest_api/repos/commit_spec.rb b/spec/bitbucket_rest_api/repos/commit_spec.rb new file mode 100644 index 0000000..6c2e5d1 --- /dev/null +++ b/spec/bitbucket_rest_api/repos/commit_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe BitBucket::Repos::Commit do + let(:commit) { BitBucket::Repos::Commit.new } + + describe '.get' do + before do + expect(commit).to receive(:request).with( + :get, + '/2.0/repositories/mock_username/mock_repo/commit/557557b267628ccc3060de76c16eb9c269e4576c', + {}, + {} + ) + end + + it 'should send a GET request for the commit with given hash belonging to the given repo' do + commit.get('mock_username', 'mock_repo', '557557b267628ccc3060de76c16eb9c269e4576c') + end + end +end diff --git a/spec/bitbucket_rest_api/repos_spec.rb b/spec/bitbucket_rest_api/repos_spec.rb index 822e02d..07be83b 100644 --- a/spec/bitbucket_rest_api/repos_spec.rb +++ b/spec/bitbucket_rest_api/repos_spec.rb @@ -149,6 +149,7 @@ expect(repo.keys).to be_a BitBucket::Repos::Keys expect(repo.following).to be_a BitBucket::Repos::Following expect(repo.commits).to be_a BitBucket::Repos::Commits + expect(repo.commit).to be_a BitBucket::Repos::Commit expect(repo.pull_request).to be_a BitBucket::Repos::PullRequest expect(repo.forks).to be_a BitBucket::Repos::Forks expect(repo.download).to be_a BitBucket::Repos::Download