structs

package
v1.25.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2025 License: MIT Imports: 9 Imported by: 88

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidReceiveHook = errors.New("Invalid JSON payload received over webhook")

ErrInvalidReceiveHook FIXME

SupportedFullGitService represents all git services supported to migrate issues/labels/prs and etc. TODO: add to this list after new git service added

View Source
var VisibilityModes = map[string]VisibleType{
	"public":  VisibleTypePublic,
	"limited": VisibleTypeLimited,
	"private": VisibleTypePrivate,
}

VisibilityModes is a map of Visibility types

Functions

func ExtractKeysFromMapString

func ExtractKeysFromMapString(in map[string]VisibleType) (keys []string)

ExtractKeysFromMapString provides a slice of keys from map

Types

type APIError added in v1.10.0

type APIError struct {
	// Message contains the error description
	Message string `json:"message"`
	// URL contains the documentation URL for this error
	URL string `json:"url"`
}

APIError is an api error with a message

type AccessToken added in v1.9.0

type AccessToken struct {
	// The unique identifier of the access token
	ID int64 `json:"id"`
	// The name of the access token
	Name string `json:"name"`
	// The SHA1 hash of the access token
	Token string `json:"sha1"`
	// The last eight characters of the token
	TokenLastEight string `json:"token_last_eight"`
	// The scopes granted to this access token
	Scopes []string `json:"scopes"`
	// The timestamp when the token was created
	Created time.Time `json:"created_at"`
	// The timestamp when the token was last used
	Updated time.Time `json:"last_used_at"`
}

AccessToken represents an API access token. swagger:response AccessToken

type AccessTokenList added in v1.9.0

type AccessTokenList []*AccessToken

AccessTokenList represents a list of API access token. swagger:response AccessTokenList

type ActionArtifact added in v1.24.0

type ActionArtifact struct {
	ID                 int64              `json:"id"`
	Name               string             `json:"name"`
	SizeInBytes        int64              `json:"size_in_bytes"`
	URL                string             `json:"url"`
	ArchiveDownloadURL string             `json:"archive_download_url"`
	Expired            bool               `json:"expired"`
	WorkflowRun        *ActionWorkflowRun `json:"workflow_run"`

	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	UpdatedAt time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	ExpiresAt time.Time `json:"expires_at"`
}

ActionArtifact represents a ActionArtifact

type ActionArtifactsResponse added in v1.24.0

type ActionArtifactsResponse struct {
	Entries    []*ActionArtifact `json:"artifacts"`
	TotalCount int64             `json:"total_count"`
}

ActionArtifactsResponse returns ActionArtifacts

type ActionRunner added in v1.24.0

type ActionRunner struct {
	ID        int64                `json:"id"`
	Name      string               `json:"name"`
	Status    string               `json:"status"`
	Busy      bool                 `json:"busy"`
	Ephemeral bool                 `json:"ephemeral"`
	Labels    []*ActionRunnerLabel `json:"labels"`
}

ActionRunner represents a Runner

type ActionRunnerLabel added in v1.24.0

type ActionRunnerLabel struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
}

ActionRunnerLabel represents a Runner Label

type ActionRunnersResponse added in v1.24.0

type ActionRunnersResponse struct {
	Entries    []*ActionRunner `json:"runners"`
	TotalCount int64           `json:"total_count"`
}

ActionRunnersResponse returns Runners

type ActionTask added in v1.23.0

type ActionTask struct {
	// ID is the unique identifier for the action task
	ID int64 `json:"id"`
	// Name is the name of the workflow
	Name string `json:"name"`
	// HeadBranch is the branch that triggered the workflow
	HeadBranch string `json:"head_branch"`
	// HeadSHA is the commit SHA that triggered the workflow
	HeadSHA string `json:"head_sha"`
	// RunNumber is the sequential number of the workflow run
	RunNumber int64 `json:"run_number"`
	// Event is the type of event that triggered the workflow
	Event string `json:"event"`
	// DisplayTitle is the display title for the workflow run
	DisplayTitle string `json:"display_title"`
	// Status indicates the current status of the workflow run
	Status string `json:"status"`
	// WorkflowID is the identifier of the workflow
	WorkflowID string `json:"workflow_id"`
	// URL is the API URL for this workflow run
	URL string `json:"url"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	UpdatedAt time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	RunStartedAt time.Time `json:"run_started_at"`
}

ActionTask represents a ActionTask

type ActionTaskResponse added in v1.23.0

type ActionTaskResponse struct {
	// Entries contains the list of workflow runs
	Entries []*ActionTask `json:"workflow_runs"`
	// TotalCount is the total number of workflow runs
	TotalCount int64 `json:"total_count"`
}

ActionTaskResponse returns a ActionTask

type ActionVariable added in v1.22.0

type ActionVariable struct {
	// the owner to which the variable belongs
	OwnerID int64 `json:"owner_id"`
	// the repository to which the variable belongs
	RepoID int64 `json:"repo_id"`
	// the name of the variable
	Name string `json:"name"`
	// the value of the variable
	Data string `json:"data"`
	// the description of the variable
	Description string `json:"description"`
}

ActionVariable return value of the query API swagger:model

type ActionWorkflow added in v1.24.0

type ActionWorkflow struct {
	// ID is the unique identifier for the workflow
	ID string `json:"id"`
	// Name is the name of the workflow
	Name string `json:"name"`
	// Path is the file path of the workflow
	Path string `json:"path"`
	// State indicates if the workflow is active or disabled
	State string `json:"state"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	UpdatedAt time.Time `json:"updated_at"`
	// URL is the API URL for this workflow
	URL string `json:"url"`
	// HTMLURL is the web URL for viewing the workflow
	HTMLURL string `json:"html_url"`
	// BadgeURL is the URL for the workflow badge
	BadgeURL string `json:"badge_url"`
	// swagger:strfmt date-time
	DeletedAt time.Time `json:"deleted_at"`
}

ActionWorkflow represents a ActionWorkflow

type ActionWorkflowJob added in v1.24.0

type ActionWorkflowJob struct {
	ID         int64                 `json:"id"`
	URL        string                `json:"url"`
	HTMLURL    string                `json:"html_url"`
	RunID      int64                 `json:"run_id"`
	RunURL     string                `json:"run_url"`
	Name       string                `json:"name"`
	Labels     []string              `json:"labels"`
	RunAttempt int64                 `json:"run_attempt"`
	HeadSha    string                `json:"head_sha"`
	HeadBranch string                `json:"head_branch,omitempty"`
	Status     string                `json:"status"`
	Conclusion string                `json:"conclusion,omitempty"`
	RunnerID   int64                 `json:"runner_id,omitempty"`
	RunnerName string                `json:"runner_name,omitempty"`
	Steps      []*ActionWorkflowStep `json:"steps"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	StartedAt time.Time `json:"started_at"`
	// swagger:strfmt date-time
	CompletedAt time.Time `json:"completed_at"`
}

ActionWorkflowJob represents a WorkflowJob

type ActionWorkflowJobsResponse

type ActionWorkflowJobsResponse struct {
	Entries    []*ActionWorkflowJob `json:"jobs"`
	TotalCount int64                `json:"total_count"`
}

ActionWorkflowJobsResponse returns ActionWorkflowJobs

type ActionWorkflowResponse added in v1.24.0

type ActionWorkflowResponse struct {
	Workflows  []*ActionWorkflow `json:"workflows"`
	TotalCount int64             `json:"total_count"`
}

ActionWorkflowResponse returns a ActionWorkflow

type ActionWorkflowRun added in v1.24.0

type ActionWorkflowRun struct {
	ID             int64       `json:"id"`
	URL            string      `json:"url"`
	HTMLURL        string      `json:"html_url"`
	DisplayTitle   string      `json:"display_title"`
	Path           string      `json:"path"`
	Event          string      `json:"event"`
	RunAttempt     int64       `json:"run_attempt"`
	RunNumber      int64       `json:"run_number"`
	RepositoryID   int64       `json:"repository_id,omitempty"`
	HeadSha        string      `json:"head_sha"`
	HeadBranch     string      `json:"head_branch,omitempty"`
	Status         string      `json:"status"`
	Actor          *User       `json:"actor,omitempty"`
	TriggerActor   *User       `json:"trigger_actor,omitempty"`
	Repository     *Repository `json:"repository,omitempty"`
	HeadRepository *Repository `json:"head_repository,omitempty"`
	Conclusion     string      `json:"conclusion,omitempty"`
	// swagger:strfmt date-time
	StartedAt time.Time `json:"started_at"`
	// swagger:strfmt date-time
	CompletedAt time.Time `json:"completed_at"`
}

ActionWorkflowRun represents a WorkflowRun

type ActionWorkflowRunsResponse

type ActionWorkflowRunsResponse struct {
	Entries    []*ActionWorkflowRun `json:"workflow_runs"`
	TotalCount int64                `json:"total_count"`
}

ActionWorkflowRunsResponse returns ActionWorkflowRuns

type ActionWorkflowStep added in v1.24.0

type ActionWorkflowStep struct {
	Name       string `json:"name"`
	Number     int64  `json:"number"`
	Status     string `json:"status"`
	Conclusion string `json:"conclusion,omitempty"`
	// swagger:strfmt date-time
	StartedAt time.Time `json:"started_at"`
	// swagger:strfmt date-time
	CompletedAt time.Time `json:"completed_at"`
}

ActionWorkflowStep represents a step of a WorkflowJob

type Activity added in v1.20.0

type Activity struct {
	// The unique identifier of the activity
	ID int64 `json:"id"`
	// The ID of the user who receives/sees this activity
	UserID int64 `json:"user_id"` // Receiver user
	// the type of action
	//
	// enum: create_repo,rename_repo,star_repo,watch_repo,commit_repo,create_issue,create_pull_request,transfer_repo,push_tag,comment_issue,merge_pull_request,close_issue,reopen_issue,close_pull_request,reopen_pull_request,delete_tag,delete_branch,mirror_sync_push,mirror_sync_create,mirror_sync_delete,approve_pull_request,reject_pull_request,comment_pull,publish_release,pull_review_dismissed,pull_request_ready_for_review,auto_merge_pull_request
	OpType string `json:"op_type"`
	// The ID of the user who performed the action
	ActUserID int64 `json:"act_user_id"`
	// The user who performed the action
	ActUser *User `json:"act_user"`
	// The ID of the repository associated with the activity
	RepoID int64 `json:"repo_id"`
	// The repository associated with the activity
	Repo *Repository `json:"repo"`
	// The ID of the comment associated with the activity (if applicable)
	CommentID int64 `json:"comment_id"`
	// The comment associated with the activity (if applicable)
	Comment *Comment `json:"comment"`
	// The name of the git reference (branch/tag) associated with the activity
	RefName string `json:"ref_name"`
	// Whether this activity is from a private repository
	IsPrivate bool `json:"is_private"`
	// Additional content or details about the activity
	Content string `json:"content"`
	// The date and time when the activity occurred
	Created time.Time `json:"created"`
}

type ActivityPub added in v1.17.4

type ActivityPub struct {
	// Context defines the JSON-LD context for ActivityPub
	Context string `json:"@context"`
}

ActivityPub type

type AddCollaboratorOption added in v1.9.0

type AddCollaboratorOption struct {
	// enum: read,write,admin
	// Permission level to grant the collaborator
	Permission *string `json:"permission"`
}

AddCollaboratorOption options when adding a user as a collaborator of a repository

type AddOrgMembershipOption added in v1.9.0

type AddOrgMembershipOption struct {
	// Role is the role to assign to the organization member
	Role string `json:"role" binding:"Required"`
}

AddOrgMembershipOption add user to organization options

type AddTimeOption added in v1.9.0

type AddTimeOption struct {
	// time in seconds
	// required: true
	Time int64 `json:"time" binding:"Required"`
	// swagger:strfmt date-time
	Created time.Time `json:"created"`
	// username of the user who spent the time working on the issue (optional)
	User string `json:"user_name"`
}

AddTimeOption options for adding time to an issue

type AnnotatedTag added in v1.9.0

type AnnotatedTag struct {
	// The name of the annotated tag
	Tag string `json:"tag"`
	// The SHA hash of the annotated tag
	SHA string `json:"sha"`
	// The URL to access the annotated tag
	URL string `json:"url"`
	// The message associated with the annotated tag
	Message string `json:"message"`
	// The user who created the annotated tag
	Tagger *CommitUser `json:"tagger"`
	// The object that the annotated tag points to
	Object *AnnotatedTagObject `json:"object"`
	// The verification information for the annotated tag
	Verification *PayloadCommitVerification `json:"verification"`
}

AnnotatedTag represents an annotated tag

type AnnotatedTagObject added in v1.9.0

type AnnotatedTagObject struct {
	// The type of the tagged object (e.g., commit, tree)
	Type string `json:"type"`
	// The URL to access the tagged object
	URL string `json:"url"`
	// The SHA hash of the tagged object
	SHA string `json:"sha"`
}

AnnotatedTagObject contains meta information of the tag object

type ApplyDiffPatchFileOptions added in v1.17.0

type ApplyDiffPatchFileOptions struct {
	FileOptions
	// required: true
	Content string `json:"content"`
}

ApplyDiffPatchFileOptions options for applying a diff patch Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)

type Attachment added in v1.9.0

type Attachment struct {
	// ID is the unique identifier for the attachment
	ID int64 `json:"id"`
	// Name is the filename of the attachment
	Name string `json:"name"`
	// Size is the file size in bytes
	Size int64 `json:"size"`
	// DownloadCount is the number of times the attachment has been downloaded
	DownloadCount int64 `json:"download_count"`
	// swagger:strfmt date-time
	// Created is the time when the attachment was uploaded
	Created time.Time `json:"created_at"`
	// UUID is the unique identifier for the attachment file
	UUID string `json:"uuid"`
	// DownloadURL is the URL to download the attachment
	DownloadURL string `json:"browser_download_url"`
}

Attachment a generic attachment swagger:model

type Badge added in v1.22.0

type Badge struct {
	ID          int64  `json:"id"`
	Slug        string `json:"slug"`
	Description string `json:"description"`
	ImageURL    string `json:"image_url"`
}

Badge represents a user badge swagger:model

type Branch added in v1.9.0

type Branch struct {
	// Name is the branch name
	Name string `json:"name"`
	// Commit contains the latest commit information for this branch
	Commit *PayloadCommit `json:"commit"`
	// Protected indicates if the branch is protected
	Protected bool `json:"protected"`
	// RequiredApprovals is the number of required approvals for pull requests
	RequiredApprovals int64 `json:"required_approvals"`
	// EnableStatusCheck indicates if status checks are enabled
	EnableStatusCheck bool `json:"enable_status_check"`
	// StatusCheckContexts contains the list of required status check contexts
	StatusCheckContexts []string `json:"status_check_contexts"`
	// UserCanPush indicates if the current user can push to this branch
	UserCanPush bool `json:"user_can_push"`
	// UserCanMerge indicates if the current user can merge to this branch
	UserCanMerge bool `json:"user_can_merge"`
	// EffectiveBranchProtectionName is the name of the effective branch protection rule
	EffectiveBranchProtectionName string `json:"effective_branch_protection_name"`
}

Branch represents a repository branch

type BranchProtection added in v1.12.0

type BranchProtection struct {
	// Deprecated: true
	BranchName string `json:"branch_name"`
	// RuleName is the name of the branch protection rule
	RuleName string `json:"rule_name"`
	// Priority is the priority of this branch protection rule
	Priority                      int64    `json:"priority"`
	EnablePush                    bool     `json:"enable_push"`
	EnablePushWhitelist           bool     `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       bool     `json:"push_whitelist_deploy_keys"`
	EnableForcePush               bool     `json:"enable_force_push"`
	EnableForcePushAllowlist      bool     `json:"enable_force_push_allowlist"`
	ForcePushAllowlistUsernames   []string `json:"force_push_allowlist_usernames"`
	ForcePushAllowlistTeams       []string `json:"force_push_allowlist_teams"`
	ForcePushAllowlistDeployKeys  bool     `json:"force_push_allowlist_deploy_keys"`
	EnableMergeWhitelist          bool     `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string `json:"merge_whitelist_teams"`
	EnableStatusCheck             bool     `json:"enable_status_check"`
	StatusCheckContexts           []string `json:"status_check_contexts"`
	RequiredApprovals             int64    `json:"required_approvals"`
	EnableApprovalsWhitelist      bool     `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        bool     `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests bool     `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         bool     `json:"block_on_outdated_branch"`
	DismissStaleApprovals         bool     `json:"dismiss_stale_approvals"`
	IgnoreStaleApprovals          bool     `json:"ignore_stale_approvals"`
	RequireSignedCommits          bool     `json:"require_signed_commits"`
	ProtectedFilePatterns         string   `json:"protected_file_patterns"`
	UnprotectedFilePatterns       string   `json:"unprotected_file_patterns"`
	BlockAdminMergeOverride       bool     `json:"block_admin_merge_override"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`
}

BranchProtection represents a branch protection for a repository

type ChangeFileOperation added in v1.20.0

type ChangeFileOperation struct {
	// indicates what to do with the file: "create" for creating a new file, "update" for updating an existing file,
	// "upload" for creating or updating a file, "rename" for renaming a file, and "delete" for deleting an existing file.
	// required: true
	// enum: create,update,upload,rename,delete
	Operation string `json:"operation" binding:"Required"`
	// path to the existing or new file
	// required: true
	Path string `json:"path" binding:"Required;MaxSize(500)"`
	// new or updated file content, it must be base64 encoded
	ContentBase64 string `json:"content"`
	// the blob ID (SHA) for the file that already exists, required for changing existing files
	SHA string `json:"sha"`
	// old path of the file to move
	FromPath string `json:"from_path"`
}

ChangeFileOperation for creating, updating or deleting a file

type ChangeFilesOptions added in v1.20.0

type ChangeFilesOptions struct {
	FileOptions
	// list of file operations
	// required: true
	Files []*ChangeFileOperation `json:"files" binding:"Required"`
}

ChangeFilesOptions options for creating, updating or deleting multiple files Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)

type ChangedFile added in v1.17.4

type ChangedFile struct {
	// The name of the changed file
	Filename string `json:"filename"`
	// The previous filename if the file was renamed
	PreviousFilename string `json:"previous_filename,omitempty"`
	// The status of the file change (added, modified, deleted, etc.)
	Status string `json:"status"`
	// The number of lines added to the file
	Additions int `json:"additions"`
	// The number of lines deleted from the file
	Deletions int `json:"deletions"`
	// The total number of changes to the file
	Changes int `json:"changes"`
	// The HTML URL to view the file changes
	HTMLURL string `json:"html_url,omitempty"`
	// The API URL to get the file contents
	ContentsURL string `json:"contents_url,omitempty"`
	// The raw URL to download the file
	RawURL string `json:"raw_url,omitempty"`
}

