// Copyright 2013 The go-github AUTHORS. All rights reserved.//// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package githubimport ()// UsersService handles communication with the user related// methods of the GitHub API.//// GitHub API docs: https://docs.github.com/rest/users/typeUsersServiceservice// User represents a GitHub user.typeUserstruct { Login *string`json:"login,omitempty"` ID *int64`json:"id,omitempty"` NodeID *string`json:"node_id,omitempty"` AvatarURL *string`json:"avatar_url,omitempty"` HTMLURL *string`json:"html_url,omitempty"` GravatarID *string`json:"gravatar_id,omitempty"` Name *string`json:"name,omitempty"` Company *string`json:"company,omitempty"` Blog *string`json:"blog,omitempty"` Location *string`json:"location,omitempty"` Email *string`json:"email,omitempty"` Hireable *bool`json:"hireable,omitempty"` Bio *string`json:"bio,omitempty"` TwitterUsername *string`json:"twitter_username,omitempty"` PublicRepos *int`json:"public_repos,omitempty"` PublicGists *int`json:"public_gists,omitempty"` Followers *int`json:"followers,omitempty"` Following *int`json:"following,omitempty"` CreatedAt *Timestamp`json:"created_at,omitempty"` UpdatedAt *Timestamp`json:"updated_at,omitempty"` SuspendedAt *Timestamp`json:"suspended_at,omitempty"` Type *string`json:"type,omitempty"` SiteAdmin *bool`json:"site_admin,omitempty"` TotalPrivateRepos *int64`json:"total_private_repos,omitempty"` OwnedPrivateRepos *int64`json:"owned_private_repos,omitempty"` PrivateGists *int`json:"private_gists,omitempty"` DiskUsage *int`json:"disk_usage,omitempty"` Collaborators *int`json:"collaborators,omitempty"` TwoFactorAuthentication *bool`json:"two_factor_authentication,omitempty"` Plan *Plan`json:"plan,omitempty"` LdapDn *string`json:"ldap_dn,omitempty"`// API URLs URL *string`json:"url,omitempty"` EventsURL *string`json:"events_url,omitempty"` FollowingURL *string`json:"following_url,omitempty"` FollowersURL *string`json:"followers_url,omitempty"` GistsURL *string`json:"gists_url,omitempty"` OrganizationsURL *string`json:"organizations_url,omitempty"` ReceivedEventsURL *string`json:"received_events_url,omitempty"` ReposURL *string`json:"repos_url,omitempty"` StarredURL *string`json:"starred_url,omitempty"` SubscriptionsURL *string`json:"subscriptions_url,omitempty"`// TextMatches is only populated from search results that request text matches // See: search.go and https://docs.github.com/rest/search/#text-match-metadata TextMatches []*TextMatch`json:"text_matches,omitempty"`// Permissions and RoleName identify the permissions and role that a user has on a given // repository. These are only populated when calling Repositories.ListCollaborators. Permissions map[string]bool`json:"permissions,omitempty"` RoleName *string`json:"role_name,omitempty"`}func ( User) () string {returnStringify()}// Get fetches a user. Passing the empty string will fetch the authenticated// user.//// GitHub API docs: https://docs.github.com/rest/users/users#get-a-user// GitHub API docs: https://docs.github.com/rest/users/users#get-the-authenticated-user////meta:operation GET /user//meta:operation GET /users/{username}func ( *UsersService) ( context.Context, string) (*User, *Response, error) {varstringif != "" { = fmt.Sprintf("users/%v", ) } else { = "user" } , := .client.NewRequest("GET", , nil)if != nil {returnnil, nil, } := new(User) , := .client.Do(, , )if != nil {returnnil, , }return , , nil}// GetByID fetches a user.//// Note: GetByID uses the undocumented GitHub API endpoint "GET /user/{user_id}".////meta:operation GET /user/{user_id}func ( *UsersService) ( context.Context, int64) (*User, *Response, error) { := fmt.Sprintf("user/%d", ) , := .client.NewRequest("GET", , nil)if != nil {returnnil, nil, } := new(User) , := .client.Do(, , )if != nil {returnnil, , }return , , nil}// Edit the authenticated user.//// GitHub API docs: https://docs.github.com/rest/users/users#update-the-authenticated-user////meta:operation PATCH /userfunc ( *UsersService) ( context.Context, *User) (*User, *Response, error) { := "user" , := .client.NewRequest("PATCH", , )if != nil {returnnil, nil, } := new(User) , := .client.Do(, , )if != nil {returnnil, , }return , , nil}// HovercardOptions specifies optional parameters to the UsersService.GetHovercard// method.typeHovercardOptionsstruct {// SubjectType specifies the additional information to be received about the hovercard. // Possible values are: organization, repository, issue, pull_request. (Required when using subject_id.) SubjectType string`url:"subject_type"`// SubjectID specifies the ID for the SubjectType. (Required when using subject_type.) SubjectID string`url:"subject_id"`}// Hovercard represents hovercard information about a user.typeHovercardstruct { Contexts []*UserContext`json:"contexts,omitempty"`}// UserContext represents the contextual information about user.typeUserContextstruct { Message *string`json:"message,omitempty"` Octicon *string`json:"octicon,omitempty"`}// GetHovercard fetches contextual information about user. It requires authentication// via Basic Auth or via OAuth with the repo scope.//// GitHub API docs: https://docs.github.com/rest/users/users#get-contextual-information-for-a-user////meta:operation GET /users/{username}/hovercardfunc ( *UsersService) ( context.Context, string, *HovercardOptions) (*Hovercard, *Response, error) { := fmt.Sprintf("users/%v/hovercard", ) , := addOptions(, )if != nil {returnnil, nil, } , := .client.NewRequest("GET", , nil)if != nil {returnnil, nil, } := new(Hovercard) , := .client.Do(, , )if != nil {returnnil, , }return , , nil}// UserListOptions specifies optional parameters to the UsersService.ListAll// method.typeUserListOptionsstruct {// ID of the last user seen Since int64`url:"since,omitempty"`// Note: Pagination is powered exclusively by the Since parameter, // ListOptions.Page has no effect. // ListOptions.PerPage controls an undocumented GitHub API parameter.ListOptions}// ListAll lists all GitHub users.//// To paginate through all users, populate 'Since' with the ID of the last user.//// GitHub API docs: https://docs.github.com/rest/users/users#list-users////meta:operation GET /usersfunc ( *UsersService) ( context.Context, *UserListOptions) ([]*User, *Response, error) { , := addOptions("users", )if != nil {returnnil, nil, } , := .client.NewRequest("GET", , nil)if != nil {returnnil, nil, }var []*User , := .client.Do(, , &)if != nil {returnnil, , }return , , nil}// ListInvitations lists all currently-open repository invitations for the// authenticated user.//// GitHub API docs: https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user////meta:operation GET /user/repository_invitationsfunc ( *UsersService) ( context.Context, *ListOptions) ([]*RepositoryInvitation, *Response, error) { , := addOptions("user/repository_invitations", )if != nil {returnnil, nil, } , := .client.NewRequest("GET", , nil)if != nil {returnnil, nil, } := []*RepositoryInvitation{} , := .client.Do(, , &)if != nil {returnnil, , }return , , nil}// AcceptInvitation accepts the currently-open repository invitation for the// authenticated user.//// GitHub API docs: https://docs.github.com/rest/collaborators/invitations#accept-a-repository-invitation////meta:operation PATCH /user/repository_invitations/{invitation_id}func ( *UsersService) ( context.Context, int64) (*Response, error) { := fmt.Sprintf("user/repository_invitations/%v", ) , := .client.NewRequest("PATCH", , nil)if != nil {returnnil, }return .client.Do(, , nil)}// DeclineInvitation declines the currently-open repository invitation for the// authenticated user.//// GitHub API docs: https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation////meta:operation DELETE /user/repository_invitations/{invitation_id}func ( *UsersService) ( context.Context, int64) (*Response, error) { := fmt.Sprintf("user/repository_invitations/%v", ) , := .client.NewRequest("DELETE", , nil)if != nil {returnnil, }return .client.Do(, , nil)}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.