forgejo

package module
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2024 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

package forgejo implements a client for the Forgejo API. The version corresponds to the highest supported version of the forgejo API, but backwards-compatibility is mostly given.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAgent

func GetAgent() (agent.Agent, error)

GetAgent returns a ssh agent

func OptionalBool

func OptionalBool(v bool) *bool

OptionalBool convert a bool to a bool reference

func OptionalInt64

func OptionalInt64(v int64) *int64

OptionalInt64 convert a int64 to a int64 reference

func OptionalString

func OptionalString(v string) *string

OptionalString convert a string to a string reference

func VerifyWebhookSignature

func VerifyWebhookSignature(secret, expected string, payload []byte) (bool, error)

VerifyWebhookSignature verifies that a payload matches the X-Forgejo-Signature based on a secret

func VerifyWebhookSignatureMiddleware

func VerifyWebhookSignatureMiddleware(secret string) func(http.Handler) http.Handler

VerifyWebhookSignatureMiddleware is a http.Handler for verifying X-Forgejo-Signature on incoming webhooks

func Version

func Version() string

Version return the library version

Types

type AccessMode

type AccessMode string

AccessMode represent the grade of access you have to something

const (
	// AccessModeNone no access
	AccessModeNone AccessMode = "none"
	// AccessModeRead read access
	AccessModeRead AccessMode = "read"
	// AccessModeWrite write access
	AccessModeWrite AccessMode = "write"
	// AccessModeAdmin admin access
	AccessModeAdmin AccessMode = "admin"
	// AccessModeOwner owner
	AccessModeOwner AccessMode = "owner"
)

type AccessToken

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

AccessToken represents an API access token.

type AccessTokenScope

type AccessTokenScope string

AccessTokenScope represents the scope for an access token.

const (
	AccessTokenScopeAll AccessTokenScope = "all"

	AccessTokenScopeRepo       AccessTokenScope = "repo"
	AccessTokenScopeRepoStatus AccessTokenScope = "repo:status"
	AccessTokenScopePublicRepo AccessTokenScope = "public_repo"

	AccessTokenScopeAdminOrg AccessTokenScope = "admin:org"
	AccessTokenScopeWriteOrg AccessTokenScope = "write:org"
	AccessTokenScopeReadOrg  AccessTokenScope = "read:org"

	AccessTokenScopeAdminPublicKey AccessTokenScope = "admin:public_key"
	AccessTokenScopeWritePublicKey AccessTokenScope = "write:public_key"
	AccessTokenScopeReadPublicKey  AccessTokenScope = "read:public_key"

	AccessTokenScopeAdminRepoHook AccessTokenScope = "admin:repo_hook" //#nosec G101 -- False positive
	AccessTokenScopeWriteRepoHook AccessTokenScope = "write:repo_hook" //#nosec G101 -- False positive
	AccessTokenScopeReadRepoHook  AccessTokenScope = "read:repo_hook"  //#nosec G101 -- False positive

	AccessTokenScopeAdminOrgHook AccessTokenScope = "admin:org_hook" //#nosec G101 -- False positive

	AccessTokenScopeAdminUserHook AccessTokenScope = "admin:user_hook"

	AccessTokenScopeNotification AccessTokenScope = "notification"

	AccessTokenScopeUser       AccessTokenScope = "user"
	AccessTokenScopeReadUser   AccessTokenScope = "read:user"
	AccessTokenScopeUserEmail  AccessTokenScope = "user:email"
	AccessTokenScopeUserFollow AccessTokenScope = "user:follow"

	AccessTokenScopeDeleteRepo AccessTokenScope = "delete_repo"

	AccessTokenScopePackage       AccessTokenScope = "package"
	AccessTokenScopeWritePackage  AccessTokenScope = "write:package"
	AccessTokenScopeReadPackage   AccessTokenScope = "read:package"
	AccessTokenScopeDeletePackage AccessTokenScope = "delete:package"

	AccessTokenScopeAdminGPGKey AccessTokenScope = "admin:gpg_key" //#nosec G101 -- False positive
	AccessTokenScopeWriteGPGKey AccessTokenScope = "write:gpg_key" //#nosec G101 -- False positive
	AccessTokenScopeReadGPGKey  AccessTokenScope = "read:gpg_key"  //#nosec G101 -- False positive

	AccessTokenScopeAdminApplication AccessTokenScope = "admin:application" //#nosec G101 -- False positive
	AccessTokenScopeWriteApplication AccessTokenScope = "write:application" //#nosec G101 -- False positive
	AccessTokenScopeReadApplication  AccessTokenScope = "read:application"

	AccessTokenScopeSudo AccessTokenScope = "sudo"
)

type AddCollaboratorOption

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

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

func (*AddCollaboratorOption) Validate

func (opt *AddCollaboratorOption) Validate() error

Validate the AddCollaboratorOption struct

type AddTimeOption

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

AddTimeOption options for adding time to an issue

func (AddTimeOption) Validate

func (opt AddTimeOption) Validate() error

Validate the AddTimeOption struct

type AdminListOrgsOptions

type AdminListOrgsOptions struct {
	ListOptions
}

AdminListOrgsOptions options for listing admin's organizations

type AdminListUsersOptions

type AdminListUsersOptions struct {
	ListOptions
}

AdminListUsersOptions options for listing admin users

type AnnotatedTag

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

AnnotatedTag represents an annotated tag

type AnnotatedTagObject

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

AnnotatedTagObject contains meta information of the tag object

type ArchiveType

type ArchiveType string

ArchiveType represent supported archive formats by forgejo

const (
	// ZipArchive represent zip format
	ZipArchive ArchiveType = ".zip"
	// TarGZArchive represent tar.gz format
	TarGZArchive ArchiveType = ".tar.gz"
)

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

type BranchProtection struct {
	BranchName                    string    `json:"branch_name"`
	RuleName                      string    `json:"rule_name"`
	EnablePush                    bool      `json:"enable_push"`
	EnablePushWhitelist           bool      `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string  `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string  `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       bool      `json:"push_whitelist_deploy_keys"`
	EnableMergeWhitelist          bool      `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string  `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string  `json:"merge_whitelist_teams"`
	EnableStatusCheck             bool      `json:"enable_status_check"`
	StatusCheckContexts           []string  `json:"status_check_contexts"`
	RequiredApprovals             int64     `json:"required_approvals"`
	EnableApprovalsWhitelist      bool      `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string  `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string  `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        bool      `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests bool      `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         bool      `json:"block_on_outdated_branch"`
	DismissStaleApprovals         bool      `json:"dismiss_stale_approvals"`
	RequireSignedCommits          bool      `json:"require_signed_commits"`
	ProtectedFilePatterns         string    `json:"protected_file_patterns"`
	UnprotectedFilePatterns       string    `json:"unprotected_file_patterns"`
	Created                       time.Time `json:"created_at"`
	Updated                       time.Time `json:"updated_at"`
}

BranchProtection represents a branch protection for a repository

type ChangedFile

type ChangedFile struct {
	Filename         string `json:"filename"`
	PreviousFilename string `json:"previous_filename"`
	Status           string `json:"status"`
	Additions        int    `json:"additions"`
	Deletions        int    `json:"deletions"`
	Changes          int    `json:"changes"`
	HTMLURL          string `json:"html_url"`
	ContentsURL      string `json:"contents_url"`
	RawURL           string `json:"raw_url"`
}

ChangedFile is a changed file in a diff

type Client

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

Client represents a thread-safe Forgejo API client.

func NewClient

func NewClient(url string, options ...ClientOption) (*Client, error)

NewClient initializes and returns a API client. Usage of all forgejo.Client methods is concurrency-safe.

func NewClientWithHTTP

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

NewClientWithHTTP creates an API client with a custom http client Deprecated use SetHTTPClient option

func (*Client) AcceptRepoTransfer

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

AcceptRepoTransfer accepts a repo transfer.

func (*Client) AddCollaborator

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

AddCollaborator add some user as a collaborator of a repository

func (*Client) AddEmail

func (c *Client) AddEmail(opt CreateEmailOption) ([]*Email, *Response, 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, *Response, error)

AddIssueLabels add one or more labels to one issue

func (*Client) AddIssueSubscription

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

AddIssueSubscription Subscribe user to issue

func (*Client) AddRepoTeam

func (c *Client) AddRepoTeam(user, repo, team string) (*Response, error)

AddRepoTeam add a team to a repository

func (*Client) AddRepoTopic

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

AddRepoTopic adds a topic to a repo's topics list

func (*Client) AddTeamMember

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

AddTeamMember adds a member to a team

func (*Client) AddTeamRepository

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

AddTeamRepository adds a repository to a team

func (*Client) AddTime

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

AddTime adds time to issue with the given index

func (*Client) AdminCreateOrg

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

AdminCreateOrg create an organization

func (*Client) AdminCreateRepo

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

AdminCreateRepo create a repo

func (*Client) AdminCreateUser

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

AdminCreateUser create a user

func (*Client) AdminCreateUserPublicKey

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

AdminCreateUserPublicKey adds a public key for the user

func (*Client) AdminDeleteUser

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

AdminDeleteUser delete one user according name

func (*Client) AdminDeleteUserPublicKey

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

AdminDeleteUserPublicKey deletes a user's public key

func (*Client) AdminEditUser

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

AdminEditUser modify user informations

func (*Client) AdminListOrgs

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

AdminListOrgs lists all orgs

func (*Client) AdminListUsers

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

AdminListUsers lists all users

func (*Client) CheckIssueSubscription

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

CheckIssueSubscription check if current user is subscribed to an issue

func (*Client) CheckNotifications

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

CheckNotifications list users's notification threads

func (*Client) CheckOrgMembership

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

CheckOrgMembership Check if a user is a member of an organization

func (*Client) CheckPublicOrgMembership

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

CheckPublicOrgMembership Check if a user is a member of an organization

func (*Client) CheckRepoTeam

func (c *Client) CheckRepoTeam(user, repo, team string) (*Team, *Response, error)

CheckRepoTeam check if team is assigned to repo by name and return it. If not assigned, it will return nil.

func (*Client) CheckRepoWatch

func (c *Client) CheckRepoWatch(owner, repo string) (bool, *Response, 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) (*Response, error)

ClearIssueLabels delete all the labels of one issue.

func (*Client) CollaboratorPermission

func (c *Client) CollaboratorPermission(user, repo, collaborator string) (*CollaboratorPermissionResult, *Response, error)

CollaboratorPermission gets collaborator permission of a repository

func (*Client) CompareCommits

func (c *Client) CompareCommits(user, repo, prev, current string) (*Compare, *Response, error)

CompareCommits compares two commits in a repository.

func (*Client) CreateAccessToken

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

CreateAccessToken create one access token with options

func (*Client) CreateBranch

func (c *Client) CreateBranch(owner, repo string, opt CreateBranchOption) (*Branch, *Response, error)

CreateBranch creates a branch for a user's repository

func (*Client) CreateBranchProtection

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

CreateBranchProtection creates a branch protection for a repo

func (*Client) CreateDeployKey

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

CreateDeployKey options when create one deploy key

func (*Client) CreateFile

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

CreateFile create a file in a repository

func (*Client) CreateFork

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

CreateFork create a fork of a repository

func (*Client) CreateGPGKey

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

CreateGPGKey create GPG key with options

func (*Client) CreateIssue

func (c *Client) CreateIssue(owner, repo string, opt CreateIssueOption) (*Issue, *Response, 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, *Response, error)

CreateIssueComment create comment on an issue.

func (*Client) CreateLabel

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

CreateLabel create one label of repository

