gitea

package module
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: May 22, 2020 License: MIT Imports: 13 Imported by: 884

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractKeysFromMapString

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

ExtractKeysFromMapString provides a slice of keys from map

func Version

func Version() string

Version return the library version

Types

type AccessToken

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.

type AddCollaboratorOption

type AddCollaboratorOption struct {
	Permission *string `json:"permission"`
}

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

type AddTimeOption

type AddTimeOption struct {
	// time in seconds
	Time int64 `json:"time" binding:"Required"`
	// optional
	Created time.Time `json:"created"`
	// optional
	User string `json:"user_name"`
}

AddTimeOption options for adding time to an issue

type AdminListOrgsOptions added in v0.11.1

type AdminListOrgsOptions struct {
	ListOptions
}

AdminListOrgsOptions options for listing admin's organizations

type AdminListUsersOptions added in v0.11.1

type AdminListUsersOptions struct {
	ListOptions
}

AdminListUsersOptions options for listing admin users

type Attachment

type Attachment struct {
	ID            int64     `json:"id"`
	Name          string    `json:"name"`
	Size          int64     `json:"size"`
	DownloadCount int64     `json:"download_count"`
	Created       time.Time `json:"created_at"`
	UUID          string    `json:"uuid"`
	DownloadURL   string    `json:"browser_download_url"`
}

Attachment a generic attachment

type Branch

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 v0.12.0

