structs

package
v1.22.0-rc0 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: MIT Imports: 8 Imported by: 62

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 string `json:"message"`
	URL     string `json:"url"`
}

APIError is an api error with a message

type AccessToken added in v1.9.0

type AccessToken struct {
	ID             int64    `json:"id"`
	Name           string   `json:"name"`
	Token          string   `json:"sha1"`
	TokenLastEight string   `json:"token_last_eight"`
	Scopes         []string `json:"scopes"`
}

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 Activity added in v1.20.0

type Activity struct {
	ID        int64       `json:"id"`
	UserID    int64       `json:"user_id"` // Receiver user
	OpType    string      `json:"op_type"`
	ActUserID int64       `json:"act_user_id"`
	ActUser   *User       `json:"act_user"`
	RepoID    int64       `json:"repo_id"`
	Repo      *Repository `json:"repo"`
	CommentID int64       `json:"comment_id"`
	Comment   *Comment    `json:"comment"`
	RefName   string      `json:"ref_name"`
	IsPrivate bool        `json:"is_private"`
	Content   string      `json:"content"`
	Created   time.Time   `json:"created"`
}

type ActivityPub added in v1.17.4

type ActivityPub struct {
	Context string `json:"@context"`
}

ActivityPub type

type AddCollaboratorOption added in v1.9.0

type AddCollaboratorOption struct {
	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 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"`
	// User who spent the time (optional)
	User string `json:"user_name"`
}

AddTimeOption options for adding time to an issue

type AnnotatedTag added in v1.9.0

type AnnotatedTag struct {
	Tag          string                     `json:"tag"`
	SHA          string                     `json:"sha"`
	URL          string                     `json:"url"`
	Message      string                     `json:"message"`
	Tagger       *CommitUser                `json:"tagger"`
	Object       *AnnotatedTagObject        `json:"object"`
	Verification *PayloadCommitVerification `json:"verification"`
}

AnnotatedTag represents an annotated tag

type AnnotatedTagObject added in v1.9.0

type AnnotatedTagObject struct {
	Type string `json:"type"`
	URL  string `json:"url"`
	SHA  string `json:"sha"`
}

AnnotatedTagObject contains meta information of the tag object

type ApplyDiffPatchFileOptions added in v1.17.0

type ApplyDiffPatchFileOptions struct {
	DeleteFileOptions
	// 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            int64  `json:"id"`
	Name          string `json:"name"`
	Size          int64  `json:"size"`
	DownloadCount int64  `json:"download_count"`
	// swagger:strfmt date-time
	Created     time.Time `json:"created_at"`
	UUID        string    `json:"uuid"`
	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                          string         `json:"name"`
	Commit                        *PayloadCommit `json:"commit"`
	Protected                     bool           `json:"protected"`
	RequiredApprovals             int64          `json:"required_approvals"`
	EnableStatusCheck             bool           `json:"enable_status_check"`
	StatusCheckContexts           []string       `json:"status_check_contexts"`
	UserCanPush                   bool           `json:"user_can_push"`
	UserCanMerge                  bool           `json:"user_can_merge"`
	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                      string   `json:"rule_name"`
	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"`
	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"`
	// 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
	// required: true
	// enum: create,update,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, must be base64 encoded
	ContentBase64 string `json:"content"`
	// sha is the SHA for the file that already exists, required for update or delete
	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)

func (*ChangeFilesOptions) Branch added in v1.20.0

func (o *ChangeFilesOptions) Branch() string

Branch returns branch name

type ChangedFile added in v1.17.4

