defmodule GitHub.PullRequest do @moduledoc """ Provides struct and types for a PullRequest """ use GitHub.Encoder @type minimal :: %__MODULE__{ __info__: map, base: map, head: map, id: integer, number: integer, url: String.t() } @type simple :: %__MODULE__{ __info__: map, _links: map, active_lock_reason: String.t() | nil, assignee: GitHub.User.simple() | nil, assignees: [GitHub.User.simple()] | nil, author_association: String.t(), auto_merge: GitHub.AutoMerge.t() | nil, base: map, body: String.t() | nil, closed_at: DateTime.t() | nil, comments_url: String.t(), commits_url: String.t(), created_at: DateTime.t(), diff_url: String.t(), draft: boolean | nil, head: map, html_url: String.t(), id: integer, issue_url: String.t(), labels: [map], locked: boolean, merge_commit_sha: String.t() | nil, merged_at: DateTime.t() | nil, milestone: GitHub.Milestone.t() | nil, node_id: String.t(), number: integer, patch_url: String.t(), requested_reviewers: [GitHub.User.simple()] | nil, requested_teams: [GitHub.Team.t()] | nil, review_comment_url: String.t(), review_comments_url: String.t(), state: String.t(), statuses_url: String.t(), title: String.t(), updated_at: DateTime.t(), url: String.t(), user: GitHub.User.simple() | nil } @type t :: %__MODULE__{ __info__: map, _links: map, active_lock_reason: String.t() | nil, additions: integer, assignee: GitHub.User.simple() | nil, assignees: [GitHub.User.simple()] | nil, author_association: String.t(), auto_merge: GitHub.AutoMerge.t() | nil, base: map, body: String.t() | nil, changed_files: integer, closed_at: DateTime.t() | nil, comments: integer, comments_url: String.t(), commits: integer, commits_url: String.t(), created_at: DateTime.t(), deletions: integer, diff_url: String.t(), draft: boolean | nil, head: map, html_url: String.t(), id: integer, issue_url: String.t(), labels: [map], locked: boolean, maintainer_can_modify: boolean, merge_commit_sha: String.t() | nil, mergeable: boolean | nil, mergeable_state: String.t(), merged: boolean, merged_at: DateTime.t() | nil, merged_by: GitHub.User.simple() | nil, milestone: GitHub.Milestone.t() | nil, node_id: String.t(), number: integer, patch_url: String.t(), rebaseable: boolean | nil, requested_reviewers: [GitHub.User.simple()] | nil, requested_teams: [GitHub.Team.simple()] | nil, review_comment_url: String.t(), review_comments: integer, review_comments_url: String.t(), state: String.t(), statuses_url: String.t(), title: String.t(), updated_at: DateTime.t(), url: String.t(), user: GitHub.User.simple() } defstruct [ :__info__, :_links, :active_lock_reason, :additions, :assignee, :assignees, :author_association, :auto_merge, :base, :body, :changed_files, :closed_at, :comments, :comments_url, :commits, :commits_url, :created_at, :deletions, :diff_url, :draft, :head, :html_url, :id, :issue_url, :labels, :locked, :maintainer_can_modify, :merge_commit_sha, :mergeable, :mergeable_state, :merged, :merged_at, :merged_by, :milestone, :node_id, :number, :patch_url, :rebaseable, :requested_reviewers, :requested_teams, :review_comment_url, :review_comments, :review_comments_url, :state, :statuses_url, :title, :updated_at, :url, :user ] @doc false @spec __fields__(atom) :: keyword def __fields__(type \\ :t) def __fields__(:minimal) do [base: :map, head: :map, id: :integer, number: :integer, url: {:string, :generic}] end def __fields__(:simple) do [ _links: :map, active_lock_reason: {:union, [{:string, :generic}, :null]}, assignee: {:union, [{GitHub.User, :simple}, :null]}, assignees: {:union, [[{GitHub.User, :simple}], :null]}, author_association: {:enum, [ "COLLABORATOR", "CONTRIBUTOR", "FIRST_TIMER", "FIRST_TIME_CONTRIBUTOR", "MANNEQUIN", "MEMBER", "NONE", "OWNER" ]}, auto_merge: {:union, [{GitHub.AutoMerge, :t}, :null]}, base: :map, body: {:union, [{:string, :generic}, :null]}, closed_at: {:union, [{:string, :date_time}, :null]}, comments_url: {:string, :uri}, commits_url: {:string, :uri}, created_at: {:string, :date_time}, diff_url: {:string, :uri}, draft: :boolean, head: :map, html_url: {:string, :uri}, id: :integer, issue_url: {:string, :uri}, labels: [:map], locked: :boolean, merge_commit_sha: {:union, [{:string, :generic}, :null]}, merged_at: {:union, [{:string, :date_time}, :null]}, milestone: {:union, [{GitHub.Milestone, :t}, :null]}, node_id: {:string, :generic}, number: :integer, patch_url: {:string, :uri}, requested_reviewers: {:union, [[{GitHub.User, :simple}], :null]}, requested_teams: {:union, [[{GitHub.Team, :t}], :null]}, review_comment_url: {:string, :generic}, review_comments_url: {:string, :uri}, state: {:string, :generic}, statuses_url: {:string, :uri}, title: {:string, :generic}, updated_at: {:string, :date_time}, url: {:string, :uri}, user: {:union, [{GitHub.User, :simple}, :null]} ] end def __fields__(:t) do [ _links: :map, active_lock_reason: {:union, [{:string, :generic}, :null]}, additions: :integer, assignee: {:union, [{GitHub.User, :simple}, :null]}, assignees: {:union, [[{GitHub.User, :simple}], :null]}, author_association: {:enum, [ "COLLABORATOR", "CONTRIBUTOR", "FIRST_TIMER", "FIRST_TIME_CONTRIBUTOR", "MANNEQUIN", "MEMBER", "NONE", "OWNER" ]}, auto_merge: {:union, [{GitHub.AutoMerge, :t}, :null]}, base: :map, body: {:union, [{:string, :generic}, :null]}, changed_files: :integer, closed_at: {:union, [{:string, :date_time}, :null]}, comments: :integer, comments_url: {:string, :uri}, commits: :integer, commits_url: {:string, :uri}, created_at: {:string, :date_time}, deletions: :integer, diff_url: {:string, :uri}, draft: :boolean, head: :map, html_url: {:string, :uri}, id: :integer, issue_url: {:string, :uri}, labels: [:map], locked: :boolean, maintainer_can_modify: :boolean, merge_commit_sha: {:union, [{:string, :generic}, :null]}, mergeable: {:union, [:boolean, :null]}, mergeable_state: {:string, :generic}, merged: :boolean, merged_at: {:union, [{:string, :date_time}, :null]}, merged_by: {:union, [{GitHub.User, :simple}, :null]}, milestone: {:union, [{GitHub.Milestone, :t}, :null]}, node_id: {:string, :generic}, number: :integer, patch_url: {:string, :uri}, rebaseable: {:union, [:boolean, :null]}, requested_reviewers: {:union, [[{GitHub.User, :simple}], :null]}, requested_teams: {:union, [[{GitHub.Team, :simple}], :null]}, review_comment_url: {:string, :generic}, review_comments: :integer, review_comments_url: {:string, :uri}, state: {:enum, ["open", "closed"]}, statuses_url: {:string, :uri}, title: {:string, :generic}, updated_at: {:string, :date_time}, url: {:string, :uri}, user: {GitHub.User, :simple} ] end end