type BranchProtection struct {
	BranchName                  string   `json:"branch_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"`
	BlockOnOutdatedBranch       bool     `json:"block_on_outdated_branch"`
	DismissStaleApprovals       bool     `json:"dismiss_stale_approvals"`
	RequireSignedCommits        bool     `json:"require_signed_commits"`
	ProtectedFilePatterns       string   `json:"protected_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 Client

type Client struct {
	// contains filtered or unexported fields
}

Client represents a Gitea API client.

func NewClient

func NewClient(url, token string) *Client

NewClient initializes and returns a API client.

func NewClientWithHTTP

func NewClientWithHTTP(url string, httpClient *http.Client) *Client

NewClientWithHTTP creates an API client with a custom http client

func (*Client) AddCollaborator

func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollaboratorOption) error

AddCollaborator add some user as a collaborator of a repository

func (*Client) AddEmail

func (c *Client) AddEmail(opt CreateEmailOption) ([]*Email, error)

AddEmail add one email to current user with options

func (*Client) AddIssueLabels

func (c *Client) AddIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error)

AddIssueLabels add one or more labels to one issue

func (*Client) AddIssueSubscription

func (c *Client) AddIssueSubscription(owner, repo string, index int64, user string) error

AddIssueSubscription Subscribe user to issue

func (*Client) AddRepoTopic

func (c *Client) AddRepoTopic(user, repo, topic string) error

AddRepoTopic adds a topic to a repo's topics list

func (*Client) AddTeamMember

func (c *Client) AddTeamMember(id int64, user string) error

AddTeamMember adds a member to a team

func (*Client) AddTeamRepository

func (c *Client) AddTeamRepository(id int64, org, repo string) error

AddTeamRepository adds a repository to a team

func (*Client) AddTime

func (c *Client) AddTime(owner, repo string, index int64, opt AddTimeOption) (*TrackedTime, error)

AddTime adds time to issue with the given index

func (*Client) AdminCreateOrg

func (c *Client) AdminCreateOrg(user string, opt CreateOrgOption) (*Organization, error)

AdminCreateOrg create an organization

func (*Client) AdminCreateRepo

func (c *Client) AdminCreateRepo(user string, opt CreateRepoOption) (*Repository, error)

AdminCreateRepo create a repo

func (*Client) AdminCreateUser

func (c *Client) AdminCreateUser(opt CreateUserOption) (*User, error)

AdminCreateUser create a user

func (*Client) AdminCreateUserPublicKey

func (c *Client) AdminCreateUserPublicKey(user string, opt CreateKeyOption) (*PublicKey, error)

AdminCreateUserPublicKey adds a public key for the user

func (*Client) AdminDeleteUser

func (c *Client) AdminDeleteUser(user string) error

AdminDeleteUser delete one user according name

func (*Client) AdminDeleteUserPublicKey

func (c *Client) AdminDeleteUserPublicKey(user string, keyID int) error

AdminDeleteUserPublicKey deletes a user's public key

func (*Client) AdminEditUser

func (c *Client) AdminEditUser(user string, opt EditUserOption) error

AdminEditUser modify user informations

func (*Client) AdminListOrgs

func (c *Client) AdminListOrgs(opt AdminListOrgsOptions) ([]*Organization, error)

AdminListOrgs lists all orgs

func (*Client) AdminListUsers

func (c *Client) AdminListUsers(opt AdminListUsersOptions) ([]*User, error)

AdminListUsers lists all users

func (*Client) CheckIssueSubscription added in v0.12.0

func (c *Client) CheckIssueSubscription(owner, repo string, index int64) (*WatchInfo, error)

CheckIssueSubscription check if current user is subscribed to an issue

func (*Client) CheckNotifications added in v0.11.1

func (c *Client) CheckNotifications() (int64, error)

CheckNotifications list users's notification threads

func (*Client) CheckOrgMembership added in v0.11.1

func (c *Client) CheckOrgMembership(org, user string) (bool, error)

CheckOrgMembership Check if a user is a member of an organization

func (*Client) CheckPublicOrgMembership added in v0.11.1

func (c *Client) CheckPublicOrgMembership(org, user string) (bool, error)

CheckPublicOrgMembership Check if a user is a member of an organization

func (*Client) CheckRepoWatch added in v0.11.1

func (c *Client) CheckRepoWatch(repoUser, repoName string) (bool, error)

CheckRepoWatch check if the current user is watching a repo

func (*Client) CheckServerVersionConstraint

func (c *Client) CheckServerVersionConstraint(constraint string) error

CheckServerVersionConstraint validates that the login's server satisfies a given version constraint such as ">= 1.11.0+dev"

func (*Client) ClearIssueLabels

func (c *Client) ClearIssueLabels(owner, repo string, index int64) error

ClearIssueLabels delete all the labels of one issue.

func (*Client) CreateAccessToken

func (c *Client) CreateAccessToken(opt CreateAccessTokenOption) (*AccessToken, error)

CreateAccessToken create one access token with options

func (*Client) CreateBranchProtection added in v0.12.0

func (c *Client) CreateBranchProtection(owner, repo string, opt CreateBranchProtectionOption) (*BranchProtection, error)

CreateBranchProtection creates a branch protection for a repo

func (*Client) CreateDeployKey

func (c *Client) CreateDeployKey(user, repo string, opt CreateKeyOption) (*DeployKey, error)

CreateDeployKey options when create one deploy key

func (*Client) CreateFile added in v0.12.0

func (c *Client) CreateFile(owner, repo, filepath string, opt CreateFileOptions) (*FileResponse, error)

CreateFile create a file in a repository

func (*Client) CreateFork

func (c *Client) CreateFork(user, repo string, form CreateForkOption) (*Repository, error)

CreateFork create a fork of a repository

func (*Client) CreateGPGKey

func (c *Client) CreateGPGKey(opt CreateGPGKeyOption) (*GPGKey, error)

CreateGPGKey create GPG key with options

func (*Client) CreateIssue

func (c *Client) CreateIssue(owner, repo string, opt CreateIssueOption) (*Issue, error)

CreateIssue create a new issue for a given repository

func (*Client) CreateIssueComment

func (c *Client) CreateIssueComment(owner, repo string, index int64, opt CreateIssueCommentOption) (*Comment, error)

CreateIssueComment create comment on an issue.

func (*Client) CreateLabel

func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label, error)

CreateLabel create one label of repository

func (*Client) CreateMilestone

func (c *Client) CreateMilestone(owner, repo string, opt CreateMilestoneOption) (*Milestone, error)

CreateMilestone create one milestone with options

func (*Client) CreateOauth2 added in v0.12.0

func (c *Client) CreateOauth2(opt CreateOauth2Option) (*Oauth2, error)

CreateOauth2 create an Oauth2 Application and returns a completed Oauth2 object.

func (*Client) CreateOrg

func (c *Client) CreateOrg(opt CreateOrgOption) (*Organization, error)

CreateOrg creates an organization

func (*Client) CreateOrgHook

func (c *Client) CreateOrgHook(org string, opt CreateHookOption) (*Hook, error)

CreateOrgHook create one hook for an organization, with options

func (*Client) CreateOrgRepo

func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, error)

CreateOrgRepo creates an organization repository for authenticated user.

func (*Client) CreatePublicKey

func (c *Client) CreatePublicKey(opt CreateKeyOption) (*PublicKey, error)

CreatePublicKey create public key with options

func (*Client) CreatePullRequest

func (c *Client) CreatePullRequest(owner, repo string, opt CreatePullRequestOption) (*PullRequest, error)

CreatePullRequest create pull request with options

func (*Client) CreatePullReview added in v0.12.0

func (c *Client) CreatePullReview(owner, repo string, index int64, opt CreatePullReviewOptions) (*PullReview, error)

CreatePullReview create a review to an pull request

func (*Client) CreateRelease

func (c *Client) CreateRelease(user, repo string, form CreateReleaseOption) (*Release, error)

CreateRelease create a release

func (*Client) CreateReleaseAttachment

func (c *Client) CreateReleaseAttachment(user, repo string, release int64, file io.Reader, filename string) (*Attachment, error)

CreateReleaseAttachment creates an attachment for the given release

func (*Client) CreateRepo

func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, error)

CreateRepo creates a repository for authenticated user.

func (*Client) CreateRepoHook

func (c *Client) CreateRepoHook(user, repo string, opt CreateHookOption) (*Hook, error)

CreateRepoHook create one hook for a repository, with options

func (*Client) CreateStatus

func (c *Client) CreateStatus(owner, repo, sha string, opts CreateStatusOption) (*Status, error)

CreateStatus creates a new Status for a given Commit

func (*Client) CreateTeam

func (c *Client) CreateTeam(org string, opt CreateTeamOption) (*Team, error)

CreateTeam creates a team for an organization

func (*Client) DeleteAccessToken

func (c *Client) DeleteAccessToken(keyID int64) error

DeleteAccessToken delete token with key id

func (*Client) DeleteBranchProtection added in v0.12.0

func (c *Client) DeleteBranchProtection(owner, repo, name string) error

DeleteBranchProtection deletes a branch protection for a repo

func (*Client) DeleteCollaborator

func (c *Client) DeleteCollaborator(user, repo, collaborator string) error

DeleteCollaborator remove a collaborator from a repository

func (*Client) DeleteDeployKey

func (c *Client) DeleteDeployKey(owner, repo string, keyID int64) error

DeleteDeployKey delete deploy key with key id

func (*Client) DeleteEmail

func (c *Client) DeleteEmail(opt DeleteEmailOption) error

DeleteEmail delete one email of current users'

func (*Client) DeleteFile added in v0.12.0

func (c *Client) DeleteFile(owner, repo, filepath string, opt DeleteFileOptions) error

DeleteFile delete a file from repository

func (*Client) DeleteGPGKey

func (c *Client) DeleteGPGKey(keyID int64) error

DeleteGPGKey delete GPG key with key id

func (*Client) DeleteIssueComment

func (c *Client) DeleteIssueComment(owner, repo string, commentID int64) error

DeleteIssueComment deletes an issue comment.

func (*Client) DeleteIssueCommentReaction

func (c *Client) DeleteIssueCommentReaction(owner, repo string, commentID int64, reaction string) error

DeleteIssueCommentReaction remove a reaction from a comment of an issue

func (*Client) DeleteIssueLabel

func (c *Client) DeleteIssueLabel(owner, repo string, index, label int64) error

DeleteIssueLabel delete one label of one issue by issue id and label id TODO: maybe we need delete by label name and issue id

func (*Client) DeleteIssueReaction

func (c *Client) DeleteIssueReaction(owner, repo string, index int64, reaction string) error

DeleteIssueReaction remove a reaction from an issue

func (*Client) DeleteIssueStopwatch

func (c *Client) DeleteIssueStopwatch(owner, repo string, index int64) error

DeleteIssueStopwatch delete / cancel a specific stopwatch

func (*Client) DeleteIssueSubscription

func (c *Client) DeleteIssueSubscription(owner, repo string, index int64, user string) error

DeleteIssueSubscription unsubscribe user from issue

func (*Client) DeleteLabel

func (c *Client) DeleteLabel(owner, repo string, id int64) error

DeleteLabel delete one label of repository by id TODO: maybe we need delete by name

func (*Client) DeleteMilestone

func (c *Client) DeleteMilestone(owner, repo string, id int64) error

DeleteMilestone delete one milestone by milestone id

func (*Client) DeleteOauth2 added in v0.12.0

func (c *Client) DeleteOauth2(oauth2id int64) error

DeleteOauth2 delete an Oauth2 application by ID

func (*Client) DeleteOrg

func (c *Client) DeleteOrg(orgname string) error

DeleteOrg deletes an organization

func (*Client) DeleteOrgHook

func (c *Client) DeleteOrgHook(org string, id int64) error

DeleteOrgHook delete one hook from an organization, with hook id

func (*Client) DeleteOrgMembership added in v0.11.1

func (c *Client) DeleteOrgMembership(org, user string) error

DeleteOrgMembership remove a member from an organization

func (*Client) DeletePublicKey

func (c *Client) DeletePublicKey(keyID int64) error

DeletePublicKey delete public key with key id

func (*Client) DeletePullReview added in v0.12.0

func (c *Client) DeletePullReview(owner, repo string, index, id int64) error

DeletePullReview delete a specific review from a pull request

func (*Client) DeleteRelease

func (c *Client) DeleteRelease(user, repo string, id int64) error

DeleteRelease delete a release from a repository

func (*Client) DeleteReleaseAttachment

func (c *Client) DeleteReleaseAttachment(user, repo string, release int64, id int64) error

DeleteReleaseAttachment deletes the given attachment including the uploaded file

func (*Client) DeleteRepo

func (c *Client) DeleteRepo(owner, repo string) error

DeleteRepo deletes a repository of user or organization.

func (*Client) DeleteRepoBranch added in v0.12.0

func (c *Client) DeleteRepoBranch(user, repo, branch string) (bool, error)

DeleteRepoBranch delete a branch in a repository

func (*Client) DeleteRepoGitHook

func (c *Client) DeleteRepoGitHook(user, repo, id string) error

DeleteRepoGitHook delete one Git hook from a repository

func (*Client) DeleteRepoHook

func (c *Client) DeleteRepoHook(user, repo string, id int64) error

DeleteRepoHook delete one hook from a repository, with hook id

func (*Client) DeleteRepoTopic

func (c *Client) DeleteRepoTopic(user, repo, topic string) error

DeleteRepoTopic deletes a topic from repo's topics list

func (*Client) DeleteTeam

func (c *Client) DeleteTeam(id int64) error

DeleteTeam deletes a team of an organization

func (*Client) DeleteTime

func (c *Client) DeleteTime(owner, repo string, index, timeID int64) error

DeleteTime delete a specific tracked time by id of a single issue for a given repository

func (*Client) EditBranchProtection added in v0.12.0

func (c *Client) EditBranchProtection(owner, repo, name string, opt EditBranchProtectionOption) (*BranchProtection, error)

EditBranchProtection edits a branch protection for a repo

func (*Client) EditIssue

func (c *Client) EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, error)

EditIssue modify an existing issue for a given repository

func (*Client) EditIssueComment

func (c *Client) EditIssueComment(owner, repo string, commentID int64, opt EditIssueCommentOption) (*Comment, error)

EditIssueComment edits an issue comment.

func (*Client) EditLabel

func (c *Client) EditLabel(owner, repo string, id int64, opt EditLabelOption) (*Label, error)

EditLabel modify one label with options

func (*Client) EditMilestone

func (c *Client) EditMilestone(owner, repo string, id int64, opt EditMilestoneOption) (*Milestone, error)

EditMilestone modify milestone with options

func (*Client) EditOrg

func (c *Client) EditOrg(orgname string, opt EditOrgOption) error

EditOrg modify one organization via options

func (*Client) EditOrgHook

func (c *Client) EditOrgHook(org string, id int64, opt EditHookOption) error

EditOrgHook modify one hook of an organization, with hook id and options

func (*Client) EditPullRequest

func (c *Client) EditPullRequest(owner, repo string, index int64, opt EditPullRequestOption) (*PullRequest, error)

EditPullRequest modify pull request with PR id and options

func (*Client) EditRelease

func (c *Client) EditRelease(user, repo string, id int64, form EditReleaseOption) (*Release, error)

EditRelease edit a release

func (*Client) EditReleaseAttachment

func (c *Client) EditReleaseAttachment(user, repo string, release int64, attachment int64, form EditAttachmentOptions) (*Attachment, error)

EditReleaseAttachment updates the given attachment with the given options

func (*Client) EditRepo

func (c *Client) EditRepo(owner, reponame string, opt EditRepoOption) (*Repository, error)

EditRepo edit the properties of a repository

func (*Client) EditRepoGitHook

func (c *Client) EditRepoGitHook(user, repo, id string, opt EditGitHookOption) error

EditRepoGitHook modify one Git hook of a repository

func (*Client) EditRepoHook

func (c *Client) EditRepoHook(user, repo string, id int64, opt EditHookOption) error

EditRepoHook modify one hook of a repository, with hook id and options

func (*Client) EditTeam

func (c *Client) EditTeam(id int64, opt EditTeamOption) error

EditTeam edits a team of an organization

func (*Client) Follow

func (c *Client) Follow(target string) error

Follow set current user follow the target

func (*Client) GetBlob

func (c *Client) GetBlob(user, repo, sha string) (*GitBlobResponse, error)

GetBlob get the blob of a repository file

func (*Client) GetBranchProtection added in v0.12.0

func (c *Client) GetBranchProtection(owner, repo, name string) (*BranchProtection, error)

GetBranchProtection gets a branch protection

func (*Client) GetCombinedStatus

func (c *Client) GetCombinedStatus(owner, repo, sha string) (*CombinedStatus, error)

GetCombinedStatus returns the CombinedStatus for a given Commit

func (*Client) GetContents added in v0.12.0

func (c *Client) GetContents(owner, repo, ref, filepath string) (*ContentsResponse, error)

GetContents get the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir ref is optional

func (*Client) GetDeployKey

func (c *Client) GetDeployKey(user, repo string, keyID int64) (*DeployKey, error)

GetDeployKey get one deploy key with key id

func (*Client) GetFile

func (c *Client) GetFile(user, repo, ref, tree string) ([]byte, error)

GetFile downloads a file of repository, ref can be branch/tag/commit. e.g.: ref -> master, tree -> macaron.go(no leading slash)

func (*Client) GetGPGKey

func (c *Client) GetGPGKey(keyID int64) (*GPGKey, error)

GetGPGKey get current user's GPG key by key id

func (*Client) GetIssue

func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, error)

GetIssue returns a single issue for a given repository

func (*Client) GetIssueComment added in v0.11.1

func (c *Client) GetIssueComment(owner, repo string, id int64) (*Comment, error)

GetIssueComment get a comment for a given repo by id.

func (*Client) GetIssueCommentReactions

func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, error)

GetIssueCommentReactions get a list of reactions from a comment of an issue

func (*Client) GetIssueLabels

func (c *Client) GetIssueLabels(owner, repo string, index int64, opts ListLabelsOptions) ([]*Label, error)

GetIssueLabels get labels of one issue via issue id

func (*Client) GetIssueReactions

func (c *Client) GetIssueReactions(owner, repo string, index int64) ([]*Reaction, error)

GetIssueReactions get a list reactions of an issue

func (*Client) GetIssueSubscribers

func (c *Client) GetIssueSubscribers(owner, repo string, index int64) ([]*User, error)

GetIssueSubscribers get list of users who subscribed on an issue

func (*Client) GetMilestone

func (c *Client) GetMilestone(owner, repo string, id int64) (*Milestone, error)

GetMilestone get one milestone by repo name and milestone id

func (*Client) GetMyStopwatches

func (c *Client) GetMyStopwatches() ([]*StopWatch, error)

GetMyStopwatches list all stopwatches

func (*Client) GetMyTrackedTimes

func (c *Client) GetMyTrackedTimes() ([]*TrackedTime, error)

GetMyTrackedTimes list tracked times of the current user

func (*Client) GetMyUserInfo

func (c *Client) GetMyUserInfo() (*User, error)

GetMyUserInfo get user info of current user

func (*Client) GetMyWatchedRepos added in v0.11.1

func (c *Client) GetMyWatchedRepos() ([]*Repository, error)

GetMyWatchedRepos list repositories watched by the authenticated user

func (*Client) GetNotification added in v0.11.1

func (c *Client) GetNotification(id int64) (*NotificationThread, error)

GetNotification get notification thread by ID

func (*Client) GetOauth2 added in v0.12.0

func (c *Client) GetOauth2(oauth2id int64) (*Oauth2, error)

GetOauth2 a specific Oauth2 Application by ID.

func (*Client) GetOrg

func (c *Client) GetOrg(orgname string) (*Organization, error)

GetOrg get one organization by name

func (*Client) GetOrgHook

func (c *Client) GetOrgHook(org string, id int64) (*Hook, error)

GetOrgHook get a hook of an organization

func (*Client) GetPublicKey

func (c *Client) GetPublicKey(keyID int64) (*PublicKey, error)

GetPublicKey get current user's public key by key id

func (*Client) GetPullRequest

func (c *Client) GetPullRequest(owner, repo string, index int64) (*PullRequest, error)

GetPullRequest get information of one PR

func (*Client) GetPullReview added in v0.12.0

func (c *Client) GetPullReview(owner, repo string, index, id int64) (*PullReview, error)

GetPullReview gets a specific review of a pull request

func (*Client) GetRelease

func (c *Client) GetRelease(user, repo string, id int64) (*Release, error)

GetRelease get a release of a repository

func (*Client) GetReleaseAttachment

func (c *Client) GetReleaseAttachment(user, repo string, release int64, id int64) (*Attachment, error)

GetReleaseAttachment returns the requested attachment

func (*Client) GetRepo

func (c *Client) GetRepo(owner, reponame string) (*Repository, error)

GetRepo returns information of a repository of given owner.

func (*Client) GetRepoBranch

func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, error)

GetRepoBranch get one branch's information of one repository

func (*Client) GetRepoGitHook

func (c *Client) GetRepoGitHook(user, repo, id string) (*GitHook, error)

GetRepoGitHook get a Git hook of a repository

func (*Client) GetRepoHook

func (c *Client) GetRepoHook(user, repo string, id int64) (*Hook, error)

GetRepoHook get a hook of a repository

func (*Client) GetRepoLabel

func (c *Client) GetRepoLabel(owner, repo string, id int64) (*Label, error)

GetRepoLabel get one label of repository by repo it TODO: maybe we need get a label by name

func (*Client) GetRepoRef

func (c *Client) GetRepoRef(user, repo, ref string) (*Reference, error)

GetRepoRef get one ref's information of one repository

func (*Client) GetRepoRefs

func (c *Client) GetRepoRefs(user, repo, ref string) ([]*Reference, error)

GetRepoRefs get list of ref's information of one repository

func (*Client) GetRepoTrackedTimes

func (c *Client) GetRepoTrackedTimes(owner, repo string) ([]*TrackedTime, error)

GetRepoTrackedTimes list tracked times of a repository

func (*Client) GetSingleCommit

func (c *Client) GetSingleCommit(user, repo, commitID string) (*Commit, error)

GetSingleCommit returns a single commit

func (*Client) GetTeam

func (c *Client) GetTeam(id int64) (*Team, error)

GetTeam gets a team by ID

func (*Client) GetTeamMember

func (c *Client) GetTeamMember(id int64, user string) (*User, error)

GetTeamMember gets a member of a team

func (*Client) GetTrees

func (c *Client) GetTrees(user, repo, ref string, recursive bool) (*GitTreeResponse, error)

GetTrees downloads a file of repository, ref can be branch/tag/commit. e.g.: ref -> master, tree -> macaron.go(no leading slash)

func (*Client) GetUserInfo

func (c *Client) GetUserInfo(user string) (*User, error)

GetUserInfo get user info by user's name

func (*Client) GetUserTrackedTimes

func (c *Client) GetUserTrackedTimes(owner, repo, user string) ([]*TrackedTime, error)

GetUserTrackedTimes list tracked times of a user

func (*Client) GetWatchedRepos

func (c *Client) GetWatchedRepos(user string) ([]*Repository, error)

GetWatchedRepos list all the watched repos of user

func (*Client) IsCollaborator

func (c *Client) IsCollaborator(user, repo, collaborator string) (bool, error)

IsCollaborator check if a user is a collaborator of a repository

func (*Client) IsFollowing

func (c *Client) IsFollowing(target string) bool

IsFollowing if current user followed the target

func (*Client) IsPullRequestMerged

func (c *Client) IsPullRequestMerged(owner, repo string, index int64) (bool, error)

IsPullRequestMerged test if one PR is merged to one repository

func (*Client) IsUserFollowing

func (c *Client) IsUserFollowing(user, target string) bool

IsUserFollowing if the user followed the target

func (*Client) IssueSubscribe

func (c *Client) IssueSubscribe(owner, repo string, index int64) error

IssueSubscribe subscribe current user to an issue

func (*Client) IssueUnSubscribe

func (c *Client) IssueUnSubscribe(owner, repo string, index int64) error

IssueUnSubscribe unsubscribe current user from an issue

func (*Client) ListAccessTokens

func (c *Client) ListAccessTokens(opts ListAccessTokensOptions) ([]*AccessToken, error)

ListAccessTokens lists all the access tokens of user

func (*Client) ListBranchProtections added in v0.12.0

func (c *Client) ListBranchProtections(owner, repo string, opt ListBranchProtectionsOptions) ([]*BranchProtection, error)

ListBranchProtections list branch protections for a repo

func (*Client) ListCollaborators

func (c *Client) ListCollaborators(user, repo string, opt ListCollaboratorsOptions) ([]*User, error)

ListCollaborators list a repository's collaborators

func (*Client) ListDeployKeys

func (c *Client) ListDeployKeys(user, repo string, opt ListDeployKeysOptions) ([]*DeployKey, error)

ListDeployKeys list all the deploy keys of one repository

func (*Client) ListEmails

func (c *Client) ListEmails(opt ListEmailsOptions) ([]*Email, error)

ListEmails all the email addresses of user

func (*Client) ListFollowers

func (c *Client) ListFollowers(user string, opt ListFollowersOptions) ([]*User, error)

ListFollowers list all the followers of one user

func (*Client) ListFollowing

func (c *Client) ListFollowing(user string, opt ListFollowingOptions) ([]*User, error)

ListFollowing list all the users the user followed

func (*Client) ListForks

func (c *Client) ListForks(user string, repo string, opt ListForksOptions) ([]*Repository, error)

ListForks list a repository's forks

func (*Client) ListGPGKeys

func (c *Client) ListGPGKeys(user string, opt ListGPGKeysOptions) ([]*GPGKey, error)

ListGPGKeys list all the GPG keys of the user

func (*Client) ListIssueComments

func (c *Client) ListIssueComments(owner, repo string, index int64, opt ListIssueCommentOptions) ([]*Comment, error)

ListIssueComments list comments on an issue.

func (*Client) ListIssues

func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, error)

ListIssues returns all issues assigned the authenticated user

func (*Client) ListMyFollowers

func (c *Client) ListMyFollowers(opt ListFollowersOptions) ([]*User, error)

ListMyFollowers list all the followers of current user

func (*Client) ListMyFollowing

func (c *Client) ListMyFollowing(opt ListFollowingOptions) ([]*User, error)

ListMyFollowing list all the users current user followed

func (*Client) ListMyGPGKeys

func (c *Client) ListMyGPGKeys(opt *ListGPGKeysOptions) ([]*GPGKey, error)

ListMyGPGKeys list all the GPG keys of current user

func (*Client) ListMyOrgs

func (c *Client) ListMyOrgs(opt ListOrgsOptions) ([]*Organization, error)

ListMyOrgs list all of current user's organizations

func (*Client) ListMyPublicKeys

func (c *Client) ListMyPublicKeys(opt ListPublicKeysOptions) ([]*PublicKey, error)

ListMyPublicKeys list all the public keys of current user

func (*Client) ListMyRepos

func (c *Client) ListMyRepos(opt ListReposOptions) ([]*Repository, error)

ListMyRepos lists all repositories for the authenticated user that has access to.

func (*Client) ListMyTeams

func (c *Client) ListMyTeams(opt *ListTeamsOptions) ([]*Team, error)

ListMyTeams lists all the teams of the current user

func (*Client) ListNotifications added in v0.11.1

func (c *Client) ListNotifications(opt ListNotificationOptions) ([]*NotificationThread, error)

ListNotifications list users's notification threads

func (*Client) ListOauth2 added in v0.12.0

func (c *Client) ListOauth2(opt ListOauth2Option) ([]*Oauth2, error)

ListOauth2 all of your Oauth2 Applications.

func (*Client) ListOrgHooks

func (c *Client) ListOrgHooks(org string, opt ListHooksOptions) ([]*Hook, error)

ListOrgHooks list all the hooks of one organization

func (*Client) ListOrgMembership added in v0.11.1

func (c *Client) ListOrgMembership(org string, opt ListOrgMembershipOption) ([]*User, error)

ListOrgMembership list an organization's members

func (*Client) ListOrgRepos

func (c *Client) ListOrgRepos(org string, opt ListOrgReposOptions) ([]*Repository, error)

ListOrgRepos list all repositories of one organization by organization's name

func (*Client) ListOrgTeams

func (c *Client) ListOrgTeams(org string, opt ListTeamsOptions) ([]*Team, error)

ListOrgTeams lists all teams of an organization

func (*Client) ListPublicKeys

func (c *Client) ListPublicKeys(user string, opt ListPublicKeysOptions) ([]*PublicKey, error)

ListPublicKeys list all the public keys of the user

func (*Client) ListPublicOrgMembership added in v0.11.1

func (c *Client) ListPublicOrgMembership(org string, opt ListOrgMembershipOption) ([]*User, error)

ListPublicOrgMembership list an organization's members

func (*Client) ListPullReviewComments added in v0.12.0

func (c *Client) ListPullReviewComments(owner, repo string, index, id int64, opt ListPullReviewsCommentsOptions) ([]*PullReviewComment, error)

ListPullReviewComments lists all comments of a pull request review

func (*Client) ListPullReviews added in v0.12.0

func (c *Client) ListPullReviews(owner, repo string, index int64, opt ListPullReviewsOptions) ([]*PullReview, error)

ListPullReviews lists all reviews of a pull request

func (*Client) ListReleaseAttachments

func (c *Client) ListReleaseAttachments(user, repo string, release int64, opt ListReleaseAttachmentsOptions) ([]*Attachment, error)

ListReleaseAttachments list release's attachments

func (*Client) ListReleases

func (c *Client) ListReleases(user, repo string, opt ListReleasesOptions) ([]*Release, error)

ListReleases list releases of a repository

func (*Client) ListRepoBranches

func (c *Client) ListRepoBranches(user, repo string, opt ListRepoBranchesOptions) ([]*Branch, error)

ListRepoBranches list all the branches of one repository

func (*Client) ListRepoCommits added in v0.11.1

func (c *Client) ListRepoCommits(user, repo string, opt ListCommitOptions) ([]*Commit, error)

ListRepoCommits return list of commits from a repo

func (*Client) ListRepoGitHooks

func (c *Client) ListRepoGitHooks(user, repo string, opt ListRepoGitHooksOptions) ([]*GitHook, error)

ListRepoGitHooks list all the Git hooks of one repository

func (*Client) ListRepoHooks

func (c *Client) ListRepoHooks(user, repo string, opt ListHooksOptions) ([]*Hook, error)

ListRepoHooks list all the hooks of one repository

func (*Client) ListRepoIssueComments

func (c *Client) ListRepoIssueComments(owner, repo string, opt ListIssueCommentOptions) ([]*Comment, error)

ListRepoIssueComments list comments for a given repo.

func (*Client) ListRepoIssues

func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Issue, error)

ListRepoIssues returns all issues for a given repository

func (*Client) ListRepoLabels

func (c *Client) ListRepoLabels(owner, repo string, opt ListLabelsOptions) ([]*Label, error)

ListRepoLabels list labels of one repository

func (*Client) ListRepoMilestones

func (c *Client) ListRepoMilestones(owner, repo string, opt ListMilestoneOption) ([]*Milestone, error)

ListRepoMilestones list all the milestones of one repository

func (*Client) ListRepoNotifications added in v0.11.1

func (c *Client) ListRepoNotifications(owner, reponame string, opt ListNotificationOptions) ([]*NotificationThread, error)

ListRepoNotifications list users's notification threads on a specific repo

func (*Client) ListRepoPullRequests

func (c *Client) ListRepoPullRequests(owner, repo string, opt ListPullRequestsOptions) ([]*PullRequest, error)

ListRepoPullRequests list PRs of one repository

func (*Client) ListRepoTags

func (c *Client) ListRepoTags(user, repo string, opt ListRepoTagsOptions) ([]*Tag, error)

ListRepoTags list all the branches of one repository

func (*Client) ListRepoTopics

func (c *Client) ListRepoTopics(user, repo string, opt ListRepoTopicsOptions) ([]string, error)

ListRepoTopics list all repository's topics

func (*Client) ListStatuses

func (c *Client) ListStatuses(owner, repo, sha string, opt ListStatusesOption) ([]*Status, error)

ListStatuses returns all statuses for a given Commit

func (*Client) ListTeamMembers

func (c *Client) ListTeamMembers(id int64, opt ListTeamMembersOptions) ([]*User, error)

ListTeamMembers lists all members of a team

func (*Client) ListTeamRepositories

func (c *Client) ListTeamRepositories(id int64, opt ListTeamRepositoriesOptions) ([]*Repository, error)

ListTeamRepositories lists all repositories of a team

func (*Client) ListTrackedTimes

func (c *Client) ListTrackedTimes(owner, repo string, index int64, opt ListTrackedTimesOptions) ([]*TrackedTime, error)

ListTrackedTimes list tracked times of a single issue for a given repository

func (*Client) ListUserOrgs

func (c *Client) ListUserOrgs(user string, opt ListOrgsOptions) ([]*Organization, error)

ListUserOrgs list all of some user's organizations

func (*Client) ListUserRepos

func (c *Client) ListUserRepos(user string, opt ListReposOptions) ([]*Repository, error)

ListUserRepos list all repositories of one user by user's name

func (*Client) MergePullRequest

func (c *Client) MergePullRequest(owner, repo string, index int64, opt MergePullRequestOption) (bool, error)

MergePullRequest merge a PR to repository by PR id

func (*Client) MigrateRepo

func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, error)

MigrateRepo migrates a repository from other Git hosting sources for the authenticated user.

To migrate a repository for a organization, the authenticated user must be a owner of the specified organization.

func (*Client) MirrorSync

func (c *Client) MirrorSync(owner, repo string) error

MirrorSync adds a mirrored repository to the mirror sync queue.

func (*Client) PostIssueCommentReaction

func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, error)

PostIssueCommentReaction add a reaction to a comment of an issue

func (*Client) PostIssueReaction

func (c *Client) PostIssueReaction(owner, repo string, index int64, reaction string) (*Reaction, error)

PostIssueReaction add a reaction to an issue

func (*Client) ReadNotification added in v0.11.1

func (c *Client) ReadNotification(id int64) error

ReadNotification mark notification thread as read by ID

func (*Client) ReadNotifications added in v0.11.1

func (c *Client) ReadNotifications(opt MarkNotificationOptions) error

ReadNotifications mark notification threads as read

func (*Client) ReadRepoNotifications added in v0.11.1

func (c *Client) ReadRepoNotifications(owner, reponame string, opt MarkNotificationOptions) error

ReadRepoNotifications mark notification threads as read on a specific repo

func (*Client) RemoveTeamMember

func (c *Client) RemoveTeamMember(id int64, user string) error

RemoveTeamMember removes a member from a team

func (*Client) RemoveTeamRepository

func (c *Client) RemoveTeamRepository(id int64, org, repo string) error

RemoveTeamRepository removes a repository from a team

func (*Client) ReplaceIssueLabels

func (c *Client) ReplaceIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error)

ReplaceIssueLabels replace old labels of issue with new labels

func (*Client) ResetIssueTime

func (c *Client) ResetIssueTime(owner, repo string, index int64) error

ResetIssueTime reset tracked time of a single issue for a given repository

func (*Client) SearchRepos added in v0.11.1

func (c *Client) SearchRepos(opt SearchRepoOptions) ([]*Repository, error)

SearchRepos searches for repositories matching the given filters

func (*Client) SearchUsers

func (c *Client) SearchUsers(opt SearchUsersOption) ([]*User, error)

SearchUsers finds users by query

func (*Client) ServerVersion

func (c *Client) ServerVersion() (string, error)

ServerVersion returns the version of the server

func (*Client) SetBasicAuth

func (c *Client) SetBasicAuth(username, password string)

SetBasicAuth sets basicauth

func (*Client) SetHTTPClient

func (c *Client) SetHTTPClient(client *http.Client)

SetHTTPClient replaces default http.Client with user given one.

func (*Client) SetOTP added in v0.12.0

func (c *Client) SetOTP(otp string)

SetOTP sets OTP for 2FA

func (*Client) SetPublicOrgMembership added in v0.11.1

func (c *Client) SetPublicOrgMembership(org, user string, visible bool) error

SetPublicOrgMembership publicize/conceal a user's membership

func (*Client) SetRepoTopics

func (c *Client) SetRepoTopics(user, repo string, list []string) error

SetRepoTopics replaces the list of repo's topics

func (*Client) SetSudo

func (c *Client) SetSudo(sudo string)

SetSudo sets username to impersonate.

func (*Client) StartIssueStopWatch

func (c *Client) StartIssueStopWatch(owner, repo string, index int64) error

StartIssueStopWatch starts a stopwatch for an existing issue for a given repository

func (*Client) StopIssueStopWatch

func (c *Client) StopIssueStopWatch(owner, repo string, index int64) error

StopIssueStopWatch stops an existing stopwatch for an issue in a given repository

func (*Client) SubmitPullReview added in v0.12.0

func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt SubmitPullReviewOptions) (*PullReview, error)

SubmitPullReview submit a pending review to an pull request

func (*Client) TransferRepo added in v0.11.1

func (c *Client) TransferRepo(owner, reponame string, opt TransferRepoOption) (*Repository, error)

TransferRepo transfers the ownership of a repository

func (*Client) UnWatchRepo

func (c *Client) UnWatchRepo(repoUser, repoName string) error

UnWatchRepo stop to watch a repository

func (*Client) Unfollow

func (c *Client) Unfollow(target string) error

Unfollow set current user unfollow the target

func (*Client) UpdateFile added in v0.12.0

func (c *Client) UpdateFile(owner, repo, filepath string, opt UpdateFileOptions) (*FileResponse, error)

UpdateFile update a file in a repository

func (*Client) UpdateOauth2 added in v0.12.0

func (c *Client) UpdateOauth2(oauth2id int64, opt CreateOauth2Option) (*Oauth2, error)

UpdateOauth2 a specific Oauth2 Application by ID and return a completed Oauth2 object.

func (*Client) WatchRepo

func (c *Client) WatchRepo(repoUser, repoName string) error

WatchRepo start to watch a repository

type CombinedStatus

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

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"`
	Created          time.Time `json:"created_at"`
	Updated          time.Time `json:"updated_at"`
}