type ChangedFile struct {
	Filename         string `json:"filename"`
	PreviousFilename string `json:"previous_filename,omitempty"`
	Status           string `json:"status"`
	Additions        int    `json:"additions"`
	Deletions        int    `json:"deletions"`
	Changes          int    `json:"changes"`
	HTMLURL          string `json:"html_url,omitempty"`
	ContentsURL      string `json:"contents_url,omitempty"`
	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 {
	From string `json:"from"`
}

ChangesFromPayload FIXME

type ChangesPayload added in v1.9.0

type ChangesPayload struct {
	Title *ChangesFromPayload `json:"title,omitempty"`
	Body  *ChangesFromPayload `json:"body,omitempty"`
	Ref   *ChangesFromPayload `json:"ref,omitempty"`
}

ChangesPayload represents the payload information of issue change

type CombinedStatus added in v1.9.0

type CombinedStatus struct {
	State      CommitStatusState `json:"state"`
	SHA        string            `json:"sha"`
	TotalCount int               `json:"total_count"`
	Statuses   []*CommitStatus   `json:"statuses"`
	Repository *Repository       `json:"repository"`
	CommitURL  string            `json:"commit_url"`
	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               int64         `json:"id"`
	HTMLURL          string        `json:"html_url"`
	PRURL            string        `json:"pull_request_url"`
	IssueURL         string        `json:"issue_url"`
	Poster           *User         `json:"user"`
	OriginalAuthor   string        `json:"original_author"`
	OriginalAuthorID int64         `json:"original_author_id"`
	Body             string        `json:"body"`
	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    string                 `json:"html_url"`
	RepoCommit *RepoCommit            `json:"commit"`
	Author     *User                  `json:"author"`
	Committer  *User                  `json:"committer"`
	Parents    []*CommitMeta          `json:"parents"`
	Files      []*CommitAffectedFiles `json:"files"`
	Stats      *CommitStats           `json:"stats"`
}

Commit contains information generated from a Git commit.

type CommitAffectedFiles added in v1.14.0

type CommitAffectedFiles struct {
	Filename string `json:"filename"`
	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 time.Time `json:"author"`
	// swagger:strfmt date-time
	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 string `json:"url"`
	SHA string `json:"sha"`
	// swagger:strfmt date-time
	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     int `json:"total"`
	Additions int `json:"additions"`
	Deletions int `json:"deletions"`
}

CommitStats is statistics for a RepoCommit

type CommitStatus added in v1.14.0

type CommitStatus struct {
	ID          int64             `json:"id"`
	State       CommitStatusState `json:"status"`
	TargetURL   string            `json:"target_url"`
	Description string            `json:"description"`
	URL         string            `json:"url"`
	Context     string            `json:"context"`
	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 CommitStatusState added in v1.11.0

type CommitStatusState string

CommitStatusState holds the state of a CommitStatus It can be "pending", "success", "error" and "failure"

const (
	// CommitStatusPending is for when the CommitStatus is Pending
	CommitStatusPending CommitStatusState = "pending"
	// CommitStatusSuccess is for when the CommitStatus is Success
	CommitStatusSuccess CommitStatusState = "success"
	// CommitStatusError is for when the CommitStatus is Error
	CommitStatusError CommitStatusState = "error"
	// CommitStatusFailure is for when the CommitStatus is Failure
	CommitStatusFailure CommitStatusState = "failure"
	// CommitStatusWarning is for when the CommitStatus is Warning
	CommitStatusWarning CommitStatusState = "warning"
)

func (CommitStatusState) IsError added in v1.11.0

func (css CommitStatusState) IsError() bool

IsError represents if commit status state is error

func (CommitStatusState) IsFailure added in v1.11.0

func (css CommitStatusState) IsFailure() bool

IsFailure represents if commit status state is failure

func (CommitStatusState) IsPending added in v1.11.0

func (css CommitStatusState) IsPending() bool

IsPending represents if commit status state is pending

func (CommitStatusState) IsSuccess added in v1.11.0

func (css CommitStatusState) IsSuccess() bool

IsSuccess represents if commit status state is success

func (CommitStatusState) IsWarning added in v1.11.0

func (css CommitStatusState) IsWarning() bool

IsWarning represents if commit status state is warning

func (CommitStatusState) NoBetterThan added in v1.11.0

func (css CommitStatusState) NoBetterThan(css2 CommitStatusState) bool

NoBetterThan returns true if this State is no better than the given State This function only handles the states defined in CommitStatusPriorities

func (CommitStatusState) String added in v1.21.0

func (css CommitStatusState) String() string

type CommitUser added in v1.9.0

type CommitUser struct {
	Identity
	Date string `json:"date"`
}

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

type ContentsResponse added in v1.9.0

type ContentsResponse struct {
	Name          string `json:"name"`
	Path          string `json:"path"`
	SHA           string `json:"sha"`
	LastCommitSHA string `json:"last_commit_sha"`
	// `type` will be `file`, `dir`, `symlink`, or `submodule`
	Type string `json:"type"`
	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         *string `json:"url"`
	HTMLURL     *string `json:"html_url"`
	GitURL      *string `json:"git_url"`
	DownloadURL *string `json:"download_url"`
	// `submodule_git_url` is populated when `type` is `submodule`, otherwise null
	SubmoduleGitURL *string            `json:"submodule_git_url"`
	Links           *FileLinksResponse `json:"_links"`
}

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"`
	Scopes []string `json:"scopes"`
}

CreateAccessTokenOption options when create access token

type CreateBranchProtectionOption added in v1.12.0

type CreateBranchProtectionOption struct {
	// Deprecated: true
	BranchName                    string   `json:"branch_name"`
	RuleName                      string   `json:"rule_name"`
	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"`
	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"`
}

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)

func (*CreateFileOptions) Branch added in v1.17.0

func (o *CreateFileOptions) Branch() string

Branch returns branch name

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"`
	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
	Type string `json:"type" binding:"Required"`
	// required: true
	Config              CreateHookOptionConfig `json:"config" binding:"Required"`
	Events              []string               `json:"events"`
	BranchFilter        string                 `json:"branch_filter" binding:"GlobPattern"`
	AuthorizationHeader string                 `json:"authorization_header"`
	// default: false
	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 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 string `json:"name" binding:"Required"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// required:true
	// example: #00aabb
	Color       string `json:"color" binding:"Required"`
	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       string `json:"title"`
	Description string `json:"description"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_on"`
	// enum: open,closed
	State string `json:"state"`
}

CreateMilestoneOption options for creating a milestone

type CreateOAuth2ApplicationOptions added in v1.12.0

type CreateOAuth2ApplicationOptions struct {
	Name               string   `json:"name" binding:"Required"`
	ConfidentialClient bool     `json:"confidential_client"`
	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"`
}

CreateOrUpdateSecretOption options when creating or updating secret swagger:model

type CreateOrgOption added in v1.9.0

type CreateOrgOption struct {
	// required: true
	UserName    string `json:"username" binding:"Required;Username;MaxSize(40)"`
	FullName    string `json:"full_name" binding:"MaxSize(100)"`
	Email       string `json:"email" binding:"MaxSize(255)"`
	Description string `json:"description" binding:"MaxSize(255)"`
	Website     string `json:"website" binding:"ValidUrl;MaxSize(255)"`
	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)"`
	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"`
}

CreateOrgOption options for creating an organization

type CreatePayload added in v1.9.0

type CreatePayload struct {
	Sha     string      `json:"sha"`
	Ref     string      `json:"ref"`
	RefType string      `json:"ref_type"`
	Repo    *Repository `json:"repository"`
	Sender  *User       `json:"sender"`
}

CreatePayload FIXME

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 {
	Head      string   `json:"head" binding:"Required"`
	Base      string   `json:"base" binding:"Required"`
	Title     string   `json:"title" binding:"Required"`
	Body      string   `json:"body"`
	Assignee  string   `json:"assignee"`
	Assignees []string `json:"assignees"`
	Milestone int64    `json:"milestone"`
	Labels    []int64  `json:"labels"`
	// swagger:strfmt date-time
	Deadline *time.Time `json:"due_date"`
}

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 {
	RemoteAddress  string `json:"remote_address"`
	RemoteUsername string `json:"remote_username"`
	RemotePassword string `json:"remote_password"`
	Interval       string `json:"interval"`
	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"`
	Target       string `json:"target_commitish"`
	Title        string `json:"name"`
	Note         string `json:"body"`
	IsDraft      bool   `json:"draft"`
	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       CommitStatusState `json:"state"`
	TargetURL   string            `json:"target_url"`
	Description string            `json:"description"`
	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
	TagName string `json:"tag_name" binding:"Required"`
	Message string `json:"message"`
	Target  string `json:"target"`
}

CreateTagOption options when creating a tag

type CreateTeamOption added in v1.9.0

type CreateTeamOption struct {
	// required: true
	Name                    string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
	Description             string `json:"description" binding:"MaxSize(255)"`
	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"`
	CanCreateOrgRepo bool              `json:"can_create_org_repo"`
}

CreateTeamOption options for creating a team

type CreateUserOption added in v1.9.0

type CreateUserOption struct {
	SourceID  int64  `json:"source_id"`
	LoginName string `json:"login_name"`
	// required: true
	Username string `json:"username" binding:"Required;Username;MaxSize(40)"`
	FullName string `json:"full_name" binding:"MaxSize(100)"`
	// required: true
	// swagger:strfmt email
	Email              string `json:"email" binding:"Required;Email;MaxSize(254)"`
	Password           string `json:"password" binding:"MaxSize(255)"`
	MustChangePassword *bool  `json:"must_change_password"`
	SendNotify         bool   `json:"send_notify"`
	Restricted         *bool  `json:"restricted"`
	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 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 {
	Name      string    `json:"name"`
	Schedule  string    `json:"schedule"`
	Next      time.Time `json:"next"`
	Prev      time.Time `json:"prev"`
	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 {
	FileOptions
	// sha is the SHA for the file that already exists
	// required: true
	SHA string `json:"sha" binding:"Required"`
}

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)

func (*DeleteFileOptions) Branch added in v1.17.0

func (o *DeleteFileOptions) Branch() string

Branch returns branch name

type DeletePayload added in v1.9.0

type DeletePayload struct {
	Ref        string      `json:"ref"`
	RefType    string      `json:"ref_type"`
	PusherType PusherType  `json:"pusher_type"`
	Repo       *Repository `json:"repository"`
	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          int64  `json:"id"`
	KeyID       int64  `json:"key_id"`
	Key         string `json:"key"`
	URL         string `json:"url"`
	Title       string `json:"title"`
	Fingerprint string `json:"fingerprint"`
	// swagger:strfmt date-time
	Created    time.Time   `json:"created_at"`
	ReadOnly   bool        `json:"read_only"`
	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 string `json:"name"`
}

EditAttachmentOptions options for editing attachments swagger:model

type EditBranchProtectionOption added in v1.12.0

type EditBranchProtectionOption struct {
	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"`
	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"`
}

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 string `json:"content"`
}

EditGitHookOption options when modifying one Git hook

type EditHookOption added in v1.9.0

type EditHookOption struct {
	Config              map[string]string `json:"config"`
	Events              []string          `json:"events"`
	BranchFilter        string            `json:"branch_filter" binding:"GlobPattern"`
	AuthorizationHeader string            `json:"authorization_header"`
	Active              *bool             `json:"active"`
}

EditHookOption options when modify one hook

type EditIssueCommentOption added in v1.9.0

type EditIssueCommentOption struct {
	// required: true
	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 *string `json:"name"`
	// example: false
	Exclusive *bool `json:"exclusive"`
	// example: #00aabb
	Color       *string `json:"color"`
	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       string     `json:"title"`
	Description *string    `json:"description"`
	State       *string    `json:"state"`
	Deadline    *time.Time `json:"due_on"`
}

EditMilestoneOption options for editing a milestone

type EditOrgOption added in v1.9.0

type EditOrgOption struct {
	FullName    string `json:"full_name" binding:"MaxSize(100)"`
	Email       string `json:"email" binding:"MaxSize(255)"`
	Description string `json:"description" binding:"MaxSize(255)"`
	Website     string `json:"website" binding:"ValidUrl;MaxSize(255)"`
	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)"`
	RepoAdminChangeTeamAccess *bool  `json:"repo_admin_change_team_access"`
}

EditOrgOption options for editing an organization

type EditPullRequestOption added in v1.9.0

type EditPullRequestOption struct {
	Title     string   `json:"title"`
	Body      string   `json:"body"`
	Base      string   `json:"base"`
	Assignee  string   `json:"assignee"`
	Assignees []string `json:"assignees"`
	Milestone int64    `json:"milestone"`
	Labels    []int64  `json:"labels"`
	State     *string  `json:"state"`
	// swagger:strfmt date-time
	Deadline            *time.Time `json:"due_date"`
	RemoveDeadline      *bool      `json:"unset_due_date"`
	AllowMaintainerEdit *bool      `json:"allow_maintainer_edit"`
}

EditPullRequestOption options when modify pull request

type EditReactionOption added in v1.11.0

type EditReactionOption struct {
	Reaction string `json:"content"`
}

EditReactionOption contain the reaction type

type EditReleaseOption added in v1.9.0

type EditReleaseOption struct {
	TagName      string `json:"tag_name"`
	Target       string `json:"target_commitish"`
	Title        string `json:"name"`
	Note         string `json:"body"`
	IsDraft      *bool  `json:"draft"`
	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 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
	EnablePrune *bool `json:"enable_prune,omitempty"`
}

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

type EditTeamOption added in v1.9.0

type EditTeamOption struct {
	// required: true
	Name                    string  `json:"name" binding:"AlphaDashDot;MaxSize(30)"`
	Description             *string `json:"description" binding:"MaxSize(255)"`
	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"`
	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
	SourceID int64 `json:"source_id"`
	// required: true
	LoginName string `json:"login_name" binding:"Required"`
	// swagger:strfmt email
	Email                   *string `json:"email" binding:"MaxSize(254)"`
	FullName                *string `json:"full_name" binding:"MaxSize(100)"`
	Password                string  `json:"password" binding:"MaxSize(255)"`
	MustChangePassword      *bool   `json:"must_change_password"`
	Website                 *string `json:"website" binding:"OmitEmpty;ValidUrl;MaxSize(255)"`
	Location                *string `json:"location" binding:"MaxSize(50)"`
	Description             *string `json:"description" binding:"MaxSize(255)"`
	Active                  *bool   `json:"active"`
	Admin                   *bool   `json:"admin"`
	AllowGitHook            *bool   `json:"allow_git_hook"`
	AllowImportLocal        *bool   `json:"allow_import_local"`
	MaxRepoCreation         *int    `json:"max_repo_creation"`
	ProhibitLogin           *bool   `json:"prohibit_login"`
	AllowCreateOrganization *bool   `json:"allow_create_organization"`
	Restricted              *bool   `json:"restricted"`
	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
	Email    string `json:"email"`
	Verified bool   `json:"verified"`
	Primary  bool   `json:"primary"`
	UserID   int64  `json:"user_id"`
	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   string        `json:"html_url"`
	Author    *CommitUser   `json:"author"`
	Committer *CommitUser   `json:"committer"`
	Parents   []*CommitMeta `json:"parents"`
	Message   string        `json:"message"`
	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      any                        `json:"content"` // to be set to nil
	Commit       *FileCommitResponse        `json:"commit"`
	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    *string `json:"self"`
	GitURL  *string `json:"git"`
	HTMLURL *string `json:"html"`
}

FileLinksResponse contains the links for a repo's file

type FileOptionInterface added in v1.17.0

type FileOptionInterface interface {
	Branch() string
}

FileOptionInterface provides a unified interface for the different file options

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

type FileResponse added in v1.9.0

type FileResponse struct {
	Content      *ContentsResponse          `json:"content"`
	Commit       *FileCommitResponse        `json:"commit"`
	Verification *PayloadCommitVerification `json:"verification"`
}

FileResponse contains information about a repo's file

type FilesResponse added in v1.20.0

type FilesResponse struct {
	Files        []*ContentsResponse        `json:"files"`
	Commit       *FileCommitResponse        `json:"commit"`
	Verification *PayloadCommitVerification `json:"verification"`
}

FilesResponse contains information about multiple files from a repo

type ForkPayload added in v1.9.0

type ForkPayload struct {
	Forkee *Repository `json:"forkee"`
	Repo   *Repository `json:"repository"`
	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 {
	ID                int64          `json:"id"`
	PrimaryKeyID      string         `json:"primary_key_id"`
	KeyID             string         `json:"key_id"`
	PublicKey         string         `json:"public_key"`
	Emails            []*GPGKeyEmail `json:"emails"`
	SubsKey           []*GPGKey      `json:"subkeys"`
	CanSign           bool           `json:"can_sign"`
	CanEncryptComms   bool           `json:"can_encrypt_comms"`
	CanEncryptStorage bool           `json:"can_encrypt_storage"`
	CanCertify        bool           `json:"can_certify"`
	Verified          bool           `json:"verified"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at,omitempty"`
	// swagger:strfmt date-time
	Expires time.Time `json:"expires_at,omitempty"`
}

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

type GPGKeyEmail added in v1.9.0

type GPGKeyEmail struct {
	Email    string `json:"email"`
	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       int   `json:"max_response_items"`
	DefaultPagingNum       int   `json:"default_paging_num"`
	DefaultGitTreesPerPage int   `json:"default_git_trees_per_page"`
	DefaultMaxBlobSize     int64 `json:"default_max_blob_size"`
}

GeneralAPISettings contains global api settings exposed by it

type GeneralAttachmentSettings added in v1.13.0

type GeneralAttachmentSettings struct {
	Enabled      bool   `json:"enabled"`
	AllowedTypes string `json:"allowed_types"`
	MaxSize      int64  `json:"max_size"`
	MaxFiles     int    `json:"max_files"`
}

GeneralAttachmentSettings contains global Attachment settings exposed by API

type GeneralRepoSettings added in v1.13.0

type GeneralRepoSettings struct {
	MirrorsDisabled      bool `json:"mirrors_disabled"`
	HTTPGitDisabled      bool `json:"http_git_disabled"`
	MigrationsDisabled   bool `json:"migrations_disabled"`
	StarsDisabled        bool `json:"stars_disabled"`
	TimeTrackingDisabled bool `json:"time_tracking_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     string   `json:"default_theme"`
	AllowedReactions []string `json:"allowed_reactions"`
	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 or person who will own the new repository
	//
	// required: true
	Owner string `json:"owner"`
	// Name of the repository to create
	//
	// 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 repository using a template swagger:model

type GitBlobResponse added in v1.9.0

type GitBlobResponse struct {
	Content  string `json:"content"`
	Encoding string `json:"encoding"`
	URL      string `json:"url"`
	SHA      string `json:"sha"`
	Size     int64  `json:"size"`
}

GitBlobResponse represents a git blob

type GitEntry added in v1.9.0

type GitEntry struct {
	Path string `json:"path"`
	Mode string `json:"mode"`
	Type string `json:"type"`
	Size int64  `json:"size"`
	SHA  string `json:"sha"`
	URL  string `json:"url"`
}

GitEntry represents a git tree

type GitHook added in v1.9.0

type GitHook struct {
	Name     string `json:"name"`
	IsActive bool   `json:"is_active"`
	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 {
	Type string `json:"type"`
	SHA  string `json:"sha"`
	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
)

enumerate all GitServiceType

func (GitServiceType) Name added in v1.10.0

func (gt GitServiceType) Name() string

Name represents the service type's name WARNNING: the name have 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        string     `json:"sha"`
	URL        string     `json:"url"`
	Entries    []GitEntry `json:"tree"`
	Truncated  bool       `json:"truncated"`
	Page       int        `json:"page"`
	TotalCount int        `json:"total_count"`
}

GitTreeResponse returns a git tree

type GitignoreTemplateInfo added in v1.20.0

type GitignoreTemplateInfo struct {
	Name   string `json:"name"`
	Source string `json:"source"`
}

GitignoreTemplateInfo name and text of a gitignore template

type Hook added in v1.9.0

type Hook struct {
	ID                  int64             `json:"id"`
	Type                string            `json:"type"`
	BranchFilter        string            `json:"branch_filter"`
	URL                 string            `json:"-"`
	Config              map[string]string `json:"config"`
	Events              []string          `json:"events"`
	AuthorizationHeader string            `json:"authorization_header"`
	Active              bool              `json:"active"`
	// swagger:strfmt date-time
	Updated time.Time `json:"updated_at"`
	// swagger:strfmt date-time
	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"
	// 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 string `json:"name" binding:"MaxSize(100)"`
	// swagger:strfmt email
	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"`

	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 {
	Action     HookIssueCommentAction `json:"action"`
	Issue      *Issue                 `json:"issue"`
	Comment    *Comment               `json:"comment"`
	Changes    *ChangesPayload        `json:"changes,omitempty"`
	Repository *Repository            `json:"repository"`
	Sender     *User                  `json:"sender"`
	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 {
	// list of label IDs
	Labels []int64 `json:"labels"`
}

IssueLabelsOption a collection of labels

type IssueMeta added in v1.20.0

type IssueMeta struct {
	Index int64  `json:"index"`
	Owner string `json:"owner"`
	Name  string `json:"repo"`
}

IssueMeta basic issue information swagger:model

type IssuePayload added in v1.9.0

type IssuePayload struct {
	Action     HookIssueAction `json:"action"`
	Index      int64           `json:"number"`
	Changes    *ChangesPayload `json:"changes,omitempty"`
	Issue      *Issue          `json:"issue"`
	Repository *Repository     `json:"repository"`
	Sender     *User           `json:"sender"`
	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   IssueTemplateLabels `json:"labels" yaml:"labels"`
	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 IssueTemplateLabels added in v1.17.4

type IssueTemplateLabels []string

func (*IssueTemplateLabels) UnmarshalYAML added in v1.17.4

func (l *IssueTemplateLabels) 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 {
	ID       string        `json:"id"`
	Path     string        `json:"path"`
	LockedAt time.Time     `json:"locked_at"`
	Owner    *LFSLockOwner `json:"owner"`
}

LFSLock represent a lock for use with the locks API.

type LFSLockDeleteRequest added in v1.9.0

type LFSLockDeleteRequest struct {
	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 {
	Message       string   `json:"message"`
	Lock          *LFSLock `json:"lock,omitempty"`
	Documentation string   `json:"documentation_url,omitempty"`
	RequestID     string   `json:"request_id,omitempty"`
}

LFSLockError contains information on the error that occurs

type LFSLockList added in v1.9.0

type LFSLockList struct {
	Locks []*LFSLock `json:"locks"`
	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 {
	Ours   []*LFSLock `json:"ours"`
	Theirs []*LFSLock `json:"theirs"`
	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 {
	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 {
	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 {
	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   int64  `json:"id"`
	Name string `json:"name"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// example: false
	IsArchived bool `json:"is_archived"`
	// example: 00aabb
	Color       string `json:"color"`
	Description string `json:"description"`
	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 string `json:"name"`
	// example: false
	Exclusive bool `json:"exclusive"`
	// example: 00aabb
	Color       string `json:"color"`
	Description string `json:"description"`
}

LabelTemplate info of a Label template

type LicenseTemplateInfo added in v1.20.0

type LicenseTemplateInfo struct {
	Key            string `json:"key"`
	Name           string `json:"name"`
	URL            string `json:"url"`
	Implementation string `json:"implementation"`
	Body           string `json:"body"`
}

LicensesInfo contains information about a License

type LicensesTemplateListEntry added in v1.20.0

type LicensesTemplateListEntry struct {
	Key  string `json:"key"`
	Name string `json:"name"`
	URL  string `json:"url"`
}

LicensesListEntry is used for the API

type ListPullRequestsOptions added in v1.9.0

type ListPullRequestsOptions struct {
	Page  int    `json:"page"`
	State string `json:"state"`
}

ListPullRequestsOptions options for listing pull requests

type MarkdownOption added in v1.9.0

type MarkdownOption struct {
	// Text markdown to render
	//
	// in: body
	Text string
	// Mode to render (comment, gfm, markdown)
	//
	// in: body
	Mode string
	// Context to render
	//
	// in: body
	Context string
	// Is it a wiki page ?
	//
	// 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 (comment, gfm, markdown, file)
	//
	// in: body
	Mode string
	// Context to render
	//
	// in: body
	Context string
	// Is it a wiki page ?
	//
	// 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 MigrateRepoOptions added in v1.13.0

type MigrateRepoOptions struct {
	// required: true
	CloneAddr string `json:"clone_addr" binding:"Required"`
	// deprecated (only for backwards compatibility)
	RepoOwnerID int64 `json:"uid"`
	// Name of User or Organisation who will own Repo after migration
	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
	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"`
}

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           int64     `json:"id"`
	Title        string    `json:"title"`
	Description  string    `json:"description"`
	State        StateType `json:"state"`
	OpenIssues   int       `json:"open_issues"`
	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           string           `json:"version"`
	Software          NodeInfoSoftware `json:"software"`
	Protocols         []string         `json:"protocols"`
	Services          NodeInfoServices `json:"services"`
	OpenRegistrations bool             `json:"openRegistrations"`
	Usage             NodeInfoUsage    `json:"usage"`
	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  []string `json:"inbound"`
	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       string `json:"name"`
	Version    string `json:"version"`
	Repository string `json:"repository"`
	Homepage   string `json:"homepage"`
}

NodeInfoSoftware contains Metadata about server software in use

type NodeInfoUsage added in v1.16.0

type NodeInfoUsage struct {
	Users         NodeInfoUsageUsers `json:"users"`
	LocalPosts    int                `json:"localPosts,omitempty"`
	LocalComments int                `json:"localComments,omitempty"`
}

NodeInfoUsage contains usage statistics for this server

type NodeInfoUsageUsers added in v1.16.0

type NodeInfoUsageUsers struct {
	Total          int `json:"total,omitempty"`
	ActiveHalfyear int `json:"activeHalfyear,omitempty"`
	ActiveMonth    int `json:"activeMonth,omitempty"`
}

NodeInfoUsageUsers contains statistics about the users of this server

type Note added in v1.16.0

type Note struct {
	Message string  `json:"message"`
	Commit  *Commit `json:"commit"`
}

Note contains information related to a git note

type NotificationCount added in v1.12.0

type NotificationCount struct {
	New int64 `json:"new"`
}

NotificationCount number of unread notifications

type NotificationSubject added in v1.12.0

type NotificationSubject struct {
	Title                string            `json:"title"`
	URL                  string            `json:"url"`
	LatestCommentURL     string            `json:"latest_comment_url"`
	HTMLURL              string            `json:"html_url"`
	LatestCommentHTMLURL string            `json:"latest_comment_html_url"`
	Type                 NotifySubjectType `json:"type" binding:"In(Issue,Pull,Commit,Repository)"`
	State                StateType         `json:"state"`
}

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

type NotificationThread added in v1.12.0

type NotificationThread struct {
	ID         int64                `json:"id"`
	Repository *Repository          `json:"repository"`
	Subject    *NotificationSubject `json:"subject"`
	Unread     bool                 `json:"unread"`
	Pinned     bool                 `json:"pinned"`
	UpdatedAt  time.Time            `json:"updated_at"`
	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 {
	ID                 int64     `json:"id"`
	Name               string    `json:"name"`
	ClientID           string    `json:"client_id"`
	ClientSecret       string    `json:"client_secret"`
	ConfidentialClient bool      `json:"confidential_client"`
	RedirectURIs       []string  `json:"redirect_uris"`
	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 {
	ID                        int64  `json:"id"`
	Name                      string `json:"name"`
	FullName                  string `json:"full_name"`
	Email                     string `json:"email"`
	AvatarURL                 string `json:"avatar_url"`
	Description               string `json:"description"`
	Website                   string `json:"website"`
	Location                  string `json:"location"`
	Visibility                string `json:"visibility"`
	RepoAdminChangeTeamAccess bool   `json:"repo_admin_change_team_access"`
	// deprecated
	UserName string `json:"username"`
}

Organization represents an organization

type OrganizationPermissions added in v1.16.0

type OrganizationPermissions struct {
	IsOwner             bool `json:"is_owner"`
	IsAdmin             bool `json:"is_admin"`
	CanWrite            bool `json:"can_write"`
	CanRead             bool `json:"can_read"`
	CanCreateRepository bool `json:"can_create_repository"`
}

OrganizationPermissions list different users permissions on an organization

type PRBranchInfo added in v1.9.0

type PRBranchInfo struct {
	Name       string      `json:"label"`
	Ref        string      `json:"ref"`
	Sha        string      `json:"sha"`
	RepoID     int64       `json:"repo_id"`
	Repository *Repository `json:"repo"`
}

PRBranchInfo information about a branch

type Package added in v1.17.0

type Package struct {
	ID         int64       `json:"id"`
	Owner      *User       `json:"owner"`
	Repository *Repository `json:"repository"`
	Creator    *User       `json:"creator"`
	Type       string      `json:"type"`
	Name       string      `json:"name"`
	Version    string      `json:"version"`
	HTMLURL    string      `json:"html_url"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
}

Package represents a package

type PackageFile added in v1.17.0

type PackageFile struct {
	ID         int64 `json:"id"`
	Size       int64
	Name       string `json:"name"`
	HashMD5    string `json:"md5"`
	HashSHA1   string `json:"sha1"`
	HashSHA256 string `json:"sha256"`
	HashSHA512 string `json:"sha512"`
}

PackageFile represents a package file

type PackagePayload added in v1.17.0

type PackagePayload struct {
	Action       HookPackageAction `json:"action"`
	Repository   *Repository       `json:"repository"`
	Package      *Package          `json:"package"`
	Organization *User             `json:"organization"`
	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"`
	Message      string                     `json:"message"`
	URL          string                     `json:"url"`
	Author       *PayloadUser               `json:"author"`
	Committer    *PayloadUser               `json:"committer"`
	Verification *PayloadCommitVerification `json:"verification"`
	// swagger:strfmt date-time
	Timestamp time.Time `json:"timestamp"`
	Added     []string  `json:"added"`
	Removed   []string  `json:"removed"`
	Modified  []string  `json:"modified"`
}

PayloadCommit represents a commit

type PayloadCommitVerification added in v1.9.0

type PayloadCommitVerification struct {
	Verified  bool         `json:"verified"`
	Reason    string       `json:"reason"`
	Signature string       `json:"signature"`
	Signer    *PayloadUser `json:"signer"`
	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 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          int64  `json:"id"`
	Key         string `json:"key"`
	URL         string `json:"url,omitempty"`
	Title       string `json:"title,omitempty"`
	Fingerprint string `json:"fingerprint,omitempty"`
	// swagger:strfmt date-time
	Created  time.Time `json:"created_at,omitempty"`
	Owner    *User     `json:"user,omitempty"`
	ReadOnly bool      `json:"read_only,omitempty"`
	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 {
	ID                 int64      `json:"id"`
	URL                string     `json:"url"`
	Index              int64      `json:"number"`
	Poster             *User      `json:"user"`
	Title              string     `json:"title"`
	Body               string     `json:"body"`
	Labels             []*Label   `json:"labels"`
	Milestone          *Milestone `json:"milestone"`
	Assignee           *User      `json:"assignee"`
	Assignees          []*User    `json:"assignees"`
	RequestedReviewers []*User    `json:"requested_reviewers"`
	State              StateType  `json:"state"`
	IsLocked           bool       `json:"is_locked"`
	Comments           int        `json:"comments"`

	HTMLURL  string `json:"html_url"`
	DiffURL  string `json:"diff_url"`
	PatchURL string `json:"patch_url"`

	Mergeable bool `json:"mergeable"`
	HasMerged bool `json:"merged"`
	// swagger:strfmt date-time
	Merged              *time.Time `json:"merged_at"`
	MergedCommitID      *string    `json:"merge_commit_sha"`
	MergedBy            *User      `json:"merged_by"`
	AllowMaintainerEdit bool       `json:"allow_maintainer_edit"`

	Base      *PRBranchInfo `json:"base"`
	Head      *PRBranchInfo `json:"head"`
	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"`

	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"`
}

PullRequestMeta PR info if an issue is a PR

type PullRequestPayload added in v1.9.0

type PullRequestPayload struct {
	Action            HookIssueAction `json:"action"`
	Index             int64           `json:"number"`
	Changes           *ChangesPayload `json:"changes,omitempty"`
	PullRequest       *PullRequest    `json:"pull_request"`
	RequestedReviewer *User           `json:"requested_reviewer"`
	Repository        *Repository     `json:"repository"`
	Sender            *User           `json:"sender"`
	CommitID          string          `json:"commit_id"`
	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     string `json:"html_url"`
	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 {
	RepoName      string `json:"repo_name"`
	RemoteName    string `json:"remote_name"`
	RemoteAddress string `json:"remote_address"`
	// swagger:strfmt date-time
	CreatedUnix time.Time `json:"created"`
	// swagger:strfmt date-time
	LastUpdateUnix *time.Time `json:"last_update"`
	LastError      string     `json:"last_error"`
	Interval       string     `json:"interval"`
	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 {
	Ref          string           `json:"ref"`
	Before       string           `json:"before"`
	After        string           `json:"after"`
	CompareURL   string           `json:"compare_url"`
	Commits      []*PayloadCommit `json:"commits"`
	TotalCommits int              `json:"total_commits"`
	HeadCommit   *PayloadCommit   `json:"head_commit"`
	Repo         *Repository      `json:"repository"`
	Pusher       *User            `json:"pusher"`
	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 {
	User     *User  `json:"user"`
	Reaction string `json:"content"`
	// swagger:strfmt date-time
	Created time.Time `json:"created_at"`
}

Reaction contain one reaction

type Reference added in v1.9.0

type Reference struct {
	Ref    string     `json:"ref"`
	URL    string     `json:"url"`
	Object *GitObject `json:"object"`
}

Reference represents a Git reference.

type Release added in v1.9.0

type Release struct {
	ID           int64  `json:"id"`
	TagName      string `json:"tag_name"`
	Target       string `json:"target_commitish"`
	Title        string `json:"name"`
	Note         string `json:"body"`
	URL          string `json:"url"`
	HTMLURL      string `json:"html_url"`
	TarURL       string `json:"tarball_url"`
	ZipURL       string `json:"zipball_url"`
	UploadURL    string `json:"upload_url"`
	IsDraft      bool   `json:"draft"`
	IsPrerelease bool   `json:"prerelease"`
	// swagger:strfmt date-time
	CreatedAt time.Time `json:"created_at"`
	// swagger:strfmt date-time
	PublishedAt time.Time     `json:"published_at"`
	Publisher   *User         `json:"author"`
	Attachments []*Attachment `json:"assets"`
}

Release represents a repository release

type ReleasePayload added in v1.9.0

type ReleasePayload struct {
	Action     HookReleaseAction `json:"action"`
	Release    *Release          `json:"release"`
	Repository *Repository       `json:"repository"`
	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 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 string `json:"permission"`
	RoleName   string `json:"role_name"`
	User       *User  `json:"user"`
}

RepoCollaboratorPermission to get repository permission for a collaborator

type RepoCommit added in v1.9.0

type RepoCommit struct {
	URL          string                     `json:"url"`
	Author       *CommitUser                `json:"author"`
	Committer    *CommitUser                `json:"committer"`
	Message      string                     `json:"message"`
	Tree         *CommitMeta                `json:"tree"`
	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"`
	Parent        *Repository `json:"parent"`
	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"`
	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"`
	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,omitempty"`
	RepoTransfer  *RepoTransfer `json:"repo_transfer"`
}

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 {
	Action       HookRepoAction `json:"action"`
	Repository   *Repository    `json:"repository"`
	Organization *User          `json:"organization"`
	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 {
	Type    string `json:"type"`
	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    bool   `json:"ok"`
	Error string `json:"error"`
}

SearchError error of a failed search

type SearchResults added in v1.9.0

type SearchResults struct {
	OK   bool          `json:"ok"`
	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"`
	// 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 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 opend
	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       time.Time `json:"created"`
	Seconds       int64     `json:"seconds"`
	Duration      string    `json:"duration"`
	IssueIndex    int64     `json:"issue_index"`
	IssueTitle    string    `json:"issue_title"`
	RepoOwnerName string    `json:"repo_owner_name"`
	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 {
	Name       string      `json:"name"`
	Message    string      `json:"message"`
	ID         string      `json:"id"`
	Commit     *CommitMeta `json:"commit"`
	ZipballURL string      `json:"zipball_url"`
	TarballURL string      `json:"tarball_url"`
}

Tag represents a repository tag

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 {
	ID                      int64         `json:"id"`
	Name                    string        `json:"name"`
	Description             string        `json:"description"`
	Organization            *Organization `json:"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"`
	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   int64  `json:"id"`
	Type string `json:"type"`

	HTMLURL  string `json:"html_url"`
	PRURL    string `json:"pull_request_url"`
	IssueURL string `json:"issue_url"`
	Poster   *User  `json:"user"`
	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 {
	TopicNames []string `json:"topics"`
}

TopicName a list of repo topic names

type TopicResponse added in v1.10.0

type TopicResponse struct {
	ID        int64     `json:"id"`
	Name      string    `json:"topic_name"`
	RepoCount int       `json:"repo_count"`
	Created   time.Time `json:"created"`
	Updated   time.Time `json:"updated"`
}

TopicResponse for returning topics

type TrackedTime added in v1.9.0

type TrackedTime struct {
	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 string `json:"user_name"`
	// deprecated (only for backwards compatibility)
	IssueID int64  `json:"issue_id"`
	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 UpdateFileOptions added in v1.9.0

type UpdateFileOptions struct {
	DeleteFileOptions
	// 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)

func (*UpdateFileOptions) Branch added in v1.17.0

func (o *UpdateFileOptions) Branch() string

Branch returns branch name

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 User added in v1.9.0

type User struct {
	// the user's id
	ID int64 `json:"id"`
	// the user's username
	UserName string `json:"login"`
	// the user's authentication sign-in name.
	// default: empty
	LoginName string `json:"login_name"`
	// 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"`
	// 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,omitempty"`
	// swagger:strfmt date-time
	Created time.Time `json:"created,omitempty"`
	// 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
	KeyID     string `json:"key_id" binding:"Required"`
	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 {
	Subscribed    bool      `json:"subscribed"`
	Ignored       bool      `json:"ignored"`
	Reason        any       `json:"reason"`
	CreatedAt     time.Time `json:"created_at"`
	URL           string    `json:"url"`
	RepositoryURL string    `json:"repository_url"`
}

WatchInfo represents an API watch status of one repository

type WikiCommit added in v1.16.0

type WikiCommit struct {
	ID        string      `json:"sha"`
	Author    *CommitUser `json:"author"`
	Committer *CommitUser `json:"commiter"`
	Message   string      `json:"message"`
}

WikiCommit page commit/revision

type WikiCommitList added in v1.16.0

type WikiCommitList struct {
	WikiCommits []*WikiCommit `json:"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"`
	CommitCount   int64  `json:"commit_count"`
	Sidebar       string `json:"sidebar"`
	Footer        string `json:"footer"`
}

WikiPage a wiki page

type WikiPageMetaData added in v1.16.0

type WikiPageMetaData struct {
	Title      string      `json:"title"`
	HTMLURL    string      `json:"html_url"`
	SubURL     string      `json:"sub_url"`
	LastCommit *WikiCommit `json:"last_commit"`
}

WikiPageMetaData wiki page meta information

type WikiPayload added in v1.17.4

type WikiPayload struct {
	Action     HookWikiAction `json:"action"`
	Repository *Repository    `json:"repository"`
	Sender     *User          `json:"sender"`
	Page       string         `json:"page"`
	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

Jump to

Keyboard shortcuts

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