Navigation Menu

Skip to content

Commit

Permalink
Merge pull request octokit#35 from ctshryock/v3_milestones
Browse files Browse the repository at this point in the history
Add `update_milestone` method for Milestones
  • Loading branch information
sferik committed May 9, 2011
2 parents b9fb191 + ab7a20a commit 2498dab
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 4 deletions.
26 changes: 22 additions & 4 deletions lib/octokit/client/milestones.rb
Expand Up @@ -13,7 +13,7 @@ module Milestones
# @return [Array] A list of milestones for a repository.
# @see http://developer.github.com/v3/issues/milestones/#List-Milestones-for-an-Issue
# @example List milestones for a repository
# Octokit.list_milestones("sferik/rails_admin")
# Octokit.list_milestones("pengwynn/octokit")
def list_milestones(repository, options={})
get("/repos/#{Repository.new(repository)}/milestones", options, 3)
end
Expand All @@ -30,7 +30,7 @@ def list_milestones(repository, options={})
# @return [Milestone] A single milestone from a repository.
# @see http://developer.github.com/v3/issues/milestones/#get-a-single-milestone
# @example Get a single milestone for a repository
# Octokit.milestone("sferik/rails_admin", 1)
# Octokit.milestone("pengwynn/octokit", 1)
def milestone(repository, number, options={})
get("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3)
end
Expand All @@ -46,11 +46,29 @@ def milestone(repository, number, options={})
# @return [Milestone] A single milestone object
# @see http://developer.github.com/v3/issues/milestones/#create-a-milestone
# @example Create a milestone for a repository
# Octokit.create_milestone("sferik/rails_admin", "0.7.0", {:description => 'Add support for v3 of Github API'})
# Octokit.create_milestone("pengwynn/octokit", "0.7.0", {:description => 'Add support for v3 of Github API'})
def create_milestone(repository, title, options={})
post("/repos/#{Repository.new(repository)}/milestones", options.merge({:title => title}), 3)
end

# Update a milestone for a repository
#
# @param repository [String, Repository, Hash] A GitHub repository.
# @param number [String, Integer] Number ID of a milestone
# @param options [Hash] A customizable set of options.
# @option options [String] :title A unique title.
# @option options [String] :state (open) State: <tt>open</tt> or <tt>closed</tt>.
# @option options [String] :description A meaningful description
# @option options [Time] :due_on Set if the milestone has a due date
# @return [Milestone] A single milestone object
# @see http://developer.github.com/v3/issues/milestones/#update-a-milestone
# @example Update a milestone for a repository
# Octokit.update_milestone("pengwynn/octokit", 1, {:description => 'Add support for v3 of Github API'})
def update_milestone(repository, number, options={})
post("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3)
end
alias :edit_milestone :update_milestone

# Delete a single milestone for a repository
#
# @param repository [String, Repository, Hash] A GitHub repository.
Expand All @@ -59,7 +77,7 @@ def create_milestone(repository, title, options={})
# @return [Response] Response with status 204, no content
# @see http://developer.github.com/v3/issues/milestones/#delete-a-milestone
# @example Delete a single milestone from a repository
# Octokit.delete_milestone("sferik/rails_admin", 1)
# Octokit.delete_milestone("pengwynn/octokit", 1)
def delete_milestone(repository, number, options={})
delete("/repos/#{Repository.new(repository)}/milestones/#{number}", options, 3, true, true)
end
Expand Down
13 changes: 13 additions & 0 deletions spec/octokit/client/milestones_spec.rb
Expand Up @@ -43,6 +43,19 @@

end

describe ".update_milestone" do

it "should update a milestone" do
stub_request(:post, "https://api.github.com/repos/pengwynn/octokit/milestones/1").
with(:body => "{\"description\":\"Add support for API v3\"}",
:headers => {'Accept'=>'*/*', 'Content-Type'=>'application/json'}).
to_return(:status => 200, :body => fixture('v3/milestone.json'))
milestone = @client.update_milestone("pengwynn/octokit", 1, {:description => "Add support for API v3"})
milestone.description.should == "Add support for API v3"
end

end

describe ".delete_milestone" do

it "should delete a milestone from a repository" do
Expand Down

0 comments on commit 2498dab

Please sign in to comment.