defmodule GitHub.Reactions do @moduledoc """ Provides API endpoints related to reactions """ @default_client GitHub.Client @doc """ Create reaction for a commit comment Create a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). A response with an HTTP `200` status means that you already added the reaction type to this commit comment. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment) """ @spec create_for_commit_comment(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_commit_comment(owner, repo, comment_id, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, body: body], call: {GitHub.Reactions, :create_for_commit_comment}, url: "/repos/#{owner}/#{repo}/comments/#{comment_id}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [ {200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}, {422, {GitHub.ValidationError, :t}} ], opts: opts }) end @doc """ Create reaction for an issue Create a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). A response with an HTTP `200` status means that you already added the reaction type to this issue. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue) """ @spec create_for_issue(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_issue(owner, repo, issue_number, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, issue_number: issue_number, body: body], call: {GitHub.Reactions, :create_for_issue}, url: "/repos/#{owner}/#{repo}/issues/#{issue_number}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [ {200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}, {422, {GitHub.ValidationError, :t}} ], opts: opts }) end @doc """ Create reaction for an issue comment Create a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). A response with an HTTP `200` status means that you already added the reaction type to this issue comment. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment) """ @spec create_for_issue_comment(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_issue_comment(owner, repo, comment_id, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, body: body], call: {GitHub.Reactions, :create_for_issue_comment}, url: "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [ {200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}, {422, {GitHub.ValidationError, :t}} ], opts: opts }) end @doc """ Create reaction for a pull request review comment Create a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). A response with an HTTP `200` status means that you already added the reaction type to this pull request review comment. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment) """ @spec create_for_pull_request_review_comment(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_pull_request_review_comment(owner, repo, comment_id, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, body: body], call: {GitHub.Reactions, :create_for_pull_request_review_comment}, url: "/repos/#{owner}/#{repo}/pulls/comments/#{comment_id}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [ {200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}, {422, {GitHub.ValidationError, :t}} ], opts: opts }) end @doc """ Create reaction for a release Create a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). A response with a `Status: 200 OK` means that you already added the reaction type to this release. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release) """ @spec create_for_release(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_release(owner, repo, release_id, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, release_id: release_id, body: body], call: {GitHub.Reactions, :create_for_release}, url: "/repos/#{owner}/#{repo}/releases/#{release_id}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [ {200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}, {422, {GitHub.ValidationError, :t}} ], opts: opts }) end @doc """ Create reaction for a team discussion comment Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment) """ @spec create_for_team_discussion_comment_in_org( String.t(), String.t(), integer, integer, map, keyword ) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_team_discussion_comment_in_org( org, team_slug, discussion_number, comment_number, body, opts \\ [] ) do client = opts[:client] || @default_client client.request(%{ args: [ org: org, team_slug: team_slug, discussion_number: discussion_number, comment_number: comment_number, body: body ], call: {GitHub.Reactions, :create_for_team_discussion_comment_in_org}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/comments/#{comment_number}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [{200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}], opts: opts }) end @doc """ Create reaction for a team discussion comment (Legacy) **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "[Create reaction for a team discussion comment](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment)" endpoint. Create a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). A response with an HTTP `200` status means that you already added the reaction type to this team discussion comment. OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-comment-legacy) """ @spec create_for_team_discussion_comment_legacy(integer, integer, integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_team_discussion_comment_legacy( team_id, discussion_number, comment_number, body, opts \\ [] ) do client = opts[:client] || @default_client client.request(%{ args: [ team_id: team_id, discussion_number: discussion_number, comment_number: comment_number, body: body ], call: {GitHub.Reactions, :create_for_team_discussion_comment_legacy}, url: "/teams/#{team_id}/discussions/#{discussion_number}/comments/#{comment_number}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [{201, {GitHub.Reaction, :t}}], opts: opts }) end @doc """ Create reaction for a team discussion Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) """ @spec create_for_team_discussion_in_org(String.t(), String.t(), integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_team_discussion_in_org(org, team_slug, discussion_number, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [org: org, team_slug: team_slug, discussion_number: discussion_number, body: body], call: {GitHub.Reactions, :create_for_team_discussion_in_org}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [{200, {GitHub.Reaction, :t}}, {201, {GitHub.Reaction, :t}}], opts: opts }) end @doc """ Create reaction for a team discussion (Legacy) **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion) endpoint. Create a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). A response with an HTTP `200` status means that you already added the reaction type to this team discussion. OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-team-discussion-legacy) """ @spec create_for_team_discussion_legacy(integer, integer, map, keyword) :: {:ok, GitHub.Reaction.t()} | {:error, GitHub.Error.t()} def create_for_team_discussion_legacy(team_id, discussion_number, body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [team_id: team_id, discussion_number: discussion_number, body: body], call: {GitHub.Reactions, :create_for_team_discussion_legacy}, url: "/teams/#{team_id}/discussions/#{discussion_number}/reactions", body: body, method: :post, request: [{"application/json", :map}], response: [{201, {GitHub.Reaction, :t}}], opts: opts }) end @doc """ Delete a commit comment reaction **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. Delete a reaction to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction) """ @spec delete_for_commit_comment(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_commit_comment(owner, repo, comment_id, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, reaction_id: reaction_id], call: {GitHub.Reactions, :delete_for_commit_comment}, url: "/repos/#{owner}/#{repo}/comments/#{comment_id}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete an issue reaction **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. Delete a reaction to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction) """ @spec delete_for_issue(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_issue(owner, repo, issue_number, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, issue_number: issue_number, reaction_id: reaction_id], call: {GitHub.Reactions, :delete_for_issue}, url: "/repos/#{owner}/#{repo}/issues/#{issue_number}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete an issue comment reaction **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. Delete a reaction to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction) """ @spec delete_for_issue_comment(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_issue_comment(owner, repo, comment_id, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, reaction_id: reaction_id], call: {GitHub.Reactions, :delete_for_issue_comment}, url: "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete a pull request comment reaction **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` Delete a reaction to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction) """ @spec delete_for_pull_request_comment(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_pull_request_comment(owner, repo, comment_id, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id, reaction_id: reaction_id], call: {GitHub.Reactions, :delete_for_pull_request_comment}, url: "/repos/#{owner}/#{repo}/pulls/comments/#{comment_id}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete a release reaction **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id`. Delete a reaction to a [release](https://docs.github.com/rest/releases/releases#get-a-release). ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction) """ @spec delete_for_release(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_release(owner, repo, release_id, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [owner: owner, repo: repo, release_id: release_id, reaction_id: reaction_id], call: {GitHub.Reactions, :delete_for_release}, url: "/repos/#{owner}/#{repo}/releases/#{release_id}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete team discussion reaction **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. Delete a reaction to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-team-discussion-reaction) """ @spec delete_for_team_discussion(String.t(), String.t(), integer, integer, keyword) :: :ok | {:error, GitHub.Error.t()} def delete_for_team_discussion(org, team_slug, discussion_number, reaction_id, opts \\ []) do client = opts[:client] || @default_client client.request(%{ args: [ org: org, team_slug: team_slug, discussion_number: discussion_number, reaction_id: reaction_id ], call: {GitHub.Reactions, :delete_for_team_discussion}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ Delete team discussion comment reaction **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. Delete a reaction to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). OAuth app tokens and personal access tokens (classic) need the `write:discussion` scope to use this endpoint. ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#delete-team-discussion-comment-reaction) """ @spec delete_for_team_discussion_comment( String.t(), String.t(), integer, integer, integer, keyword ) :: :ok | {:error, GitHub.Error.t()} def delete_for_team_discussion_comment( org, team_slug, discussion_number, comment_number, reaction_id, opts \\ [] ) do client = opts[:client] || @default_client client.request(%{ args: [ org: org, team_slug: team_slug, discussion_number: discussion_number, comment_number: comment_number, reaction_id: reaction_id ], call: {GitHub.Reactions, :delete_for_team_discussion_comment}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/comments/#{comment_number}/reactions/#{reaction_id}", method: :delete, response: [{204, :null}], opts: opts }) end @doc """ List reactions for a commit comment List the reactions to a [commit comment](https://docs.github.com/rest/commits/comments#get-a-commit-comment). ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a commit comment. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment) """ @spec list_for_commit_comment(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_commit_comment(owner, repo, comment_id, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id], call: {GitHub.Reactions, :list_for_commit_comment}, url: "/repos/#{owner}/#{repo}/comments/#{comment_id}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}, {404, {GitHub.BasicError, :t}}], opts: opts }) end @doc """ List reactions for an issue List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue). ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue) """ @spec list_for_issue(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_issue(owner, repo, issue_number, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [owner: owner, repo: repo, issue_number: issue_number], call: {GitHub.Reactions, :list_for_issue}, url: "/repos/#{owner}/#{repo}/issues/#{issue_number}/reactions", method: :get, query: query, response: [ {200, [{GitHub.Reaction, :t}]}, {404, {GitHub.BasicError, :t}}, {410, {GitHub.BasicError, :t}} ], opts: opts }) end @doc """ List reactions for an issue comment List the reactions to an [issue comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment). ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to an issue comment. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment) """ @spec list_for_issue_comment(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_issue_comment(owner, repo, comment_id, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id], call: {GitHub.Reactions, :list_for_issue_comment}, url: "/repos/#{owner}/#{repo}/issues/comments/#{comment_id}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}, {404, {GitHub.BasicError, :t}}], opts: opts }) end @doc """ List reactions for a pull request review comment List the reactions to a [pull request review comment](https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request). ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a pull request review comment. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment) """ @spec list_for_pull_request_review_comment(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_pull_request_review_comment(owner, repo, comment_id, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [owner: owner, repo: repo, comment_id: comment_id], call: {GitHub.Reactions, :list_for_pull_request_review_comment}, url: "/repos/#{owner}/#{repo}/pulls/comments/#{comment_id}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}, {404, {GitHub.BasicError, :t}}], opts: opts }) end @doc """ List reactions for a release List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release). ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a release. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release) """ @spec list_for_release(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_release(owner, repo, release_id, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [owner: owner, repo: repo, release_id: release_id], call: {GitHub.Reactions, :list_for_release}, url: "/repos/#{owner}/#{repo}/releases/#{release_id}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}, {404, {GitHub.BasicError, :t}}], opts: opts }) end @doc """ List reactions for a team discussion comment List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) """ @spec list_for_team_discussion_comment_in_org(String.t(), String.t(), integer, integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_team_discussion_comment_in_org( org, team_slug, discussion_number, comment_number, opts \\ [] ) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [ org: org, team_slug: team_slug, discussion_number: discussion_number, comment_number: comment_number ], call: {GitHub.Reactions, :list_for_team_discussion_comment_in_org}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/comments/#{comment_number}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}], opts: opts }) end @doc """ List reactions for a team discussion comment (Legacy) **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment) endpoint. List the reactions to a [team discussion comment](https://docs.github.com/rest/teams/discussion-comments#get-a-discussion-comment). OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion comment. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-comment-legacy) """ @spec list_for_team_discussion_comment_legacy(integer, integer, integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_team_discussion_comment_legacy( team_id, discussion_number, comment_number, opts \\ [] ) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [ team_id: team_id, discussion_number: discussion_number, comment_number: comment_number ], call: {GitHub.Reactions, :list_for_team_discussion_comment_legacy}, url: "/teams/#{team_id}/discussions/#{discussion_number}/comments/#{comment_number}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}], opts: opts }) end @doc """ List reactions for a team discussion List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) """ @spec list_for_team_discussion_in_org(String.t(), String.t(), integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_team_discussion_in_org(org, team_slug, discussion_number, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [org: org, team_slug: team_slug, discussion_number: discussion_number], call: {GitHub.Reactions, :list_for_team_discussion_in_org}, url: "/orgs/#{org}/teams/#{team_slug}/discussions/#{discussion_number}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}], opts: opts }) end @doc """ List reactions for a team discussion (Legacy) **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion) endpoint. List the reactions to a [team discussion](https://docs.github.com/rest/teams/discussions#get-a-discussion). OAuth app tokens and personal access tokens (classic) need the `read:discussion` scope to use this endpoint. ## Options * `content`: Returns a single [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions). Omit this parameter to list all reactions to a team discussion. * `per_page`: The number of results per page (max 100). For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." * `page`: The page number of the results to fetch. For more information, see "[Using pagination in the REST API](https://docs.github.com/rest/using-the-rest-api/using-pagination-in-the-rest-api)." ## Resources * [API method documentation](https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-team-discussion-legacy) """ @spec list_for_team_discussion_legacy(integer, integer, keyword) :: {:ok, [GitHub.Reaction.t()]} | {:error, GitHub.Error.t()} def list_for_team_discussion_legacy(team_id, discussion_number, opts \\ []) do client = opts[:client] || @default_client query = Keyword.take(opts, [:content, :page, :per_page]) client.request(%{ args: [team_id: team_id, discussion_number: discussion_number], call: {GitHub.Reactions, :list_for_team_discussion_legacy}, url: "/teams/#{team_id}/discussions/#{discussion_number}/reactions", method: :get, query: query, response: [{200, [{GitHub.Reaction, :t}]}], opts: opts }) end end