func (*Client) CreateMilestone

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

CreateMilestone create one milestone with options

func (*Client) CreateMyHook

func (c *Client) CreateMyHook(opt CreateHookOption) (*Hook, *Response, error)

CreateMyHook create one hook for the authenticated user, with options

func (*Client) CreateOauth2

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

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

func (*Client) CreateOrg

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

CreateOrg creates an organization

func (*Client) CreateOrgActionSecret

func (c *Client) CreateOrgActionSecret(org string, opt CreateSecretOption) (*Response, error)

CreateOrgActionSecret creates a secret for the specified organization in the Gitea Actions. It takes the organization name and the secret options as parameters. The function returns the HTTP response and an error, if any.

func (*Client) CreateOrgHook

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

CreateOrgHook create one hook for an organization, with options

func (*Client) CreateOrgRepo

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

CreateOrgRepo creates an organization repository for authenticated user.

func (*Client) CreatePublicKey

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

CreatePublicKey create public key with options

func (*Client) CreatePullRequest

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

CreatePullRequest create pull request with options

func (*Client) CreatePullReview

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

CreatePullReview create a review to an pull request

func (*Client) CreateRelease

func (c *Client) CreateRelease(owner, repo string, opt CreateReleaseOption) (*Release, *Response, error)

CreateRelease create a release

func (*Client) CreateReleaseAttachment

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

CreateReleaseAttachment creates an attachment for the given release

func (*Client) CreateRepo

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

CreateRepo creates a repository for authenticated user.

func (*Client) CreateRepoActionSecret

func (c *Client) CreateRepoActionSecret(user, repo string, opt CreateSecretOption) (*Response, error)

CreateRepoActionSecret creates a secret for the specified repository in the Gitea Actions. It takes the repository name, owner, and the secret options as parameters. The function returns the HTTP response and an error, if any.

func (*Client) CreateRepoFromTemplate

func (c *Client) CreateRepoFromTemplate(templateOwner, templateRepo string, opt CreateRepoFromTemplateOption) (*Repository, *Response, error)

CreateRepoFromTemplate create a repository using a template

func (*Client) CreateRepoHook

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

CreateRepoHook create one hook for a repository, with options

func (*Client) CreateReviewRequests

func (c *Client) CreateReviewRequests(owner, repo string, index int64, opt PullReviewRequestOptions) (*Response, error)

CreateReviewRequests create review requests to an pull request

func (*Client) CreateStatus

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

CreateStatus creates a new Status for a given Commit

func (*Client) CreateTag

func (c *Client) CreateTag(user, repo string, opt CreateTagOption) (*Tag, *Response, error)

CreateTag create a new git tag in a repository

func (*Client) CreateTeam

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

CreateTeam creates a team for an organization

func (*Client) DeleteAccessToken

func (c *Client) DeleteAccessToken(value interface{}) (*Response, error)

DeleteAccessToken delete token, identified by ID and if not available by name

func (*Client) DeleteBranchProtection

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

DeleteBranchProtection deletes a branch protection for a repo

func (*Client) DeleteCollaborator

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

DeleteCollaborator remove a collaborator from a repository

func (*Client) DeleteDeployKey

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

DeleteDeployKey delete deploy key with key id

func (*Client) DeleteEmail

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

DeleteEmail delete one email of current users'

func (*Client) DeleteFile

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

DeleteFile delete a file from repository

func (*Client) DeleteGPGKey

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

DeleteGPGKey delete GPG key with key id

func (*Client) DeleteIssue

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

DeleteIssue delete a issue from a repository

func (*Client) DeleteIssueComment

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

DeleteIssueComment deletes an issue comment.

func (*Client) DeleteIssueCommentReaction

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

DeleteIssueCommentReaction remove a reaction from a comment of an issue

func (*Client) DeleteIssueLabel

func (c *Client) DeleteIssueLabel(owner, repo string, index, label int64) (*Response, 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) (*Response, error)

DeleteIssueReaction remove a reaction from an issue

func (*Client) DeleteIssueStopwatch

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

DeleteIssueStopwatch delete / cancel a specific stopwatch

func (*Client) DeleteIssueSubscription

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

DeleteIssueSubscription unsubscribe user from issue

func (*Client) DeleteLabel

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

DeleteLabel delete one label of repository by id

func (*Client) DeleteMilestone

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

DeleteMilestone delete one milestone by id

func (*Client) DeleteMilestoneByName

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

DeleteMilestoneByName delete one milestone by name

func (*Client) DeleteMyHook

func (c *Client) DeleteMyHook(id int64) (*Response, error)

DeleteMyHook delete one hook from the authenticated user, with hook id

func (*Client) DeleteOauth2

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

DeleteOauth2 delete an Oauth2 application by ID

func (*Client) DeleteOrg

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

DeleteOrg deletes an organization

func (*Client) DeleteOrgActionSecret

func (c *Client) DeleteOrgActionSecret(org, secretName string) (*Response, error)

DeleteOrgActionSecret deletes a secret for the specified organization in Forgejo Actions. It takes the organization name, and the secret name as parameters. The function returns the HTTP response and an error, if any.

func (*Client) DeleteOrgHook

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

DeleteOrgHook delete one hook from an organization, with hook id

func (*Client) DeleteOrgMembership

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

DeleteOrgMembership remove a member from an organization

func (*Client) DeletePackage

func (c *Client) DeletePackage(owner, packageType, name, version string) (*Response, error)

DeletePackage deletes a specific package version

func (*Client) DeletePublicKey

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

DeletePublicKey delete public key with key id

func (*Client) DeletePullReview

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

DeletePullReview delete a specific review from a pull request

func (*Client) DeleteRelease

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

DeleteRelease delete a release from a repository, keeping its tag

func (*Client) DeleteReleaseAttachment

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

DeleteReleaseAttachment deletes the given attachment including the uploaded file

func (*Client) DeleteReleaseByTag

func (c *Client) DeleteReleaseByTag(user, repo, tag string) (*Response, error)

DeleteReleaseByTag deletes a release frm a repository by tag

func (*Client) DeleteRepo

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

DeleteRepo deletes a repository of user or organization.

func (*Client) DeleteRepoActionSecret

func (c *Client) DeleteRepoActionSecret(user, repo, secretName string) (*Response, error)

DeleteRepoActionSecret deletes a secret for the specified repository in Forgejo Actions. It takes the repository name, owner, and the secret name as parameters. The function returns the HTTP response and an error, if any.

func (*Client) DeleteRepoBranch

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

DeleteRepoBranch delete a branch in a repository

func (*Client) DeleteRepoGitHook

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

DeleteRepoGitHook delete one Git hook from a repository

func (*Client) DeleteRepoHook

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

DeleteRepoHook delete one hook from a repository, with hook id

func (*Client) DeleteRepoTopic

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

DeleteRepoTopic deletes a topic from repo's topics list

func (*Client) DeleteReviewRequests

func (c *Client) DeleteReviewRequests(owner, repo string, index int64, opt PullReviewRequestOptions) (*Response, error)

DeleteReviewRequests delete review requests to an pull request

func (*Client) DeleteTag

func (c *Client) DeleteTag(user, repo, tag string) (*Response, error)

DeleteTag deletes a tag from a repository, if no release refers to it

func (*Client) DeleteTeam

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

DeleteTeam deletes a team of an organization

func (*Client) DeleteTime

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

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

func (*Client) DismissPullReview

func (c *Client) DismissPullReview(owner, repo string, index, id int64, opt DismissPullReviewOptions) (*Response, error)

DismissPullReview dismiss a review for a pull request

func (*Client) EditBranchProtection

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

EditBranchProtection edits a branch protection for a repo

func (*Client) EditIssue

func (c *Client) EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, *Response, 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, *Response, error)

EditIssueComment edits an issue comment.

func (*Client) EditLabel

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

EditLabel modify one label with options

func (*Client) EditMilestone

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

EditMilestone modify milestone with options

func (*Client) EditMilestoneByName

func (c *Client) EditMilestoneByName(owner, repo, name string, opt EditMilestoneOption) (*Milestone, *Response, error)

EditMilestoneByName modify milestone with options

func (*Client) EditMyHook

func (c *Client) EditMyHook(id int64, opt EditHookOption) (*Response, error)

EditMyHook modify one hook of the authenticated user, with hook id and options

func (*Client) EditOrg

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

EditOrg modify one organization via options

func (*Client) EditOrgHook

func (c *Client) EditOrgHook(org string, id int64, opt EditHookOption) (*Response, 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, *Response, error)

EditPullRequest modify pull request with PR id and options

func (*Client) EditRelease

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

EditRelease edit a release

func (*Client) EditReleaseAttachment

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

EditReleaseAttachment updates the given attachment with the given options

func (*Client) EditRepo

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

EditRepo edit the properties of a repository

func (*Client) EditRepoGitHook

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

EditRepoGitHook modify one Git hook of a repository

func (*Client) EditRepoHook

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

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

func (*Client) EditTeam

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

EditTeam edits a team of an organization

func (*Client) Follow

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

Follow set current user follow the target

func (*Client) GetAnnotatedTag

func (c *Client) GetAnnotatedTag(user, repo, sha string) (*AnnotatedTag, *Response, error)

GetAnnotatedTag get the tag object of an annotated tag (not lightweight tags) of a repository

func (*Client) GetArchive

func (c *Client) GetArchive(owner, repo, ref string, ext ArchiveType) ([]byte, *Response, error)

GetArchive get an archive of a repository by git reference e.g.: ref -> master, 70b7c74b33, v1.2.1, ...

func (*Client) GetArchiveReader

func (c *Client) GetArchiveReader(owner, repo, ref string, ext ArchiveType) (io.ReadCloser, *Response, error)

GetArchiveReader gets a `git archive` for a particular tree-ish git reference such as a branch name (`master`), a commit hash (`70b7c74b33`), a tag (`v1.2.1`). The archive is returned as a byte stream in a ReadCloser. It is the responsibility of the client to close the reader.

func (*Client) GetAssignees

func (c *Client) GetAssignees(user, repo string) ([]*User, *Response, error)

GetAssignees return all users that have write access and can be assigned to issues

func (*Client) GetBlob

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

GetBlob get the blob of a repository file

func (*Client) GetBranchProtection

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

GetBranchProtection gets a branch protection

func (*Client) GetCombinedStatus

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

GetCombinedStatus returns the CombinedStatus for a given Commit

func (*Client) GetCommitDiff

func (c *Client) GetCommitDiff(user, repo, commitID string) ([]byte, *Response, error)

GetCommitDiff returns the commit's raw diff.

func (*Client) GetCommitPatch

func (c *Client) GetCommitPatch(user, repo, commitID string) ([]byte, *Response, error)

GetCommitPatch returns the commit's raw patch.

func (*Client) GetContents

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

GetContents get the metadata and contents of a file in a repository ref is optional

func (*Client) GetDeployKey

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

GetDeployKey get one deploy key with key id

func (*Client) GetFile

func (c *Client) GetFile(owner, repo, ref, filepath string, resolveLFS ...bool) ([]byte, *Response, error)

GetFile downloads a file of repository, ref can be branch/tag/commit. it optional can resolve lfs pointers and server the file instead e.g.: ref -> master, filepath -> README.md (no leading slash)

func (*Client) GetFileReader

func (c *Client) GetFileReader(owner, repo, ref, filepath string, resolveLFS ...bool) (io.ReadCloser, *Response, error)

GetFileReader return reader for download a file of repository, ref can be branch/tag/commit. it optional can resolve lfs pointers and server the file instead e.g.: ref -> master, filepath -> README.md (no leading slash)