Comment represents a comment on a commit or issue

type Commit

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 CommitDateOptions added in v0.12.0

type CommitDateOptions struct {
	Author    time.Time `json:"author"`
	Committer time.Time `json:"committer"`
}

CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE

type CommitMeta

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

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

type CommitUser

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

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

type ContentsResponse added in v0.12.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

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

CreateAccessTokenOption options when create access token

type CreateBranchProtectionOption added in v0.12.0

type CreateBranchProtectionOption struct {
	BranchName                  string   `json:"branch_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"`
	BlockOnOutdatedBranch       bool     `json:"block_on_outdated_branch"`
	DismissStaleApprovals       bool     `json:"dismiss_stale_approvals"`
	RequireSignedCommits        bool     `json:"require_signed_commits"`
	ProtectedFilePatterns       string   `json:"protected_file_patterns"`
}

CreateBranchProtectionOption options for creating a branch protection

type CreateEmailOption

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

CreateEmailOption options when creating email addresses

type CreateFileOptions added in v0.12.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

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

CreateForkOption options for creating a fork

type CreateGPGKeyOption

type CreateGPGKeyOption struct {
	// An armored GPG key to add
	//
	ArmoredKey string `json:"armored_public_key"`
}

CreateGPGKeyOption options create user GPG key

type CreateHookOption

type CreateHookOption struct {
	Type         string            `json:"type"`
	Config       map[string]string `json:"config"`
	Events       []string          `json:"events"`
	BranchFilter string            `json:"branch_filter"`
	Active       bool              `json:"active"`
}

CreateHookOption options when create a hook

type CreateIssueCommentOption

type CreateIssueCommentOption struct {
	Body string `json:"body"`
}

CreateIssueCommentOption options for creating a comment on an issue

type CreateIssueOption

type CreateIssueOption struct {
	Title string `json:"title"`
	Body  string `json:"body"`
	// username of assignee
	Assignee  string     `json:"assignee"`
	Assignees []string   `json:"assignees"`
	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

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

CreateKeyOption options when creating a key

type CreateLabelOption

type CreateLabelOption struct {
	Name string `json:"name"`
	// example: #00aabb
	Color       string `json:"color"`
	Description string `json:"description"`
}

CreateLabelOption options for creating a label

type CreateMilestoneOption

type CreateMilestoneOption struct {
	Title       string     `json:"title"`
	Description string     `json:"description"`
	Deadline    *time.Time `json:"due_on"`
}

CreateMilestoneOption options for creating a milestone

type CreateOauth2Option added in v0.12.0

type CreateOauth2Option struct {
	Name         string   `json:"name"`
	RedirectURIs []string `json:"redirect_uris"`
}

CreateOauth2Option required options for creating an Application

type CreateOrgOption

type CreateOrgOption struct {
	UserName    string `json:"username"`
	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"`
}

CreateOrgOption options for creating an organization

type CreatePullRequestOption

type CreatePullRequestOption struct {
	Head      string     `json:"head"`
	Base      string     `json:"base"`
	Title     string     `json:"title"`
	Body      string     `json:"body"`
	Assignee  string     `json:"assignee"`
	Assignees []string   `json:"assignees"`
	Milestone int64      `json:"milestone"`
	Labels    []int64    `json:"labels"`
	Deadline  *time.Time `json:"due_date"`
}

CreatePullRequestOption options when creating a pull request

type CreatePullReviewComment added in v0.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 v0.12.0

type CreatePullReviewOptions struct {
	State    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 CreateReleaseOption

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

CreateReleaseOption options when creating a release

type CreateRepoOption

type CreateRepoOption struct {
	// Name of the repository to create
	//
	Name string `json:"name"`
	// Description of the repository to create
	Description string `json:"description"`
	// 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"`
	// DefaultBranch of the repository (used when initializes and in template)
	DefaultBranch string `json:"default_branch"`
}

CreateRepoOption options when creating repository

type CreateStatusOption

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

type CreateTeamOption struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	// 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

type CreateUserOption struct {
	SourceID           int64  `json:"source_id"`
	LoginName          string `json:"login_name"`
	Username           string `json:"username"`
	FullName           string `json:"full_name"`
	Email              string `json:"email"`
	Password           string `json:"password"`
	MustChangePassword *bool  `json:"must_change_password"`
	SendNotify         bool   `json:"send_notify"`
}

CreateUserOption create user options

type DeleteEmailOption

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

DeleteEmailOption options when deleting email addresses

type DeleteFileOptions added in v0.12.0

type DeleteFileOptions struct {
	FileOptions
	// sha is the SHA for the file that already exists
	// required: true
	SHA string `json:"sha"`
}

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 DeployKey

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"`
	Created     time.Time   `json:"created_at"`
	ReadOnly    bool        `json:"read_only"`
	Repository  *Repository `json:"repository,omitempty"`
}

DeployKey a deploy key

type EditAttachmentOptions

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

EditAttachmentOptions options for editing attachments

type EditBranchProtectionOption added in v0.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"`
	BlockOnOutdatedBranch       *bool    `json:"block_on_outdated_branch"`
	DismissStaleApprovals       *bool    `json:"dismiss_stale_approvals"`
	RequireSignedCommits        *bool    `json:"require_signed_commits"`
	ProtectedFilePatterns       *string  `json:"protected_file_patterns"`
}

