# Generated by `mix github.gen` from docs/github-api/api.github.com.json. # Do not edit by hand; re-run the task instead. defmodule Noizu.Github.Api.Issues do @moduledoc """ GitHub `issues` API. """ import Noizu.Github @doc """ Add assignees to an issue @see https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue """ def add_assignees(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/assignees" body = body api_call(:post, url, body, Noizu.Github.Issue, options) end @doc """ Add a dependency an issue is blocked by @see https://docs.github.com/rest/issues/issue-dependencies#add-a-dependency-an-issue-is-blocked-by """ def add_blocked_by_dependency(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/dependencies/blocked_by" body = body api_call(:post, url, body, Noizu.Github.Issue, options) end @doc """ Add issue field values to an issue @see https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue """ def add_issue_field_values(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/issue-field-values" body = body api_call(:post, url, body, Noizu.Github.Collection.IssueFieldValue, options) end @doc """ Add labels to an issue @see https://docs.github.com/rest/issues/labels#add-labels-to-an-issue """ def add_labels(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/labels" body = body api_call(:post, url, body, Noizu.Github.Collection.Label, options) end @doc """ Add sub-issue @see https://docs.github.com/rest/issues/sub-issues#add-sub-issue """ def add_sub_issue(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/sub_issues" body = body api_call(:post, url, body, Noizu.Github.Issue, options) end @doc """ Check if a user can be assigned @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned """ def check_user_can_be_assigned(assignee, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/assignees/#{assignee}" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Check if a user can be assigned to a issue @see https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue """ def check_user_can_be_assigned_to_issue(issue_number, assignee, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/assignees/#{assignee}" body = %{} api_call(:get, url, body, Noizu.Github.Raw, options) end @doc """ Create an issue @see https://docs.github.com/rest/issues/issues#create-an-issue """ def create(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues" body = body api_call(:post, url, body, Noizu.Github.Issue, options) end @doc """ Create an issue comment @see https://docs.github.com/rest/issues/comments#create-an-issue-comment """ def create_comment(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/comments" body = body api_call(:post, url, body, Noizu.Github.IssueComment, options) end @doc """ Create a label @see https://docs.github.com/rest/issues/labels#create-a-label """ def create_label(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/labels" body = body api_call(:post, url, body, Noizu.Github.Label, options) end @doc """ Create a milestone @see https://docs.github.com/rest/issues/milestones#create-a-milestone """ def create_milestone(body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/milestones" body = body api_call(:post, url, body, Noizu.Github.Milestone, options) end @doc """ Delete an issue comment @see https://docs.github.com/rest/issues/comments#delete-an-issue-comment """ def delete_comment(comment_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete an issue field value from an issue @see https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue """ def delete_issue_field_value(issue_number, issue_field_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/issue-field-values/#{issue_field_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete a label @see https://docs.github.com/rest/issues/labels#delete-a-label """ def delete_label(name, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/labels/#{name}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Delete a milestone @see https://docs.github.com/rest/issues/milestones#delete-a-milestone """ def delete_milestone(milestone_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/milestones/#{milestone_number}" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Get an issue @see https://docs.github.com/rest/issues/issues#get-an-issue """ def get(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}" body = %{} api_call(:get, url, body, Noizu.Github.Issue, options) end @doc """ Get an issue comment @see https://docs.github.com/rest/issues/comments#get-an-issue-comment """ def get_comment(comment_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}" body = %{} api_call(:get, url, body, Noizu.Github.IssueComment, options) end @doc """ Get an issue event @see https://docs.github.com/rest/issues/events#get-an-issue-event """ def get_event(event_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/events/#{event_id}" body = %{} api_call(:get, url, body, Noizu.Github.IssueEvent, options) end @doc """ Get a label @see https://docs.github.com/rest/issues/labels#get-a-label """ def get_label(name, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/labels/#{name}" body = %{} api_call(:get, url, body, Noizu.Github.Label, options) end @doc """ Get a milestone @see https://docs.github.com/rest/issues/milestones#get-a-milestone """ def get_milestone(milestone_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/milestones/#{milestone_number}" body = %{} api_call(:get, url, body, Noizu.Github.Milestone, options) end @doc """ Get parent issue @see https://docs.github.com/rest/issues/sub-issues#get-parent-issue """ def get_parent(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/parent" body = %{} api_call(:get, url, body, Noizu.Github.Issue, options) end @doc """ List issues assigned to the authenticated user @see https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user """ def list(options \\ nil) do url = ( query = [ get_field(:filter, options, nil), get_field(:state, options, nil), get_field(:labels, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:since, options, nil), get_field(:collab, options, nil), get_field(:orgs, options, nil), get_field(:owned, options, nil), get_field(:pulls, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/issues" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List assignees @see https://docs.github.com/rest/issues/assignees#list-assignees """ def list_assignees(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/assignees" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.SimpleUser, options) end @doc """ List issue comments @see https://docs.github.com/rest/issues/comments#list-issue-comments """ def list_comments(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:since, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/comments" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueComment, options) end @doc """ List issue comments for a repository @see https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository """ def list_comments_for_repo(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:since, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/comments" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueComment, options) end @doc """ List dependencies an issue is blocked by @see https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocked-by """ def list_dependencies_blocked_by(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/dependencies/blocked_by" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List dependencies an issue is blocking @see https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocking """ def list_dependencies_blocking(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/dependencies/blocking" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List issue events @see https://docs.github.com/rest/issues/events#list-issue-events """ def list_events(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/events" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection, options) end @doc """ List issue events for a repository @see https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository """ def list_events_for_repo(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/events" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueEvent, options) end @doc """ List timeline events for an issue @see https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue """ def list_events_for_timeline(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/timeline" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection, options) end @doc """ List user account issues assigned to the authenticated user @see https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user """ def list_for_authenticated_user(options \\ nil) do url = ( query = [ get_field(:filter, options, nil), get_field(:state, options, nil), get_field(:labels, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:since, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/user/issues" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List organization issues assigned to the authenticated user @see https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user """ def list_for_org(org, options \\ nil) do url = ( query = [ get_field(:filter, options, nil), get_field(:state, options, nil), get_field(:labels, options, nil), get_field(:type, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:since, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/orgs/#{org}/issues" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List repository issues @see https://docs.github.com/rest/issues/issues#list-repository-issues """ def list_for_repo(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:milestone, options, nil), get_field(:state, options, nil), get_field(:assignee, options, nil), get_field(:type, options, nil), get_field(:creator, options, nil), get_field(:mentioned, options, nil), get_field(:issue_field_values, options, nil), get_field(:labels, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:since, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ List issue field values for an issue @see https://docs.github.com/rest/issues/issue-field-values#list-issue-field-values-for-an-issue """ def list_issue_field_values_for_issue(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/issue-field-values" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.IssueFieldValue, options) end @doc """ List labels for issues in a milestone @see https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone """ def list_labels_for_milestone(milestone_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/milestones/#{milestone_number}/labels" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Label, options) end @doc """ List labels for a repository @see https://docs.github.com/rest/issues/labels#list-labels-for-a-repository """ def list_labels_for_repo(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/labels" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Label, options) end @doc """ List labels for an issue @see https://docs.github.com/rest/issues/labels#list-labels-for-an-issue """ def list_labels_on_issue(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/labels" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Label, options) end @doc """ List milestones @see https://docs.github.com/rest/issues/milestones#list-milestones """ def list_milestones(options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:state, options, nil), get_field(:sort, options, nil), get_field(:direction, options, nil), get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/milestones" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Milestone, options) end @doc """ List sub-issues @see https://docs.github.com/rest/issues/sub-issues#list-sub-issues """ def list_sub_issues(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = ( query = [ get_field(:per_page, options, nil), get_field(:page, options, nil) ] |> Enum.filter(& &1) qs = if query == [], do: "", else: "?" <> Enum.join(query, "&") github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/sub_issues" <> qs ) body = %{} api_call(:get, url, body, Noizu.Github.Collection.Issue, options) end @doc """ Lock an issue @see https://docs.github.com/rest/issues/issues#lock-an-issue """ def lock(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/lock" body = body api_call(:put, url, body, Noizu.Github.Raw, options) end @doc """ Pin an issue comment @see https://docs.github.com/rest/issues/comments#pin-an-issue-comment """ def pin_comment(comment_id, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}/pin" body = body api_call(:put, url, body, Noizu.Github.IssueComment, options) end @doc """ Remove all labels from an issue @see https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue """ def remove_all_labels(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/labels" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Remove assignees from an issue @see https://docs.github.com/rest/issues/assignees#remove-assignees-from-an-issue """ def remove_assignees(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/assignees" body = body api_call(:delete, url, body, Noizu.Github.Issue, options) end @doc """ Remove dependency an issue is blocked by @see https://docs.github.com/rest/issues/issue-dependencies#remove-dependency-an-issue-is-blocked-by """ def remove_dependency_blocked_by(issue_number, issue_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/dependencies/blocked_by/#{issue_id}" body = %{} api_call(:delete, url, body, Noizu.Github.Issue, options) end @doc """ Remove a label from an issue @see https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue """ def remove_label(issue_number, name, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/labels/#{name}" body = %{} api_call(:delete, url, body, Noizu.Github.Collection.Label, options) end @doc """ Remove sub-issue @see https://docs.github.com/rest/issues/sub-issues#remove-sub-issue """ def remove_sub_issue(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/sub_issue" body = body api_call(:delete, url, body, Noizu.Github.Issue, options) end @doc """ Reprioritize sub-issue @see https://docs.github.com/rest/issues/sub-issues#reprioritize-sub-issue """ def reprioritize_sub_issue(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/sub_issues/priority" body = body api_call(:patch, url, body, Noizu.Github.Issue, options) end @doc """ Set issue field values for an issue @see https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue """ def set_issue_field_values(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/issue-field-values" body = body api_call(:put, url, body, Noizu.Github.Collection.IssueFieldValue, options) end @doc """ Set labels for an issue @see https://docs.github.com/rest/issues/labels#set-labels-for-an-issue """ def set_labels(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/labels" body = body api_call(:put, url, body, Noizu.Github.Collection.Label, options) end @doc """ Unlock an issue @see https://docs.github.com/rest/issues/issues#unlock-an-issue """ def unlock(issue_number, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}/lock" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Unpin an issue comment @see https://docs.github.com/rest/issues/comments#unpin-an-issue-comment """ def unpin_comment(comment_id, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}/pin" body = %{} api_call(:delete, url, body, Noizu.Github.Raw, options) end @doc """ Update an issue @see https://docs.github.com/rest/issues/issues#update-an-issue """ def update(issue_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/#{issue_number}" body = body api_call(:patch, url, body, Noizu.Github.Issue, options) end @doc """ Update an issue comment @see https://docs.github.com/rest/issues/comments#update-an-issue-comment """ def update_comment(comment_id, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}" body = body api_call(:patch, url, body, Noizu.Github.IssueComment, options) end @doc """ Update a label @see https://docs.github.com/rest/issues/labels#update-a-label """ def update_label(name, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/labels/#{name}" body = body api_call(:patch, url, body, Noizu.Github.Label, options) end @doc """ Update a milestone @see https://docs.github.com/rest/issues/milestones#update-a-milestone """ def update_milestone(milestone_number, body, options \\ nil) do owner = repo_owner(options) repo = repo_name(options) url = github_base() <> "/repos/#{owner}/#{repo}/milestones/#{milestone_number}" body = body api_call(:patch, url, body, Noizu.Github.Milestone, options) end end