ChangedFile store information about files affected by the pull request

type ChangesFromPayload added in v1.9.0

type ChangesFromPayload struct {
	// The previous value before the change
	From string `json:"from"`
}

ChangesFromPayload FIXME

type ChangesPayload added in v1.9.0

type ChangesPayload struct {
	// Changes made to the title
	Title *ChangesFromPayload `json:"title,omitempty"`
	// Changes made to the body/description
	Body *ChangesFromPayload `json:"body,omitempty"`
	// Changes made to the reference
	Ref *ChangesFromPayload `json:"ref,omitempty"`
	// Changes made to the labels added
	AddedLabels []*Label `json:"added_labels"`
	// Changes made to the labels removed
	RemovedLabels []*Label `json:"removed_labels"`
}

ChangesPayload represents the payload information of issue change

type CombinedStatus added in v1.9.0

type CombinedStatus struct {
	// State is the overall combined status state
	State commitstatus.CommitStatusState `json:"state"`
	// SHA is the commit SHA this status applies to
	SHA string `json:"sha"`
	// TotalCount is the total number of statuses
	TotalCount int `json:"total_count"`
	// Statuses contains all individual commit statuses
	Statuses []*CommitStatus `json:"statuses"`
	// Repository is the repository this status belongs to
	Repository *Repository `json:"repository"`
	// CommitURL is the API URL for the commit
	CommitURL string `json:"commit_url"`
	// URL is the API URL for this combined status
	URL string `json:"url"`
}

CombinedStatus holds the combined state of several statuses for a single commit

type Comment added in v1.9.0

type Comment struct {
	// ID is the unique identifier for the comment
	ID int64 `json:"id"`
	// HTMLURL is the web URL for viewing the comment
	HTMLURL string `json:"html_url"`
	// PRURL is the API URL for the pull request (if applicable)
	PRURL string `json:"pull_request_url"`
	// IssueURL is the API URL for the issue
	IssueURL string `json:"issue_url"`
	// Poster is the user who posted the comment
	Poster *User `json:"user"`
	// OriginalAuthor is the original author name (for imported comments)
	OriginalAuthor string `json:"original_author"`
	// OriginalAuthorID is the original author ID (for imported comments)
	OriginalAuthorID int64 `json:"original_author_id"`
	// Body contains the comment text content
	Body string `json:"body"`
	// Attachments contains files attached to the comment
	Attachments []*Attachment `json:"assets"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`
}

Comment represents a comment on a commit or issue

type Commit added in v1.9.0

type Commit struct {
	*CommitMeta
	// HTMLURL is the web URL for viewing the commit
	HTMLURL string `json:"html_url"`
	// RepoCommit contains the commit information
	RepoCommit *RepoCommit `json:"commit"`
	// Author is the GitHub/Gitea user who authored the commit
	Author *User `json:"author"`
	// Committer is the GitHub/Gitea user who committed the commit
	Committer *User `json:"committer"`
	// Parents contains the parent commit information
	Parents []*CommitMeta `json:"parents"`
	// Files contains information about files affected by the commit
	Files []*CommitAffectedFiles `json:"files"`
	// Stats contains statistics about the commit changes
	Stats *CommitStats `json:"stats"`
}

Commit contains information generated from a Git commit.

type CommitAffectedFiles added in v1.14.0

type CommitAffectedFiles struct {
	// Filename is the path of the affected file
	Filename string `json:"filename"`
	// Status indicates how the file was affected (added, modified, deleted)
	Status string `json:"status"`
}

CommitAffectedFiles store information about files affected by the commit

type CommitDateOptions added in v1.11.0

type CommitDateOptions struct {
	// swagger:strfmt date-time
	// Author is the author date for the commit
	Author time.Time `json:"author"`
	// swagger:strfmt date-time
	// Committer is the committer date for the commit
	Committer time.Time `json:"committer"`
}

CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE

type CommitMeta added in v1.9.0

type CommitMeta struct {
	// URL is the API URL for the commit
	URL string `json:"url"`
	// SHA is the commit SHA hash
	SHA string `json:"sha"`
	// swagger:strfmt date-time
	// Created is the time when the commit was created
	Created time.Time `json:"created"`
}

CommitMeta contains meta information of a commit in terms of API.

type CommitStats added in v1.17.0

type CommitStats struct {
	// Total is the total number of lines changed
	Total int `json:"total"`
	// Additions is the number of lines added
	Additions int `json:"additions"`
	// Deletions is the number of lines deleted
	Deletions int `json:"deletions"`
}

CommitStats is statistics for a RepoCommit

type CommitStatus added in v1.14.0

type CommitStatus struct {
	// ID is the unique identifier for the commit status
	ID int64 `json:"id"`
	// State represents the status state (pending, success, error, failure)
	State commitstatus.CommitStatusState `json:"status"`
	// TargetURL is the URL to link to for more details
	TargetURL string `json:"target_url"`
	// Description provides a brief description of the status
	Description string `json:"description"`
	// URL is the API URL for this status
	URL string `json:"url"`
	// Context is the unique context identifier for the status
	Context string `json:"context"`
	// Creator is the user who created the status
	Creator *User `json:"creator"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`
}

CommitStatus holds a single status of a single Commit

type CommitStatusPayload added in v1.23.0

type CommitStatusPayload struct {
	// TODO: add Branches per https://docs.github.com/en/webhooks/webhook-events-and-payloads#status
	// The commit that the status is associated with
	Commit *PayloadCommit `json:"commit"`
	// The context/identifier for this status check
	Context string `json:"context"`
	// swagger:strfmt date-time
	// The date and time when the status was created
	CreatedAt time.Time `json:"created_at"`
	// A short description of the status
	Description string `json:"description"`
	// The unique identifier of the status
	ID int64 `json:"id"`
	// The repository containing the commit
	Repo *Repository `json:"repository"`
	// The user who created the status
	Sender *User `json:"sender"`
	// The SHA hash of the commit
	SHA string `json:"sha"`
	// The state of the status (pending, success, error, failure)
	State string `json:"state"`
	// The target URL to associate with this status
	TargetURL string `json:"target_url"`
	// swagger:strfmt date-time
	// The date and time when the status was last updated
	UpdatedAt *time.Time `json:"updated_at"`
}

CommitStatusPayload represents a payload information of commit status event.

func (*CommitStatusPayload) JSONPayload added in v1.23.0

func (p *CommitStatusPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type CommitUser added in v1.9.0

type CommitUser struct {
	Identity
	// Date is the commit date in string format
	Date string `json:"date"`
}

CommitUser contains information of a user in the context of a commit.

type Compare added in v1.22.0

type Compare struct {
	TotalCommits int       `json:"total_commits"` // Total number of commits in the comparison.
	Commits      []*Commit `json:"commits"`       // List of commits in the comparison.
}

Compare represents a comparison between two commits.

type ContentsExtResponse

type ContentsExtResponse struct {
	// FileContents contains file information when the path represents a file
	FileContents *ContentsResponse `json:"file_contents,omitempty"`
	// DirContents contains directory listing when the path represents a directory
	DirContents []*ContentsResponse `json:"dir_contents,omitempty"`
}

type ContentsResponse added in v1.9.0

type ContentsResponse struct {
	// Name is the file or directory name
	Name string `json:"name"`
	// Path is the full path to the file or directory
	Path string `json:"path"`
	// SHA is the Git blob or tree SHA
	SHA string `json:"sha"`

	// LastCommitSHA is the SHA of the last commit that affected this file
	LastCommitSHA *string `json:"last_commit_sha,omitempty"`
	// swagger:strfmt date-time
	LastCommitterDate *time.Time `json:"last_committer_date,omitempty"`
	// swagger:strfmt date-time
	LastAuthorDate *time.Time `json:"last_author_date,omitempty"`
	// LastCommitMessage is the message of the last commit that affected this file
	LastCommitMessage *string `json:"last_commit_message,omitempty"`

	// `type` will be `file`, `dir`, `symlink`, or `submodule`
	Type string `json:"type"`
	// Size is the file size in bytes
	Size int64 `json:"size"`
	// `encoding` is populated when `type` is `file`, otherwise null
	Encoding *string `json:"encoding"`
	// `content` is populated when `type` is `file`, otherwise null
	Content *string `json:"content"`
	// `target` is populated when `type` is `symlink`, otherwise null
	Target *string `json:"target"`
	// URL is the API URL for this file or directory
	URL *string `json:"url"`
	// HTMLURL is the web URL for this file or directory
	HTMLURL *string `json:"html_url"`
	// GitURL is the Git API URL for this blob or tree
	GitURL *string `json:"git_url"`
	// DownloadURL is the direct download URL for this file
	DownloadURL *string `json:"download_url"`
	// `submodule_git_url` is populated when `type` is `submodule`, otherwise null
	SubmoduleGitURL *string `json:"submodule_git_url"`
	// Links contains related URLs for this file or directory
	Links *FileLinksResponse `json:"_links"`

	// LfsOid is the Git LFS object ID if this file is stored in LFS
	LfsOid *string `json:"lfs_oid,omitempty"`
	// LfsSize is the file size if this file is stored in LFS
	LfsSize *int64 `json:"lfs_size,omitempty"`
}

ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content

type CreateAccessTokenOption added in v1.9.0

type CreateAccessTokenOption struct {
	// required: true
	Name string `json:"name" binding:"Required"`
	// example: ["all", "read:activitypub","read:issue", "write:misc", "read:notification", "read:organization", "read:package", "read:repository", "read:user"]
	Scopes []string `json:"scopes"`
}

CreateAccessTokenOption options when create access token swagger:model CreateAccessTokenOption

type CreateActionWorkflowDispatch added in v1.24.0

type CreateActionWorkflowDispatch struct {
	// required: true
	// example: refs/heads/main
	Ref string `json:"ref" binding:"Required"`
	// required: false
	Inputs map[string]string `json:"inputs,omitempty"`
}

CreateActionWorkflowDispatch represents the payload for triggering a workflow dispatch event swagger:model

type CreateBranchProtectionOption added in v1.12.0

type CreateBranchProtectionOption struct {
	// Deprecated: true
	BranchName                    string   `json:"branch_name"`
	RuleName                      string   `json:"rule_name"`
	Priority                      int64    `json:"priority"`
	EnablePush                    bool     `json:"enable_push"`
	EnablePushWhitelist           bool     `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       bool     `json:"push_whitelist_deploy_keys"`
	EnableForcePush               bool     `json:"enable_force_push"`
	EnableForcePushAllowlist      bool     `json:"enable_force_push_allowlist"`
	ForcePushAllowlistUsernames   []string `json:"force_push_allowlist_usernames"`
	ForcePushAllowlistTeams       []string `json:"force_push_allowlist_teams"`
	ForcePushAllowlistDeployKeys  bool     `json:"force_push_allowlist_deploy_keys"`
	EnableMergeWhitelist          bool     `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string `json:"merge_whitelist_teams"`
	EnableStatusCheck             bool     `json:"enable_status_check"`
	StatusCheckContexts           []string `json:"status_check_contexts"`
	RequiredApprovals             int64    `json:"required_approvals"`
	EnableApprovalsWhitelist      bool     `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        bool     `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests bool     `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         bool     `json:"block_on_outdated_branch"`
	DismissStaleApprovals         bool     `json:"dismiss_stale_approvals"`
	IgnoreStaleApprovals          bool     `json:"ignore_stale_approvals"`
	RequireSignedCommits          bool     `json:"require_signed_commits"`
	ProtectedFilePatterns         string   `json:"protected_file_patterns"`
	UnprotectedFilePatterns       string   `json:"unprotected_file_patterns"`
	BlockAdminMergeOverride       bool     `json:"block_admin_merge_override"`
}

CreateBranchProtectionOption options for creating a branch protection

type CreateBranchRepoOption added in v1.13.0

type CreateBranchRepoOption struct {
	// Name of the branch to create
	//
	// required: true
	// unique: true
	BranchName string `json:"new_branch_name" binding:"Required;GitRefName;MaxSize(100)"`

	// Deprecated: true
	// Name of the old branch to create from
	//
	// unique: true
	OldBranchName string `json:"old_branch_name" binding:"GitRefName;MaxSize(100)"`

	// Name of the old branch/tag/commit to create from
	//
	// unique: true
	OldRefName string `json:"old_ref_name" binding:"GitRefName;MaxSize(100)"`
}

CreateBranchRepoOption options when creating a branch in a repository swagger:model

type CreateEmailOption added in v1.9.0

type CreateEmailOption struct {
	// email addresses to add
	Emails []string `json:"emails"`
}

CreateEmailOption options when creating email addresses

type CreateFileOptions added in v1.9.0

type CreateFileOptions struct {
	FileOptions
	// content must be base64 encoded
	// required: true
	ContentBase64 string `json:"content"`
}

CreateFileOptions options for creating files Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)

type CreateForkOption added in v1.9.0

type CreateForkOption struct {
	// organization name, if forking into an organization
	Organization *string `json:"organization"`
	// name of the forked repository
	Name *string `json:"name"`
}

CreateForkOption options for creating a fork

type CreateGPGKeyOption added in v1.9.0

type CreateGPGKeyOption struct {
	// An armored GPG key to add
	//
	// required: true
	// unique: true
	ArmoredKey string `json:"armored_public_key" binding:"Required"`
	// An optional armored signature for the GPG key
	Signature string `json:"armored_signature,omitempty"`
}

CreateGPGKeyOption options create user GPG key

type CreateHookOption added in v1.9.0

type CreateHookOption struct {
	// required: true
	// enum: dingtalk,discord,gitea,gogs,msteams,slack,telegram,feishu,wechatwork,packagist
	// The type of the webhook to create
	Type string `json:"type" binding:"Required"`
	// required: true
	// Configuration settings for the webhook
	Config CreateHookOptionConfig `json:"config" binding:"Required"`
	// List of events that will trigger this webhook
	Events []string `json:"events"`
	// Branch filter pattern to determine which branches trigger the webhook
	BranchFilter string `json:"branch_filter" binding:"GlobPattern"`
	// Authorization header to include in webhook requests
	AuthorizationHeader string `json:"authorization_header"`
	// default: false
	// Whether the webhook should be active upon creation
	Active bool `json:"active"`
}

CreateHookOption options when create a hook

type CreateHookOptionConfig added in v1.11.0

type CreateHookOptionConfig map[string]string

CreateHookOptionConfig has all config options in it required are "content_type" and "url" Required

type CreateIssueCommentOption added in v1.9.0

type CreateIssueCommentOption struct {
	// required:true
	// Body is the comment text content
	Body string `json:"body" binding:"Required"`
}

CreateIssueCommentOption options for creating a comment on an issue

type CreateIssueOption added in v1.9.0

type CreateIssueOption struct {
	// required:true
	Title string `json:"title" binding:"Required"`
	Body  string `json:"body"`
	Ref   string `json:"ref"`
	// deprecated
	Assignee  string   `json:"assignee"`
	Assignees []string `json:"assignees"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
	// milestone id
	Milestone int64 `json:"milestone"`
	// list of label ids
	Labels []int64 `json:"labels"`
	Closed bool    `json:"closed"`
}

CreateIssueOption options to create one issue

type CreateKeyOption added in v1.9.0

type CreateKeyOption struct {
	// Title of the key to add
	//
	// required: true
	// unique: true
	Title string `json:"title" binding:"Required"`
	// An armored SSH key to add
	//
	// required: true
	// unique: true
	Key string `json:"key" binding:"Required"`
	// Describe if the key has only read access or read/write
	//
	// required: false
	ReadOnly bool `json:"read_only"`
}

CreateKeyOption options when creating a key

type CreateLabelOption added in v1.9.0

type CreateLabelOption struct {
	// required:true
	// Name is the display name for the new label
	Name string `json:"name" binding:"Required"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// required:true
	// example: #00aabb
	Color string `json:"color" binding:"Required"`
	// Description provides additional context about the label's purpose
	Description string `json:"description"`
	// example: false
	IsArchived bool `json:"is_archived"`
}

CreateLabelOption options for creating a label

type CreateMilestoneOption added in v1.9.0

type CreateMilestoneOption struct {
	// Title is the title of the new milestone
	Title string `json:"title"`
	// Description provides details about the milestone
	Description string `json:"description"`
	// swagger:strfmt date-time
	// Deadline is the due date for the milestone
	Deadline *time.Time `json:"due_on"`
	// enum: open,closed
	// State indicates the initial state of the milestone
	State string `json:"state"`
}

CreateMilestoneOption options for creating a milestone

type CreateOAuth2ApplicationOptions added in v1.12.0

type CreateOAuth2ApplicationOptions struct {
	// The name of the OAuth2 application
	Name string `json:"name" binding:"Required"`
	// Whether the client is confidential
	ConfidentialClient bool `json:"confidential_client"`
	// Whether to skip secondary authorization
	SkipSecondaryAuthorization bool `json:"skip_secondary_authorization"`
	// The list of allowed redirect URIs
	RedirectURIs []string `json:"redirect_uris" binding:"Required"`
}

CreateOAuth2ApplicationOptions holds options to create an oauth2 application

type CreateOrUpdateSecretOption added in v1.21.0

type CreateOrUpdateSecretOption struct {
	// Data of the secret to update
	//
	// required: true
	Data string `json:"data" binding:"Required"`

	// Description of the secret to update
	//
	// required: false
	Description string `json:"description"`
}

CreateOrUpdateSecretOption options when creating or updating secret swagger:model

type CreateOrgOption added in v1.9.0

type CreateOrgOption struct {
	// username of the organization
	// required: true
	UserName string `json:"username" binding:"Required;Username;MaxSize(40)"`
	// The full display name of the organization
	FullName string `json:"full_name" binding:"MaxSize(100)"`
	// The email address of the organization
	Email string `json:"email" binding:"MaxSize(255)"`
	// The description of the organization
	Description string `json:"description" binding:"MaxSize(255)"`
	// The website URL of the organization
	Website string `json:"website" binding:"ValidUrl;MaxSize(255)"`
	// The location of the organization
	Location string `json:"location" binding:"MaxSize(50)"`
	// possible values are `public` (default), `limited` or `private`
	// enum: public,limited,private
	Visibility string `json:"visibility" binding:"In(,public,limited,private)"`
	// Whether repository administrators can change team access
	RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"`
}

CreateOrgOption options for creating an organization

type CreatePayload added in v1.9.0

type CreatePayload struct {
	// The SHA hash of the created reference
	Sha string `json:"sha"`
	// The full name of the created reference
	Ref string `json:"ref"`
	// The type of reference created (branch or tag)
	RefType string `json:"ref_type"`
	// The repository where the reference was created
	Repo *Repository `json:"repository"`
	// The user who created the reference
	Sender *User `json:"sender"`
}

CreatePayload represents a payload information of create event.

func ParseCreateHook added in v1.9.0

func ParseCreateHook(raw []byte) (*CreatePayload, error)

ParseCreateHook parses create event hook content.

func (*CreatePayload) JSONPayload added in v1.9.0

func (p *CreatePayload) JSONPayload() ([]byte, error)

JSONPayload return payload information

type CreatePullRequestOption added in v1.9.0

type CreatePullRequestOption struct {
	// The head branch for the pull request, it could be a branch name on the base repository or
	// a form like `<username>:<branch>` which refers to the user's fork repository's branch.
	Head string `json:"head" binding:"Required"`
	// The base branch for the pull request
	Base string `json:"base" binding:"Required"`
	// The title of the pull request
	Title string `json:"title" binding:"Required"`
	// The description body of the pull request
	Body string `json:"body"`
	// The primary assignee username
	Assignee string `json:"assignee"`
	// The list of assignee usernames
	Assignees []string `json:"assignees"`
	// The milestone ID to assign to the pull request
	Milestone int64 `json:"milestone"`
	// The list of label IDs to assign to the pull request
	Labels []int64 `json:"labels"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
	// The list of reviewer usernames
	Reviewers []string `json:"reviewers"`
	// The list of team reviewer names
	TeamReviewers []string `json:"team_reviewers"`
}

CreatePullRequestOption options when creating a pull request

type CreatePullReviewComment added in v1.12.0

type CreatePullReviewComment struct {
	// the tree path
	Path string `json:"path"`
	Body string `json:"body"`
	// if comment to old file line or 0
	OldLineNum int64 `json:"old_position"`
	// if comment to new file line or 0
	NewLineNum int64 `json:"new_position"`
}

CreatePullReviewComment represent a review comment for creation api

type CreatePullReviewOptions added in v1.12.0

type CreatePullReviewOptions struct {
	Event    ReviewStateType           `json:"event"`
	Body     string                    `json:"body"`
	CommitID string                    `json:"commit_id"`
	Comments []CreatePullReviewComment `json:"comments"`
}

CreatePullReviewOptions are options to create a pull review

type CreatePushMirrorOption added in v1.17.4

type CreatePushMirrorOption struct {
	// The remote repository URL to push to
	RemoteAddress string `json:"remote_address"`
	// The username for authentication with the remote repository
	RemoteUsername string `json:"remote_username"`
	// The password for authentication with the remote repository
	RemotePassword string `json:"remote_password"`
	// The sync interval for automatic updates
	Interval string `json:"interval"`
	// Whether to sync on every commit
	SyncOnCommit bool `json:"sync_on_commit"`
}

CreatePushMirrorOption represents need information to create a push mirror of a repository.

type CreateReleaseOption added in v1.9.0

type CreateReleaseOption struct {
	// required: true
	TagName string `json:"tag_name" binding:"Required"`
	// The message for the git tag
	TagMessage string `json:"tag_message"`
	// The target commitish for the release
	Target string `json:"target_commitish"`
	// The display title of the release
	Title string `json:"name"`
	// The release notes or description
	Note string `json:"body"`
	// Whether to create the release as a draft
	IsDraft bool `json:"draft"`
	// Whether to mark the release as a prerelease
	IsPrerelease bool `json:"prerelease"`
}

CreateReleaseOption options when creating a release

type CreateRepoOption added in v1.9.0

type CreateRepoOption struct {
	// Name of the repository to create
	//
	// required: true
	// unique: true
	Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
	// Description of the repository to create
	Description string `json:"description" binding:"MaxSize(2048)"`
	// Whether the repository is private
	Private bool `json:"private"`
	// Label-Set to use
	IssueLabels string `json:"issue_labels"`
	// Whether the repository should be auto-initialized?
	AutoInit bool `json:"auto_init"`
	// Whether the repository is template
	Template bool `json:"template"`
	// Gitignores to use
	Gitignores string `json:"gitignores"`
	// License to use
	License string `json:"license"`
	// Readme of the repository to create
	Readme string `json:"readme"`
	// DefaultBranch of the repository (used when initializes and in template)
	DefaultBranch string `json:"default_branch" binding:"GitRefName;MaxSize(100)"`
	// TrustModel of the repository
	// enum: default,collaborator,committer,collaboratorcommitter
	TrustModel string `json:"trust_model"`
	// ObjectFormatName of the underlying git repository
	// enum: sha1,sha256
	ObjectFormatName string `json:"object_format_name" binding:"MaxSize(6)"`
}

CreateRepoOption options when creating repository swagger:model

type CreateStatusOption added in v1.9.0

type CreateStatusOption struct {
	// State represents the status state to set (pending, success, error, failure)
	State commitstatus.CommitStatusState `json:"state"`
	// TargetURL is the URL to link to for more details
	TargetURL string `json:"target_url"`
	// Description provides a brief description of the status
	Description string `json:"description"`
	// Context is the unique context identifier for the status
	Context string `json:"context"`
}

CreateStatusOption holds the information needed to create a new CommitStatus for a Commit

type CreateTagOption added in v1.15.0

type CreateTagOption struct {
	// required: true
	// The name of the tag to create
	TagName string `json:"tag_name" binding:"Required"`
	// The message to associate with the tag
	Message string `json:"message"`
	// The target commit SHA or branch name for the tag
	Target string `json:"target"`
}

CreateTagOption options when creating a tag

type CreateTagProtectionOption added in v1.23.0

type CreateTagProtectionOption struct {
	// The pattern to match tag names for protection
	NamePattern string `json:"name_pattern"`
	// List of usernames allowed to create/delete protected tags
	WhitelistUsernames []string `json:"whitelist_usernames"`
	// List of team names allowed to create/delete protected tags
	WhitelistTeams []string `json:"whitelist_teams"`
}

CreateTagProtectionOption options for creating a tag protection

type CreateTeamOption added in v1.9.0

type CreateTeamOption struct {
	// required: true
	Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(255)"`
	// The description of the team
	Description string `json:"description" binding:"MaxSize(255)"`
	// Whether the team has access to all repositories in the organization
	IncludesAllRepositories bool `json:"includes_all_repositories"`
	// enum: read,write,admin
	Permission string `json:"permission"`
	// example: ["repo.actions","repo.code","repo.issues","repo.ext_issues","repo.wiki","repo.ext_wiki","repo.pulls","repo.releases","repo.projects","repo.ext_wiki"]
	// Deprecated: This variable should be replaced by UnitsMap and will be dropped in later versions.
	Units []string `json:"units"`
	// example: {"repo.actions","repo.packages","repo.code":"read","repo.issues":"write","repo.ext_issues":"none","repo.wiki":"admin","repo.pulls":"owner","repo.releases":"none","repo.projects":"none","repo.ext_wiki":"none"}
	UnitsMap map[string]string `json:"units_map"`
	// Whether the team can create repositories in the organization
	CanCreateOrgRepo bool `json:"can_create_org_repo"`
}

CreateTeamOption options for creating a team

type CreateUserOption added in v1.9.0

type CreateUserOption struct {
	// The authentication source ID to associate with the user
	SourceID int64 `json:"source_id"`
	// identifier of the user, provided by the external authenticator (if configured)
	// default: empty
	LoginName string `json:"login_name"`
	// username of the user
	// required: true
	Username string `json:"username" binding:"Required;Username;MaxSize(40)"`
	// The full display name of the user
	FullName string `json:"full_name" binding:"MaxSize(100)"`
	// required: true
	// swagger:strfmt email
	Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
	// The plain text password for the user
	Password string `json:"password" binding:"MaxSize(255)"`
	// Whether the user must change password on first login
	MustChangePassword *bool `json:"must_change_password"`
	// Whether to send welcome notification email to the user
	SendNotify bool `json:"send_notify"`
	// Whether the user has restricted access privileges
	Restricted *bool `json:"restricted"`
	// User visibility level: public, limited, or private
	Visibility string `json:"visibility" binding:"In(,public,limited,private)"`

	// For explicitly setting the user creation timestamp. Useful when users are
	// migrated from other systems. When omitted, the user's creation timestamp
	// will be set to "now".
	Created *time.Time `json:"created_at"`
}

CreateUserOption create user options

type CreateVariableOption added in v1.22.0

type CreateVariableOption struct {
	// Value of the variable to create
	//
	// required: true
	Value string `json:"value" binding:"Required"`

	// Description of the variable to create
	//
	// required: false
	Description string `json:"description"`
}

CreateVariableOption the option when creating variable swagger:model

type CreateWikiPageOptions added in v1.16.0

type CreateWikiPageOptions struct {
	// page title. leave empty to keep unchanged
	Title string `json:"title"`
	// content must be base64 encoded
	ContentBase64 string `json:"content_base64"`
	// optional commit message summarizing the change
	Message string `json:"message"`
}

CreateWikiPageOptions form for creating wiki

type Cron added in v1.13.0

type Cron struct {
	// The name of the cron task
	Name string `json:"name"`
	// The cron schedule expression (e.g., "0 0 * * *")
	Schedule string `json:"schedule"`
	// The next scheduled execution time
	Next time.Time `json:"next"`
	// The previous execution time
	Prev time.Time `json:"prev"`
	// The total number of times this cron task has been executed
	ExecTimes int64 `json:"exec_times"`
}

Cron represents a Cron task

type DeleteEmailOption added in v1.9.0

type DeleteEmailOption struct {
	// email addresses to delete
	Emails []string `json:"emails"`
}

DeleteEmailOption options when deleting email addresses

type DeleteFileOptions added in v1.9.0

type DeleteFileOptions struct {
	FileOptionsWithSHA
}

DeleteFileOptions options for deleting files (used for other File structs below) Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)