EditBranchProtectionOption options for editing a branch protection

type EditGitHookOption

type EditGitHookOption struct {
	Content string `json:"content"`
}

EditGitHookOption options when modifying one Git hook

type EditHookOption

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

EditHookOption options when modify one hook

type EditIssueCommentOption

type EditIssueCommentOption struct {
	Body string `json:"body"`
}

EditIssueCommentOption options for editing a comment

type EditIssueOption

type EditIssueOption struct {
	Title     string     `json:"title"`
	Body      *string    `json:"body"`
	Assignee  *string    `json:"assignee"`
	Assignees []string   `json:"assignees"`
	Milestone *int64     `json:"milestone"`
	State     *StateType `json:"state"`
	Deadline  *time.Time `json:"due_date"`
}

EditIssueOption options for editing an issue

type EditLabelOption

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

EditLabelOption options for editing a label

type EditMilestoneOption

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

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

EditOrgOption options for editing an organization

type EditPullRequestOption

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     *StateType `json:"state"`
	Deadline  *time.Time `json:"due_date"`
}

EditPullRequestOption options when modify pull request

type EditReleaseOption

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

type EditRepoOption struct {
	// name of the repository
	Name *string `json:"name,omitempty"`
	// a short description of the repository.
	Description *string `json:"description,omitempty"`
	// a URL with more information about the repository.
	Website *string `json:"website,omitempty"`
	// 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"`
	// either `true` to enable the wiki for this repository or `false` to disable it.
	HasWiki *bool `json:"has_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

type EditTeamOption

type EditTeamOption struct {
	Name        string `json:"name"`
	Description string `json:"description"`
	// 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

type EditUserOption struct {
	SourceID                int64  `json:"source_id"`
	LoginName               string `json:"login_name"`
	FullName                string `json:"full_name"`
	Email                   string `json:"email"`
	Password                string `json:"password"`
	MustChangePassword      *bool  `json:"must_change_password"`
	Website                 string `json:"website"`
	Location                string `json:"location"`
	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

type Email struct {
	Email    string `json:"email"`
	Verified bool   `json:"verified"`
	Primary  bool   `json:"primary"`
}

Email an email address belonging to a user

type FileCommitResponse added in v0.12.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 v0.12.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 v0.12.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 v0.12.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"`
	// new_branch (optional) will make a new branch from `branch` before creating the file
	NewBranchName string `json:"new_branch"`
	// `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"`
}