func (*Client) GetGPGKey

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

GetGPGKey get current user's GPG key by key id

func (*Client) GetGPGToken

func (c *Client) GetGPGToken() (string, *Response, error)

GetGPGToken get a gpg token for verification

func (*Client) GetGlobalAPISettings

func (c *Client) GetGlobalAPISettings() (*GlobalAPISettings, *Response, error)

GetGlobalAPISettings get global api settings witch are exposed by it

func (*Client) GetGlobalAttachmentSettings

func (c *Client) GetGlobalAttachmentSettings() (*GlobalAttachmentSettings, *Response, error)

GetGlobalAttachmentSettings get global repository settings witch are exposed by API

func (*Client) GetGlobalRepoSettings

func (c *Client) GetGlobalRepoSettings() (*GlobalRepoSettings, *Response, error)

GetGlobalRepoSettings get global repository settings witch are exposed by API

func (*Client) GetGlobalUISettings

func (c *Client) GetGlobalUISettings() (*GlobalUISettings, *Response, error)

GetGlobalUISettings get global ui settings witch are exposed by API

func (*Client) GetIssue

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

GetIssue returns a single issue for a given repository

func (*Client) GetIssueComment

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

GetIssueComment get a comment for a given repo by id.

func (*Client) GetIssueCommentReactions

func (c *Client) GetIssueCommentReactions(owner, repo string, commentID int64) ([]*Reaction, *Response, 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, *Response, error)

GetIssueLabels get labels of one issue via issue id

func (*Client) GetIssueReactions

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

GetIssueReactions get a list reactions of an issue

func (*Client) GetIssueSubscribers

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

GetIssueSubscribers get list of users who subscribed on an issue

func (*Client) GetIssueTemplates

func (c *Client) GetIssueTemplates(owner, repo string) ([]*IssueTemplate, *Response, error)

GetIssueTemplates lists all issue templates of the repository

func (*Client) GetLatestRelease

func (c *Client) GetLatestRelease(owner, repo string) (*Release, *Response, error)

GetLatestRelease get the latest release of a repository

func (*Client) GetMilestone

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

GetMilestone get one milestone by repo name and milestone id

func (*Client) GetMilestoneByName

func (c *Client) GetMilestoneByName(owner, repo, name string) (*Milestone, *Response, error)

GetMilestoneByName get one milestone by repo and milestone name

func (*Client) GetMyHook

func (c *Client) GetMyHook(id int64) (*Hook, *Response, error)

GetMyHook get a hook of the authenticated user

func (*Client) GetMyStarredRepos

func (c *Client) GetMyStarredRepos() ([]*Repository, *Response, error)

GetMyStarredRepos returns the repos that the authenticated user has starred

func (*Client) GetMyStopwatches

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

GetMyStopwatches list all stopwatches

func (*Client) GetMyTrackedTimes

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

GetMyTrackedTimes list tracked times of the current user

func (*Client) GetMyUserInfo

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

GetMyUserInfo get user info of current user

func (*Client) GetMyWatchedRepos

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

GetMyWatchedRepos list repositories watched by the authenticated user

func (*Client) GetNotification

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

GetNotification get notification thread by ID

func (*Client) GetOauth2

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

GetOauth2 a specific Oauth2 Application by ID.

func (*Client) GetOrg

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

GetOrg get one organization by name

func (*Client) GetOrgHook

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

GetOrgHook get a hook of an organization

func (*Client) GetOrgPermissions

func (c *Client) GetOrgPermissions(org, user string) (*OrgPermissions, *Response, error)

GetOrgPermissions returns user permissions for specific organization.

func (*Client) GetPackage

func (c *Client) GetPackage(owner, packageType, name, version string) (*Package, *Response, error)

GetPackage gets the details of a specific package version

func (*Client) GetPublicKey

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

GetPublicKey get current user's public key by key id

func (*Client) GetPullRequest

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

GetPullRequest get information of one PR

func (*Client) GetPullRequestDiff

func (c *Client) GetPullRequestDiff(owner, repo string, index int64, opts PullRequestDiffOptions) ([]byte, *Response, error)

GetPullRequestDiff gets the diff of a PR. For Forgejo >= 1.16, you must set includeBinary to get an applicable diff

func (*Client) GetPullRequestPatch

func (c *Client) GetPullRequestPatch(owner, repo string, index int64) ([]byte, *Response, error)

GetPullRequestPatch gets the git patchset of a PR

func (*Client) GetPullReview

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

GetPullReview gets a specific review of a pull request

func (*Client) GetRelease

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

GetRelease get a release of a repository by id

func (*Client) GetReleaseAttachment

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

GetReleaseAttachment returns the requested attachment

func (*Client) GetReleaseByTag

func (c *Client) GetReleaseByTag(owner, repo, tag string) (*Release, *Response, error)

GetReleaseByTag get a release of a repository by tag

func (*Client) GetRepo

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

GetRepo returns information of a repository of given owner.

func (*Client) GetRepoBranch

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

GetRepoBranch get one branch's information of one repository

func (*Client) GetRepoByID

func (c *Client) GetRepoByID(id int64) (*Repository, *Response, error)

GetRepoByID returns information of a repository by a giver repository ID.

func (*Client) GetRepoGitHook

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

GetRepoGitHook get a Git hook of a repository

func (*Client) GetRepoHook

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

GetRepoHook get a hook of a repository

func (*Client) GetRepoLabel

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

GetRepoLabel get one label of repository by repo it

func (*Client) GetRepoLanguages

func (c *Client) GetRepoLanguages(owner, repo string) (map[string]int64, *Response, error)

GetRepoLanguages return language stats of a repo

func (*Client) GetRepoRef

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

GetRepoRef get one ref's information of one repository

func (*Client) GetRepoRefs

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

GetRepoRefs get list of ref's information of one repository

func (*Client) GetRepoTeams

func (c *Client) GetRepoTeams(user, repo string) ([]*Team, *Response, error)

GetRepoTeams return teams from a repository

func (*Client) GetReviewers

func (c *Client) GetReviewers(user, repo string) ([]*User, *Response, error)

GetReviewers return all users that can be requested to review in this repo

func (*Client) GetSingleCommit

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

GetSingleCommit returns a single commit

func (*Client) GetStarredRepos

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

GetStarredRepos returns the repos that the given user has starred

func (*Client) GetTag

func (c *Client) GetTag(user, repo, tag string) (*Tag, *Response, error)

GetTag get the tag of a repository

func (*Client) GetTeam

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

GetTeam gets a team by ID

func (*Client) GetTeamMember

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

GetTeamMember gets a member of a team

func (*Client) GetTrees

func (c *Client) GetTrees(user, repo, ref string, recursive bool) (*GitTreeResponse, *Response, 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) GetUserByID

func (c *Client) GetUserByID(id int64) (*User, *Response, error)

GetUserByID returns user by a given user ID

func (*Client) GetUserInfo

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

GetUserInfo get user info by user's name

func (*Client) GetUserSettings

func (c *Client) GetUserSettings() (*UserSettings, *Response, error)

GetUserSettings returns user settings

func (*Client) GetWatchedRepos

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

GetWatchedRepos list all the watched repos of user

func (*Client) IsCollaborator

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

IsCollaborator check if a user is a collaborator of a repository

func (*Client) IsFollowing

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

IsFollowing if current user followed the target

func (*Client) IsPullRequestMerged

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

IsPullRequestMerged test if one PR is merged to one repository

func (*Client) IsRepoStarring

func (c *Client) IsRepoStarring(user, repo string) (bool, *Response, error)

IsRepoStarring returns whether the authenticated user has starred the repo or not

func (*Client) IsUserFollowing

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

IsUserFollowing if the user followed the target

func (*Client) IssueSubscribe

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

IssueSubscribe subscribe current user to an issue

func (*Client) IssueUnSubscribe

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

IssueUnSubscribe unsubscribe current user from an issue

func (*Client) ListAccessTokens

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

ListAccessTokens lists all the access tokens of user

func (*Client) ListBranchProtections

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

ListBranchProtections list branch protections for a repo

func (*Client) ListCollaborators

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

ListCollaborators list a repository's collaborators

func (*Client) ListContents

func (c *Client) ListContents(owner, repo, ref, filepath string) ([]*ContentsResponse, *Response, error)

ListContents gets a list of entries in a dir ref is optional

func (*Client) ListCronTasks

func (c *Client) ListCronTasks(opt ListCronTaskOptions) ([]*CronTask, *Response, error)

ListCronTasks list available cron tasks

func (*Client) ListDeployKeys

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

ListDeployKeys list all the deploy keys of one repository

func (*Client) ListEmails

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

ListEmails all the email addresses of user

func (*Client) ListFollowers

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

ListFollowers list all the followers of one user

func (*Client) ListFollowing

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

ListFollowing list all the users the user followed

func (*Client) ListForks

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

ListForks list a repository's forks

func (*Client) ListGPGKeys

func (c *Client) ListGPGKeys(user string, opt ListGPGKeysOptions) ([]*GPGKey, *Response, 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, *Response, error)

ListIssueComments list comments on an issue.

func (*Client) ListIssueTrackedTimes

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

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

func (*Client) ListIssues

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

ListIssues returns all issues assigned the authenticated user

func (*Client) ListMyFollowers

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

ListMyFollowers list all the followers of current user

func (*Client) ListMyFollowing

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

ListMyFollowing list all the users current user followed

func (*Client) ListMyGPGKeys

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

ListMyGPGKeys list all the GPG keys of current user

func (*Client) ListMyHooks

func (c *Client) ListMyHooks(opt ListHooksOptions) ([]*Hook, *Response, error)

ListMyHooks list all the hooks of the authenticated user

func (*Client) ListMyOrgs

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

ListMyOrgs list all of current user's organizations

func (*Client) ListMyPublicKeys

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

ListMyPublicKeys list all the public keys of current user

func (*Client) ListMyRepos

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

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

func (*Client) ListMyTeams

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

ListMyTeams lists all the teams of the current user

func (*Client) ListNotifications

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

ListNotifications list users's notification threads

func (*Client) ListOauth2

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

ListOauth2 all of your Oauth2 Applications.

func (*Client) ListOrgActionSecret

func (c *Client) ListOrgActionSecret(org string, opt ListOrgActionSecretOption) ([]*Secret, *Response, error)

ListOrgActionSecret list an organization's secrets

func (*Client) ListOrgHooks

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

ListOrgHooks list all the hooks of one organization

func (*Client) ListOrgMembership

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

ListOrgMembership list an organization's members

func (*Client) ListOrgRepos

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

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

func (*Client) ListOrgTeams

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

ListOrgTeams lists all teams of an organization

func (*Client) ListPackageFiles

func (c *Client) ListPackageFiles(owner, packageType, name, version string) ([]*PackageFile, *Response, error)

ListPackageFiles lists the files within a package

func (*Client) ListPackages

func (c *Client) ListPackages(owner string, opt ListPackagesOptions) ([]*Package, *Response, error)

ListPackages lists all the packages owned by a given owner (user, organisation)

func (*Client) ListPublicKeys

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

ListPublicKeys list all the public keys of the user

func (*Client) ListPublicOrgMembership

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

ListPublicOrgMembership list an organization's members

func (*Client) ListPullRequestCommits

func (c *Client) ListPullRequestCommits(owner, repo string, index int64, opt ListPullRequestCommitsOptions) ([]*Commit, *Response, error)

ListPullRequestCommits list commits for a pull request

func (*Client) ListPullRequestFiles

