Team management within organizations including members, repositories, and permissions.
The TeamsService provides 67 methods for team management.
type TeamsService struct{}// ListTeams lists all teams in an organization
func (s *TeamsService) ListTeams(ctx context.Context, org string, opts *ListOptions) ([]*Team, *Response, error)
// GetTeamByID gets a team by ID
func (s *TeamsService) GetTeamByID(ctx context.Context, orgID, teamID int64) (*Team, *Response, error)
// GetTeamBySlug gets a team by slug
func (s *TeamsService) GetTeamBySlug(ctx context.Context, org, slug string) (*Team, *Response, error)// CreateTeam creates a new team within an organization
func (s *TeamsService) CreateTeam(ctx context.Context, org string, team NewTeam) (*Team, *Response, error)
// EditTeamByID edits a team
func (s *TeamsService) EditTeamByID(ctx context.Context, orgID, teamID int64, team NewTeam, removeParent bool) (*Team, *Response, error)
// EditTeamBySlug edits a team
func (s *TeamsService) EditTeamBySlug(ctx context.Context, org, slug string, team NewTeam, removeParent bool) (*Team, *Response, error)
// DeleteTeamByID deletes a team
func (s *TeamsService) DeleteTeamByID(ctx context.Context, orgID, teamID int64) (*Response, error)
// DeleteTeamBySlug deletes a team
func (s *TeamsService) DeleteTeamBySlug(ctx context.Context, org, slug string) (*Response, error)
type NewTeam struct {
Name string
Description *string
Maintainers []string
RepoNames []string
ParentTeamID *int64
Privacy *string // "secret" or "closed"
}
type Team struct {
ID *int64
NodeID *string
Name *string
Description *string
URL *string
Slug *string
Permission *string
Permissions *TeamPermissions
Privacy *string
MembersCount *int
ReposCount *int
Organization *Organization
Parent *Team
}// ListTeamMembersByID lists all members of a team
func (s *TeamsService) ListTeamMembersByID(ctx context.Context, orgID, teamID int64, opts *TeamListTeamMembersOptions) ([]*User, *Response, error)
// ListTeamMembersBySlug lists all members of a team
func (s *TeamsService) ListTeamMembersBySlug(ctx context.Context, org, slug string, opts *TeamListTeamMembersOptions) ([]*User, *Response, error)
// GetTeamMembershipByID gets team membership for a user
func (s *TeamsService) GetTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string) (*Membership, *Response, error)
// GetTeamMembershipBySlug gets team membership for a user
func (s *TeamsService) GetTeamMembershipBySlug(ctx context.Context, org, slug, user string) (*Membership, *Response, error)// AddTeamMembershipByID adds or updates team membership
func (s *TeamsService) AddTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string, opts *TeamAddTeamMembershipOptions) (*Membership, *Response, error)
// AddTeamMembershipBySlug adds or updates team membership
func (s *TeamsService) AddTeamMembershipBySlug(ctx context.Context, org, slug, user string, opts *TeamAddTeamMembershipOptions) (*Membership, *Response, error)
// RemoveTeamMembershipByID removes a user from a team
func (s *TeamsService) RemoveTeamMembershipByID(ctx context.Context, orgID, teamID int64, user string) (*Response, error)
// RemoveTeamMembershipBySlug removes a user from a team
func (s *TeamsService) RemoveTeamMembershipBySlug(ctx context.Context, org, slug, user string) (*Response, error)
type TeamAddTeamMembershipOptions struct {
Role string // "member" or "maintainer"
}// ListTeamReposByID lists repositories that a team has access to
func (s *TeamsService) ListTeamReposByID(ctx context.Context, orgID, teamID int64, opts *ListOptions) ([]*Repository, *Response, error)
// ListTeamReposBySlug lists repositories that a team has access to
func (s *TeamsService) ListTeamReposBySlug(ctx context.Context, org, slug string, opts *ListOptions) ([]*Repository, *Response, error)
// IsTeamRepoByID checks if a team manages a repository
func (s *TeamsService) IsTeamRepoByID(ctx context.Context, orgID, teamID int64, owner, repo string) (*Repository, *Response, error)
// IsTeamRepoBySlug checks if a team manages a repository
func (s *TeamsService) IsTeamRepoBySlug(ctx context.Context, org, slug, owner, repo string) (*Repository, *Response, error)// AddTeamRepoByID adds a repository to be managed by a team
func (s *TeamsService) AddTeamRepoByID(ctx context.Context, orgID, teamID int64, owner, repo string, opts *TeamAddTeamRepoOptions) (*Response, error)
// AddTeamRepoBySlug adds a repository to be managed by a team
func (s *TeamsService) AddTeamRepoBySlug(ctx context.Context, org, slug, owner, repo string, opts *TeamAddTeamRepoOptions) (*Response, error)
// RemoveTeamRepoByID removes a repository from a team
func (s *TeamsService) RemoveTeamRepoByID(ctx context.Context, orgID, teamID int64, owner, repo string) (*Response, error)
// RemoveTeamRepoBySlug removes a repository from a team
func (s *TeamsService) RemoveTeamRepoBySlug(ctx context.Context, org, slug, owner, repo string) (*Response, error)
type TeamAddTeamRepoOptions struct {
Permission string // "pull", "push", "admin", "maintain", "triage"
}// ListTeamProjectsByID lists team projects
func (s *TeamsService) ListTeamProjectsByID(ctx context.Context, orgID, teamID int64) ([]*Project, *Response, error)
// ListTeamProjectsBySlug lists team projects
func (s *TeamsService) ListTeamProjectsBySlug(ctx context.Context, org, slug string) ([]*Project, *Response, error)
// ReviewTeamProjectsByID reviews whether a team has access to a project
func (s *TeamsService) ReviewTeamProjectsByID(ctx context.Context, orgID, teamID, projectID int64) (*Project, *Response, error)
// ReviewTeamProjectsBySlug reviews whether a team has access to a project
func (s *TeamsService) ReviewTeamProjectsBySlug(ctx context.Context, org, slug string, projectID int64) (*Project, *Response, error)
// AddTeamProjectByID adds a project to a team
func (s *TeamsService) AddTeamProjectByID(ctx context.Context, orgID, teamID, projectID int64, opts *TeamProjectOptions) (*Response, error)
// AddTeamProjectBySlug adds a project to a team
func (s *TeamsService) AddTeamProjectBySlug(ctx context.Context, org, slug string, projectID int64, opts *TeamProjectOptions) (*Response, error)
// RemoveTeamProjectByID removes a project from a team
func (s *TeamsService) RemoveTeamProjectByID(ctx context.Context, orgID, teamID int64, projectID int64) (*Response, error)
// RemoveTeamProjectBySlug removes a project from a team
func (s *TeamsService) RemoveTeamProjectBySlug(ctx context.Context, org, slug string, projectID int64) (*Response, error)// ListDiscussionsByID lists discussions of a team
func (s *TeamsService) ListDiscussionsByID(ctx context.Context, orgID, teamID int64, opts *DiscussionListOptions) ([]*TeamDiscussion, *Response, error)
// ListDiscussionsBySlug lists discussions of a team
func (s *TeamsService) ListDiscussionsBySlug(ctx context.Context, org, slug string, opts *DiscussionListOptions) ([]*TeamDiscussion, *Response, error)
// GetDiscussionByID gets a specific discussion
func (s *TeamsService) GetDiscussionByID(ctx context.Context, orgID, teamID int64, discussionNumber int) (*TeamDiscussion, *Response, error)
// GetDiscussionBySlug gets a specific discussion
func (s *TeamsService) GetDiscussionBySlug(ctx context.Context, org, slug string, discussionNumber int) (*TeamDiscussion, *Response, error)
// CreateDiscussionByID creates a new discussion post
func (s *TeamsService) CreateDiscussionByID(ctx context.Context, orgID, teamID int64, discussion TeamDiscussion) (*TeamDiscussion, *Response, error)
// CreateDiscussionBySlug creates a new discussion post
func (s *TeamsService) CreateDiscussionBySlug(ctx context.Context, org, slug string, discussion TeamDiscussion) (*TeamDiscussion, *Response, error)
// EditDiscussionByID edits a discussion post
func (s *TeamsService) EditDiscussionByID(ctx context.Context, orgID, teamID int64, discussionNumber int, discussion TeamDiscussion) (*TeamDiscussion, *Response, error)
// EditDiscussionBySlug edits a discussion post
func (s *TeamsService) EditDiscussionBySlug(ctx context.Context, org, slug string, discussionNumber int, discussion TeamDiscussion) (*TeamDiscussion, *Response, error)
// DeleteDiscussionByID deletes a discussion post
func (s *TeamsService) DeleteDiscussionByID(ctx context.Context, orgID, teamID int64, discussionNumber int) (*Response, error)
// DeleteDiscussionBySlug deletes a discussion post
func (s *TeamsService) DeleteDiscussionBySlug(ctx context.Context, org, slug string, discussionNumber int) (*Response, error)// ListDiscussionCommentsByID lists comments on a discussion
func (s *TeamsService) ListDiscussionCommentsByID(ctx context.Context, orgID, teamID int64, discussionNumber int, opts *DiscussionCommentListOptions) ([]*DiscussionComment, *Response, error)
// ListDiscussionCommentsBySlug lists comments on a discussion
func (s *TeamsService) ListDiscussionCommentsBySlug(ctx context.Context, org, slug string, discussionNumber int, opts *DiscussionCommentListOptions) ([]*DiscussionComment, *Response, error)
// GetDiscussionCommentByID gets a specific comment
func (s *TeamsService) GetDiscussionCommentByID(ctx context.Context, orgID, teamID int64, discussionNumber int, commentNumber int) (*DiscussionComment, *Response, error)
// GetDiscussionCommentBySlug gets a specific comment
func (s *TeamsService) GetDiscussionCommentBySlug(ctx context.Context, org, slug string, discussionNumber, commentNumber int) (*DiscussionComment, *Response, error)
// CreateCommentByID creates a new comment on a discussion
func (s *TeamsService) CreateCommentByID(ctx context.Context, orgID, teamID int64, discussionNumber int, comment DiscussionComment) (*DiscussionComment, *Response, error)
// CreateCommentBySlug creates a new comment on a discussion
func (s *TeamsService) CreateCommentBySlug(ctx context.Context, org, slug string, discussionNumber int, comment DiscussionComment) (*DiscussionComment, *Response, error)
// EditCommentByID edits a comment on a discussion
func (s *TeamsService) EditCommentByID(ctx context.Context, orgID, teamID int64, discussionNumber, commentNumber int, comment DiscussionComment) (*DiscussionComment, *Response, error)
// EditCommentBySlug edits a comment on a discussion
func (s *TeamsService) EditCommentBySlug(ctx context.Context, org, slug string, discussionNumber, commentNumber int, comment DiscussionComment) (*DiscussionComment, *Response, error)
// DeleteCommentByID deletes a comment on a discussion
func (s *TeamsService) DeleteCommentByID(ctx context.Context, orgID, teamID int64, discussionNumber, commentNumber int) (*Response, error)
// DeleteCommentBySlug deletes a comment on a discussion
func (s *TeamsService) DeleteCommentBySlug(ctx context.Context, org, slug string, discussionNumber, commentNumber int) (*Response, error)// ListExternalGroupsForTeamByID lists external groups for a team
func (s *TeamsService) ListExternalGroupsForTeamByID(ctx context.Context, orgID, teamID int64) (*ExternalGroupList, *Response, error)
// ListExternalGroupsForTeamBySlug lists external groups for a team
func (s *TeamsService) ListExternalGroupsForTeamBySlug(ctx context.Context, org, slug string) (*ExternalGroupList, *Response, error)