FileOptions options for all file APIs

type FileResponse added in v0.12.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 GPGKey

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"`
	Created           time.Time      `json:"created_at,omitempty"`
	Expires           time.Time      `json:"expires_at,omitempty"`
}

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

type GPGKeyEmail

type GPGKeyEmail struct {
	Email    string `json:"email"`
	Verified bool   `json:"verified"`
}

GPGKeyEmail an email attached to a GPGKey

type GitBlobResponse

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

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

type GitHook struct {
	Name     string `json:"name"`
	IsActive bool   `json:"is_active"`
	Content  string `json:"content,omitempty"`
}

GitHook represents a Git repository hook

type GitObject

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

GitObject represents a Git object.

type GitTreeResponse

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

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"`
	Updated time.Time         `json:"updated_at"`
	Created time.Time         `json:"created_at"`
}

Hook a hook is a web hook when one repository changed

type Identity

type Identity struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

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

type Issue

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
	State       StateType        `json:"state"`
	Comments    int              `json:"comments"`
	Created     time.Time        `json:"created_at"`
	Updated     time.Time        `json:"updated_at"`
	Closed      *time.Time       `json:"closed_at"`
	Deadline    *time.Time       `json:"due_date"`
	PullRequest *PullRequestMeta `json:"pull_request"`
	Repository  *RepositoryMeta  `json:"repository"`
}