func (c *Client) ListPullRequestFiles(owner, repo string, index int64, opt ListPullRequestFilesOptions) ([]*ChangedFile, *Response, error)

ListPullRequestFiles list changed files for a pull request

func (*Client) ListPullReviewComments

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

ListPullReviewComments lists all comments of a pull request review

func (*Client) ListPullReviews

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

ListPullReviews lists all reviews of a pull request

func (*Client) ListReleaseAttachments

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

ListReleaseAttachments list release's attachments

func (*Client) ListReleases

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

ListReleases list releases of a repository

func (*Client) ListRepoActionSecret

func (c *Client) ListRepoActionSecret(user, repo string, opt ListRepoActionSecretOption) ([]*Secret, *Response, error)

ListRepoActionSecret list a repository's secrets

func (*Client) ListRepoBranches

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

ListRepoBranches list all the branches of one repository

func (*Client) ListRepoCommits

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

ListRepoCommits return list of commits from a repo

func (*Client) ListRepoGitHooks

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

ListRepoGitHooks list all the Git hooks of one repository

func (*Client) ListRepoHooks

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

ListRepoHooks list all the hooks of one repository

func (*Client) ListRepoIssueComments

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

ListRepoIssueComments list comments for a given repo.

func (*Client) ListRepoIssues

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

ListRepoIssues returns all issues for a given repository

func (*Client) ListRepoLabels

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

ListRepoLabels list labels of one repository

func (*Client) ListRepoMilestones

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

ListRepoMilestones list all the milestones of one repository

func (*Client) ListRepoNotifications

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

ListRepoNotifications list users's notification threads on a specific repo

func (*Client) ListRepoPullRequests

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

ListRepoPullRequests list PRs of one repository

func (*Client) ListRepoStargazers

func (c *Client) ListRepoStargazers(user, repo string, opt ListStargazersOptions) ([]*User, *Response, error)

ListRepoStargazers list a repository's stargazers

func (*Client) ListRepoTags

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

ListRepoTags list all the branches of one repository

func (*Client) ListRepoTopics

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

ListRepoTopics list all repository's topics

func (*Client) ListRepoTrackedTimes

func (c *Client) ListRepoTrackedTimes(owner, repo string, opt ListTrackedTimesOptions) ([]*TrackedTime, *Response, error)

ListRepoTrackedTimes list tracked times of a repository

func (*Client) ListStatuses

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

ListStatuses returns all statuses for a given Commit by ref

func (*Client) ListTeamMembers

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

ListTeamMembers lists all members of a team

func (*Client) ListTeamRepositories

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

ListTeamRepositories lists all repositories of a team

func (*Client) ListUserOrgs

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

ListUserOrgs list all of some user's organizations

func (*Client) ListUserRepos

func (c *Client) ListUserRepos(user string, opt ListReposOptions) ([]*Repository, *Response, 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, *Response, error)

MergePullRequest merge a PR to repository by PR id

func (*Client) MigrateRepo

func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, *Response, 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) (*Response, error)

MirrorSync adds a mirrored repository to the mirror sync queue.

func (*Client) PinIssue

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

PinIssue pins an issue for a given repository

func (*Client) PostIssueCommentReaction

func (c *Client) PostIssueCommentReaction(owner, repo string, commentID int64, reaction string) (*Reaction, *Response, 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, *Response, error)

PostIssueReaction add a reaction to an issue

func (*Client) PushMirrors

func (c *Client) PushMirrors(user, repo string, opt CreatePushMirrorOption) (*PushMirrorResponse, *Response, error)

PushMirrors add a push mirror to the repository

func (*Client) ReadNotification

func (c *Client) ReadNotification(id int64, status ...NotifyStatus) (*NotificationThread, *Response, error)

ReadNotification mark notification thread as read by ID It optionally takes a second argument if status has to be set other than 'read' The relevant notification will be returned as the first parameter when the Forgejo server is 1.16.0 or higher.

func (*Client) ReadNotifications

func (c *Client) ReadNotifications(opt MarkNotificationOptions) ([]*NotificationThread, *Response, error)

ReadNotifications mark notification threads as read The relevant notifications will only be returned as the first parameter when the Forgejo server is 1.16.0 or higher.

func (*Client) ReadRepoNotifications

func (c *Client) ReadRepoNotifications(owner, repo string, opt MarkNotificationOptions) ([]*NotificationThread, *Response, error)

ReadRepoNotifications mark notification threads as read on a specific repo The relevant notifications will only be returned as the first parameter when the Forgejo server is 1.16.0 or higher.

func (*Client) RejectRepoTransfer

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

RejectRepoTransfer rejects a repo transfer.

func (*Client) RemoveRepoTeam

func (c *Client) RemoveRepoTeam(user, repo, team string) (*Response, error)

RemoveRepoTeam delete a team from a repository

func (*Client) RemoveTeamMember

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

RemoveTeamMember removes a member from a team

func (*Client) RemoveTeamRepository

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

RemoveTeamRepository removes a repository from a team

func (*Client) ReplaceIssueLabels

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

ReplaceIssueLabels replace old labels of issue with new labels

func (*Client) ResetIssueTime

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

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

func (*Client) RunCronTasks

func (c *Client) RunCronTasks(task string) (*Response, error)

RunCronTasks run a cron task

func (*Client) SearchOrgTeams

func (c *Client) SearchOrgTeams(org string, opt *SearchTeamsOptions) ([]*Team, *Response, error)

SearchOrgTeams search for teams in a org.

func (*Client) SearchRepos

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

SearchRepos searches for repositories matching the given filters

func (*Client) SearchUsers

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

SearchUsers finds users by query

func (*Client) ServerVersion

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

ServerVersion returns the version of the server

func (*Client) SetBasicAuth

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

SetBasicAuth sets username and password

func (*Client) SetContext

func (c *Client) SetContext(ctx context.Context)

SetContext set default context witch is used for http requests

func (*Client) SetHTTPClient

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

SetHTTPClient replaces default http.Client with user given one.

func (*Client) SetOTP

func (c *Client) SetOTP(otp string)

SetOTP sets OTP for 2FA

func (*Client) SetPublicOrgMembership

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

SetPublicOrgMembership publicize/conceal a user's membership

func (*Client) SetRepoTopics

func (c *Client) SetRepoTopics(user, repo string, list []string) (*Response, 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) SetUserAgent

func (c *Client) SetUserAgent(userAgent string)

SetUserAgent sets the user-agent to send with every request.

func (*Client) SignRequest

func (c *Client) SignRequest(r *http.Request) error

SignRequest signs a HTTP request

func (*Client) StarRepo

func (c *Client) StarRepo(user, repo string) (*Response, error)

StarRepo star specified repo as the authenticated user

func (*Client) StartIssueStopWatch

func (c *Client) StartIssueStopWatch(owner, repo string, index int64) (*Response, 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) (*Response, error)

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

func (*Client) SubmitPullReview

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

SubmitPullReview submit a pending review to an pull request

func (*Client) TransferRepo

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

TransferRepo transfers the ownership of a repository

func (*Client) UnDismissPullReview

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

UnDismissPullReview cancel to dismiss a review for a pull request

func (*Client) UnStarRepo

func (c *Client) UnStarRepo(user, repo string) (*Response, error)

UnStarRepo remove star to specified repo as the authenticated user

func (*Client) UnWatchRepo

func (c *Client) UnWatchRepo(owner, repo string) (*Response, error)

UnWatchRepo stop to watch a repository

func (*Client) Unfollow

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

Unfollow set current user unfollow the target

func (*Client) UnpinIssue

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

UnpinIssue unpins an issue for a given repository

func (*Client) UpdateFile

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

UpdateFile update a file in a repository

func (*Client) UpdateOauth2

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

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

func (*Client) UpdateUserSettings

func (c *Client) UpdateUserSettings(opt UserSettingsOptions) (*UserSettings, *Response, error)

UpdateUserSettings returns user settings

func (*Client) WatchRepo

func (c *Client) WatchRepo(owner, repo string) (*Response, error)

WatchRepo start to watch a repository

type ClientOption

type ClientOption func(*Client) error

ClientOption are functions used to init a new client

func SetBasicAuth

func SetBasicAuth(username, password string) ClientOption

SetBasicAuth is an option for NewClient to set username and password

func SetContext

func SetContext(ctx context.Context) ClientOption

SetContext is an option for NewClient to set the default context

func SetDebugMode

func SetDebugMode() ClientOption

SetDebugMode is an option for NewClient to enable debug mode

func SetForgejoVersion

func SetForgejoVersion(v string) ClientOption

SetForgejoVersion configures the Client to assume the given version of the Forgejo server, instead of querying the server for it when initializing. Use "" to skip all canonical ways in the SDK to check for versions

func SetHTTPClient

func SetHTTPClient(httpClient *http.Client) ClientOption

SetHTTPClient is an option for NewClient to set custom http client

func SetOTP

func SetOTP(otp string) ClientOption

SetOTP is an option for NewClient to set OTP for 2FA

func SetSudo

func SetSudo(sudo string) ClientOption

SetSudo is an option for NewClient to set sudo header

func SetToken

func SetToken(token string) ClientOption

SetToken is an option for NewClient to set token

func SetUserAgent

func SetUserAgent(userAgent string) ClientOption

SetUserAgent is an option for NewClient to set user-agent header

func UseSSHCert

func UseSSHCert(principal, sshKey, passphrase string) ClientOption

UseSSHCert is an option for NewClient to enable SSH certificate authentication via HTTPSign If you want to auth against the ssh-agent you'll need to set a principal, if you want to use a file on disk you'll need to specify sshKey. If you have an encrypted sshKey you'll need to also set the passphrase.

func UseSSHPubkey

func UseSSHPubkey(fingerprint, sshKey, passphrase string) ClientOption

UseSSHPubkey is an option for NewClient to enable SSH pubkey authentication via HTTPSign If you want to auth against the ssh-agent you'll need to set a fingerprint, if you want to use a file on disk you'll need to specify sshKey. If you have an encrypted sshKey you'll need to also set the passphrase.

type CollaboratorPermissionResult

type CollaboratorPermissionResult struct {
	Permission AccessMode `json:"permission"`
	Role       string     `json:"role_name"`
	User       *User      `json:"user"`
}

CollaboratorPermissionResult result type for CollaboratorPermission

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"`
	Files      []*CommitAffectedFiles `json:"files"`
	Stats      *CommitStats           `json:"stats"`
}

Commit contains information generated from a Git commit.

type CommitAffectedFiles

type CommitAffectedFiles struct {
	Filename string `json:"filename"`
}

CommitAffectedFiles store information about files affected by the commit

type CommitDateOptions

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

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

type CommitStats

type CommitStats struct {
	Total     int `json:"total"`
	Additions int `json:"additions"`
	Deletions int `json:"deletions"`
}

CommitStats contains stats from a Git commit

type CommitUser

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

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

type Compare

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

Compare represents a comparison between two commits.

type ContentsResponse

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

CreateAccessTokenOption options when create access token

type CreateBranchOption

type CreateBranchOption struct {
	// Name of the branch to create
	BranchName string `json:"new_branch_name"`
	// Name of the old branch to create from (optional)
	OldBranchName string `json:"old_branch_name"`
}

CreateBranchOption options when creating a branch in a repository

func (CreateBranchOption) Validate

func (opt CreateBranchOption) Validate() error

Validate the CreateBranchOption struct

type CreateBranchProtectionOption

