public Milestone updateMilestone(String userName, String repositoryName,
String milestoneId, String title, String description,
com.github.api.v2.schema.Milestone.State state, Date dueDate) {
GitHubApiUrlBuilder builder = createGitHubApiUrlBuilder(GitHubApiUrls.IssueApiUrls.UPDATE_MILESTONE_URL);
String apiUrl = builder.withField(ParameterNames.USER_NAME, userName).withField(ParameterNames.REPOSITORY_NAME, repositoryName).withField(ParameterNames.MILESTONE_ID, milestoneId).buildUrl();
Milestone milestone = new Milestone();
milestone.setTitle(title);
milestone.setDescription(description);
milestone.setState(state);
milestone.setDueOn(dueDate);
JsonObject json = unmarshall(callApiMethod(apiUrl, marshall(milestone), ApplicationConstants.CONTENT_TYPE_JSON, HttpMethod.POST, 200));
return unmarshall(new TypeToken<Milestone>(){}, json);
}