Issue represents an issue in a repository

type IssueLabelsOption

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

IssueLabelsOption a collection of labels

type IssueType added in v0.11.2

type IssueType string

IssueType is issue a pull or only an issue

const (
	// IssueTypeAll pr and issue
	IssueTypeAll IssueType = ""
	// IssueTypeIssue only issues
	IssueTypeIssue IssueType = "issues"
	// IssueTypePull only pulls
	IssueTypePull IssueType = "pulls"
)

type Label

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

type ListAccessTokensOptions added in v0.11.1

type ListAccessTokensOptions struct {
	ListOptions
}

ListAccessTokensOptions options for listing a users's access tokens

type ListBranchProtectionsOptions added in v0.12.0

type ListBranchProtectionsOptions struct {
	ListOptions
}

ListBranchProtectionsOptions list branch protection options

type ListCollaboratorsOptions added in v0.11.1

type ListCollaboratorsOptions struct {
	ListOptions
}

ListCollaboratorsOptions options for listing a repository's collaborators

type ListCommitOptions added in v0.11.1

type ListCommitOptions struct {
	ListOptions
	//SHA or branch to start listing commits from (usually 'master')
	SHA string
}

ListCommitOptions list commit options

func (*ListCommitOptions) QueryEncode added in v0.11.1

func (opt *ListCommitOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListDeployKeysOptions added in v0.11.1

type ListDeployKeysOptions struct {
	ListOptions
	KeyID       int64
	Fingerprint string
}

ListDeployKeysOptions options for listing a repository's deploy keys

func (*ListDeployKeysOptions) QueryEncode added in v0.11.1

func (opt *ListDeployKeysOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListEmailsOptions added in v0.11.1

type ListEmailsOptions struct {
	ListOptions
}

ListEmailsOptions options for listing current's user emails

type ListFollowersOptions added in v0.11.1

type ListFollowersOptions struct {
	ListOptions
}

ListFollowersOptions options for listing followers

type ListFollowingOptions added in v0.11.1

type ListFollowingOptions struct {
	ListOptions
}

ListFollowingOptions options for listing a user's users being followed

type ListForksOptions added in v0.11.1

type ListForksOptions struct {
	ListOptions
}

ListForksOptions options for listing repository's forks

type ListGPGKeysOptions added in v0.11.1

type ListGPGKeysOptions struct {
	ListOptions
}

ListGPGKeysOptions options for listing a user's GPGKeys

type ListHooksOptions added in v0.11.1

type ListHooksOptions struct {
	ListOptions
}

ListHooksOptions options for listing hooks

type ListIssueCommentOptions added in v0.11.1

type ListIssueCommentOptions struct {
	ListOptions
	Since  time.Time
	Before time.Time
}

ListIssueCommentOptions list comment options

func (*ListIssueCommentOptions) QueryEncode added in v0.11.1

func (opt *ListIssueCommentOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListIssueOption

type ListIssueOption struct {
	ListOptions
	State      StateType
	Type       IssueType
	Labels     []string
	Milestones []string
	KeyWord    string
}

ListIssueOption list issue options

func (*ListIssueOption) QueryEncode

func (opt *ListIssueOption) QueryEncode() string

QueryEncode turns options into querystring argument

type ListLabelsOptions added in v0.11.1

type ListLabelsOptions struct {
	ListOptions
}

ListLabelsOptions options for listing repository's labels

type ListMilestoneOption added in v0.11.1

type ListMilestoneOption struct {
	ListOptions
	// open, closed, all
	State StateType
}

ListMilestoneOption list milestone options

func (*ListMilestoneOption) QueryEncode added in v0.11.1

func (opt *ListMilestoneOption) QueryEncode() string

QueryEncode turns options into querystring argument

type ListNotificationOptions added in v0.11.1

type ListNotificationOptions struct {
	ListOptions
	Since  time.Time
	Before time.Time
}

ListNotificationOptions represents the filter options

func (*ListNotificationOptions) QueryEncode added in v0.11.1

func (opt *ListNotificationOptions) QueryEncode() string

QueryEncode encode options to url query

type ListOauth2Option added in v0.12.0

type ListOauth2Option struct {
	ListOptions
}

ListOauth2Option for listing Oauth2 Applications

type ListOptions added in v0.11.1

type ListOptions struct {
	Page     int
	PageSize int
}

ListOptions options for using Gitea's API pagination

type ListOrgMembershipOption added in v0.11.1

type ListOrgMembershipOption struct {
	ListOptions
}

ListOrgMembershipOption list OrgMembership options

type ListOrgReposOptions added in v0.11.1

type ListOrgReposOptions struct {
	ListOptions
}

ListOrgReposOptions options for a organization's repositories

type ListOrgsOptions added in v0.11.1

type ListOrgsOptions struct {
	ListOptions
}

ListOrgsOptions options for listing organizations

type ListPublicKeysOptions added in v0.11.1

type ListPublicKeysOptions struct {
	ListOptions
}

ListPublicKeysOptions options for listing a user's PublicKeys

type ListPullRequestsOptions

type ListPullRequestsOptions struct {
	ListOptions
	State StateType `json:"state"`
	// oldest, recentupdate, leastupdate, mostcomment, leastcomment, priority
	Sort      string
	Milestone int64
}

ListPullRequestsOptions options for listing pull requests

func (*ListPullRequestsOptions) QueryEncode added in v0.11.1

func (opt *ListPullRequestsOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListPullReviewsCommentsOptions added in v0.12.0

type ListPullReviewsCommentsOptions struct {
	ListOptions
}

ListPullReviewsCommentsOptions options for listing PullReviewsComments

type ListPullReviewsOptions added in v0.12.0

type ListPullReviewsOptions struct {
	ListOptions
}

ListPullReviewsOptions options for listing PullReviews

type ListReleaseAttachmentsOptions added in v0.11.1

type ListReleaseAttachmentsOptions struct {
	ListOptions
}

ListReleaseAttachmentsOptions options for listing release's attachments

type ListReleasesOptions added in v0.11.1

type ListReleasesOptions struct {
	ListOptions
}

ListReleasesOptions options for listing repository's releases

type ListRepoBranchesOptions added in v0.11.1

type ListRepoBranchesOptions struct {
	ListOptions
}

ListRepoBranchesOptions options for listing a repository's branches

type ListRepoGitHooksOptions added in v0.11.1

type ListRepoGitHooksOptions struct {
	ListOptions
}

ListRepoGitHooksOptions options for listing repository's githooks

type ListRepoTagsOptions added in v0.11.1

type ListRepoTagsOptions struct {
	ListOptions
}

ListRepoTagsOptions options for listing a repository's tags

type ListRepoTopicsOptions added in v0.11.1

type ListRepoTopicsOptions struct {
	ListOptions
}

ListRepoTopicsOptions options for listing repo's topics

type ListReposOptions added in v0.11.1

type ListReposOptions struct {
	ListOptions
}

ListReposOptions options for listing repositories

type ListStatusesOption

type ListStatusesOption struct {
	ListOptions
}

ListStatusesOption options for listing a repository's commit's statuses

type ListTeamMembersOptions added in v0.11.1

type ListTeamMembersOptions struct {
	ListOptions
}

ListTeamMembersOptions options for listing team's members

type ListTeamRepositoriesOptions added in v0.11.1

type ListTeamRepositoriesOptions struct {
	ListOptions
}

ListTeamRepositoriesOptions options for listing team's repositories

type ListTeamsOptions added in v0.11.1

type ListTeamsOptions struct {
	ListOptions
}

ListTeamsOptions options for listing teams

type ListTrackedTimesOptions added in v0.11.1

type ListTrackedTimesOptions struct {
	ListOptions
}

ListTrackedTimesOptions options for listing repository's tracked times

type MarkNotificationOptions added in v0.11.1

type MarkNotificationOptions struct {
	LastReadAt time.Time
}

MarkNotificationOptions represents the filter options

func (*MarkNotificationOptions) QueryEncode added in v0.11.1

func (opt *MarkNotificationOptions) QueryEncode() string

QueryEncode encode options to url query

type MergePullRequestOption

type MergePullRequestOption struct {
	Style   MergeStyle `json:"Do"`
	Title   string     `json:"MergeTitleField"`
	Message string     `json:"MergeMessageField"`
}

MergePullRequestOption options when merging a pull request

type MergeStyle added in v0.12.0

type MergeStyle string

MergeStyle is used specify how a pull is merged

const (
	// MergeStyleMerge merge pull as usual
	MergeStyleMerge MergeStyle = "merge"
	// MergeStyleRebase rebase pull
	MergeStyleRebase MergeStyle = "rebase"
	// MergeStyleRebaseMerge rebase and merge pull
	MergeStyleRebaseMerge MergeStyle = "rebase-merge"
	// MergeStyleSquash squash and merge pull
	MergeStyleSquash MergeStyle = "squash"
)

type MigrateRepoOption

type MigrateRepoOption struct {
	CloneAddr    string `json:"clone_addr"`
	AuthUsername string `json:"auth_username"`
	AuthPassword string `json:"auth_password"`
	UID          int    `json:"uid"`
	RepoName     string `json:"repo_name"`
	Mirror       bool   `json:"mirror"`
	Private      bool   `json:"private"`
	Description  string `json:"description"`
}

MigrateRepoOption options for migrating a repository from an external service

type Milestone

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"`
	Closed       *time.Time `json:"closed_at"`
	Deadline     *time.Time `json:"due_on"`
}

Milestone milestone is a collection of issues on one repository

type NotificationSubject added in v0.11.1

type NotificationSubject struct {
	Title            string `json:"title"`
	URL              string `json:"url"`
	LatestCommentURL string `json:"latest_comment_url"`
	Type             string `json:"type" binding:"In(Issue,Pull,Commit)"`
}

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

type NotificationThread added in v0.11.1

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 Oauth2 added in v0.12.0

type Oauth2 struct {
	ID           int64     `json:"id"`
	Name         string    `json:"name"`
	ClientID     string    `json:"client_id"`
	ClientSecret string    `json:"client_secret"`
	RedirectURIs []string  `json:"redirect_uris"`
	Created      time.Time `json:"created"`
}

Oauth2 represents an Oauth2 Application

type Organization

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

Organization represents an organization

type PRBranchInfo

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

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"`
	Timestamp    time.Time                  `json:"timestamp"`
	Added        []string                   `json:"added"`
	Removed      []string                   `json:"removed"`
	Modified     []string                   `json:"modified"`
}

PayloadCommit represents a commit

type PayloadCommitVerification

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

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

PayloadUser represents the author or committer of a commit

type Permission

type Permission struct {
	Admin bool `json:"admin"`
	Push  bool `json:"push"`
	Pull  bool `json:"pull"`
}

Permission represents a set of permissions

type PublicKey

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

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

	Deadline *time.Time `json:"due_date"`
	Created  *time.Time `json:"created_at"`
	Updated  *time.Time `json:"updated_at"`
	Closed   *time.Time `json:"closed_at"`
}

PullRequest represents a pull request

type PullRequestMeta

type PullRequestMeta struct {
	HasMerged bool       `json:"merged"`
	Merged    *time.Time `json:"merged_at"`
}

PullRequestMeta PR info if an issue is a PR

type PullReview added in v0.12.0

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

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

PullReview represents a pull request review

type PullReviewComment added in v0.12.0

type PullReviewComment struct {
	ID       int64  `json:"id"`
	Body     string `json:"body"`
	Reviewer *User  `json:"user"`
	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 Reaction

type Reaction struct {
	User     *User     `json:"user"`
	Reaction string    `json:"content"`
	Created  time.Time `json:"created_at"`
}

Reaction contain one reaction

type Reference

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

Reference represents a Git reference.

type Release

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"`
	CreatedAt    time.Time     `json:"created_at"`
	PublishedAt  time.Time     `json:"published_at"`
	Publisher    *User         `json:"author"`
	Attachments  []*Attachment `json:"assets"`
}

Release represents a repository release

type RepoCommit

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 Repository

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"`
	Created                   time.Time   `json:"created_at"`
	Updated                   time.Time   `json:"updated_at"`
	Permissions               *Permission `json:"permissions,omitempty"`
	HasIssues                 bool        `json:"has_issues"`
	HasWiki                   bool        `json:"has_wiki"`
	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 RepositoryMeta added in v0.11.1

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 ReviewStateType added in v0.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 SearchRepoOptions added in v0.11.1

type SearchRepoOptions struct {
	ListOptions
	Keyword         string
	Topic           bool
	IncludeDesc     bool
	UID             int64
	PriorityOwnerID int64
	StarredBy       int64
	Private         bool
	Template        bool
	Mode            string
	Exclusive       bool
	Sort            string
}

SearchRepoOptions options for searching repositories

func (*SearchRepoOptions) QueryEncode added in v0.11.1

func (opt *SearchRepoOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type SearchUsersOption added in v0.11.1

type SearchUsersOption struct {
	ListOptions
	KeyWord string
}

SearchUsersOption options for SearchUsers

func (*SearchUsersOption) QueryEncode added in v0.11.1

func (opt *SearchUsersOption) QueryEncode() string

QueryEncode turns options into querystring argument

type StateType

type StateType string

StateType issue state type

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

type Status

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"`
	Created     time.Time   `json:"created_at"`
	Updated     time.Time   `json:"updated_at"`
}

Status holds a single Status of a single Commit

type StatusState

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 StopWatch

type StopWatch struct {
	Created    time.Time `json:"created"`
	IssueIndex int64     `json:"issue_index"`
}

StopWatch represents a running stopwatch of an issue / pr

type SubmitPullReviewOptions added in v0.12.0

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

SubmitPullReviewOptions are options to submit a pending pull review

type Tag

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 Team

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 TrackedTime

type TrackedTime struct {
	ID      int64     `json:"id"`
	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 TransferRepoOption added in v0.11.1

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

type UpdateFileOptions added in v0.12.0

type UpdateFileOptions struct {
	FileOptions
	// sha is the SHA for the file that already exists
	// required: true
	SHA string `json:"sha"`
	// 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"`
}

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

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"`
	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"`
	LastLogin time.Time `json:"last_login,omitempty"`
	Created   time.Time `json:"created,omitempty"`
}

User represents a user

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
)

type WatchInfo

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