type CreateBranchProtectionOption struct {
	BranchName                    string   `json:"branch_name"`
	RuleName                      string   `json:"rule_name"`
	EnablePush                    bool     `json:"enable_push"`
	EnablePushWhitelist           bool     `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       bool     `json:"push_whitelist_deploy_keys"`
	EnableMergeWhitelist          bool     `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string `json:"merge_whitelist_teams"`
	EnableStatusCheck             bool     `json:"enable_status_check"`
	StatusCheckContexts           []string `json:"status_check_contexts"`
	RequiredApprovals             int64    `json:"required_approvals"`
	EnableApprovalsWhitelist      bool     `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        bool     `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests bool     `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         bool     `json:"block_on_outdated_branch"`
	DismissStaleApprovals         bool     `json:"dismiss_stale_approvals"`
	RequireSignedCommits          bool     `json:"require_signed_commits"`
	ProtectedFilePatterns         string   `json:"protected_file_patterns"`
	UnprotectedFilePatterns       string   `json:"unprotected_file_patterns"`
}

CreateBranchProtectionOption options for creating a branch protection

type CreateEmailOption

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

CreateEmailOption options when creating email addresses

type CreateFileOptions

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"`
	// name of the forked repository
	Name *string `json:"name"`
}

CreateForkOption options for creating a fork

type CreateGPGKeyOption

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

CreateGPGKeyOption options create user GPG key

type CreateHookOption

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

CreateHookOption options when create a hook

func (CreateHookOption) Validate

func (opt CreateHookOption) Validate() error

Validate the CreateHookOption struct

type CreateIssueCommentOption

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

CreateIssueCommentOption options for creating a comment on an issue

func (CreateIssueCommentOption) Validate

func (opt CreateIssueCommentOption) Validate() error

Validate the CreateIssueCommentOption struct

type CreateIssueOption

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

func (CreateIssueOption) Validate

func (opt CreateIssueOption) Validate() error

Validate the CreateIssueOption struct

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

func (CreateLabelOption) Validate

func (opt CreateLabelOption) Validate() error

Validate the CreateLabelOption struct

type CreateMilestoneOption

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

CreateMilestoneOption options for creating a milestone

func (CreateMilestoneOption) Validate

func (opt CreateMilestoneOption) Validate() error

Validate the CreateMilestoneOption struct

type CreateOauth2Option

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

CreateOauth2Option required options for creating an Application

type CreateOrgOption

type CreateOrgOption struct {
	Name                      string      `json:"username"`
	FullName                  string      `json:"full_name"`
	Description               string      `json:"description"`
	Website                   string      `json:"website"`
	Location                  string      `json:"location"`
	Visibility                VisibleType `json:"visibility"`
	RepoAdminChangeTeamAccess bool        `json:"repo_admin_change_team_access"`
}

CreateOrgOption options for creating an organization

func (CreateOrgOption) Validate

func (opt CreateOrgOption) Validate() error

Validate the CreateOrgOption struct

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

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

func (CreatePullReviewComment) Validate

func (opt CreatePullReviewComment) Validate() error

Validate the CreatePullReviewComment struct

type CreatePullReviewOptions

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

func (CreatePullReviewOptions) Validate

func (opt CreatePullReviewOptions) Validate() error

Validate the CreatePullReviewOptions struct

type CreatePushMirrorOption

type CreatePushMirrorOption struct {
	Interval       string `json:"interval"`
	RemoteAddress  string `json:"remote_address"`
	RemotePassword string `json:"remote_password"`
	RemoteUsername string `json:"remote_username"`
	SyncONCommit   bool   `json:"sync_on_commit"`
}

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

func (CreateReleaseOption) Validate

func (opt CreateReleaseOption) Validate() error

Validate the CreateReleaseOption struct

type CreateRepoFromTemplateOption

type CreateRepoFromTemplateOption struct {
	// Owner is the organization or person who will own the new repository
	Owner string `json:"owner"`
	// Name of the repository to create
	Name string `json:"name"`
	// Description of the repository to create
	Description string `json:"description"`
	// Private is whether the repository is private
	Private bool `json:"private"`
	// GitContent include git content of default branch in template repo
	GitContent bool `json:"git_content"`
	// Topics include topics of template repo
	Topics bool `json:"topics"`
	// GitHooks include git hooks of template repo
	GitHooks bool `json:"git_hooks"`
	// Webhooks include webhooks of template repo
	Webhooks bool `json:"webhooks"`
	// Avatar include avatar of the template repo
	Avatar bool `json:"avatar"`
	// Labels include labels of template repo
	Labels bool `json:"labels"`
}

CreateRepoFromTemplateOption options when creating repository using a template

func (CreateRepoFromTemplateOption) Validate

func (opt CreateRepoFromTemplateOption) Validate() error

Validate validates CreateRepoFromTemplateOption

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"`
	// Whether the repository is template
	Template bool `json:"template"`
	// Gitignores to use
	Gitignores string `json:"gitignores"`
	// License to use
	License string `json:"license"`
	// Readme of the repository to create
	Readme string `json:"readme"`
	// DefaultBranch of the repository (used when initializes and in template)
	DefaultBranch string `json:"default_branch"`
	// TrustModel of the repository
	TrustModel TrustModel `json:"trust_model"`
}

CreateRepoOption options when creating repository

func (CreateRepoOption) Validate

func (opt CreateRepoOption) Validate(c *Client) error

Validate the CreateRepoOption struct

type CreateSecretOption

type CreateSecretOption struct {
	Name string `json:"name"` // Name is the name of the secret.
	Data string `json:"data"` // Data is the data of the secret.
}

CreateSecretOption represents the options for creating a secret.

func (*CreateSecretOption) Validate

func (opt *CreateSecretOption) Validate() error

Validate checks if the CreateSecretOption is valid. It returns an error if any of the validation checks fail.

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 CreateTagOption

type CreateTagOption struct {
	TagName string `json:"tag_name"`
	Message string `json:"message"`
	Target  string `json:"target"`
}

CreateTagOption options when creating a tag

func (CreateTagOption) Validate

func (opt CreateTagOption) Validate() error

Validate validates CreateTagOption

type CreateTeamOption

type CreateTeamOption struct {
	Name                    string         `json:"name"`
	Description             string         `json:"description"`
	Permission              AccessMode     `json:"permission"`
	CanCreateOrgRepo        bool           `json:"can_create_org_repo"`
	IncludesAllRepositories bool           `json:"includes_all_repositories"`
	Units                   []RepoUnitType `json:"units"`
}

CreateTeamOption options for creating a team

func (*CreateTeamOption) Validate

func (opt *CreateTeamOption) Validate() error

Validate the CreateTeamOption struct

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"`
	Visibility         *VisibleType `json:"visibility"`
}

CreateUserOption create user options

func (CreateUserOption) Validate

func (opt CreateUserOption) Validate() error

Validate the CreateUserOption struct

type CronTask

type CronTask struct {
	Name      string    `json:"name"`
	Schedule  string    `json:"schedule"`
	Next      time.Time `json:"next"`
	Prev      time.Time `json:"prev"`
	ExecTimes int64     `json:"exec_times"`
}

CronTask represents a Cron task

type DeleteEmailOption

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

DeleteEmailOption options when deleting email addresses

type DeleteFileOptions

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 DismissPullReviewOptions

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

DismissPullReviewOptions are options to dismiss a pull review

type EditAttachmentOptions

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

EditAttachmentOptions options for editing attachments

type EditBranchProtectionOption

type EditBranchProtectionOption struct {
	EnablePush                    *bool    `json:"enable_push"`
	EnablePushWhitelist           *bool    `json:"enable_push_whitelist"`
	PushWhitelistUsernames        []string `json:"push_whitelist_usernames"`
	PushWhitelistTeams            []string `json:"push_whitelist_teams"`
	PushWhitelistDeployKeys       *bool    `json:"push_whitelist_deploy_keys"`
	EnableMergeWhitelist          *bool    `json:"enable_merge_whitelist"`
	MergeWhitelistUsernames       []string `json:"merge_whitelist_usernames"`
	MergeWhitelistTeams           []string `json:"merge_whitelist_teams"`
	EnableStatusCheck             *bool    `json:"enable_status_check"`
	StatusCheckContexts           []string `json:"status_check_contexts"`
	RequiredApprovals             *int64   `json:"required_approvals"`
	EnableApprovalsWhitelist      *bool    `json:"enable_approvals_whitelist"`
	ApprovalsWhitelistUsernames   []string `json:"approvals_whitelist_username"`
	ApprovalsWhitelistTeams       []string `json:"approvals_whitelist_teams"`
	BlockOnRejectedReviews        *bool    `json:"block_on_rejected_reviews"`
	BlockOnOfficialReviewRequests *bool    `json:"block_on_official_review_requests"`
	BlockOnOutdatedBranch         *bool    `json:"block_on_outdated_branch"`
	DismissStaleApprovals         *bool    `json:"dismiss_stale_approvals"`
	RequireSignedCommits          *bool    `json:"require_signed_commits"`
	ProtectedFilePatterns         *string  `json:"protected_file_patterns"`
	UnprotectedFilePatterns       *string  `json:"unprotected_file_patterns"`
}

EditBranchProtectionOption options for editing a branch protection

type 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"`
	AuthorizationHeader string            `json:"authorization_header"`
}

EditHookOption options when modify one hook

type EditIssueCommentOption

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

EditIssueCommentOption options for editing a comment

func (EditIssueCommentOption) Validate

func (opt EditIssueCommentOption) Validate() error

Validate the EditIssueCommentOption struct

type EditIssueOption

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

EditIssueOption options for editing an issue

func (EditIssueOption) Validate

func (opt EditIssueOption) Validate() error

Validate the EditIssueOption struct

type EditLabelOption

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

EditLabelOption options for editing a label

func (EditLabelOption) Validate

func (opt EditLabelOption) Validate() error

Validate the EditLabelOption struct

type EditMilestoneOption

type EditMilestoneOption struct {
	Title       string     `json:"title"`
	Description *string    `json:"description"`
	State       *StateType `json:"state"`
	Deadline    *time.Time `json:"due_on"`
}

EditMilestoneOption options for editing a milestone

func (EditMilestoneOption) Validate

func (opt EditMilestoneOption) Validate() error

Validate the EditMilestoneOption struct

type EditOrgOption

type EditOrgOption struct {
	FullName    string      `json:"full_name"`
	Description string      `json:"description"`
	Website     string      `json:"website"`
	Location    string      `json:"location"`
	Visibility  VisibleType `json:"visibility"`
}

EditOrgOption options for editing an organization

func (EditOrgOption) Validate

func (opt EditOrgOption) Validate() error

Validate the EditOrgOption struct

type EditPullRequestOption

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

EditPullRequestOption options when modify pull request

func (EditPullRequestOption) Validate

func (opt EditPullRequestOption) Validate(c *Client) error

Validate the EditPullRequestOption struct

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 make this repository a template or `false` to make it a normal repository
	Template *bool `json:"template,omitempty"`
	// either `true` to enable issues for this repository or `false` to disable them.
	HasIssues *bool `json:"has_issues,omitempty"`
	// set this structure to configure internal issue tracker (requires has_issues)
	InternalTracker *InternalTracker `json:"internal_tracker,omitempty"`
	// set this structure to use external issue tracker (requires has_issues)
	ExternalTracker *ExternalTracker `json:"external_tracker,omitempty"`
	// either `true` to enable the wiki for this repository or `false` to disable it.
	HasWiki *bool `json:"has_wiki,omitempty"`
	// set this structure to use external wiki instead of internal (requires has_wiki)
	ExternalWiki *ExternalWiki `json:"external_wiki,omitempty"`
	// sets the default branch for this repository.
	DefaultBranch *string `json:"default_branch,omitempty"`
	// either `true` to allow pull requests, or `false` to prevent pull request.
	HasPullRequests *bool `json:"has_pull_requests,omitempty"`
	// either `true` to enable project unit, or `false` to disable them.
	HasProjects *bool `json:"has_projects,omitempty"`
	// either `true` to enable release, or `false` to disable them.
	HasReleases *bool `json:"has_releases,omitempty"`
	// either `true` to enable packages, or `false` to disable them.
	HasPackages *bool `json:"has_packages,omitempty"`
	// either `true` to enable actions, or `false` to disable them.
	HasActions *bool `json:"has_actions,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"`
	// set to a string like `8h30m0s` to set the mirror interval time
	MirrorInterval *string `json:"mirror_interval,omitempty"`
	// either `true` to allow mark pr as merged manually, or `false` to prevent it. `has_pull_requests` must be `true`.
	AllowManualMerge *bool `json:"allow_manual_merge,omitempty"`
	// either `true` to enable AutodetectManualMerge, or `false` to prevent it. `has_pull_requests` must be `true`, Note: In some special cases, misjudgments can occur.
	AutodetectManualMerge *bool `json:"autodetect_manual_merge,omitempty"`
	// set to a merge style to be used by this repository: "merge", "rebase", "rebase-merge", or "squash". `has_pull_requests` must be `true`.
	DefaultMergeStyle *MergeStyle `json:"default_merge_style,omitempty"`
}

EditRepoOption options when editing a repository's properties

type EditTeamOption

type EditTeamOption struct {
	Name                    string         `json:"name"`
	Description             *string        `json:"description"`
	Permission              AccessMode     `json:"permission"`
	CanCreateOrgRepo        *bool          `json:"can_create_org_repo"`
	IncludesAllRepositories *bool          `json:"includes_all_repositories"`
	Units                   []RepoUnitType `json:"units"`
}

EditTeamOption options for editing a team

func (*EditTeamOption) Validate

func (opt *EditTeamOption) Validate() error

Validate the EditTeamOption struct

type EditUserOption

type EditUserOption struct {
	SourceID                int64        `json:"source_id"`
	LoginName               string       `json:"login_name"`
	Email                   *string      `json:"email"`
	FullName                *string      `json:"full_name"`
	Password                string       `json:"password"`
	Description             *string      `json:"description"`
	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"`
	Restricted              *bool        `json:"restricted"`
	Visibility              *VisibleType `json:"visibility"`
}

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 ErrUnknownVersion

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

ErrUnknownVersion is an unknown version from the API

func (*ErrUnknownVersion) Error

func (e *ErrUnknownVersion) Error() string

Error fulfills error

func (*ErrUnknownVersion) Is

func (*ErrUnknownVersion) Is(target error) bool

type ExternalTracker

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

ExternalTracker represents settings for external tracker

type ExternalWiki

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

ExternalWiki represents setting for external wiki

type FileCommitResponse

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

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

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

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"`
	// Add a Signed-off-by trailer by the committer at the end of the commit log message.
	Signoff bool `json:"signoff"`
}

FileOptions options for all file APIs

type FileResponse

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 GitServiceType

type GitServiceType string

GitServiceType represents a git service

const (
	// GitServicePlain represents a plain git service
	GitServicePlain GitServiceType = "git"
	// GitServiceGithub represents github.com
	GitServiceGithub GitServiceType = "github"
	// GitServiceGitlab represents a gitlab service
	GitServiceGitlab GitServiceType = "gitlab"
	// GitServiceForgejo represents a forgejo service
	GitServiceForgejo GitServiceType = "forgejo"
	// GitServiceGitea represents a gitea service
	GitServiceGitea GitServiceType = "gitea"
	// GitServiceGogs represents a gogs service
	GitServiceGogs GitServiceType = "gogs"
)

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 GlobalAPISettings

type GlobalAPISettings struct {
	MaxResponseItems       int   `json:"max_response_items"`
	DefaultPagingNum       int   `json:"default_paging_num"`
	DefaultGitTreesPerPage int   `json:"default_git_trees_per_page"`
	DefaultMaxBlobSize     int64 `json:"default_max_blob_size"`
}

GlobalAPISettings contains global api settings exposed by it

type GlobalAttachmentSettings

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

GlobalAttachmentSettings contains global Attachment settings exposed by API

type GlobalRepoSettings

type GlobalRepoSettings struct {
	MirrorsDisabled      bool `json:"mirrors_disabled"`
	HTTPGitDisabled      bool `json:"http_git_disabled"`
	MigrationsDisabled   bool `json:"migrations_disabled"`
	StarsDisabled        bool `json:"stars_disabled"`
	TimeTrackingDisabled bool `json:"time_tracking_disabled"`
	LFSDisabled          bool `json:"lfs_disabled"`
}

GlobalRepoSettings represent the global repository settings of a forgejo instance witch is exposed by API

type GlobalUISettings

type GlobalUISettings struct {
	DefaultTheme     string   `json:"default_theme"`
	AllowedReactions []string `json:"allowed_reactions"`
	CustomEmojis     []string `json:"custom_emojis"`
}

GlobalUISettings represent the global ui settings of a forgejo instance witch is exposed by API

type HTTPSign

type HTTPSign struct {
	ssh.Signer
	// contains filtered or unexported fields
}

HTTPSign contains the signer used for signing requests

func NewHTTPSignWithCert

func NewHTTPSignWithCert(principal, sshKey, passphrase string) (*HTTPSign, error)

NewHTTPSignWithCert can be used to create a HTTPSign with a certificate if no principal is specified it returns the first certificate found

func NewHTTPSignWithPubkey

func NewHTTPSignWithPubkey(fingerprint, sshKey, passphrase string) (*HTTPSign, error)

NewHTTPSignWithPubkey can be used to create a HTTPSign with a public key if no fingerprint is specified it returns the first public key found

type HTTPSignConfig

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

HTTPSignConfig contains the configuration for creating a HTTPSign

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 HookType

type HookType string

HookType represent all webhook types forgejo currently offer

const (
	// HookTypeDingtalk webhook that dingtalk understand
	HookTypeDingtalk HookType = "dingtalk"
	// HookTypeDiscord webhook that discord understand
	HookTypeDiscord HookType = "discord"
	// HookTypeForgejo webhook that forgejo understand
	HookTypeForgejo HookType = "forgejo"
	// HookTypeGitea webhook that gitea understand
	HookTypeGitea HookType = "gitea"
	// HookTypeGogs webhook that gogs understand
	HookTypeGogs HookType = "gogs"
	// HookTypeMsteams webhook that msteams understand
	HookTypeMsteams HookType = "msteams"
	// HookTypeSlack webhook that slack understand
	HookTypeSlack HookType = "slack"
	// HookTypeTelegram webhook that telegram understand
	HookTypeTelegram HookType = "telegram"
	// HookTypeFeishu webhook that feishu understand
	HookTypeFeishu HookType = "feishu"
)

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 InternalTracker

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

InternalTracker represents settings for internal tracker

type Issue

type Issue struct {
	ID               int64      `json:"id"`
	URL              string     `json:"url"`
	HTMLURL          string     `json:"html_url"`
	Index            int64      `json:"number"`
	Poster           *User      `json:"user"`
	OriginalAuthor   string     `json:"original_author"`
	OriginalAuthorID int64      `json:"original_author_id"`
	Title            string     `json:"title"`
	Body             string     `json:"body"`
	Ref              string     `json:"ref"`
	Labels           []*Label   `json:"labels"`
	Milestone        *Milestone `json:"milestone"`
	Assignees        []*User    `json:"assignees"`
	// Whether the issue is open or closed
	State       StateType        `json:"state"`
	IsLocked    bool             `json:"is_locked"`
	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 IssueFormElement

type IssueFormElement struct {
	ID          string                      `json:"id"`
	Type        IssueFormElementType        `json:"type"`
	Attributes  IssueFormElementAttributes  `json:"attributes"`
	Validations IssueFormElementValidations `json:"validations"`
}

IssueFormElement describes a part of a IssueTemplate form

type IssueFormElementAttributes

type IssueFormElementAttributes struct {
	// required for all element types.
	// A brief description of the expected user input, which is also displayed in the form.
	Label string `json:"label"`
	// required for element types "dropdown", "checkboxes"
	// for dropdown, contains the available options
	Options []string `json:"options"`
	// for element types "markdown", "textarea", "input"
	// Text that is pre-filled in the input
	Value string `json:"value"`
	// for element types "textarea", "input", "dropdown", "checkboxes"
	// A description of the text area to provide context or guidance, which is displayed in the form.
	Description string `json:"description"`
	// for element types "textarea", "input"
	// A semi-opaque placeholder that renders in the text area when empty.
	Placeholder string `json:"placeholder"`
	// for element types "textarea"
	// A language specifier. If set, the input is rendered as codeblock with syntax highlighting.
	SyntaxHighlighting string `json:"render"`
	// for element types "dropdown"
	Multiple bool `json:"multiple"`
}

IssueFormElementAttributes contains the combined set of attributes available on all element types.

type IssueFormElementType

type IssueFormElementType string

IssueFormElementType is an enum

const (
	// IssueFormElementMarkdown is markdown rendered to the form for context, but omitted in the resulting issue
	IssueFormElementMarkdown IssueFormElementType = "markdown"
	// IssueFormElementTextarea is a multi line input
	IssueFormElementTextarea IssueFormElementType = "textarea"
	// IssueFormElementInput is a single line input
	IssueFormElementInput IssueFormElementType = "input"
	// IssueFormElementDropdown is a select form
	IssueFormElementDropdown IssueFormElementType = "dropdown"
	// IssueFormElementCheckboxes are a multi checkbox input
	IssueFormElementCheckboxes IssueFormElementType = "checkboxes"
)

type IssueFormElementValidations

type IssueFormElementValidations struct {
	// for all element types
	Required bool `json:"required"`
	// for element types "input"
	IsNumber bool `json:"is_number"`
	// for element types "input"
	Regex string `json:"regex"`
}

IssueFormElementValidations contains the combined set of validations available on all element types.

type IssueLabelsOption

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

IssueLabelsOption a collection of labels

type IssueTemplate

type IssueTemplate struct {
	Name        string   `json:"name"`
	About       string   `json:"about"`
	Filename    string   `json:"file_name"`
	IssueTitle  string   `json:"title"`
	IssueLabels []string `json:"labels"`
	IssueRef    string   `json:"ref"`
	// If non-nil, this is a form-based template
	Form []IssueFormElement `json:"body"`
	// Should only be used when .Form is nil.
	MarkdownContent string `json:"content"`
}

IssueTemplate provides metadata and content on an issue template. There are two types of issue templates: .Markdown- and .Form-based.

func (IssueTemplate) IsForm

func (t IssueTemplate) IsForm() bool

IsForm tells if this template is a form instead of a markdown-based template.

type IssueType

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

type ListAccessTokensOptions struct {
	ListOptions
}

ListAccessTokensOptions options for listing a users's access tokens

type ListBranchProtectionsOptions

type ListBranchProtectionsOptions struct {
	ListOptions
}

ListBranchProtectionsOptions list branch protection options

type ListCollaboratorsOptions

type ListCollaboratorsOptions struct {
	ListOptions
}

ListCollaboratorsOptions options for listing a repository's collaborators

type ListCommitOptions

type ListCommitOptions struct {
	ListOptions
	// SHA or branch to start listing commits from (usually 'master')
	SHA string
	// Path indicates that only commits that include the path's file/dir should be returned.
	Path string
}

ListCommitOptions list commit options

func (*ListCommitOptions) QueryEncode

func (opt *ListCommitOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListCronTaskOptions

type ListCronTaskOptions struct {
	ListOptions
}

ListCronTaskOptions list options for ListCronTasks

type ListDeployKeysOptions

type ListDeployKeysOptions struct {
	ListOptions
	KeyID       int64
	Fingerprint string
}

ListDeployKeysOptions options for listing a repository's deploy keys

func (*ListDeployKeysOptions) QueryEncode

func (opt *ListDeployKeysOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListEmailsOptions

type ListEmailsOptions struct {
	ListOptions
}

ListEmailsOptions options for listing current's user emails

type ListFollowersOptions

type ListFollowersOptions struct {
	ListOptions
}

ListFollowersOptions options for listing followers

type ListFollowingOptions

type ListFollowingOptions struct {
	ListOptions
}

ListFollowingOptions options for listing a user's users being followed

type ListForksOptions

type ListForksOptions struct {
	ListOptions
}

ListForksOptions options for listing repository's forks

type ListGPGKeysOptions

type ListGPGKeysOptions struct {
	ListOptions
}

ListGPGKeysOptions options for listing a user's GPGKeys

type ListHooksOptions

type ListHooksOptions struct {
	ListOptions
}

ListHooksOptions options for listing hooks

type ListIssueCommentOptions

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

ListIssueCommentOptions list comment options

func (*ListIssueCommentOptions) QueryEncode

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
	Since      time.Time
	Before     time.Time
	// filter by created by username
	CreatedBy string
	// filter by assigned to username
	AssignedBy string
	// filter by username mentioned
	MentionedBy string
	// filter by owner (only works on ListIssues on User)
	Owner string
	// filter by team (requires organization owner parameter to be provided and only works on ListIssues on User)
	Team string
}

ListIssueOption list issue options

func (*ListIssueOption) QueryEncode

func (opt *ListIssueOption) QueryEncode() string

QueryEncode turns options into querystring argument

type ListLabelsOptions

type ListLabelsOptions struct {
	ListOptions
}

ListLabelsOptions options for listing repository's labels

type ListMilestoneOption

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

ListMilestoneOption list milestone options

func (*ListMilestoneOption) QueryEncode

func (opt *ListMilestoneOption) QueryEncode() string

QueryEncode turns options into querystring argument

type ListNotificationOptions

type ListNotificationOptions struct {
	ListOptions
	Since        time.Time
	Before       time.Time
	Status       []NotifyStatus
	SubjectTypes []NotifySubjectType
}

ListNotificationOptions represents the filter options

func (*ListNotificationOptions) QueryEncode

func (opt *ListNotificationOptions) QueryEncode() string

QueryEncode encode options to url query

func (ListNotificationOptions) Validate

func (opt ListNotificationOptions) Validate(c *Client) error

Validate the CreateUserOption struct

type ListOauth2Option

type ListOauth2Option struct {
	ListOptions
}

ListOauth2Option for listing Oauth2 Applications

type ListOptions

type ListOptions struct {
	// Setting Page to -1 disables pagination on endpoints that support it.
	// Page numbering starts at 1.
	Page int
	// The default value depends on the server config DEFAULT_PAGING_NUM
	// The highest valid value depends on the server config MAX_RESPONSE_ITEMS
	PageSize int
}

ListOptions options for using Forgejo's API pagination

type ListOrgActionSecretOption

type ListOrgActionSecretOption struct {
	ListOptions
}

ListOrgActionSecretOption list OrgActionSecret options

type ListOrgMembershipOption

type ListOrgMembershipOption struct {
	ListOptions
}

ListOrgMembershipOption list OrgMembership options

type ListOrgReposOptions

type ListOrgReposOptions struct {
	ListOptions
}

ListOrgReposOptions options for a organization's repositories

type ListOrgsOptions

type ListOrgsOptions struct {
	ListOptions
}

ListOrgsOptions options for listing organizations

type ListPackagesOptions

type ListPackagesOptions struct {
	ListOptions
}

ListPackagesOptions options for listing packages

type ListPublicKeysOptions

type ListPublicKeysOptions struct {
	ListOptions
}

ListPublicKeysOptions options for listing a user's PublicKeys

type ListPullRequestCommitsOptions

type ListPullRequestCommitsOptions struct {
	ListOptions
}

ListPullRequestCommitsOptions options for listing pull requests

type ListPullRequestFilesOptions

type ListPullRequestFilesOptions struct {
	ListOptions
}

ListPullRequestFilesOptions options for listing pull request files

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

func (opt *ListPullRequestsOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListPullReviewsOptions

type ListPullReviewsOptions struct {
	ListOptions
}

ListPullReviewsOptions options for listing PullReviews

type ListReleaseAttachmentsOptions

type ListReleaseAttachmentsOptions struct {
	ListOptions
}

ListReleaseAttachmentsOptions options for listing release's attachments

type ListReleasesOptions

type ListReleasesOptions struct {
	ListOptions
	IsDraft      *bool
	IsPreRelease *bool
}

ListReleasesOptions options for listing repository's releases

func (*ListReleasesOptions) QueryEncode

func (opt *ListReleasesOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type ListRepoActionSecretOption

type ListRepoActionSecretOption struct {
	ListOptions
}

ListRepoActionSecretOption list RepoActionSecret options

type ListRepoBranchesOptions

type ListRepoBranchesOptions struct {
	ListOptions
}

ListRepoBranchesOptions options for listing a repository's branches

type ListRepoGitHooksOptions

type ListRepoGitHooksOptions struct {
	ListOptions
}

ListRepoGitHooksOptions options for listing repository's githooks

type ListRepoTagsOptions

type ListRepoTagsOptions struct {
	ListOptions
}

ListRepoTagsOptions options for listing a repository's tags

type ListRepoTopicsOptions

type ListRepoTopicsOptions struct {
	ListOptions
}

ListRepoTopicsOptions options for listing repo's topics

type ListReposOptions

type ListReposOptions struct {
	ListOptions
}

ListReposOptions options for listing repositories

type ListStargazersOptions

type ListStargazersOptions struct {
	ListOptions
}

ListStargazersOptions options for listing a repository's stargazers

type ListStatusesOption

type ListStatusesOption struct {
	ListOptions
}

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

type ListTeamMembersOptions

type ListTeamMembersOptions struct {
	ListOptions
}

ListTeamMembersOptions options for listing team's members

type ListTeamRepositoriesOptions

type ListTeamRepositoriesOptions struct {
	ListOptions
}

ListTeamRepositoriesOptions options for listing team's repositories

type ListTeamsOptions

type ListTeamsOptions struct {
	ListOptions
}

ListTeamsOptions options for listing teams

type ListTrackedTimesOptions

type ListTrackedTimesOptions struct {
	ListOptions
	Since  time.Time
	Before time.Time
	// User filter is only used by ListRepoTrackedTimes !!!
	User string
}

ListTrackedTimesOptions options for listing repository's tracked times

func (*ListTrackedTimesOptions) QueryEncode

func (opt *ListTrackedTimesOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type MarkNotificationOptions

type MarkNotificationOptions struct {
	LastReadAt time.Time
	Status     []NotifyStatus
	ToStatus   NotifyStatus
}

MarkNotificationOptions represents the filter & modify options

func (*MarkNotificationOptions) QueryEncode

func (opt *MarkNotificationOptions) QueryEncode() string

QueryEncode encode options to url query

func (MarkNotificationOptions) Validate

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

Validate the CreateUserOption struct

type MergePullRequestOption

type MergePullRequestOption struct {
	Style                  MergeStyle `json:"Do"`
	MergeCommitID          string     `json:"MergeCommitID"`
	Title                  string     `json:"MergeTitleField"`
	Message                string     `json:"MergeMessageField"`
	DeleteBranchAfterMerge bool       `json:"delete_branch_after_merge"`
	ForceMerge             bool       `json:"force_merge"`
	HeadCommitId           string     `json:"head_commit_id"`
	MergeWhenChecksSucceed bool       `json:"merge_when_checks_succeed"`
}

MergePullRequestOption options when merging a pull request

func (MergePullRequestOption) Validate

func (opt MergePullRequestOption) Validate(c *Client) error

Validate the MergePullRequestOption struct

type MergeStyle

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 {
	RepoName  string `json:"repo_name"`
	RepoOwner string `json:"repo_owner"`
	// deprecated use RepoOwner
	RepoOwnerID    int64          `json:"uid"`
	CloneAddr      string         `json:"clone_addr"`
	Service        GitServiceType `json:"service"`
	AuthUsername   string         `json:"auth_username"`
	AuthPassword   string         `json:"auth_password"`
	AuthToken      string         `json:"auth_token"`
	Mirror         bool           `json:"mirror"`
	Private        bool           `json:"private"`
	Description    string         `json:"description"`
	Wiki           bool           `json:"wiki"`
	Milestones     bool           `json:"milestones"`
	Labels         bool           `json:"labels"`
	Issues         bool           `json:"issues"`
	PullRequests   bool           `json:"pull_requests"`
	Releases       bool           `json:"releases"`
	MirrorInterval string         `json:"mirror_interval"`
	LFS            bool           `json:"lfs"`
	LFSEndpoint    string         `json:"lfs_endpoint"`
}

MigrateRepoOption options for migrating a repository from an external service

func (*MigrateRepoOption) Validate

func (opt *MigrateRepoOption) Validate(c *Client) error

Validate the MigrateRepoOption struct

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

Milestone milestone is a collection of issues on one repository

type NotificationSubject

type NotificationSubject struct {
	Title                string             `json:"title"`
	URL                  string             `json:"url"`
	HTMLURL              string             `json:"html_url"`
	LatestCommentURL     string             `json:"latest_comment_url"`
	LatestCommentHTMLURL string             `json:"latest_comment_html_url"`
	Type                 NotifySubjectType  `json:"type"`
	State                NotifySubjectState `json:"state"`
}

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

type NotificationThread

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 NotifyStatus

type NotifyStatus string

NotifyStatus notification status type

const (
	// NotifyStatusUnread was not read
	NotifyStatusUnread NotifyStatus = "unread"
	// NotifyStatusRead was already read by user
	NotifyStatusRead NotifyStatus = "read"
	// NotifyStatusPinned notification is pinned by user
	NotifyStatusPinned NotifyStatus = "pinned"
)

type NotifySubjectState

type NotifySubjectState string

NotifySubjectState reflect state of notification subject

const (
	// NotifySubjectOpen if subject is a pull/issue and is open at the moment
	NotifySubjectOpen NotifySubjectState = "open"
	// NotifySubjectClosed if subject is a pull/issue and is closed at the moment
	NotifySubjectClosed NotifySubjectState = "closed"
	// NotifySubjectMerged if subject is a pull and got merged
	NotifySubjectMerged NotifySubjectState = "merged"
)

type NotifySubjectType

type NotifySubjectType string

NotifySubjectType represent type of notification subject

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

type Oauth2

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"`
	ConfidentialClient bool      `json:"confidential_client"`
	Created            time.Time `json:"created"`
}

Oauth2 represents an Oauth2 Application

type OrgPermissions

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

OrgPermissions represents the permissions for an user in an organization

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 Package

type Package struct {
	// the package's id
	ID int64 `json:"id"`
	// the package's owner
	Owner User `json:"owner"`
	// the repo this package belongs to (if any)
	Repository *Repository `json:"repository"`
	// the package's creator
	Creator User `json:"creator"`
	// the type of package:
	Type string `json:"type"`
	// the name of the package
	Name string `json:"name"`
	// the version of the package
	Version string `json:"version"`
	// the date the package was uploaded
	CreatedAt time.Time `json:"created_at"`
}

Package represents a package

type PackageFile

type PackageFile struct {
	// the file's ID
	ID int64 `json:"id"`
	// the size of the file in bytes
	Size int64 `json:"size"`
	// the name of the file
	Name string `json:"name"`
	// the md5 hash of the file
	MD5 string `json:"md5"`
	// the sha1 hash of the file
	SHA1 string `json:"sha1"`
	// the sha256 hash of the file
	SHA256 string `json:"sha256"`
	// the sha512 hash of the file
	SHA512 string `json:"sha512"`
}

PackageFile represents a file from a package

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"`
	IsLocked  bool       `json:"is_locked"`
	Comments  int        `json:"comments"`

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

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

	Base      *PRBranchInfo `json:"base"`
	Head      *PRBranchInfo `json:"head"`
	MergeBase string        `json:"merge_base"`

	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 PullRequestDiffOptions

type PullRequestDiffOptions struct {
	// Include binary file changes when requesting a .diff
	Binary bool
}

PullRequestDiffOptions options for GET /repos/<owner>/<repo>/pulls/<idx>.[diff|patch]

func (PullRequestDiffOptions) QueryEncode

func (o PullRequestDiffOptions) QueryEncode() string

QueryEncode converts the options to a query string

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

type PullReview struct {
	ID           int64           `json:"id"`
	Reviewer     *User           `json:"user"`
	ReviewerTeam *Team           `json:"team"`
	State        ReviewStateType `json:"state"`
	Body         string          `json:"body"`
	CommitID     string          `json:"commit_id"`
	// Stale indicates if the pull has changed since the review
	Stale bool `json:"stale"`
	// Official indicates if the review counts towards the required approval limit, if PR base is a protected branch
	Official          bool      `json:"official"`
	Dismissed         bool      `json:"dismissed"`
	CodeCommentsCount int       `json:"comments_count"`
	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

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

	Created time.Time `json:"created_at"`
	Updated time.Time `json:"updated_at"`

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

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

PullReviewComment represents a comment on a pull request review

type PullReviewRequestOptions

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

PullReviewRequestOptions are options to add or remove pull review requests

type PushMirrorResponse

type PushMirrorResponse struct {
	Created       string `json:"created"`
	Interval      string `json:"interval"`
	LastError     string `json:"last_error"`
	LastUpdate    string `json:"last_update"`
	RemoteAddress string `json:"remote_address"`
	RemoteName    string `json:"remote_name"`
	RepoName      string `json:"repo_name"`
	SyncONCommit  bool   `json:"sync_on_commit"`
}

PushMirrorResponse returns a git push mirror

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"`
	HTMLURL      string        `json:"html_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"`
	Verification *PayloadCommitVerification `json:"verification"`
}

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

type RepoType

type RepoType string

RepoType represent repo type

const (
	// RepoTypeNone dont specify a type
	RepoTypeNone RepoType = ""
	// RepoTypeSource is the default repo type
	RepoTypeSource RepoType = "source"
	// RepoTypeFork is a repo witch was forked from an other one
	RepoTypeFork RepoType = "fork"
	// RepoTypeMirror represents an mirror repo
	RepoTypeMirror RepoType = "mirror"
)

type RepoUnitType

type RepoUnitType string

RepoUnitType represent all unit types of a repo forgejo currently offer

const (
	// RepoUnitCode represent file view of a repository
	RepoUnitCode RepoUnitType = "repo.code"
	// RepoUnitIssues represent issues of a repository
	RepoUnitIssues RepoUnitType = "repo.issues"
	// RepoUnitPulls represent pulls of a repository
	RepoUnitPulls RepoUnitType = "repo.pulls"
	// RepoUnitExtIssues represent external issues of a repository
	RepoUnitExtIssues RepoUnitType = "repo.ext_issues"
	// RepoUnitWiki represent wiki of a repository
	RepoUnitWiki RepoUnitType = "repo.wiki"
	// RepoUnitExtWiki represent external wiki of a repository
	RepoUnitExtWiki RepoUnitType = "repo.ext_wiki"
	// RepoUnitReleases represent releases of a repository
	RepoUnitReleases RepoUnitType = "repo.releases"
	// RepoUnitProjects represent projects of a repository
	RepoUnitProjects RepoUnitType = "repo.projects"
	// RepoUnitPackages represents packages of a repository
	RepoUnitPackages RepoUnitType = "repo.packages"
	// RepoUnitActions represents actions of a repository
	RepoUnitActions RepoUnitType = "repo.actions"
)

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"`
	Template                  bool             `json:"template"`
	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"`
	OpenPulls                 int              `json:"open_pr_counter"`
	Releases                  int              `json:"release_counter"`
	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"`
	InternalTracker           *InternalTracker `json:"internal_tracker,omitempty"`
	ExternalTracker           *ExternalTracker `json:"external_tracker,omitempty"`
	HasWiki                   bool             `json:"has_wiki"`
	ExternalWiki              *ExternalWiki    `json:"external_wiki,omitempty"`
	HasPullRequests           bool             `json:"has_pull_requests"`
	HasProjects               bool             `json:"has_projects"`
	HasReleases               bool             `json:"has_releases,omitempty"`
	HasPackages               bool             `json:"has_packages,omitempty"`
	HasActions                bool             `json:"has_actions,omitempty"`
	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"`
	Internal                  bool             `json:"internal"`
	MirrorInterval            string           `json:"mirror_interval"`
	MirrorUpdated             time.Time        `json:"mirror_updated,omitempty"`
	DefaultMergeStyle         MergeStyle       `json:"default_merge_style"`
}

Repository represents a repository

type RepositoryMeta

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 Response

type Response struct {
	*http.Response

	FirstPage int
	PrevPage  int
	NextPage  int
	LastPage  int
}

Response represents the forgejo response

type ReviewStateType

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

type SearchRepoOptions struct {
	ListOptions

	// The keyword to query
	Keyword string
	// Limit search to repositories with keyword as topic
	KeywordIsTopic bool
	// Include search of keyword within repository description
	KeywordInDescription bool

	// Repo Owner
	OwnerID int64
	// Stared By UserID
	StarredByUserID int64

	// pubic, private or all repositories (defaults to all)
	IsPrivate *bool
	// archived, non-archived or all repositories (defaults to all)
	IsArchived *bool
	// Exclude template repos from search
	ExcludeTemplate bool
	// Filter by "fork", "source", "mirror"
	Type RepoType

	// sort repos by attribute. Supported values are "alpha", "created", "updated", "size", and "id". Default is "alpha"
	Sort string
	// sort order, either "asc" (ascending) or "desc" (descending). Default is "asc", ignored if "sort" is not specified.
	Order string
	// Repo owner to prioritize in the results
	PrioritizedByOwnerID int64

	/*
		Cover EdgeCases
	*/
	// if set all other options are ignored and this string is used as query
	RawQuery string
}

SearchRepoOptions options for searching repositories

func (*SearchRepoOptions) QueryEncode

func (opt *SearchRepoOptions) QueryEncode() string

QueryEncode turns options into querystring argument

type SearchTeamsOptions

type SearchTeamsOptions struct {
	ListOptions
	Query              string
	IncludeDescription bool
}

SearchTeamsOptions options for searching teams.

type SearchUsersOption

type SearchUsersOption struct {
	ListOptions
	KeyWord string
}

SearchUsersOption options for SearchUsers

func (*SearchUsersOption) QueryEncode

func (opt *SearchUsersOption) QueryEncode() string

QueryEncode turns options into querystring argument

type Secret

type Secret struct {
	// the secret's name
	Name string `json:"name"`
	// the secret's data
	Data string `json:"data"`
	// Date and Time of secret creation
	Created time.Time `json:"created_at"`
}

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"`
	Seconds       int64     `json:"seconds"`
	Duration      string    `json:"duration"`
	IssueIndex    int64     `json:"issue_index"`
	IssueTitle    string    `json:"issue_title"`
	RepoOwnerName string    `json:"repo_owner_name"`
	RepoName      string    `json:"repo_name"`
}

StopWatch represents a running stopwatch of an issue / pr

type SubmitPullReviewOptions

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

SubmitPullReviewOptions are options to submit a pending pull review

func (SubmitPullReviewOptions) Validate

func (opt SubmitPullReviewOptions) Validate() error

Validate the SubmitPullReviewOptions struct

type Tag

type Tag struct {
	Name       string      `json:"name"`
	Message    string      `json:"message"`
	ID         string      `json:"id"`
	Commit     *CommitMeta `json:"commit"`
	ZipballURL string      `json:"zipball_url"`
	TarballURL string      `json:"tarball_url"`
}

Tag represents a repository tag

type Team

type Team struct {
	ID                      int64          `json:"id"`
	Name                    string         `json:"name"`
	Description             string         `json:"description"`
	Organization            *Organization  `json:"organization"`
	Permission              AccessMode     `json:"permission"`
	CanCreateOrgRepo        bool           `json:"can_create_org_repo"`
	IncludesAllRepositories bool           `json:"includes_all_repositories"`
	Units                   []RepoUnitType `json:"units"`
}

Team represents a team in an organization

type TeamSearchResults

type TeamSearchResults struct {
	OK    bool    `json:"ok"`
	Error string  `json:"error"`
	Data  []*Team `json:"data"`
}

TeamSearchResults is the JSON struct that is returned from Team search API.

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

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 TrustModel

type TrustModel string

TrustModel represent how git signatures are handled in a repository

const (
	// TrustModelDefault use TM set by global config
	TrustModelDefault TrustModel = "default"
	// TrustModelCollaborator gpg signature has to be owned by a repo collaborator
	TrustModelCollaborator TrustModel = "collaborator"
	// TrustModelCommitter gpg signature has to match committer
	TrustModelCommitter TrustModel = "committer"
	// TrustModelCollaboratorCommitter gpg signature has to match committer and owned by a repo collaborator
	TrustModelCollaboratorCommitter TrustModel = "collaboratorcommitter"
)

type UpdateFileOptions

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 login_name of non local users (e.g. LDAP / OAuth / SMTP)
	LoginName string `json:"login_name"`
	// The ID of the Authentication Source for non local users.
	SourceID int64 `json:"source_id"`
	// 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"`
	// Date and Time of last login
	LastLogin time.Time `json:"last_login"`
	// Date and Time of user creation
	Created time.Time `json:"created"`
	// Is user restricted
	Restricted bool `json:"restricted"`
	// Is user active
	IsActive bool `json:"active"`
	// Is user login prohibited
	ProhibitLogin bool `json:"prohibit_login"`
	// the user's location
	Location string `json:"location"`
	// the user's website
	Website string `json:"website"`
	// the user's description
	Description string `json:"description"`
	// User visibility level option
	Visibility VisibleType `json:"visibility"`

	// user counts
	FollowerCount    int `json:"followers_count"`
	FollowingCount   int `json:"following_count"`
	StarredRepoCount int `json:"starred_repos_count"`
}

User represents a user

type UserSettings

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

UserSettings represents user settings

type UserSettingsOptions

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

UserSettingsOptions represents options to change user settings

type VisibleType

type VisibleType string

VisibleType defines the visibility

const (
	// VisibleTypePublic Visible for everyone
	VisibleTypePublic VisibleType = "public"

	// VisibleTypeLimited Visible for every connected user
	VisibleTypeLimited VisibleType = "limited"

	// VisibleTypePrivate Visible only for organization's members
	VisibleTypePrivate VisibleType = "private"
)

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