type DeletePayload added in v1.9.0

type DeletePayload struct {
	// The name of the deleted reference
	Ref string `json:"ref"`
	// The type of reference deleted (branch or tag)
	RefType string `json:"ref_type"`
	// The type of entity that performed the deletion
	PusherType PusherType `json:"pusher_type"`
	// The repository where the reference was deleted
	Repo *Repository `json:"repository"`
	// The user who deleted the reference
	Sender *User `json:"sender"`
}

DeletePayload represents delete payload

func (*DeletePayload) JSONPayload added in v1.9.0

func (p *DeletePayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type DeployKey added in v1.9.0

type DeployKey struct {
	// ID is the unique identifier for the deploy key
	ID int64 `json:"id"`
	// KeyID is the associated public key ID
	KeyID int64 `json:"key_id"`
	// Key contains the actual SSH key content
	Key string `json:"key"`
	// URL is the API URL for this deploy key
	URL string `json:"url"`
	// Title is the human-readable name for the key
	Title string `json:"title"`
	// Fingerprint is the key's fingerprint
	Fingerprint string `json:"fingerprint"`
	// swagger:strfmt date-time
	// Created is the time when the deploy key was added
	Created time.Time `json:"created_at"`
	// ReadOnly indicates if the key has read-only access
	ReadOnly bool `json:"read_only"`
	// Repository is the repository this deploy key belongs to
	Repository *Repository `json:"repository,omitempty"`
}

DeployKey a deploy key

type DismissPullReviewOptions added in v1.14.0

type DismissPullReviewOptions struct {
	Message string `json:"message"`
	Priors  bool   `json:"priors"`
}

DismissPullReviewOptions are options to dismiss a pull review

type EditAttachmentOptions added in v1.9.0

type EditAttachmentOptions struct {
	// Name is the new filename for the attachment
	Name string `json:"name"`
}

EditAttachmentOptions options for editing attachments swagger:model

type EditBranchProtectionOption added in v1.12.0

type EditBranchProtectionOption struct {
	Priority                      *int64   `json:"priority"`
	EnablePush                    *bool    `json:"enable_push"`
	EnablePushWhitelist           *bool    `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       *bool    `json:"push_whitelist_deploy_keys"`
	EnableForcePush               *bool    `json:"enable_force_push"`
	EnableForcePushAllowlist      *bool    `json:"enable_force_push_allowlist"`
	ForcePushAllowlistUsernames   []string `json:"force_push_allowlist_usernames"`
	ForcePushAllowlistTeams       []string `json:"force_push_allowlist_teams"`
	ForcePushAllowlistDeployKeys  *bool    `json:"force_push_allowlist_deploy_keys"`
	EnableMergeWhitelist          *bool    `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string `json:"merge_whitelist_teams"`
	EnableStatusCheck             *bool    `json:"enable_status_check"`
	StatusCheckContexts           []string `json:"status_check_contexts"`
	RequiredApprovals             *int64   `json:"required_approvals"`
	EnableApprovalsWhitelist      *bool    `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        *bool    `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests *bool    `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         *bool    `json:"block_on_outdated_branch"`
	DismissStaleApprovals         *bool    `json:"dismiss_stale_approvals"`
	IgnoreStaleApprovals          *bool    `json:"ignore_stale_approvals"`
	RequireSignedCommits          *bool    `json:"require_signed_commits"`
	ProtectedFilePatterns         *string  `json:"protected_file_patterns"`
	UnprotectedFilePatterns       *string  `json:"unprotected_file_patterns"`
	BlockAdminMergeOverride       *bool    `json:"block_admin_merge_override"`
}

EditBranchProtectionOption options for editing a branch protection

type EditDeadlineOption added in v1.9.0

type EditDeadlineOption struct {
	// required:true
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
}

EditDeadlineOption options for creating a deadline

type EditGitHookOption added in v1.9.0

type EditGitHookOption struct {
	// Content is the new script content for the hook
	Content string `json:"content"`
}

EditGitHookOption options when modifying one Git hook

type EditHookOption added in v1.9.0

type EditHookOption struct {
	// Configuration settings for the webhook
	Config map[string]string `json:"config"`
	// List of events that trigger this webhook
	Events []string `json:"events"`
	// Branch filter pattern to determine which branches trigger the webhook
	BranchFilter string `json:"branch_filter" binding:"GlobPattern"`
	// Authorization header to include in webhook requests
	AuthorizationHeader string `json:"authorization_header"`
	// Whether the webhook is active and will be triggered
	Active *bool `json:"active"`
}

EditHookOption options when modify one hook

type EditIssueCommentOption added in v1.9.0

type EditIssueCommentOption struct {
	// required: true
	// Body is the updated comment text content
	Body string `json:"body" binding:"Required"`
}

EditIssueCommentOption options for editing a comment

type EditIssueOption added in v1.9.0

type EditIssueOption struct {
	Title string  `json:"title"`
	Body  *string `json:"body"`
	Ref   *string `json:"ref"`
	// deprecated
	Assignee  *string  `json:"assignee"`
	Assignees []string `json:"assignees"`
	Milestone *int64   `json:"milestone"`
	State     *string  `json:"state"`
	// swagger:strfmt date-time
	Deadline       *time.Time `json:"due_date"`
	RemoveDeadline *bool      `json:"unset_due_date"`
}

EditIssueOption options for editing an issue

type EditLabelOption added in v1.9.0

type EditLabelOption struct {
	// Name is the new display name for the label
	Name *string `json:"name"`
	// example: false
	Exclusive *bool `json:"exclusive"`
	// example: #00aabb
	Color *string `json:"color"`
	// Description provides additional context about the label's purpose
	Description *string `json:"description"`
	// example: false
	IsArchived *bool `json:"is_archived"`
}

EditLabelOption options for editing a label

type EditMilestoneOption added in v1.9.0

type EditMilestoneOption struct {
	// Title is the updated title of the milestone
	Title string `json:"title"`
	// Description provides updated details about the milestone
	Description *string `json:"description"`
	// State indicates the updated state of the milestone
	State *string `json:"state"`
	// Deadline is the updated due date for the milestone
	Deadline *time.Time `json:"due_on"`
}

EditMilestoneOption options for editing a milestone

type EditOrgOption added in v1.9.0

type EditOrgOption struct {
	// The full display name of the organization
	FullName string `json:"full_name" binding:"MaxSize(100)"`
	// The email address of the organization
	Email string `json:"email" binding:"MaxSize(255)"`
	// The description of the organization
	Description string `json:"description" binding:"MaxSize(255)"`
	// The website URL of the organization
	Website string `json:"website" binding:"ValidUrl;MaxSize(255)"`
	// The location of the organization
	Location string `json:"location" binding:"MaxSize(50)"`
	// possible values are `public`, `limited` or `private`
	// enum: public,limited,private
	Visibility string `json:"visibility" binding:"In(,public,limited,private)"`
	// Whether repository administrators can change team access
	RepoAdminChangeTeamAccess *bool `json:"repo_admin_change_team_access"`
}

EditOrgOption options for editing an organization

type EditPullRequestOption added in v1.9.0

type EditPullRequestOption struct {
	// The new title for the pull request
	Title string `json:"title"`
	// The new description body for the pull request
	Body *string `json:"body"`
	// The new base branch for the pull request
	Base string `json:"base"`
	// The new primary assignee username
	Assignee string `json:"assignee"`
	// The new list of assignee usernames
	Assignees []string `json:"assignees"`
	// The new milestone ID for the pull request
	Milestone int64 `json:"milestone"`
	// The new list of label IDs for the pull request
	Labels []int64 `json:"labels"`
	// The new state for the pull request
	State *string `json:"state"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
	// Whether to remove the current deadline
	RemoveDeadline *bool `json:"unset_due_date"`
	// Whether to allow maintainer edits
	AllowMaintainerEdit *bool `json:"allow_maintainer_edit"`
}

EditPullRequestOption options when modify pull request

type EditReactionOption added in v1.11.0

type EditReactionOption struct {
	// The reaction content (e.g., emoji or reaction type)
	Reaction string `json:"content"`
}

EditReactionOption contain the reaction type

type EditReleaseOption added in v1.9.0

type EditReleaseOption struct {
	// The new name of the git tag
	TagName string `json:"tag_name"`
	// The new target commitish for the release
	Target string `json:"target_commitish"`
	// The new display title of the release
	Title string `json:"name"`
	// The new release notes or description
	Note string `json:"body"`
	// Whether to change the draft status
	IsDraft *bool `json:"draft"`
	// Whether to change the prerelease status
	IsPrerelease *bool `json:"prerelease"`
}

EditReleaseOption options when editing a release

type EditRepoOption added in v1.9.0

type EditRepoOption struct {
	// name of the repository
	// unique: true
	Name *string `json:"name,omitempty" binding:"OmitEmpty;AlphaDashDot;MaxSize(100);"`
	// a short description of the repository.
	Description *string `json:"description,omitempty" binding:"MaxSize(2048)"`
	// a URL with more information about the repository.
	Website *string `json:"website,omitempty" binding:"MaxSize(1024)"`
	// either `true` to make the repository private or `false` to make it public.
	// Note: you will get a 422 error if the organization restricts changing repository visibility to organization
	// owners and a non-owner tries to change the value of private.
	Private *bool `json:"private,omitempty"`
	// either `true` to make this repository a template or `false` to make it a normal repository
	Template *bool `json:"template,omitempty"`
	// either `true` to enable code for this repository or `false` to disable it.
	HasCode *bool `json:"has_code,omitempty"`
	// either `true` to enable issues for this repository or `false` to disable them.
	HasIssues *bool `json:"has_issues,omitempty"`
	// set this structure to configure internal issue tracker
	InternalTracker *InternalTracker `json:"internal_tracker,omitempty"`
	// set this structure to use external issue tracker
	ExternalTracker *ExternalTracker `json:"external_tracker,omitempty"`
	// either `true` to enable the wiki for this repository or `false` to disable it.
	HasWiki *bool `json:"has_wiki,omitempty"`
	// set this structure to use external wiki instead of internal
	ExternalWiki *ExternalWiki `json:"external_wiki,omitempty"`
	// sets the default branch for this repository.
	DefaultBranch *string `json:"default_branch,omitempty"`
	// either `true` to allow pull requests, or `false` to prevent pull request.
	HasPullRequests *bool `json:"has_pull_requests,omitempty"`
	// either `true` to enable project unit, or `false` to disable them.
	HasProjects *bool `json:"has_projects,omitempty"`
	// `repo` to only allow repo-level projects, `owner` to only allow owner projects, `all` to allow both.
	ProjectsMode *string `json:"projects_mode,omitempty" binding:"In(repo,owner,all)"`
	// either `true` to enable releases unit, or `false` to disable them.
	HasReleases *bool `json:"has_releases,omitempty"`
	// either `true` to enable packages unit, or `false` to disable them.
	HasPackages *bool `json:"has_packages,omitempty"`
	// either `true` to enable actions unit, or `false` to disable them.
	HasActions *bool `json:"has_actions,omitempty"`
	// either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace.
	IgnoreWhitespaceConflicts *bool `json:"ignore_whitespace_conflicts,omitempty"`
	// either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.
	AllowMerge *bool `json:"allow_merge_commits,omitempty"`
	// either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.
	AllowRebase *bool `json:"allow_rebase,omitempty"`
	// either `true` to allow rebase with explicit merge commits (--no-ff), or `false` to prevent rebase with explicit merge commits.
	AllowRebaseMerge *bool `json:"allow_rebase_explicit,omitempty"`
	// either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.
	AllowSquash *bool `json:"allow_squash_merge,omitempty"`
	// either `true` to allow fast-forward-only merging pull requests, or `false` to prevent fast-forward-only merging.
	AllowFastForwardOnly *bool `json:"allow_fast_forward_only_merge,omitempty"`
	// either `true` to allow mark pr as merged manually, or `false` to prevent it.
	AllowManualMerge *bool `json:"allow_manual_merge,omitempty"`
	// either `true` to enable AutodetectManualMerge, or `false` to prevent it. Note: In some special cases, misjudgments can occur.
	AutodetectManualMerge *bool `json:"autodetect_manual_merge,omitempty"`
	// either `true` to allow updating pull request branch by rebase, or `false` to prevent it.
	AllowRebaseUpdate *bool `json:"allow_rebase_update,omitempty"`
	// set to `true` to delete pr branch after merge by default
	DefaultDeleteBranchAfterMerge *bool `json:"default_delete_branch_after_merge,omitempty"`
	// set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", "squash", or "fast-forward-only".
	DefaultMergeStyle *string `json:"default_merge_style,omitempty"`
	// set to `true` to allow edits from maintainers by default
	DefaultAllowMaintainerEdit *bool `json:"default_allow_maintainer_edit,omitempty"`
	// set to `true` to archive this repository.
	Archived *bool `json:"archived,omitempty"`
	// set to a string like `8h30m0s` to set the mirror interval time
	MirrorInterval *string `json:"mirror_interval,omitempty"`
	// enable prune - remove obsolete remote-tracking references when mirroring
	EnablePrune *bool `json:"enable_prune,omitempty"`
}

EditRepoOption options when editing a repository's properties swagger:model

type EditTagProtectionOption added in v1.23.0

type EditTagProtectionOption struct {
	// The pattern to match tag names for protection
	NamePattern *string `json:"name_pattern"`
	// List of usernames allowed to create/delete protected tags
	WhitelistUsernames []string `json:"whitelist_usernames"`
	// List of team names allowed to create/delete protected tags
	WhitelistTeams []string `json:"whitelist_teams"`
}

EditTagProtectionOption options for editing a tag protection

type EditTeamOption added in v1.9.0

type EditTeamOption struct {
	// required: true
	Name string `json:"name" binding:"AlphaDashDot;MaxSize(255)"`
	// The description of the team
	Description *string `json:"description" binding:"MaxSize(255)"`
	// Whether the team has access to all repositories in the organization
	IncludesAllRepositories *bool `json:"includes_all_repositories"`
	// enum: read,write,admin
	Permission string `json:"permission"`
	// example: ["repo.code","repo.issues","repo.ext_issues","repo.wiki","repo.pulls","repo.releases","repo.projects","repo.ext_wiki"]
	// Deprecated: This variable should be replaced by UnitsMap and will be dropped in later versions.
	Units []string `json:"units"`
	// example: {"repo.code":"read","repo.issues":"write","repo.ext_issues":"none","repo.wiki":"admin","repo.pulls":"owner","repo.releases":"none","repo.projects":"none","repo.ext_wiki":"none"}
	UnitsMap map[string]string `json:"units_map"`
	// Whether the team can create repositories in the organization
	CanCreateOrgRepo *bool `json:"can_create_org_repo"`
}

EditTeamOption options for editing a team

type EditUserOption added in v1.9.0

type EditUserOption struct {
	// required: true
	// The authentication source ID to associate with the user
	SourceID int64 `json:"source_id"`
	// identifier of the user, provided by the external authenticator (if configured)
	// default: empty
	// required: true
	LoginName string `json:"login_name" binding:"Required"`
	// swagger:strfmt email
	// The email address of the user
	Email *string `json:"email" binding:"MaxSize(254)"`
	// The full display name of the user
	FullName *string `json:"full_name" binding:"MaxSize(100)"`
	// The plain text password for the user
	Password string `json:"password" binding:"MaxSize(255)"`
	// Whether the user must change password on next login
	MustChangePassword *bool `json:"must_change_password"`
	// The user's personal website URL
	Website *string `json:"website" binding:"OmitEmpty;ValidUrl;MaxSize(255)"`
	// The user's location or address
	Location *string `json:"location" binding:"MaxSize(50)"`
	// The user's personal description or bio
	Description *string `json:"description" binding:"MaxSize(255)"`
	// Whether the user account is active
	Active *bool `json:"active"`
	// Whether the user has administrator privileges
	Admin *bool `json:"admin"`
	// Whether the user can use Git hooks
	AllowGitHook *bool `json:"allow_git_hook"`
	// Whether the user can import local repositories
	AllowImportLocal *bool `json:"allow_import_local"`
	// Maximum number of repositories the user can create
	MaxRepoCreation *int `json:"max_repo_creation"`
	// Whether the user is prohibited from logging in
	ProhibitLogin *bool `json:"prohibit_login"`
	// Whether the user can create organizations
	AllowCreateOrganization *bool `json:"allow_create_organization"`
	// Whether the user has restricted access privileges
	Restricted *bool `json:"restricted"`
	// User visibility level: public, limited, or private
	Visibility string `json:"visibility" binding:"In(,public,limited,private)"`
}

EditUserOption edit user options

type Email added in v1.9.0

type Email struct {
	// swagger:strfmt email
	// The email address
	Email string `json:"email"`
	// Whether the email address has been verified
	Verified bool `json:"verified"`
	// Whether this is the primary email address
	Primary bool `json:"primary"`
	// The unique identifier of the user who owns this email
	UserID int64 `json:"user_id"`
	// username of the user
	UserName string `json:"username"`
}

Email an email address belonging to a user

type ExternalTracker added in v1.10.0

type ExternalTracker struct {
	// URL of external issue tracker.
	ExternalTrackerURL string `json:"external_tracker_url"`
	// External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.
	ExternalTrackerFormat string `json:"external_tracker_format"`
	// External Issue Tracker Number Format, either `numeric`, `alphanumeric`, or `regexp`
	ExternalTrackerStyle string `json:"external_tracker_style"`
	// External Issue Tracker issue regular expression
	ExternalTrackerRegexpPattern string `json:"external_tracker_regexp_pattern"`
}

ExternalTracker represents settings for external tracker swagger:model

type ExternalWiki added in v1.10.0

type ExternalWiki struct {
	// URL of external wiki.
	ExternalWikiURL string `json:"external_wiki_url"`
}

ExternalWiki represents setting for external wiki swagger:model

type FileCommitResponse added in v1.9.0

type FileCommitResponse struct {
	CommitMeta
	// HTMLURL is the web URL for viewing this commit
	HTMLURL string `json:"html_url"`
	// Author is the commit author information
	Author *CommitUser `json:"author"`
	// Committer is the commit committer information
	Committer *CommitUser `json:"committer"`
	// Parents contains parent commit metadata
	Parents []*CommitMeta `json:"parents"`
	// Message is the commit message
	Message string `json:"message"`
	// Tree contains the tree metadata for this commit
	Tree *CommitMeta `json:"tree"`
}

FileCommitResponse contains information generated from a Git commit for a repo's file.

type FileDeleteResponse added in v1.9.0

type FileDeleteResponse struct {
	// Content is always null for delete operations
	Content any `json:"content"` // to be set to nil
	// Commit contains the commit information for this delete operation
	Commit *FileCommitResponse `json:"commit"`
	// Verification contains the commit signature verification information
	Verification *PayloadCommitVerification `json:"verification"`
}

FileDeleteResponse contains information about a repo's file that was deleted

type FileLinksResponse added in v1.9.0

type FileLinksResponse struct {
	// Self is the API URL for this file
	Self *string `json:"self"`
	// GitURL is the Git API URL for this file
	GitURL *string `json:"git"`
	// HTMLURL is the web URL for this file
	HTMLURL *string `json:"html"`
}

FileLinksResponse contains the links for a repo's file

type FileOptions added in v1.9.0

type FileOptions struct {
	// message (optional) for the commit of this file. if not supplied, a default message will be used
	Message string `json:"message"`
	// branch (optional) to base this file from. if not given, the default branch is used
	BranchName string `json:"branch" binding:"GitRefName;MaxSize(100)"`
	// new_branch (optional) will make a new branch from `branch` before creating the file
	NewBranchName string `json:"new_branch" binding:"GitRefName;MaxSize(100)"`
	// `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)
	Author    Identity          `json:"author"`
	Committer Identity          `json:"committer"`
	Dates     CommitDateOptions `json:"dates"`
	// Add a Signed-off-by trailer by the committer at the end of the commit log message.
	Signoff bool `json:"signoff"`
}

FileOptions options for all file APIs

func (*FileOptions) GetFileOptions

func (f *FileOptions) GetFileOptions() *FileOptions

type FileOptionsInterface

type FileOptionsInterface interface {
	GetFileOptions() *FileOptions
}

type FileOptionsWithSHA

type FileOptionsWithSHA struct {
	FileOptions
	// the blob ID (SHA) for the file that already exists, it is required for changing existing files
	// required: true
	SHA string `json:"sha" binding:"Required"`
}

type FileResponse added in v1.9.0

type FileResponse struct {
	// Content contains the file content and metadata
	Content *ContentsResponse `json:"content"`
	// Commit contains the commit information for this file operation
	Commit *FileCommitResponse `json:"commit"`
	// Verification contains the commit signature verification information
	Verification *PayloadCommitVerification `json:"verification"`
}

FileResponse contains information about a repo's file

type FilesResponse added in v1.20.0

type FilesResponse struct {
	// Files contains the list of file contents and metadata
	Files []*ContentsResponse `json:"files"`
	// Commit contains the commit information for this file operation
	Commit *FileCommitResponse `json:"commit"`
	// Verification contains the commit signature verification information
	Verification *PayloadCommitVerification `json:"verification"`
}

FilesResponse contains information about multiple files from a repo

type ForkPayload added in v1.9.0

type ForkPayload struct {
	// The forked repository (the new fork)
	Forkee *Repository `json:"forkee"`
	// The original repository that was forked
	Repo *Repository `json:"repository"`
	// The user who created the fork
	Sender *User `json:"sender"`
}

ForkPayload represents fork payload

func (*ForkPayload) JSONPayload added in v1.9.0

func (p *ForkPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type GPGKey added in v1.9.0

type GPGKey struct {
	// The unique identifier of the GPG key
	ID int64 `json:"id"`
	// The primary key ID of the GPG key
	PrimaryKeyID string `json:"primary_key_id"`
	// The key ID of the GPG key
	KeyID string `json:"key_id"`
	// The public key content in armored format
	PublicKey string `json:"public_key"`
	// List of email addresses associated with this GPG key
	Emails []*GPGKeyEmail `json:"emails"`
	// List of subkeys of this GPG key
	SubsKey []*GPGKey `json:"subkeys"`
	// Whether the key can be used for signing
	CanSign bool `json:"can_sign"`
	// Whether the key can be used for encrypting communications
	CanEncryptComms bool `json:"can_encrypt_comms"`
	// Whether the key can be used for encrypting storage
	CanEncryptStorage bool `json:"can_encrypt_storage"`
	// Whether the key can be used for certification
	CanCertify bool `json:"can_certify"`
	// Whether the GPG key has been verified
	Verified bool `json:"verified"`
	// swagger:strfmt date-time
	// The date and time when the GPG key was created
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	// The date and time when the GPG key expires
	Expires time.Time `json:"expires_at"`
}

GPGKey a user GPG key to sign commit and tag in repository

type GPGKeyEmail added in v1.9.0

type GPGKeyEmail struct {
	// The email address associated with the GPG key
	Email string `json:"email"`
	// Whether the email address has been verified
	Verified bool `json:"verified"`
}

GPGKeyEmail an email attached to a GPGKey swagger:model GPGKeyEmail

type GeneralAPISettings added in v1.13.0

type GeneralAPISettings struct {
	// MaxResponseItems is the maximum number of items returned in API responses
	MaxResponseItems int `json:"max_response_items"`
	// DefaultPagingNum is the default number of items per page
	DefaultPagingNum int `json:"default_paging_num"`
	// DefaultGitTreesPerPage is the default number of Git tree items per page
	DefaultGitTreesPerPage int `json:"default_git_trees_per_page"`
	// DefaultMaxBlobSize is the default maximum blob size for API responses
	DefaultMaxBlobSize int64 `json:"default_max_blob_size"`
	// DefaultMaxResponseSize is the default maximum response size
	DefaultMaxResponseSize int64 `json:"default_max_response_size"`
}

GeneralAPISettings contains global api settings exposed by it

type GeneralAttachmentSettings added in v1.13.0

type GeneralAttachmentSettings struct {
	// Enabled indicates if file attachments are enabled
	Enabled bool `json:"enabled"`
	// AllowedTypes contains the allowed file types for attachments
	AllowedTypes string `json:"allowed_types"`
	// MaxSize is the maximum size for individual attachments
	MaxSize int64 `json:"max_size"`
	// MaxFiles is the maximum number of files per attachment
	MaxFiles int `json:"max_files"`
}

GeneralAttachmentSettings contains global Attachment settings exposed by API

type GeneralRepoSettings added in v1.13.0

type GeneralRepoSettings struct {
	// MirrorsDisabled indicates if repository mirroring is disabled
	MirrorsDisabled bool `json:"mirrors_disabled"`
	// HTTPGitDisabled indicates if HTTP Git operations are disabled
	HTTPGitDisabled bool `json:"http_git_disabled"`
	// MigrationsDisabled indicates if repository migrations are disabled
	MigrationsDisabled bool `json:"migrations_disabled"`
	// StarsDisabled indicates if repository starring is disabled
	StarsDisabled bool `json:"stars_disabled"`
	// TimeTrackingDisabled indicates if time tracking is disabled
	TimeTrackingDisabled bool `json:"time_tracking_disabled"`
	// LFSDisabled indicates if Git LFS support is disabled
	LFSDisabled bool `json:"lfs_disabled"`
}

GeneralRepoSettings contains global repository settings exposed by API

type GeneralUISettings added in v1.13.0

type GeneralUISettings struct {
	// DefaultTheme is the default UI theme
	DefaultTheme string `json:"default_theme"`
	// AllowedReactions contains the list of allowed emoji reactions
	AllowedReactions []string `json:"allowed_reactions"`
	// CustomEmojis contains the list of custom emojis
	CustomEmojis []string `json:"custom_emojis"`
}

GeneralUISettings contains global ui settings exposed by API

type GenerateRepoOption added in v1.15.0

type GenerateRepoOption struct {
	// the organization's name or individual user's name who will own the new repository
	//
	// required: true
	Owner string `json:"owner"`
	// required: true
	// unique: true
	Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
	// Default branch of the new repository
	DefaultBranch string `json:"default_branch"`
	// Description of the repository to create
	Description string `json:"description" binding:"MaxSize(2048)"`
	// Whether the repository is private
	Private bool `json:"private"`
	// include git content of default branch in template repo
	GitContent bool `json:"git_content"`
	// include topics in template repo
	Topics bool `json:"topics"`
	// include git hooks in template repo
	GitHooks bool `json:"git_hooks"`
	// include webhooks in template repo
	Webhooks bool `json:"webhooks"`
	// include avatar of the template repo
	Avatar bool `json:"avatar"`
	// include labels in template repo
	Labels bool `json:"labels"`
	// include protected branches in template repo
	ProtectedBranch bool `json:"protected_branch"`
}

GenerateRepoOption options when creating a repository using a template swagger:model

type GetFilesOptions added in v1.24.0

type GetFilesOptions struct {
	// Files is the list of file paths to retrieve
	Files []string `json:"files" binding:"Required"`
}

GetFilesOptions options for retrieving metadate and content of multiple files

type GitBlobResponse added in v1.9.0

type GitBlobResponse struct {
	// The content of the git blob (may be base64 encoded)
	Content *string `json:"content"`
	// The encoding used for the content (e.g., "base64")
	Encoding *string `json:"encoding"`
	// The URL to access this git blob
	URL string `json:"url"`
	// The SHA hash of the git blob
	SHA string `json:"sha"`
	// The size of the git blob in bytes
	Size int64 `json:"size"`

	// The LFS object ID if this blob is stored in LFS
	LfsOid *string `json:"lfs_oid,omitempty"`
	// The size of the LFS object if this blob is stored in LFS
	LfsSize *int64 `json:"lfs_size,omitempty"`
}

GitBlobResponse represents a git blob

type GitEntry added in v1.9.0

type GitEntry struct {
	// Path is the file or directory path
	Path string `json:"path"`
	// Mode is the file mode (permissions)
	Mode string `json:"mode"`
	// Type indicates if this is a file, directory, or symlink
	Type string `json:"type"`
	// Size is the file size in bytes
	Size int64 `json:"size"`
	// SHA is the Git object SHA
	SHA string `json:"sha"`
	// URL is the API URL for this tree entry
	URL string `json:"url"`
}

GitEntry represents a git tree

type GitHook added in v1.9.0

type GitHook struct {
	// Name is the name of the Git hook
	Name string `json:"name"`
	// IsActive indicates if the hook is active
	IsActive bool `json:"is_active"`
	// Content contains the script content of the hook
	Content string `json:"content,omitempty"`
}

GitHook represents a Git repository hook

type GitHookList added in v1.9.0

type GitHookList []*GitHook

GitHookList represents a list of Git hooks

type GitObject added in v1.9.0

type GitObject struct {
	// The type of the Git object (e.g., commit, tag, tree, blob)
	Type string `json:"type"`
	// The SHA hash of the Git object
	SHA string `json:"sha"`
	// The URL to access this Git object
	URL string `json:"url"`
}

GitObject represents a Git object.

type GitServiceType added in v1.10.0

type GitServiceType int

GitServiceType represents a git service

const (
	NotMigrated       GitServiceType = iota // 0 not migrated from external sites
	PlainGitService                         // 1 plain git service
	GithubService                           // 2 github.com
	GiteaService                            // 3 gitea service
	GitlabService                           // 4 gitlab service
	GogsService                             // 5 gogs service
	OneDevService                           // 6 onedev service
	GitBucketService                        // 7 gitbucket service
	CodebaseService                         // 8 codebase service
	CodeCommitService                       // 9 codecommit service
)

enumerate all GitServiceType

func (GitServiceType) Name added in v1.10.0

func (gt GitServiceType) Name() string

Name represents the service type's name WARNING: the name has to be equal to that on goth's library

func (GitServiceType) Title added in v1.13.0

func (gt GitServiceType) Title() string

Title represents the service type's proper title

func (GitServiceType) TokenAuth added in v1.13.0

func (gt GitServiceType) TokenAuth() bool

TokenAuth represents whether a service type supports token-based auth

type GitTreeResponse added in v1.9.0

type GitTreeResponse struct {
	// SHA is the tree object SHA
	SHA string `json:"sha"`
	// URL is the API URL for this tree
	URL string `json:"url"`
	// Entries contains the tree entries (files and directories)
	Entries []GitEntry `json:"tree"`
	// Truncated indicates if the response was truncated due to size
	Truncated bool `json:"truncated"`
	// Page is the current page number for pagination
	Page int `json:"page"`
	// TotalCount is the total number of entries in the tree
	TotalCount int `json:"total_count"`
}

GitTreeResponse returns a git tree

type GitignoreTemplateInfo added in v1.20.0

type GitignoreTemplateInfo struct {
	// Name is the name of the gitignore template
	Name string `json:"name"`
	// Source contains the content of the gitignore template
	Source string `json:"source"`
}

GitignoreTemplateInfo name and text of a gitignore template

type Hook added in v1.9.0

type Hook struct {
	// The unique identifier of the webhook
	ID int64 `json:"id"`
	// The type of the webhook (e.g., gitea, slack, discord)
	Type string `json:"type"`
	// Branch filter pattern to determine which branches trigger the webhook
	BranchFilter string `json:"branch_filter"`
	// The URL of the webhook endpoint (hidden in JSON)
	URL string `json:"-"`
	// Configuration settings for the webhook
	Config map[string]string `json:"config"`
	// List of events that trigger this webhook
	Events []string `json:"events"`
	// Authorization header to include in webhook requests
	AuthorizationHeader string `json:"authorization_header"`
	// Whether the webhook is active and will be triggered
	Active bool `json:"active"`
	// swagger:strfmt date-time
	// The date and time when the webhook was last updated
	Updated time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	// The date and time when the webhook was created
	Created time.Time `json:"created_at"`
}

Hook a hook is a web hook when one repository changed

type HookIssueAction added in v1.9.0

type HookIssueAction string

HookIssueAction FIXME

const (
	// HookIssueOpened opened
	HookIssueOpened HookIssueAction = "opened"
	// HookIssueClosed closed
	HookIssueClosed HookIssueAction = "closed"
	// HookIssueReOpened reopened
	HookIssueReOpened HookIssueAction = "reopened"
	// HookIssueEdited edited
	HookIssueEdited HookIssueAction = "edited"
	// HookIssueDeleted is an issue action for deleting an issue
	HookIssueDeleted HookIssueAction = "deleted"
	// HookIssueAssigned assigned
	HookIssueAssigned HookIssueAction = "assigned"
	// HookIssueUnassigned unassigned
	HookIssueUnassigned HookIssueAction = "unassigned"
	// HookIssueLabelUpdated label_updated
	HookIssueLabelUpdated HookIssueAction = "label_updated"
	// HookIssueLabelCleared label_cleared
	HookIssueLabelCleared HookIssueAction = "label_cleared"
	// HookIssueSynchronized synchronized
	HookIssueSynchronized HookIssueAction = "synchronized"
	// HookIssueMilestoned is an issue action for when a milestone is set on an issue.
	HookIssueMilestoned HookIssueAction = "milestoned"
	// HookIssueDemilestoned is an issue action for when a milestone is cleared on an issue.
	HookIssueDemilestoned HookIssueAction = "demilestoned"
	// HookIssueReviewed is an issue action for when a pull request is reviewed
	HookIssueReviewed HookIssueAction = "reviewed"
	// HookIssueReviewRequested is an issue action for when a reviewer is requested for a pull request.
	HookIssueReviewRequested HookIssueAction = "review_requested"
	// HookIssueReviewRequestRemoved is an issue action for removing a review request to someone on a pull request.
	HookIssueReviewRequestRemoved HookIssueAction = "review_request_removed"
)

type HookIssueCommentAction added in v1.9.0

type HookIssueCommentAction string

HookIssueCommentAction defines hook issue comment action

const (
	HookIssueCommentCreated HookIssueCommentAction = "created"
	HookIssueCommentEdited  HookIssueCommentAction = "edited"
	HookIssueCommentDeleted HookIssueCommentAction = "deleted"
)

all issue comment actions

type HookList added in v1.9.0

type HookList []*Hook

HookList represents a list of API hook.

type HookPackageAction added in v1.17.0

type HookPackageAction string

HookPackageAction an action that happens to a package

const (
	// HookPackageCreated created
	HookPackageCreated HookPackageAction = "created"
	// HookPackageDeleted deleted
	HookPackageDeleted HookPackageAction = "deleted"
)

type HookReleaseAction added in v1.9.0

type HookReleaseAction string

HookReleaseAction defines hook release action type

const (
	HookReleasePublished HookReleaseAction = "published"
	HookReleaseUpdated   HookReleaseAction = "updated"
	HookReleaseDeleted   HookReleaseAction = "deleted"
)

all release actions

type HookRepoAction added in v1.9.0

type HookRepoAction string

HookRepoAction an action that happens to a repo

const (
	// HookRepoCreated created
	HookRepoCreated HookRepoAction = "created"
	// HookRepoDeleted deleted
	HookRepoDeleted HookRepoAction = "deleted"
)

type HookWikiAction added in v1.17.4

type HookWikiAction string

HookWikiAction an action that happens to a wiki page

const (
	// HookWikiCreated created
	HookWikiCreated HookWikiAction = "created"
	// HookWikiEdited edited
	HookWikiEdited HookWikiAction = "edited"
	// HookWikiDeleted deleted
	HookWikiDeleted HookWikiAction = "deleted"
)

type Identity added in v1.9.0

type Identity struct {
	// Name is the person's name
	Name string `json:"name" binding:"MaxSize(100)"`
	// swagger:strfmt email
	// Email is the person's email address
	Email string `json:"email" binding:"MaxSize(254)"`
}

Identity for a person's identity like an author or committer

type InternalTracker added in v1.10.0

type InternalTracker struct {
	// Enable time tracking (Built-in issue tracker)
	EnableTimeTracker bool `json:"enable_time_tracker"`
	// Let only contributors track time (Built-in issue tracker)
	AllowOnlyContributorsToTrackTime bool `json:"allow_only_contributors_to_track_time"`
	// Enable dependencies for issues and pull requests (Built-in issue tracker)
	EnableIssueDependencies bool `json:"enable_issue_dependencies"`
}

InternalTracker represents settings for internal tracker swagger:model

type Issue added in v1.9.0

type Issue struct {
	ID               int64         `json:"id"`
	URL              string        `json:"url"`
	HTMLURL          string        `json:"html_url"`
	Index            int64         `json:"number"`
	Poster           *User         `json:"user"`
	OriginalAuthor   string        `json:"original_author"`
	OriginalAuthorID int64         `json:"original_author_id"`
	Title            string        `json:"title"`
	Body             string        `json:"body"`
	Ref              string        `json:"ref"`
	Attachments      []*Attachment `json:"assets"`
	Labels           []*Label      `json:"labels"`
	Milestone        *Milestone    `json:"milestone"`
	// deprecated
	Assignee  *User   `json:"assignee"`
	Assignees []*User `json:"assignees"`
	// Whether the issue is open or closed
	//
	// type: string
	// enum: open,closed
	State    StateType `json:"state"`
	IsLocked bool      `json:"is_locked"`
	Comments int       `json:"comments"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	Closed *time.Time `json:"closed_at"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`

	TimeEstimate int64 `json:"time_estimate"`

	PullRequest *PullRequestMeta `json:"pull_request"`
	Repo        *RepositoryMeta  `json:"repository"`

	PinOrder int `json:"pin_order"`
}

Issue represents an issue in a repository swagger:model

type IssueCommentPayload added in v1.9.0

type IssueCommentPayload struct {
	// The action performed on the comment (created, edited, deleted)
	Action HookIssueCommentAction `json:"action"`
	// The issue that the comment belongs to
	Issue *Issue `json:"issue"`
	// The pull request if the comment is on a pull request
	PullRequest *PullRequest `json:"pull_request,omitempty"`
	// The comment that was acted upon
	Comment *Comment `json:"comment"`
	// Changes made to the comment (for edit actions)
	Changes *ChangesPayload `json:"changes,omitempty"`
	// The repository containing the issue/pull request
	Repository *Repository `json:"repository"`
	// The user who performed the action
	Sender *User `json:"sender"`
	// Whether this comment is on a pull request
	IsPull bool `json:"is_pull"`
}

IssueCommentPayload represents a payload information of issue comment event.

func (*IssueCommentPayload) JSONPayload added in v1.9.0

func (p *IssueCommentPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type IssueConfig added in v1.20.0

type IssueConfig struct {
	BlankIssuesEnabled bool                     `json:"blank_issues_enabled" yaml:"blank_issues_enabled"`
	ContactLinks       []IssueConfigContactLink `json:"contact_links" yaml:"contact_links"`
}
type IssueConfigContactLink struct {
	Name  string `json:"name" yaml:"name"`
	URL   string `json:"url" yaml:"url"`
	About string `json:"about" yaml:"about"`
}

type IssueConfigValidation added in v1.20.0

type IssueConfigValidation struct {
	Valid   bool   `json:"valid"`
	Message string `json:"message"`
}

type IssueDeadline added in v1.9.0

type IssueDeadline struct {
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
}

IssueDeadline represents an issue deadline swagger:model

type IssueFormField added in v1.17.4

type IssueFormField struct {
	Type        IssueFormFieldType      `json:"type" yaml:"type"`
	ID          string                  `json:"id" yaml:"id"`
	Attributes  map[string]any          `json:"attributes" yaml:"attributes"`
	Validations map[string]any          `json:"validations" yaml:"validations"`
	Visible     []IssueFormFieldVisible `json:"visible,omitempty"`
}

IssueFormField represents a form field swagger:model

func (IssueFormField) VisibleInContent added in v1.22.0

func (iff IssueFormField) VisibleInContent() bool

func (IssueFormField) VisibleOnForm added in v1.22.0

func (iff IssueFormField) VisibleOnForm() bool

type IssueFormFieldType added in v1.17.4

type IssueFormFieldType string

IssueFormFieldType defines issue form field type, can be "markdown", "textarea", "input", "dropdown" or "checkboxes"

const (
	IssueFormFieldTypeMarkdown   IssueFormFieldType = "markdown"
	IssueFormFieldTypeTextarea   IssueFormFieldType = "textarea"
	IssueFormFieldTypeInput      IssueFormFieldType = "input"
	IssueFormFieldTypeDropdown   IssueFormFieldType = "dropdown"
	IssueFormFieldTypeCheckboxes IssueFormFieldType = "checkboxes"
)

type IssueFormFieldVisible added in v1.22.0

type IssueFormFieldVisible string

IssueFormFieldVisible defines issue form field visible swagger:model

const (
	IssueFormFieldVisibleForm    IssueFormFieldVisible = "form"
	IssueFormFieldVisibleContent IssueFormFieldVisible = "content"
)

type IssueLabelsOption added in v1.9.0

type IssueLabelsOption struct {
	// Labels can be a list of integers representing label IDs
	// or a list of strings representing label names
	Labels []any `json:"labels"`
}

IssueLabelsOption a collection of labels

type IssueMeta added in v1.20.0

type IssueMeta struct {
	Index int64 `json:"index"`
	// owner of the issue's repo
	Owner string `json:"owner"`
	Name  string `json:"repo"`
}

IssueMeta basic issue information swagger:model

type IssuePayload added in v1.9.0

type IssuePayload struct {
	// The action performed on the issue
	Action HookIssueAction `json:"action"`
	// The index number of the issue
	Index int64 `json:"number"`
	// Changes made to the issue (for edit actions)
	Changes *ChangesPayload `json:"changes,omitempty"`
	// The issue that was acted upon
	Issue *Issue `json:"issue"`
	// The repository containing the issue
	Repository *Repository `json:"repository"`
	// The user who performed the action
	Sender *User `json:"sender"`
	// The commit ID related to the issue action
	CommitID string `json:"commit_id"`
}

IssuePayload represents the payload information that is sent along with an issue event.

func (*IssuePayload) JSONPayload added in v1.9.0

func (p *IssuePayload) JSONPayload() ([]byte, error)

JSONPayload encodes the IssuePayload to JSON, with an indentation of two spaces.

type IssueTemplate added in v1.13.0

type IssueTemplate struct {
	Name      string                   `json:"name" yaml:"name"`
	Title     string                   `json:"title" yaml:"title"`
	About     string                   `json:"about" yaml:"about"` // Using "description" in a template file is compatible
	Labels    IssueTemplateStringSlice `json:"labels" yaml:"labels"`
	Assignees IssueTemplateStringSlice `json:"assignees" yaml:"assignees"`
	Ref       string                   `json:"ref" yaml:"ref"`
	Content   string                   `json:"content" yaml:"-"`
	Fields    []*IssueFormField        `json:"body" yaml:"body"`
	FileName  string                   `json:"file_name" yaml:"-"`
}

IssueTemplate represents an issue template for a repository swagger:model

func (IssueTemplate) Type added in v1.17.4

func (it IssueTemplate) Type() IssueTemplateType

Type returns the type of IssueTemplate, can be "md", "yaml" or empty for known

type IssueTemplateStringSlice added in v1.23.0

type IssueTemplateStringSlice []string

func (*IssueTemplateStringSlice) UnmarshalYAML added in v1.23.0

func (l *IssueTemplateStringSlice) UnmarshalYAML(value *yaml.Node) error

type IssueTemplateType added in v1.17.4

type IssueTemplateType string

IssueTemplateType defines issue template type

const (
	IssueTemplateTypeMarkdown IssueTemplateType = "md"
	IssueTemplateTypeYaml     IssueTemplateType = "yaml"
)

type LFSLock added in v1.9.0

type LFSLock struct {
	// The unique identifier of the lock
	ID string `json:"id"`
	// The file path that is locked
	Path string `json:"path"`
	// The timestamp when the lock was created
	LockedAt time.Time `json:"locked_at"`
	// The owner of the lock
	Owner *LFSLockOwner `json:"owner"`
}

LFSLock represent a lock for use with the locks API.

type LFSLockDeleteRequest added in v1.9.0

type LFSLockDeleteRequest struct {
	// Whether to force delete the lock even if not owned by the requester
	Force bool `json:"force"`
}

LFSLockDeleteRequest contains params of a delete request https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#delete-lock

type LFSLockError added in v1.9.0

type LFSLockError struct {
	// The error message
	Message string `json:"message"`
	// The lock related to the error, if any
	Lock *LFSLock `json:"lock,omitempty"`
	// URL to documentation about the error
	Documentation string `json:"documentation_url,omitempty"`
	// The request ID for debugging purposes
	RequestID string `json:"request_id,omitempty"`
}

LFSLockError contains information on the error that occurs

type LFSLockList added in v1.9.0

type LFSLockList struct {
	// The list of locks
	Locks []*LFSLock `json:"locks"`
	// The cursor for pagination to the next set of results
	Next string `json:"next_cursor,omitempty"`
}

LFSLockList represent a list of lock requested https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks

type LFSLockListVerify added in v1.9.0

type LFSLockListVerify struct {
	// Locks owned by the requesting user
	Ours []*LFSLock `json:"ours"`
	// Locks owned by other users
	Theirs []*LFSLock `json:"theirs"`
	// The cursor for pagination to the next set of results
	Next string `json:"next_cursor,omitempty"`
}

LFSLockListVerify represent a list of lock verification requested https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks-for-verification

type LFSLockOwner added in v1.9.0

type LFSLockOwner struct {
	// The name of the lock owner
	Name string `json:"name"`
}

LFSLockOwner represent a lock owner for use with the locks API.

type LFSLockRequest added in v1.9.0

type LFSLockRequest struct {
	// The file path to lock
	Path string `json:"path"`
}

LFSLockRequest contains the path of the lock to create https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock

type LFSLockResponse added in v1.9.0

type LFSLockResponse struct {
	// The created lock
	Lock *LFSLock `json:"lock"`
}

LFSLockResponse represent a lock created https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock

type Label added in v1.9.0

type Label struct {
	// ID is the unique identifier for the label
	ID int64 `json:"id"`
	// Name is the display name of the label
	Name string `json:"name"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// example: false
	IsArchived bool `json:"is_archived"`
	// example: 00aabb
	Color string `json:"color"`
	// Description provides additional context about the label's purpose
	Description string `json:"description"`
	// URL is the API endpoint for accessing this label
	URL string `json:"url"`
}

Label a label to an issue or a pr swagger:model

type LabelTemplate added in v1.20.0

type LabelTemplate struct {
	// Name is the display name of the label template
	Name string `json:"name"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// example: 00aabb
	Color string `json:"color"`
	// Description provides additional context about the label template's purpose
	Description string `json:"description"`
}

LabelTemplate info of a Label template

type LicenseTemplateInfo added in v1.20.0

type LicenseTemplateInfo struct {
	// Key is the unique identifier for the license template
	Key string `json:"key"`
	// Name is the display name of the license
	Name string `json:"name"`
	// URL is the reference URL for the license
	URL string `json:"url"`
	// Implementation contains license implementation details
	Implementation string `json:"implementation"`
	// Body contains the full text of the license
	Body string `json:"body"`
}

LicensesInfo contains information about a License

type LicensesTemplateListEntry added in v1.20.0

type LicensesTemplateListEntry struct {
	// Key is the unique identifier for the license template
	Key string `json:"key"`
	// Name is the display name of the license
	Name string `json:"name"`
	// URL is the reference URL for the license
	URL string `json:"url"`
}

LicensesListEntry is used for the API

type ListPullRequestsOptions added in v1.9.0

type ListPullRequestsOptions struct {
	// The page number for pagination
	Page int `json:"page"`
	// The state filter for pull requests
	State string `json:"state"`
}

ListPullRequestsOptions options for listing pull requests

type LockIssueOption added in v1.24.0

type LockIssueOption struct {
	Reason string `json:"lock_reason"`
}

LockIssueOption options to lock an issue

type MarkdownOption added in v1.9.0

type MarkdownOption struct {
	// Text markdown to render
	//
	// in: body
	Text string
	// Mode to render (markdown, comment, wiki, file)
	//
	// in: body
	Mode string
	// URL path for rendering issue, media and file links
	// Expected format: /subpath/{user}/{repo}/src/{branch, commit, tag}/{identifier/path}/{file/dir}
	//
	// in: body
	Context string
	// Is it a wiki page? (use mode=wiki instead)
	//
	// Deprecated: true
	// in: body
	Wiki bool
}

MarkdownOption markdown options

type MarkdownRender added in v1.9.0

type MarkdownRender string

MarkdownRender is a rendered markdown document swagger:response MarkdownRender

type MarkupOption added in v1.20.0

type MarkupOption struct {
	// Text markup to render
	//
	// in: body
	Text string
	// Mode to render (markdown, comment, wiki, file)
	//
	// in: body
	Mode string
	// URL path for rendering issue, media and file links
	// Expected format: /subpath/{user}/{repo}/src/{branch, commit, tag}/{identifier/path}/{file/dir}
	//
	// in: body
	Context string
	// Is it a wiki page? (use mode=wiki instead)
	//
	// Deprecated: true
	// in: body
	Wiki bool
	// File path for detecting extension in file mode
	//
	// in: body
	FilePath string
}

MarkupOption markup options

type MarkupRender added in v1.20.0

type MarkupRender string

MarkupRender is a rendered markup document swagger:response MarkupRender

type MergeUpstreamRequest added in v1.23.1

type MergeUpstreamRequest struct {
	Branch string `json:"branch"`
	FfOnly bool   `json:"ff_only"`
}

type MergeUpstreamResponse added in v1.23.1

type MergeUpstreamResponse struct {
	MergeStyle string `json:"merge_type"`
}

type MigrateRepoOptions added in v1.13.0

type MigrateRepoOptions struct {
	// required: true
	CloneAddr string `json:"clone_addr" binding:"Required"`
	// deprecated (only for backwards compatibility, use repo_owner instead)
	RepoOwnerID int64 `json:"uid"`
	// the organization's name or individual user's name who will own the migrated repository
	RepoOwner string `json:"repo_owner"`
	// required: true
	RepoName string `json:"repo_name" binding:"Required;AlphaDashDot;MaxSize(100)"`

	// enum: git,github,gitea,gitlab,gogs,onedev,gitbucket,codebase,codecommit
	Service      string `json:"service"`
	AuthUsername string `json:"auth_username"`
	AuthPassword string `json:"auth_password"`
	AuthToken    string `json:"auth_token"`

	Mirror         bool   `json:"mirror"`
	LFS            bool   `json:"lfs"`
	LFSEndpoint    string `json:"lfs_endpoint"`
	Private        bool   `json:"private"`
	Description    string `json:"description" binding:"MaxSize(2048)"`
	Wiki           bool   `json:"wiki"`
	Milestones     bool   `json:"milestones"`
	Labels         bool   `json:"labels"`
	Issues         bool   `json:"issues"`
	PullRequests   bool   `json:"pull_requests"`
	Releases       bool   `json:"releases"`
	MirrorInterval string `json:"mirror_interval"`

	AWSAccessKeyID     string `json:"aws_access_key_id"`
	AWSSecretAccessKey string `json:"aws_secret_access_key"`
}

MigrateRepoOptions options for migrating repository's this is used to interact with api v1

type Milestone added in v1.9.0

type Milestone struct {
	// ID is the unique identifier for the milestone
	ID int64 `json:"id"`
	// Title is the title of the milestone
	Title string `json:"title"`
	// Description provides details about the milestone
	Description string `json:"description"`
	// State indicates if the milestone is open or closed
	State StateType `json:"state"`
	// OpenIssues is the number of open issues in this milestone
	OpenIssues int `json:"open_issues"`
	// ClosedIssues is the number of closed issues in this milestone
	ClosedIssues int `json:"closed_issues"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated *time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	Closed *time.Time `json:"closed_at"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_on"`
}

Milestone milestone is a collection of issues on one repository

type NewIssuePinsAllowed added in v1.20.0

type NewIssuePinsAllowed struct {
	Issues       bool `json:"issues"`
	PullRequests bool `json:"pull_requests"`
}

NewIssuePinsAllowed represents an API response that says if new Issue Pins are allowed

type NodeInfo added in v1.16.0

type NodeInfo struct {
	// Version specifies the schema version
	Version string `json:"version"`
	// Software contains information about the server software
	Software NodeInfoSoftware `json:"software"`
	// Protocols lists the protocols supported by this server
	Protocols []string `json:"protocols"`
	// Services contains third party services this server can connect to
	Services NodeInfoServices `json:"services"`
	// OpenRegistrations indicates if new user registrations are accepted
	OpenRegistrations bool `json:"openRegistrations"`
	// Usage contains server usage statistics
	Usage NodeInfoUsage `json:"usage"`
	// Metadata contains free form key value pairs for software specific values
	Metadata struct{} `json:"metadata"`
}

NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks

type NodeInfoServices added in v1.16.0

type NodeInfoServices struct {
	// Inbound lists services that can deliver content to this server
	Inbound []string `json:"inbound"`
	// Outbound lists services this server can deliver content to
	Outbound []string `json:"outbound"`
}

NodeInfoServices contains the third party sites this server can connect to via their application API

type NodeInfoSoftware added in v1.16.0

type NodeInfoSoftware struct {
	// Name is the canonical name of this server software
	Name string `json:"name"`
	// Version is the version of this server software
	Version string `json:"version"`
	// Repository is the URL to the source code repository
	Repository string `json:"repository"`
	// Homepage is the URL to the homepage of this server software
	Homepage string `json:"homepage"`
}

NodeInfoSoftware contains Metadata about server software in use

type NodeInfoUsage added in v1.16.0

type NodeInfoUsage struct {
	// Users contains user statistics
	Users NodeInfoUsageUsers `json:"users"`
	// LocalPosts is the total amount of posts made by users local to this server
	LocalPosts int `json:"localPosts,omitempty"`
	// LocalComments is the total amount of comments made by users local to this server
	LocalComments int `json:"localComments,omitempty"`
}

NodeInfoUsage contains usage statistics for this server

type NodeInfoUsageUsers added in v1.16.0

type NodeInfoUsageUsers struct {
	// Total is the total amount of users on this server
	Total int `json:"total,omitempty"`
	// ActiveHalfyear is the amount of users that signed in at least once in the last 180 days
	ActiveHalfyear int `json:"activeHalfyear,omitempty"`
	// ActiveMonth is the amount of users that signed in at least once in the last 30 days
	ActiveMonth int `json:"activeMonth,omitempty"`
}

NodeInfoUsageUsers contains statistics about the users of this server

type Note added in v1.16.0

type Note struct {
	// The content message of the git note
	Message string `json:"message"`
	// The commit that this note is attached to
	Commit *Commit `json:"commit"`
}

Note contains information related to a git note

type NotificationCount added in v1.12.0

type NotificationCount struct {
	// New is the number of unread notifications
	New int64 `json:"new"`
}

NotificationCount number of unread notifications

type NotificationSubject added in v1.12.0

type NotificationSubject struct {
	// Title is the title of the notification subject
	Title string `json:"title"`
	// URL is the API URL for the notification subject
	URL string `json:"url"`
	// LatestCommentURL is the API URL for the latest comment
	LatestCommentURL string `json:"latest_comment_url"`
	// HTMLURL is the web URL for the notification subject
	HTMLURL string `json:"html_url"`
	// LatestCommentHTMLURL is the web URL for the latest comment
	LatestCommentHTMLURL string `json:"latest_comment_html_url"`
	// Type indicates the type of the notification subject
	Type NotifySubjectType `json:"type" binding:"In(Issue,Pull,Commit,Repository)"`
	// State indicates the current state of the notification subject
	State StateType `json:"state"`
}

NotificationSubject contains the notification subject (Issue/Pull/Commit)

type NotificationThread added in v1.12.0

type NotificationThread struct {
	// ID is the unique identifier for the notification thread
	ID int64 `json:"id"`
	// Repository is the repository associated with the notification
	Repository *Repository `json:"repository"`
	// Subject contains details about the notification subject
	Subject *NotificationSubject `json:"subject"`
	// Unread indicates if the notification has been read
	Unread bool `json:"unread"`
	// Pinned indicates if the notification is pinned
	Pinned bool `json:"pinned"`
	// UpdatedAt is the time when the notification was last updated
	UpdatedAt time.Time `json:"updated_at"`
	// URL is the API URL for this notification thread
	URL string `json:"url"`
}

NotificationThread expose Notification on API

type NotifySubjectType added in v1.15.0

type NotifySubjectType string

NotifySubjectType represent type of notification subject

const (
	// NotifySubjectIssue an issue is subject of an notification
	NotifySubjectIssue NotifySubjectType = "Issue"
	// NotifySubjectPull an pull is subject of an notification
	NotifySubjectPull NotifySubjectType = "Pull"
	// NotifySubjectCommit an commit is subject of an notification
	NotifySubjectCommit NotifySubjectType = "Commit"
	// NotifySubjectRepository an repository is subject of an notification
	NotifySubjectRepository NotifySubjectType = "Repository"
)

type OAuth2Application added in v1.12.0

type OAuth2Application struct {
	// The unique identifier of the OAuth2 application
	ID int64 `json:"id"`
	// The name of the OAuth2 application
	Name string `json:"name"`
	// The client ID of the OAuth2 application
	ClientID string `json:"client_id"`
	// The client secret of the OAuth2 application
	ClientSecret string `json:"client_secret"`
	// Whether the client is confidential
	ConfidentialClient bool `json:"confidential_client"`
	// Whether to skip secondary authorization
	SkipSecondaryAuthorization bool `json:"skip_secondary_authorization"`
	// The list of allowed redirect URIs
	RedirectURIs []string `json:"redirect_uris"`
	// The timestamp when the application was created
	Created time.Time `json:"created"`
}

OAuth2Application represents an OAuth2 application. swagger:response OAuth2Application

type OAuth2ApplicationList added in v1.12.0

type OAuth2ApplicationList []*OAuth2Application

OAuth2ApplicationList represents a list of OAuth2 applications. swagger:response OAuth2ApplicationList

type Organization added in v1.9.0

type Organization struct {
	// The unique identifier of the organization
	ID int64 `json:"id"`
	// The name of the organization
	Name string `json:"name"`
	// The full display name of the organization
	FullName string `json:"full_name"`
	// The email address of the organization
	Email string `json:"email"`
	// The URL of the organization's avatar
	AvatarURL string `json:"avatar_url"`
	// The description of the organization
	Description string `json:"description"`
	// The website URL of the organization
	Website string `json:"website"`
	// The location of the organization
	Location string `json:"location"`
	// The visibility level of the organization (public, limited, private)
	Visibility string `json:"visibility"`
	// Whether repository administrators can change team access
	RepoAdminChangeTeamAccess bool `json:"repo_admin_change_team_access"`
	// username of the organization
	// deprecated
	UserName string `json:"username"`
}

Organization represents an organization

type OrganizationPermissions added in v1.16.0

type OrganizationPermissions struct {
	// Whether the user is an owner of the organization
	IsOwner bool `json:"is_owner"`
	// Whether the user is an admin of the organization
	IsAdmin bool `json:"is_admin"`
	// Whether the user can write to the organization
	CanWrite bool `json:"can_write"`
	// Whether the user can read the organization
	CanRead bool `json:"can_read"`
	// Whether the user can create repositories in the organization
	CanCreateRepository bool `json:"can_create_repository"`
}

OrganizationPermissions list different users permissions on an organization

type PRBranchInfo added in v1.9.0

type PRBranchInfo struct {
	// The display name of the branch
	Name string `json:"label"`
	// The git reference of the branch
	Ref string `json:"ref"`
	// The commit SHA of the branch head
	Sha string `json:"sha"`
	// The unique identifier of the repository
	RepoID int64 `json:"repo_id"`
	// The repository information
	Repository *Repository `json:"repo"`
}

PRBranchInfo information about a branch

type Package added in v1.17.0

type Package struct {
	// The unique identifier of the package
	ID int64 `json:"id"`
	// The owner of the package
	Owner *User `json:"owner"`
	// The repository that contains this package
	Repository *Repository `json:"repository"`
	// The user who created this package
	Creator *User `json:"creator"`
	// The type of the package (e.g., npm, maven, docker)
	Type string `json:"type"`
	// The name of the package
	Name string `json:"name"`
	// The version of the package
	Version string `json:"version"`
	// The HTML URL to view the package
	HTMLURL string `json:"html_url"`
	// swagger:strfmt date-time
	// The date and time when the package was created
	CreatedAt time.Time `json:"created_at"`
}

Package represents a package

type PackageFile added in v1.17.0

type PackageFile struct {
	// The unique identifier of the package file
	ID int64 `json:"id"`
	// The size of the package file in bytes
	Size int64 `json:"size"`
	// The name of the package file
	Name string `json:"name"`
	// The MD5 hash of the package file
	HashMD5 string `json:"md5"`
	// The SHA1 hash of the package file
	HashSHA1 string `json:"sha1"`
	// The SHA256 hash of the package file
	HashSHA256 string `json:"sha256"`
	// The SHA512 hash of the package file
	HashSHA512 string `json:"sha512"`
}

PackageFile represents a package file

type PackagePayload added in v1.17.0

type PackagePayload struct {
	// The action performed on the package
	Action HookPackageAction `json:"action"`
	// The repository associated with the package
	Repository *Repository `json:"repository"`
	// The package that was acted upon
	Package *Package `json:"package"`
	// The organization that owns the package (if applicable)
	Organization *Organization `json:"organization"`
	// The user who performed the action
	Sender *User `json:"sender"`
}

PackagePayload represents a package payload

func (*PackagePayload) JSONPayload added in v1.17.0

func (p *PackagePayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type PayloadCommit added in v1.9.0

type PayloadCommit struct {
	// sha1 hash of the commit
	ID string `json:"id"`
	// The commit message
	Message string `json:"message"`
	// The URL to view this commit
	URL string `json:"url"`
	// The author of the commit
	Author *PayloadUser `json:"author"`
	// The committer of the commit
	Committer *PayloadUser `json:"committer"`
	// GPG verification information for the commit
	Verification *PayloadCommitVerification `json:"verification"`
	// swagger:strfmt date-time
	// The timestamp when the commit was made
	Timestamp time.Time `json:"timestamp"`
	// List of files added in this commit
	Added []string `json:"added"`
	// List of files removed in this commit
	Removed []string `json:"removed"`
	// List of files modified in this commit
	Modified []string `json:"modified"`
}

PayloadCommit represents a commit

type PayloadCommitVerification added in v1.9.0

type PayloadCommitVerification struct {
	// Whether the commit signature is verified
	Verified bool `json:"verified"`
	// The reason for the verification status
	Reason string `json:"reason"`
	// The GPG signature of the commit
	Signature string `json:"signature"`
	// The user who signed the commit
	Signer *PayloadUser `json:"signer"`
	// The signed payload content
	Payload string `json:"payload"`
}

PayloadCommitVerification represents the GPG verification of a commit

type PayloadUser added in v1.9.0

type PayloadUser struct {
	// Full name of the commit author
	Name string `json:"name"`
	// swagger:strfmt email
	Email string `json:"email"`
	// username of the user
	UserName string `json:"username"`
}

PayloadUser represents the author or committer of a commit

type Payloader added in v1.9.0

type Payloader interface {
	JSONPayload() ([]byte, error)
}

Payloader payload is some part of one hook

type Permission added in v1.9.0

type Permission struct {
	Admin bool `json:"admin"` // Admin indicates if the user is an administrator of the repository.
	Push  bool `json:"push"`  // Push indicates if the user can push code to the repository.
	Pull  bool `json:"pull"`  // Pull indicates if the user can pull code from the repository.
}

Permission represents a set of permissions

type PublicKey added in v1.9.0

type PublicKey struct {
	// ID is the unique identifier for the public key
	ID int64 `json:"id"`
	// Key contains the actual SSH public key content
	Key string `json:"key"`
	// URL is the API URL for this key
	URL string `json:"url,omitempty"`
	// Title is the human-readable name for the key
	Title string `json:"title,omitempty"`
	// Fingerprint is the key's fingerprint
	Fingerprint string `json:"fingerprint,omitempty"`
	// swagger:strfmt date-time
	// Created is the time when the key was added
	Created time.Time `json:"created_at"`
	// Updated is the time when the key was last used
	Updated time.Time `json:"last_used_at"`
	// Owner is the user who owns this key
	Owner *User `json:"user,omitempty"`
	// ReadOnly indicates if the key has read-only access
	ReadOnly bool `json:"read_only,omitempty"`
	// KeyType indicates the type of the SSH key
	KeyType string `json:"key_type,omitempty"`
}

PublicKey publickey is a user key to push code to repository

type PullRequest added in v1.9.0

type PullRequest struct {
	// The unique identifier of the pull request
	ID int64 `json:"id"`
	// The API URL of the pull request
	URL string `json:"url"`
	// The pull request number
	Index int64 `json:"number"`
	// The user who created the pull request
	Poster *User `json:"user"`
	// The title of the pull request
	Title string `json:"title"`
	// The description body of the pull request
	Body string `json:"body"`
	// The labels attached to the pull request
	Labels []*Label `json:"labels"`
	// The milestone associated with the pull request
	Milestone *Milestone `json:"milestone"`
	// The primary assignee of the pull request
	Assignee *User `json:"assignee"`
	// The list of users assigned to the pull request
	Assignees []*User `json:"assignees"`
	// The users requested to review the pull request
	RequestedReviewers []*User `json:"requested_reviewers"`
	// The teams requested to review the pull request
	RequestedReviewersTeams []*Team `json:"requested_reviewers_teams"`
	// The current state of the pull request
	State StateType `json:"state"`
	// Whether the pull request is a draft
	Draft bool `json:"draft"`
	// Whether the pull request conversation is locked
	IsLocked bool `json:"is_locked"`
	// The number of comments on the pull request
	Comments int `json:"comments"`

	// number of review comments made on the diff of a PR review (not including comments on commits or issues in a PR)
	ReviewComments int `json:"review_comments,omitempty"`

	// The number of lines added in the pull request
	Additions *int `json:"additions,omitempty"`
	// The number of lines deleted in the pull request
	Deletions *int `json:"deletions,omitempty"`
	// The number of files changed in the pull request
	ChangedFiles *int `json:"changed_files,omitempty"`

	// The HTML URL to view the pull request
	HTMLURL string `json:"html_url"`
	// The URL to download the diff patch
	DiffURL string `json:"diff_url"`
	// The URL to download the patch file
	PatchURL string `json:"patch_url"`

	// Whether the pull request can be merged
	Mergeable bool `json:"mergeable"`
	// Whether the pull request has been merged
	HasMerged bool `json:"merged"`
	// swagger:strfmt date-time
	Merged *time.Time `json:"merged_at"`
	// The SHA of the merge commit
	MergedCommitID *string `json:"merge_commit_sha"`
	// The user who merged the pull request
	MergedBy *User `json:"merged_by"`
	// Whether maintainers can edit the pull request
	AllowMaintainerEdit bool `json:"allow_maintainer_edit"`

	// Information about the base branch
	Base *PRBranchInfo `json:"base"`
	// Information about the head branch
	Head *PRBranchInfo `json:"head"`
	// The merge base commit SHA
	MergeBase string `json:"merge_base"`

	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`

	// swagger:strfmt date-time
	Created *time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated *time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	Closed *time.Time `json:"closed_at"`

	// The pin order for the pull request
	PinOrder int `json:"pin_order"`
}

PullRequest represents a pull request

type PullRequestMeta added in v1.9.0

type PullRequestMeta struct {
	HasMerged        bool       `json:"merged"`
	Merged           *time.Time `json:"merged_at"`
	IsWorkInProgress bool       `json:"draft"`
	HTMLURL          string     `json:"html_url"`
}

PullRequestMeta PR info if an issue is a PR

type PullRequestPayload added in v1.9.0

type PullRequestPayload struct {
	// The action performed on the pull request
	Action HookIssueAction `json:"action"`
	// The index number of the pull request
	Index int64 `json:"number"`
	// Changes made to the pull request (for edit actions)
	Changes *ChangesPayload `json:"changes,omitempty"`
	// The pull request that was acted upon
	PullRequest *PullRequest `json:"pull_request"`
	// The reviewer that was requested (for review request actions)
	RequestedReviewer *User `json:"requested_reviewer"`
	// The repository containing the pull request
	Repository *Repository `json:"repository"`
	// The user who performed the action
	Sender *User `json:"sender"`
	// The commit ID related to the pull request action
	CommitID string `json:"commit_id"`
	// The review information (for review actions)
	Review *ReviewPayload `json:"review"`
}

PullRequestPayload represents a payload information of pull request event.

func (*PullRequestPayload) JSONPayload added in v1.9.0

func (p *PullRequestPayload) JSONPayload() ([]byte, error)

JSONPayload FIXME

type PullReview added in v1.12.0

type PullReview struct {
	ID                int64           `json:"id"`
	Reviewer          *User           `json:"user"`
	ReviewerTeam      *Team           `json:"team"`
	State             ReviewStateType `json:"state"`
	Body              string          `json:"body"`
	CommitID          string          `json:"commit_id"`
	Stale             bool            `json:"stale"`
	Official          bool            `json:"official"`
	Dismissed         bool            `json:"dismissed"`
	CodeCommentsCount int             `json:"comments_count"`
	// swagger:strfmt date-time
	Submitted time.Time `json:"submitted_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`

	// HTMLURL is the web URL for viewing the review
	HTMLURL string `json:"html_url"`
	// HTMLPullURL is the web URL for the pull request
	HTMLPullURL string `json:"pull_request_url"`
}

PullReview represents a pull request review

type PullReviewComment added in v1.12.0

type PullReviewComment struct {
	ID       int64  `json:"id"`
	Body     string `json:"body"`
	Poster   *User  `json:"user"`
	Resolver *User  `json:"resolver"`
	ReviewID int64  `json:"pull_request_review_id"`

	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`

	Path         string `json:"path"`
	CommitID     string `json:"commit_id"`
	OrigCommitID string `json:"original_commit_id"`
	DiffHunk     string `json:"diff_hunk"`
	LineNum      uint64 `json:"position"`
	OldLineNum   uint64 `json:"original_position"`

	HTMLURL     string `json:"html_url"`
	HTMLPullURL string `json:"pull_request_url"`
}

PullReviewComment represents a comment on a pull request review

type PullReviewRequestOptions added in v1.14.0

type PullReviewRequestOptions struct {
	Reviewers     []string `json:"reviewers"`
	TeamReviewers []string `json:"team_reviewers"`
}

PullReviewRequestOptions are options to add or remove pull review requests

type PushMirror added in v1.17.4

type PushMirror struct {
	// The name of the source repository
	RepoName string `json:"repo_name"`
	// The name of the remote in the git configuration
	RemoteName string `json:"remote_name"`
	// The remote repository URL being mirrored to
	RemoteAddress string `json:"remote_address"`
	// swagger:strfmt date-time
	CreatedUnix time.Time `json:"created"`
	// swagger:strfmt date-time
	LastUpdateUnix *time.Time `json:"last_update"`
	// The last error message encountered during sync
	LastError string `json:"last_error"`
	// The sync interval for automatic updates
	Interval string `json:"interval"`
	// Whether to sync on every commit
	SyncOnCommit bool `json:"sync_on_commit"`
}

PushMirror represents information of a push mirror swagger:model

type PushPayload added in v1.9.0

type PushPayload struct {
	// The full name of the pushed reference
	Ref string `json:"ref"`
	// The SHA of the most recent commit before the push
	Before string `json:"before"`
	// The SHA of the most recent commit after the push
	After string `json:"after"`
	// URL to compare the changes in this push
	CompareURL string `json:"compare_url"`
	// List of commits included in the push
	Commits []*PayloadCommit `json:"commits"`
	// Total number of commits in the push
	TotalCommits int `json:"total_commits"`
	// The most recent commit in the push
	HeadCommit *PayloadCommit `json:"head_commit"`
	// The repository that was pushed to
	Repo *Repository `json:"repository"`
	// The user who performed the push
	Pusher *User `json:"pusher"`
	// The user who triggered the webhook
	Sender *User `json:"sender"`
}

PushPayload represents a payload information of push event.

func ParsePushHook added in v1.9.0

func ParsePushHook(raw []byte) (*PushPayload, error)

ParsePushHook parses push event hook content.

func (*PushPayload) Branch added in v1.9.0

func (p *PushPayload) Branch() string

Branch returns branch name from a payload

func (*PushPayload) JSONPayload added in v1.9.0

func (p *PushPayload) JSONPayload() ([]byte, error)

JSONPayload FIXME

type PusherType added in v1.9.0

type PusherType string

PusherType define the type to push

const (
	PusherTypeUser PusherType = "user"
)

describe all the PusherTypes

type Reaction added in v1.11.0

type Reaction struct {
	// The user who created the reaction
	User *User `json:"user"`
	// The reaction content (e.g., emoji or reaction type)
	Reaction string `json:"content"`
	// swagger:strfmt date-time
	// The date and time when the reaction was created
	Created time.Time `json:"created_at"`
}

Reaction contain one reaction

type Reference added in v1.9.0

type Reference struct {
	// The name of the Git reference (e.g., refs/heads/main)
	Ref string `json:"ref"`
	// The URL to access this Git reference
	URL string `json:"url"`
	// The Git object that this reference points to
	Object *GitObject `json:"object"`
}

Reference represents a Git reference.

type Release added in v1.9.0

type Release struct {
	// The unique identifier of the release
	ID int64 `json:"id"`
	// The name of the git tag associated with the release
	TagName string `json:"tag_name"`
	// The target commitish for the release
	Target string `json:"target_commitish"`
	// The display title of the release
	Title string `json:"name"`
	// The release notes or description
	Note string `json:"body"`
	// The API URL of the release
	URL string `json:"url"`
	// The HTML URL to view the release
	HTMLURL string `json:"html_url"`
	// The URL to download the tarball archive
	TarURL string `json:"tarball_url"`
	// The URL to download the zip archive
	ZipURL string `json:"zipball_url"`
	// The URL template for uploading release assets
	UploadURL string `json:"upload_url"`
	// Whether the release is a draft
	IsDraft bool `json:"draft"`
	// Whether the release is a prerelease
	IsPrerelease bool `json:"prerelease"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	PublishedAt time.Time `json:"published_at"`
	// The user who published the release
	Publisher *User `json:"author"`
	// The files attached to the release
	Attachments []*Attachment `json:"assets"`
}

Release represents a repository release

type ReleasePayload added in v1.9.0

type ReleasePayload struct {
	// The action performed on the release (published, updated, deleted)
	Action HookReleaseAction `json:"action"`
	// The release that was acted upon
	Release *Release `json:"release"`
	// The repository containing the release
	Repository *Repository `json:"repository"`
	// The user who performed the action
	Sender *User `json:"sender"`
}

ReleasePayload represents a payload information of release event.

func (*ReleasePayload) JSONPayload added in v1.9.0

func (p *ReleasePayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type RenameBranchRepoOption

type RenameBranchRepoOption struct {
	// New branch name
	//
	// required: true
	// unique: true
	Name string `json:"name" binding:"Required;GitRefName;MaxSize(100)"`
}

RenameBranchRepoOption options when renaming a branch in a repository swagger:model

type RenameOrgOption added in v1.24.0

type RenameOrgOption struct {
	// New username for this org. This name cannot be in use yet by any other user.
	//
	// required: true
	// unique: true
	NewName string `json:"new_name" binding:"Required"`
}

RenameOrgOption options when renaming an organization

type RenameUserOption added in v1.20.0

type RenameUserOption struct {
	// New username for this user. This name cannot be in use yet by any other user.
	//
	// required: true
	// unique: true
	NewName string `json:"new_username" binding:"Required"`
}

RenameUserOption options when renaming a user

type RepoCollaboratorPermission added in v1.17.0

type RepoCollaboratorPermission struct {
	// Permission level of the collaborator
	Permission string `json:"permission"`
	// RoleName is the name of the permission role
	RoleName string `json:"role_name"`
	// User information of the collaborator
	User *User `json:"user"`
}

RepoCollaboratorPermission to get repository permission for a collaborator

type RepoCommit added in v1.9.0

type RepoCommit struct {
	// URL is the API URL for the commit
	URL string `json:"url"`
	// Author contains the commit author information
	Author *CommitUser `json:"author"`
	// Committer contains the commit committer information
	Committer *CommitUser `json:"committer"`
	// Message is the commit message
	Message string `json:"message"`
	// Tree contains the tree information for the commit
	Tree *CommitMeta `json:"tree"`
	// Verification contains commit signature verification information
	Verification *PayloadCommitVerification `json:"verification"`
}

RepoCommit contains information of a commit in the context of a repository.

type RepoTopicOptions added in v1.10.0

type RepoTopicOptions struct {
	// list of topic names
	Topics []string `json:"topics"`
}

RepoTopicOptions a collection of repo topic names

type RepoTransfer added in v1.16.0

type RepoTransfer struct {
	Doer      *User   `json:"doer"`
	Recipient *User   `json:"recipient"`
	Teams     []*Team `json:"teams"`
}

RepoTransfer represents a pending repo transfer

type Repository added in v1.9.0

type Repository struct {
	ID          int64  `json:"id"`
	Owner       *User  `json:"owner"`
	Name        string `json:"name"`
	FullName    string `json:"full_name"`
	Description string `json:"description"`
	Empty       bool   `json:"empty"`
	Private     bool   `json:"private"`
	Fork        bool   `json:"fork"`
	Template    bool   `json:"template"`
	// the original repository if this repository is a fork, otherwise null
	Parent        *Repository `json:"parent,omitempty"`
	Mirror        bool        `json:"mirror"`
	Size          int         `json:"size"`
	Language      string      `json:"language"`
	LanguagesURL  string      `json:"languages_url"`
	HTMLURL       string      `json:"html_url"`
	URL           string      `json:"url"`
	Link          string      `json:"link"`
	SSHURL        string      `json:"ssh_url"`
	CloneURL      string      `json:"clone_url"`
	OriginalURL   string      `json:"original_url"`
	Website       string      `json:"website"`
	Stars         int         `json:"stars_count"`
	Forks         int         `json:"forks_count"`
	Watchers      int         `json:"watchers_count"`
	OpenIssues    int         `json:"open_issues_count"`
	OpenPulls     int         `json:"open_pr_counter"`
	Releases      int         `json:"release_counter"`
	DefaultBranch string      `json:"default_branch"`
	Archived      bool        `json:"archived"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated                       time.Time        `json:"updated_at"`
	ArchivedAt                    time.Time        `json:"archived_at"`
	Permissions                   *Permission      `json:"permissions,omitempty"`
	HasCode                       bool             `json:"has_code"`
	HasIssues                     bool             `json:"has_issues"`
	InternalTracker               *InternalTracker `json:"internal_tracker,omitempty"`
	ExternalTracker               *ExternalTracker `json:"external_tracker,omitempty"`
	HasWiki                       bool             `json:"has_wiki"`
	ExternalWiki                  *ExternalWiki    `json:"external_wiki,omitempty"`
	HasPullRequests               bool             `json:"has_pull_requests"`
	HasProjects                   bool             `json:"has_projects"`
	ProjectsMode                  string           `json:"projects_mode"`
	HasReleases                   bool             `json:"has_releases"`
	HasPackages                   bool             `json:"has_packages"`
	HasActions                    bool             `json:"has_actions"`
	IgnoreWhitespaceConflicts     bool             `json:"ignore_whitespace_conflicts"`
	AllowMerge                    bool             `json:"allow_merge_commits"`
	AllowRebase                   bool             `json:"allow_rebase"`
	AllowRebaseMerge              bool             `json:"allow_rebase_explicit"`
	AllowSquash                   bool             `json:"allow_squash_merge"`
	AllowFastForwardOnly          bool             `json:"allow_fast_forward_only_merge"`
	AllowRebaseUpdate             bool             `json:"allow_rebase_update"`
	AllowManualMerge              bool             `json:"allow_manual_merge"`
	AutodetectManualMerge         bool             `json:"autodetect_manual_merge"`
	DefaultDeleteBranchAfterMerge bool             `json:"default_delete_branch_after_merge"`
	DefaultMergeStyle             string           `json:"default_merge_style"`
	DefaultAllowMaintainerEdit    bool             `json:"default_allow_maintainer_edit"`
	AvatarURL                     string           `json:"avatar_url"`
	Internal                      bool             `json:"internal"`
	MirrorInterval                string           `json:"mirror_interval"`
	// ObjectFormatName of the underlying git repository
	// enum: sha1,sha256
	ObjectFormatName string `json:"object_format_name"`
	// swagger:strfmt date-time
	MirrorUpdated time.Time     `json:"mirror_updated"`
	RepoTransfer  *RepoTransfer `json:"repo_transfer,omitempty"`
	Topics        []string      `json:"topics"`
	Licenses      []string      `json:"licenses"`
}

Repository represents a repository

type RepositoryMeta added in v1.11.0

type RepositoryMeta struct {
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	Owner    string `json:"owner"`
	FullName string `json:"full_name"`
}

RepositoryMeta basic repository information

type RepositoryPayload added in v1.9.0

type RepositoryPayload struct {
	// The action performed on the repository
	Action HookRepoAction `json:"action"`
	// The repository that was acted upon
	Repository *Repository `json:"repository"`
	// The organization that owns the repository (if applicable)
	Organization *User `json:"organization"`
	// The user who performed the action
	Sender *User `json:"sender"`
}

RepositoryPayload payload for repository webhooks

func (*RepositoryPayload) JSONPayload added in v1.9.0

func (p *RepositoryPayload) JSONPayload() ([]byte, error)

JSONPayload JSON representation of the payload

type ReviewPayload added in v1.11.0

type ReviewPayload struct {
	// The type of review (approved, rejected, comment)
	Type string `json:"type"`
	// The content/body of the review
	Content string `json:"content"`
}

ReviewPayload FIXME

type ReviewStateType added in v1.12.0

type ReviewStateType string

ReviewStateType review state type

const (
	// ReviewStateApproved pr is approved
	ReviewStateApproved ReviewStateType = "APPROVED"
	// ReviewStatePending pr state is pending
	ReviewStatePending ReviewStateType = "PENDING"
	// ReviewStateComment is a comment review
	ReviewStateComment ReviewStateType = "COMMENT"
	// ReviewStateRequestChanges changes for pr are requested
	ReviewStateRequestChanges ReviewStateType = "REQUEST_CHANGES"
	// ReviewStateRequestReview review is requested from user
	ReviewStateRequestReview ReviewStateType = "REQUEST_REVIEW"
	// ReviewStateUnknown state of pr is unknown
	ReviewStateUnknown ReviewStateType = ""
)

type SearchError added in v1.9.0

type SearchError struct {
	// OK indicates the search status (always false for errors)
	OK bool `json:"ok"`
	// Error contains the error message
	Error string `json:"error"`
}

SearchError error of a failed search

type SearchResults added in v1.9.0

type SearchResults struct {
	// OK indicates if the search was successful
	OK bool `json:"ok"`
	// Data contains the repository search results
	Data []*Repository `json:"data"`
}

SearchResults results of a successful search

type Secret added in v1.21.0

type Secret struct {
	// the secret's name
	Name string `json:"name"`
	// the secret's description
	Description string `json:"description"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
}

Secret represents a secret swagger:model

type ServerVersion added in v1.9.0

type ServerVersion struct {
	// Version is the server version string
	Version string `json:"version"`
}

ServerVersion wraps the version of the server

type StateType added in v1.9.0

type StateType string

StateType issue state type

const (
	// StateOpen pr is opened
	StateOpen StateType = "open"
	// StateClosed pr is closed
	StateClosed StateType = "closed"
	// StateAll is all
	StateAll StateType = "all"
)

type StopWatch added in v1.11.0

type StopWatch struct {
	// swagger:strfmt date-time
	// Created is the time when the stopwatch was started
	Created time.Time `json:"created"`
	// Seconds is the total elapsed time in seconds
	Seconds int64 `json:"seconds"`
	// Duration is a human-readable duration string
	Duration string `json:"duration"`
	// IssueIndex is the index number of the associated issue
	IssueIndex int64 `json:"issue_index"`
	// IssueTitle is the title of the associated issue
	IssueTitle string `json:"issue_title"`
	// RepoOwnerName is the name of the repository owner
	RepoOwnerName string `json:"repo_owner_name"`
	// RepoName is the name of the repository
	RepoName string `json:"repo_name"`
}

StopWatch represent a running stopwatch

type StopWatches added in v1.11.0

type StopWatches []StopWatch

StopWatches represent a list of stopwatches

type SubmitPullReviewOptions added in v1.12.0

type SubmitPullReviewOptions struct {
	Event ReviewStateType `json:"event"`
	Body  string          `json:"body"`
}

SubmitPullReviewOptions are options to submit a pending pull review

type Tag added in v1.9.0

type Tag struct {
	// The name of the tag
	Name string `json:"name"`
	// The message associated with the tag
	Message string `json:"message"`
	// The ID (SHA) of the tag
	ID string `json:"id"`
	// The commit information associated with this tag
	Commit *CommitMeta `json:"commit"`
	// The URL to download the zipball archive
	ZipballURL string `json:"zipball_url,omitempty"`
	// The URL to download the tarball archive
	TarballURL string `json:"tarball_url,omitempty"`
}

Tag represents a repository tag

type TagProtection added in v1.23.0

type TagProtection struct {
	// The unique identifier of the tag protection
	ID int64 `json:"id"`
	// The pattern to match tag names for protection
	NamePattern string `json:"name_pattern"`
	// List of usernames allowed to create/delete protected tags
	WhitelistUsernames []string `json:"whitelist_usernames"`
	// List of team names allowed to create/delete protected tags
	WhitelistTeams []string `json:"whitelist_teams"`
	// swagger:strfmt date-time
	// The date and time when the tag protection was created
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	// The date and time when the tag protection was last updated
	Updated time.Time `json:"updated_at"`
}

TagProtection represents a tag protection

type TaskStatus added in v1.10.0

type TaskStatus int

TaskStatus defines task status

const (
	TaskStatusQueued   TaskStatus = iota // 0 task is queued
	TaskStatusRunning                    // 1 task is running
	TaskStatusStopped                    // 2 task is stopped (never used)
	TaskStatusFailed                     // 3 task is failed
	TaskStatusFinished                   // 4 task is finished
)

enumerate all the kinds of task status

type TaskType added in v1.10.0

type TaskType int

TaskType defines task type

const TaskTypeMigrateRepo TaskType = iota // migrate repository from external or local disk

func (TaskType) Name added in v1.10.0

func (taskType TaskType) Name() string

Name returns the task type name

type Team added in v1.9.0

type Team struct {
	// The unique identifier of the team
	ID int64 `json:"id"`
	// The name of the team
	Name string `json:"name"`
	// The description of the team
	Description string `json:"description"`
	// The organization that the team belongs to
	Organization *Organization `json:"organization"`
	// Whether the team has access to all repositories in the organization
	IncludesAllRepositories bool `json:"includes_all_repositories"`
	// enum: none,read,write,admin,owner
	Permission string `json:"permission"`
	// example: ["repo.code","repo.issues","repo.ext_issues","repo.wiki","repo.pulls","repo.releases","repo.projects","repo.ext_wiki"]
	// Deprecated: This variable should be replaced by UnitsMap and will be dropped in later versions.
	Units []string `json:"units"`
	// example: {"repo.code":"read","repo.issues":"write","repo.ext_issues":"none","repo.wiki":"admin","repo.pulls":"owner","repo.releases":"none","repo.projects":"none","repo.ext_wiki":"none"}
	UnitsMap map[string]string `json:"units_map"`
	// Whether the team can create repositories in the organization
	CanCreateOrgRepo bool `json:"can_create_org_repo"`
}

Team represents a team in an organization

type TimelineComment added in v1.16.0

type TimelineComment struct {
	// ID is the unique identifier for the timeline comment
	ID int64 `json:"id"`
	// Type indicates the type of timeline event
	Type string `json:"type"`

	// HTMLURL is the web URL for viewing the comment
	HTMLURL string `json:"html_url"`
	// PRURL is the API URL for the pull request (if applicable)
	PRURL string `json:"pull_request_url"`
	// IssueURL is the API URL for the issue
	IssueURL string `json:"issue_url"`
	// Poster is the user who created the timeline event
	Poster *User `json:"user"`
	// Body contains the timeline event content
	Body string `json:"body"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`

	OldProjectID int64        `json:"old_project_id"`
	ProjectID    int64        `json:"project_id"`
	OldMilestone *Milestone   `json:"old_milestone"`
	Milestone    *Milestone   `json:"milestone"`
	TrackedTime  *TrackedTime `json:"tracked_time"`
	OldTitle     string       `json:"old_title"`
	NewTitle     string       `json:"new_title"`
	OldRef       string       `json:"old_ref"`
	NewRef       string       `json:"new_ref"`

	RefIssue   *Issue   `json:"ref_issue"`
	RefComment *Comment `json:"ref_comment"`
	RefAction  string   `json:"ref_action"`
	// commit SHA where issue/PR was referenced
	RefCommitSHA string `json:"ref_commit_sha"`

	ReviewID int64 `json:"review_id"`

	Label *Label `json:"label"`

	Assignee     *User `json:"assignee"`
	AssigneeTeam *Team `json:"assignee_team"`
	// whether the assignees were removed or added
	RemovedAssignee bool `json:"removed_assignee"`

	ResolveDoer *User `json:"resolve_doer"`

	DependentIssue *Issue `json:"dependent_issue"`
}

TimelineComment represents a timeline comment (comment of any type) on a commit or issue

type TopicName added in v1.10.0

type TopicName struct {
	// List of topic names
	TopicNames []string `json:"topics"`
}

TopicName a list of repo topic names

type TopicResponse added in v1.10.0

type TopicResponse struct {
	// The unique identifier of the topic
	ID int64 `json:"id"`
	// The name of the topic
	Name string `json:"topic_name"`
	// The number of repositories using this topic
	RepoCount int `json:"repo_count"`
	// The date and time when the topic was created
	Created time.Time `json:"created"`
	// The date and time when the topic was last updated
	Updated time.Time `json:"updated"`
}

TopicResponse for returning topics

type TrackedTime added in v1.9.0

type TrackedTime struct {
	// ID is the unique identifier for the tracked time entry
	ID int64 `json:"id"`
	// swagger:strfmt date-time
	Created time.Time `json:"created"`
	// Time in seconds
	Time int64 `json:"time"`
	// deprecated (only for backwards compatibility)
	UserID int64 `json:"user_id"`
	// username of the user
	UserName string `json:"user_name"`
	// deprecated (only for backwards compatibility)
	IssueID int64 `json:"issue_id"`
	// Issue contains the associated issue information
	Issue *Issue `json:"issue"`
}

TrackedTime worked time for an issue / pr

type TrackedTimeList added in v1.11.0

type TrackedTimeList []*TrackedTime

TrackedTimeList represents a list of tracked times

type TransferRepoOption added in v1.12.0

type TransferRepoOption struct {
	// required: true
	NewOwner string `json:"new_owner"`
	// ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.
	TeamIDs *[]int64 `json:"team_ids"`
}

TransferRepoOption options when transfer a repository's ownership swagger:model

type UpdateBranchProtectionPriories added in v1.23.0

type UpdateBranchProtectionPriories struct {
	IDs []int64 `json:"ids"`
}

UpdateBranchProtectionPriories a list to update the branch protection rule priorities

type UpdateFileOptions added in v1.9.0

type UpdateFileOptions struct {
	FileOptionsWithSHA
	// content must be base64 encoded
	// required: true
	ContentBase64 string `json:"content"`
	// from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL
	FromPath string `json:"from_path" binding:"MaxSize(500)"`
}

UpdateFileOptions options for updating files Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)

type UpdateRepoAvatarOption added in v1.21.0

type UpdateRepoAvatarOption struct {
	// image must be base64 encoded
	Image string `json:"image" binding:"Required"`
}

UpdateRepoAvatarUserOption options when updating the repo avatar

type UpdateUserAvatarOption added in v1.21.0

type UpdateUserAvatarOption struct {
	// image must be base64 encoded
	Image string `json:"image" binding:"Required"`
}

UpdateUserAvatarUserOption options when updating the user avatar

type UpdateVariableOption added in v1.22.0

type UpdateVariableOption struct {
	// New name for the variable. If the field is empty, the variable name won't be updated.
	Name string `json:"name"`
	// Value of the variable to update
	//
	// required: true
	Value string `json:"value" binding:"Required"`

	// Description of the variable to update
	//
	// required: false
	Description string `json:"description"`
}

UpdateVariableOption the option when updating variable swagger:model

type User added in v1.9.0

type User struct {
	// the user's id
	ID int64 `json:"id"`
	// login of the user, same as `username`
	UserName string `json:"login"`
	// identifier of the user, provided by the external authenticator (if configured)
	// default: empty
	LoginName string `json:"login_name"`
	// The ID of the user's Authentication Source
	SourceID int64 `json:"source_id"`
	// the user's full name
	FullName string `json:"full_name"`
	// swagger:strfmt email
	Email string `json:"email"`
	// URL to the user's avatar
	AvatarURL string `json:"avatar_url"`
	// URL to the user's gitea page
	HTMLURL string `json:"html_url"`
	// User locale
	Language string `json:"language"`
	// Is the user an administrator
	IsAdmin bool `json:"is_admin"`
	// swagger:strfmt date-time
	LastLogin time.Time `json:"last_login"`
	// swagger:strfmt date-time
	Created time.Time `json:"created"`
	// Is user restricted
	Restricted bool `json:"restricted"`
	// Is user active
	IsActive bool `json:"active"`
	// Is user login prohibited
	ProhibitLogin bool `json:"prohibit_login"`
	// the user's location
	Location string `json:"location"`
	// the user's website
	Website string `json:"website"`
	// the user's description
	Description string `json:"description"`
	// User visibility level option: public, limited, private
	Visibility string `json:"visibility"`

	// user counts
	Followers    int `json:"followers_count"`
	Following    int `json:"following_count"`
	StarredRepos int `json:"starred_repos_count"`
}

User represents a user swagger:model

func (User) MarshalJSON added in v1.9.0

func (u User) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility

type UserBadge added in v1.22.0

type UserBadge struct {
	ID      int64 `json:"id"`
	BadgeID int64 `json:"badge_id"`
	UserID  int64 `json:"user_id"`
}

UserBadge represents a user badge swagger:model

type UserBadgeOption added in v1.22.0

type UserBadgeOption struct {
	// example: ["badge1","badge2"]
	BadgeSlugs []string `json:"badge_slugs" binding:"Required"`
}

UserBadgeOption options for link between users and badges

type UserSettings added in v1.15.0

type UserSettings struct {
	FullName      string `json:"full_name"`
	Website       string `json:"website"`
	Description   string `json:"description"`
	Location      string `json:"location"`
	Language      string `json:"language"`
	Theme         string `json:"theme"`
	DiffViewStyle string `json:"diff_view_style"`
	// Privacy
	HideEmail    bool `json:"hide_email"`
	HideActivity bool `json:"hide_activity"`
}

UserSettings represents user settings swagger:model

type UserSettingsOptions added in v1.15.0

type UserSettingsOptions struct {
	FullName      *string `json:"full_name" binding:"MaxSize(100)"`
	Website       *string `json:"website" binding:"OmitEmpty;ValidUrl;MaxSize(255)"`
	Description   *string `json:"description" binding:"MaxSize(255)"`
	Location      *string `json:"location" binding:"MaxSize(50)"`
	Language      *string `json:"language"`
	Theme         *string `json:"theme"`
	DiffViewStyle *string `json:"diff_view_style"`
	// Privacy
	HideEmail    *bool `json:"hide_email"`
	HideActivity *bool `json:"hide_activity"`
}

UserSettingsOptions represents options to change user settings swagger:model

type VerifyGPGKeyOption added in v1.15.0

type VerifyGPGKeyOption struct {
	// An Signature for a GPG key token
	//
	// required: true
	// The key ID of the GPG key to verify
	KeyID string `json:"key_id" binding:"Required"`
	// The armored signature to verify the GPG key
	Signature string `json:"armored_signature" binding:"Required"`
}

VerifyGPGKeyOption options verifies user GPG key

type VisibleType

type VisibleType int

VisibleType defines the visibility of user and org

const (
	// VisibleTypePublic Visible for everyone
	VisibleTypePublic VisibleType = iota

	// VisibleTypeLimited Visible for every connected user
	VisibleTypeLimited

	// VisibleTypePrivate Visible only for self or admin user
	VisibleTypePrivate
)

func (VisibleType) IsLimited

func (vt VisibleType) IsLimited() bool

IsLimited returns true if VisibleType is limited

func (VisibleType) IsPrivate

func (vt VisibleType) IsPrivate() bool

IsPrivate returns true if VisibleType is private

func (VisibleType) IsPublic

func (vt VisibleType) IsPublic() bool

IsPublic returns true if VisibleType is public

func (VisibleType) String added in v1.9.0

func (vt VisibleType) String() string

VisibilityString provides the mode string of the visibility type (public, limited, private)

type WatchInfo added in v1.9.0

type WatchInfo struct {
	// Whether the repository is being watched for notifications
	Subscribed bool `json:"subscribed"`
	// Whether notifications for the repository are ignored
	Ignored bool `json:"ignored"`
	// The reason for the current watch status
	Reason any `json:"reason"`
	// The timestamp when the watch status was created
	CreatedAt time.Time `json:"created_at"`
	// The URL for managing the watch status
	URL string `json:"url"`
	// The URL of the repository being watched
	RepositoryURL string `json:"repository_url"`
}

WatchInfo represents an API watch status of one repository

type WikiCommit added in v1.16.0

type WikiCommit struct {
	// The commit SHA hash
	ID string `json:"sha"`
	// The author of the commit
	Author *CommitUser `json:"author"`
	// The committer of the commit
	Committer *CommitUser `json:"commiter"`
	// The commit message
	Message string `json:"message"`
}

WikiCommit page commit/revision

type WikiCommitList added in v1.16.0

type WikiCommitList struct {
	// The list of wiki commits
	WikiCommits []*WikiCommit `json:"commits"`
	// The total count of commits
	Count int64 `json:"count"`
}

WikiCommitList commit/revision list

type WikiPage added in v1.16.0

type WikiPage struct {
	*WikiPageMetaData
	// Page content, base64 encoded
	ContentBase64 string `json:"content_base64"`
	// The number of commits that modified this page
	CommitCount int64 `json:"commit_count"`
	// The sidebar content for the wiki page
	Sidebar string `json:"sidebar"`
	// The footer content for the wiki page
	Footer string `json:"footer"`
}

WikiPage a wiki page

type WikiPageMetaData added in v1.16.0

type WikiPageMetaData struct {
	// The title of the wiki page
	Title string `json:"title"`
	// The HTML URL to view the wiki page
	HTMLURL string `json:"html_url"`
	// The sub URL path for the wiki page
	SubURL string `json:"sub_url"`
	// The last commit that modified this wiki page
	LastCommit *WikiCommit `json:"last_commit"`
}

WikiPageMetaData wiki page meta information

type WikiPayload added in v1.17.4

type WikiPayload struct {
	// The action performed on the wiki page
	Action HookWikiAction `json:"action"`
	// The repository containing the wiki
	Repository *Repository `json:"repository"`
	// The user who performed the action
	Sender *User `json:"sender"`
	// The name of the wiki page
	Page string `json:"page"`
	// The comment/commit message for the wiki change
	Comment string `json:"comment"`
}

WikiPayload payload for repository webhooks

func (*WikiPayload) JSONPayload added in v1.17.4

func (p *WikiPayload) JSONPayload() ([]byte, error)

JSONPayload JSON representation of the payload

type WorkflowDispatchPayload added in v1.23.0

type WorkflowDispatchPayload struct {
	// The name or path of the workflow file
	Workflow string `json:"workflow"`
	// The git reference (branch, tag, or commit SHA) to run the workflow on
	Ref string `json:"ref"`
	// Input parameters for the workflow dispatch event
	Inputs map[string]any `json:"inputs"`
	// The repository containing the workflow
	Repository *Repository `json:"repository"`
	// The user who triggered the workflow dispatch
	Sender *User `json:"sender"`
}

WorkflowDispatchPayload represents a workflow dispatch payload

func (*WorkflowDispatchPayload) JSONPayload added in v1.23.0

func (p *WorkflowDispatchPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type WorkflowJobPayload added in v1.24.0

type WorkflowJobPayload struct {
	// The action performed on the workflow job
	Action string `json:"action"`
	// The workflow job that was acted upon
	WorkflowJob *ActionWorkflowJob `json:"workflow_job"`
	// The pull request associated with the workflow job (if applicable)
	PullRequest *PullRequest `json:"pull_request,omitempty"`
	// The organization that owns the repository (if applicable)
	Organization *Organization `json:"organization,omitempty"`
	// The repository containing the workflow
	Repo *Repository `json:"repository"`
	// The user who triggered the workflow job
	Sender *User `json:"sender"`
}

WorkflowJobPayload represents a payload information of workflow job event.

func (*WorkflowJobPayload) JSONPayload added in v1.24.0

func (p *WorkflowJobPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

type WorkflowRunPayload

type WorkflowRunPayload struct {
	// The action performed on the workflow run
	Action string `json:"action"`
	// The workflow definition
	Workflow *ActionWorkflow `json:"workflow"`
	// The workflow run that was acted upon
	WorkflowRun *ActionWorkflowRun `json:"workflow_run"`
	// The pull request associated with the workflow run (if applicable)
	PullRequest *PullRequest `json:"pull_request,omitempty"`
	// The organization that owns the repository (if applicable)
	Organization *Organization `json:"organization,omitempty"`
	// The repository containing the workflow
	Repo *Repository `json:"repository"`
	// The user who triggered the workflow run
	Sender *User `json:"sender"`
}

WorkflowRunPayload represents a payload information of workflow run event.

func (*WorkflowRunPayload) JSONPayload

func (p *WorkflowRunPayload) JSONPayload() ([]byte, error)

JSONPayload implements Payload

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL