structs

package
v1.11.0-dev Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2019 License: MIT Imports: 5 Imported by: 62

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidReceiveHook FIXME
	ErrInvalidReceiveHook = errors.New("Invalid JSON payload received over webhook")
)
View Source
var (
	// SupportedFullGitService represents all git services supported to migrate issues/labels/prs and etc.
	// TODO: add to this list after new git service added
	SupportedFullGitService = []GitServiceType{
		GithubService,
	}
)
View Source
var VisibilityModes = map[string]VisibleType{
	"public":  VisibleTypePublic,
	"limited": VisibleTypeLimited,
	"private": VisibleTypePrivate,
}

VisibilityModes is a map of org Visibility types

Functions

func BasicAuthEncode added in v1.9.0

func BasicAuthEncode(user, pass string) string

BasicAuthEncode generate base64 of basic auth head

func Bool added in v1.9.0

func Bool(v bool) *bool

Bool return address of bool value

func ExtractKeysFromMapString

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

ExtractKeysFromMapString provides a slice of keys from map

func Int64 added in v1.9.0

func Int64(v int64) *int64

Int64 return address of int64 value

func String added in v1.9.0

func String(v string) *string

String return address of string value

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

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

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

type Branch struct {
	Name   string         `json:"name"`
	Commit *PayloadCommit `json:"commit"`
}

Branch represents a repository branch

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

ChangesPayload FIXME

type CombinedStatus added in v1.9.0

type CombinedStatus struct {
	State      StatusState `json:"state"`
	SHA        string      `json:"sha"`
	TotalCount int         `json:"total_count"`
	Statuses   []*Status   `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"`
	// 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"`
}

Commit contains information generated from a Git commit.

type CommitMeta added in v1.9.0

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

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

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"`
	// `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 {
	Name string `json:"name" binding:"Required"`
}

CreateAccessTokenOption options when create access token swagger:parameters userCreateToken

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

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

type CreateForkOption added in v1.9.0

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

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

CreateGPGKeyOption options create user GPG key

type CreateHookOption added in v1.9.0

type CreateHookOption struct {
	// required: true
	// enum: gitea,gogs,slack,discord
	Type string `json:"type" binding:"Required"`
	// required: true
	Config       map[string]string `json:"config" binding:"Required"`
	Events       []string          `json:"events"`
	BranchFilter string            `json:"branch_filter" binding:"GlobPattern"`
	// default: false
	Active bool `json:"active"`
}

CreateHookOption options when create a hook

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"`
	// username of assignee
	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"`
	// required:true
	// example: #00aabb
	Color       string `json:"color" binding:"Required;Size(7)"`
	Description string `json:"description"`
}

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

CreateMilestoneOption options for creating a milestone

type CreateOrgOption added in v1.9.0

type CreateOrgOption struct {
	// required: true
	UserName    string `json:"username" binding:"Required"`
	FullName    string `json:"full_name"`
	Description string `json:"description"`
	Website     string `json:"website"`
	Location    string `json:"location"`
	// 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 {
	Secret  string      `json:"secret"`
	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

func (*CreatePayload) SetSecret added in v1.9.0

func (p *CreatePayload) SetSecret(secret string)

SetSecret modifies the secret of the CreatePayload

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 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(255)"`
	// Whether the repository is private
	Private bool `json:"private"`
	// Issue Label set to use
	IssueLabels string `json:"issue_labels"`
	// Whether the repository should be auto-intialized?
	AutoInit bool `json:"auto_init"`
	// Gitignores to use
	Gitignores string `json:"gitignores"`
	// License to use
	License string `json:"license"`
	// Readme of the repository to create
	Readme string `json:"readme"`
}

CreateRepoOption options when creating repository swagger:model

type CreateStatusOption added in v1.9.0

type CreateStatusOption struct {
	State       StatusState `json:"state"`
	TargetURL   string      `json:"target_url"`
	Description string      `json:"description"`
	Context     string      `json:"context"`
}

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

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)"`
	// enum: read,write,admin
	Permission string `json:"permission"`
	// example: ["repo.code","repo.issues","repo.ext_issues","repo.wiki","repo.pulls","repo.releases","repo.ext_wiki"]
	Units []string `json:"units"`
}

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;AlphaDashDot;MaxSize(40)"`
	FullName string `json:"full_name" binding:"MaxSize(100)"`
	// required: true
	// swagger:strfmt email
	Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
	// required: true
	Password           string `json:"password" binding:"Required;MaxSize(255)"`
	MustChangePassword *bool  `json:"must_change_password"`
	SendNotify         bool   `json:"send_notify"`
}

CreateUserOption create user options

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)

type DeletePayload added in v1.9.0

type DeletePayload struct {
	Secret     string      `json:"secret"`
	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

func (*DeletePayload) SetSecret added in v1.9.0

func (p *DeletePayload) SetSecret(secret string)

SetSecret modifies the secret of the DeletePayload

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

type EditAttachmentOptions struct {
	Name string `json:"name"`
}

EditAttachmentOptions options for editing attachments swagger:model

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

EditIssueOption options for editing an issue

type EditLabelOption added in v1.9.0

type EditLabelOption struct {
	Name        *string `json:"name"`
	Color       *string `json:"color"`
	Description *string `json:"description"`
}

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"`
	Description string `json:"description"`
	Website     string `json:"website"`
	Location    string `json:"location"`
	// 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 EditPriorityOption added in v1.9.0

type EditPriorityOption struct {
	// required:true
	Priority int `json:"priority"`
}

EditPriorityOption options for updating priority

type EditPullRequestOption added in v1.9.0

type EditPullRequestOption struct {
	Title     string   `json:"title"`
	Body      string   `json:"body"`
	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"`
}

EditPullRequestOption options when modify pull request

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(255)"`
	// a URL with more information about the repository.
	Website *string `json:"website,omitempty" binding:"MaxSize(255)"`
	// 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 enable issues for this repository or `false` to disable them.
	HasIssues *bool `json:"has_issues,omitempty"`
	// set this structure to configure internal issue tracker (requires has_issues)
	InternalTracker *InternalTracker `json:"internal_tracker,omitempty"`
	// set this structure to use external issue tracker (requires has_issues)
	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 (requires has_wiki)
	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 ignore whitespace for conflicts, or `false` to not ignore whitespace. `has_pull_requests` must be `true`.
	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. `has_pull_requests` must be `true`.
	AllowMerge *bool `json:"allow_merge_commits,omitempty"`
	// either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. `has_pull_requests` must be `true`.
	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. `has_pull_requests` must be `true`.
	AllowRebaseMerge *bool `json:"allow_rebase_explicit,omitempty"`
	// either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. `has_pull_requests` must be `true`.
	AllowSquash *bool `json:"allow_squash_merge,omitempty"`
	// set to `true` to archive this repository.
	Archived *bool `json:"archived,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:"Required;AlphaDashDot;MaxSize(30)"`
	Description string `json:"description" binding:"MaxSize(255)"`
	// enum: read,write,admin
	Permission string `json:"permission"`
	// example: ["repo.code","repo.issues","repo.ext_issues","repo.wiki","repo.pulls","repo.releases","repo.ext_wiki"]
	Units []string `json:"units"`
}

EditTeamOption options for editing a team

type EditUserOption added in v1.9.0

type EditUserOption struct {
	SourceID  int64  `json:"source_id"`
	LoginName string `json:"login_name"`
	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"`
	Website                 string `json:"website" binding:"MaxSize(50)"`
	Location                string `json:"location" binding:"MaxSize(50)"`
	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"`
}

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

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` or `alphanumeric`
	ExternalTrackerStyle string `json:"external_tracker_style"`
}

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

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

type ForkPayload struct {
	Secret string      `json:"secret"`
	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

func (*ForkPayload) SetSecret added in v1.9.0

func (p *ForkPayload) SetSecret(secret string)

SetSecret modifies the secret of the ForkPayload

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"`
	// 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 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
)

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

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

type Hook struct {
	ID     int64             `json:"id"`
	Type   string            `json:"type"`
	URL    string            `json:"-"`
	Config map[string]string `json:"config"`
	Events []string          `json:"events"`
	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"
)

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 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 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"`
	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"`
	Labels           []*Label   `json:"labels"`
	Milestone        *Milestone `json:"milestone"`
	Assignee         *User      `json:"assignee"`
	Assignees        []*User    `json:"assignees"`
	// Whether the issue is open or closed
	//
	// type: string
	// enum: open,closed
	State    StateType `json:"state"`
	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"`
}

Issue represents an issue in a repository swagger:model

type IssueCommentPayload added in v1.9.0

type IssueCommentPayload struct {
	Secret     string                 `json:"secret"`
	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"`
}

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

func (*IssueCommentPayload) SetSecret added in v1.9.0

func (p *IssueCommentPayload) SetSecret(secret string)

SetSecret modifies the secret of the IssueCommentPayload

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

type IssueLabelsOption struct {
	// list of label IDs
	Labels []int64 `json:"labels"`
}

IssueLabelsOption a collection of labels

type IssuePayload added in v1.9.0

type IssuePayload struct {
	Secret     string          `json:"secret"`
	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"`
}

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.

func (*IssuePayload) SetSecret added in v1.9.0

func (p *IssuePayload) SetSecret(secret string)

SetSecret modifies the secret of the IssuePayload.

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

type ListIssueOption struct {
	Page  int
	State string
}

ListIssueOption list issue options

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

type ListStatusesOption struct {
	Page int
}

ListStatusesOption holds pagination information

type MarkdownOption added in v1.9.0

type MarkdownOption struct {
	// Text markdown to render
	//
	// in: body
	Text string
	// Mode to render
	//
	// 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 MigrateRepoOption added in v1.9.0

type MigrateRepoOption struct {
	// required: true
	CloneAddr    string `json:"clone_addr" binding:"Required"`
	AuthUsername string `json:"auth_username"`
	AuthPassword string `json:"auth_password"`
	// required: true
	UID int `json:"uid" binding:"Required"`
	// required: true
	RepoName        string `json:"repo_name" binding:"Required"`
	Mirror          bool   `json:"mirror"`
	Private         bool   `json:"private"`
	Description     string `json:"description"`
	OriginalURL     string
	GitServiceType  GitServiceType
	Wiki            bool
	Issues          bool
	Milestones      bool
	Labels          bool
	Releases        bool
	Comments        bool
	PullRequests    bool
	MigrateToRepoID int64
}

MigrateRepoOption options for migrating a repository from an external service

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

type Organization struct {
	ID                        int64  `json:"id"`
	UserName                  string `json:"username"`
	FullName                  string `json:"full_name"`
	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"`
}

Organization represents 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 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"`
	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 {
	SetSecret(string)
	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"`
	Push  bool `json:"push"`
	Pull  bool `json:"pull"`
}

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"`
	State     StateType  `json:"state"`
	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"`

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

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

PullRequestMeta PR info if an issue is a PR

type PullRequestPayload added in v1.9.0

type PullRequestPayload struct {
	Secret      string          `json:"secret"`
	Action      HookIssueAction `json:"action"`
	Index       int64           `json:"number"`
	Changes     *ChangesPayload `json:"changes,omitempty"`
	PullRequest *PullRequest    `json:"pull_request"`
	Repository  *Repository     `json:"repository"`
	Sender      *User           `json:"sender"`
}

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

func (*PullRequestPayload) SetSecret added in v1.9.0

func (p *PullRequestPayload) SetSecret(secret string)

SetSecret modifies the secret of the PullRequestPayload.

type PushPayload added in v1.9.0

type PushPayload struct {
	Secret     string           `json:"secret"`
	Ref        string           `json:"ref"`
	Before     string           `json:"before"`
	After      string           `json:"after"`
	CompareURL string           `json:"compare_url"`
	Commits    []*PayloadCommit `json:"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

func (*PushPayload) SetSecret added in v1.9.0

func (p *PushPayload) SetSecret(secret string)

SetSecret modifies the secret of the PushPayload

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 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"`
	TarURL       string `json:"tarball_url"`
	ZipURL       string `json:"zipball_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 {
	Secret     string            `json:"secret"`
	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

func (*ReleasePayload) SetSecret added in v1.9.0

func (p *ReleasePayload) SetSecret(secret string)

SetSecret modifies the secret of the ReleasePayload

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

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 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"`
	Parent        *Repository `json:"parent"`
	Mirror        bool        `json:"mirror"`
	Size          int         `json:"size"`
	HTMLURL       string      `json:"html_url"`
	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"`
	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"`
	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"`
	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"`
	AvatarURL                 string           `json:"avatar_url"`
}

Repository represents a repository

type RepositoryPayload added in v1.9.0

type RepositoryPayload struct {
	Secret       string         `json:"secret"`
	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

func (*RepositoryPayload) SetSecret added in v1.9.0

func (p *RepositoryPayload) SetSecret(secret string)

SetSecret modifies the secret of the RepositoryPayload

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

type Status struct {
	ID          int64       `json:"id"`
	State       StatusState `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"`
}

Status holds a single Status of a single Commit

type StatusState added in v1.9.0

type StatusState string

StatusState holds the state of a Status It can be "pending", "success", "error", "failure", and "warning"

const (
	// StatusPending is for when the Status is Pending
	StatusPending StatusState = "pending"
	// StatusSuccess is for when the Status is Success
	StatusSuccess StatusState = "success"
	// StatusError is for when the Status is Error
	StatusError StatusState = "error"
	// StatusFailure is for when the Status is Failure
	StatusFailure StatusState = "failure"
	// StatusWarning is for when the Status is Warning
	StatusWarning StatusState = "warning"
)

type Tag added in v1.9.0

type Tag struct {
	Name       string      `json:"name"`
	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 (
	TaskStatusQueue    TaskStatus = iota // 0 task is queue
	TaskStatusRunning                    // 1 task is running
	TaskStatusStopped                    // 2 task is stopped
	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
)

all kinds of task types

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"`
	// 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.ext_wiki"]
	Units []string `json:"units"`
}

Team represents a team in an organization

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"`
	UserID  int64 `json:"user_id"`
	IssueID int64 `json:"issue_id"`
}

TrackedTime worked time for an issue / pr

type TrackedTimes added in v1.9.0

type TrackedTimes []*TrackedTime

TrackedTimes represent a list of tracked times

type UpdateFileOptions added in v1.9.0

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

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

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

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 VisibleType

type VisibleType int

VisibleType defines the visibility (Organization only)

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

	// VisibleTypeLimited Visible for every connected user
	VisibleTypeLimited

	// VisibleTypePrivate Visible only for organization's members
	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        interface{} `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

Jump to

Keyboard shortcuts

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