View Source GitHub.Teams (GitHub REST API Client v0.2.0)

Provides API endpoints related to teams

Link to this section Summary

Functions

Add or update team membership for a user (Legacy)

Add or update team repository permissions (Legacy)

Check team permissions for a project (Legacy)

Check team permissions for a repository (Legacy)

Delete a team (Legacy)

Get a team (Legacy)

Get team membership for a user (Legacy)

List child teams (Legacy)

List teams for the authenticated user

List team members (Legacy)

List pending team invitations (Legacy)

List team projects (Legacy)

List team repositories (Legacy)

Remove team membership for a user (Legacy)

Remove a project from a team (Legacy)

Remove a repository from a team (Legacy)

Link to this section Functions

Link to this function

add_member_legacy(team_id, username, opts \\ [])

View Source
@spec add_member_legacy(integer(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Add team member (Legacy)

The "Add team member" endpoint (described below) is deprecated.

We recommend using the Add or update team membership for a user endpoint instead. It allows you to invite new organization members to your teams.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

Note that you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "HTTP verbs."

resources

Resources

Link to this function

add_or_update_membership_for_user_in_org(org, team_slug, username, body, opts \\ [])

View Source
@spec add_or_update_membership_for_user_in_org(
  String.t(),
  String.t(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, GitHub.Team.Membership.t()} | {:error, GitHub.Error.t()}

Add or update team membership for a user

Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team.

If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/memberships/{username}.

resources

Resources

Link to this function

add_or_update_membership_for_user_legacy(team_id, username, body, opts \\ [])

View Source
@spec add_or_update_membership_for_user_legacy(
  integer(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, GitHub.Team.Membership.t()} | {:error, GitHub.Error.t()}

Add or update team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team membership for a user endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.

If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.

resources

Resources

Link to this function

add_or_update_project_permissions_in_org(org, team_slug, project_id, body, opts \\ [])

View Source
@spec add_or_update_project_permissions_in_org(
  String.t(),
  String.t(),
  integer(),
  map() | nil,
  keyword()
) :: :ok | {:error, GitHub.Error.t()}

Add or update team project permissions

Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin permissions for the project. The project and team must be part of the same organization.

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}.

resources

Resources

Link to this function

add_or_update_project_permissions_legacy(team_id, project_id, body, opts \\ [])

View Source
@spec add_or_update_project_permissions_legacy(integer(), integer(), map(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Add or update team project permissions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team project permissions endpoint.

Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have admin permissions for the project. The project and team must be part of the same organization.

resources

Resources

Link to this function

add_or_update_repo_permissions_in_org(org, team_slug, owner, repo, body, opts \\ [])

View Source
@spec add_or_update_repo_permissions_in_org(
  String.t(),
  String.t(),
  String.t(),
  String.t(),
  map(),
  keyword()
) :: :ok | {:error, GitHub.Error.t()}

Add or update team repository permissions

To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "HTTP verbs."

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

For more information about the permission levels, see "Repository permission levels for an organization".

resources

Resources

Link to this function

add_or_update_repo_permissions_legacy(team_id, owner, repo, body, opts \\ [])

View Source
@spec add_or_update_repo_permissions_legacy(
  integer(),
  String.t(),
  String.t(),
  map(),
  keyword()
) ::
  :ok | {:error, GitHub.Error.t()}

Add or update team repository permissions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new "Add or update team repository permissions" endpoint.

To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity status if you attempt to add a repository to a team that is not owned by the organization.

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see "HTTP verbs."

resources

Resources

Link to this function

check_permissions_for_project_in_org(org, team_slug, project_id, opts \\ [])

View Source
@spec check_permissions_for_project_in_org(
  String.t(),
  String.t(),
  integer(),
  keyword()
) ::
  {:ok, GitHub.Team.Project.t()} | {:error, GitHub.Error.t()}

Check team permissions for a project

Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects/{project_id}.

resources

Resources

Link to this function

check_permissions_for_project_legacy(team_id, project_id, opts \\ [])

View Source
@spec check_permissions_for_project_legacy(integer(), integer(), keyword()) ::
  {:ok, GitHub.Team.Project.t()} | {:error, GitHub.Error.t()}

Check team permissions for a project (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check team permissions for a project endpoint.

Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.

resources

Resources

Link to this function

check_permissions_for_repo_in_org(org, team_slug, owner, repo, opts \\ [])

View Source
@spec check_permissions_for_repo_in_org(
  String.t(),
  String.t(),
  String.t(),
  String.t(),
  keyword()
) ::
  {:ok, GitHub.Team.Repository.t()} | {:error, GitHub.Error.t()}

Check team permissions for a repository

Checks whether a team has admin, push, maintain, triage, or pull permission for a repository. Repositories inherited through a parent team will also be checked.

You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the application/vnd.github.v3.repository+json accept header.

If a team doesn't have permission for the repository, you will receive a 404 Not Found response status.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

resources

Resources

Link to this function

check_permissions_for_repo_legacy(team_id, owner, repo, opts \\ [])

View Source
@spec check_permissions_for_repo_legacy(integer(), String.t(), String.t(), keyword()) ::
  {:ok, GitHub.Team.Repository.t()} | {:error, GitHub.Error.t()}

Check team permissions for a repository (Legacy)

Note: Repositories inherited through a parent team will also be checked.

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check team permissions for a repository endpoint.

You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the Accept header:

resources

Resources

Link to this function

create(org, body, opts \\ [])

View Source
@spec create(String.t(), map(), keyword()) ::
  {:ok, GitHub.Team.full()} | {:error, GitHub.Error.t()}

Create a team

To create a team, the authenticated user must be a member or owner of {org}. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "Setting team creation permissions."

When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of maintainers. For more information, see "About teams".

resources

Resources

Link to this function

create_discussion_comment_in_org(org, team_slug, discussion_number, body, opts \\ [])

View Source
@spec create_discussion_comment_in_org(
  String.t(),
  String.t(),
  integer(),
  map(),
  keyword()
) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Create a discussion comment

Creates a new comment on a team discussion. OAuth access tokens require the write:discussion scope.

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments.

resources

Resources

Link to this function

create_discussion_comment_legacy(team_id, discussion_number, body, opts \\ [])

View Source
@spec create_discussion_comment_legacy(integer(), integer(), map(), keyword()) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Create a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion comment endpoint.

Creates a new comment on a team discussion. OAuth access tokens require the write:discussion scope.

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.

resources

Resources

Link to this function

create_discussion_in_org(org, team_slug, body, opts \\ [])

View Source
@spec create_discussion_in_org(String.t(), String.t(), map(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Create a discussion

Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion scope.

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/{org_id}/team/{team_id}/discussions.

resources

Resources

Link to this function

create_discussion_legacy(team_id, body, opts \\ [])

View Source
@spec create_discussion_legacy(integer(), map(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Create a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion endpoint.

Creates a new discussion post on a team's page. OAuth access tokens require the write:discussion scope.

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.

resources

Resources

Link to this function

delete_discussion_comment_in_org(org, team_slug, discussion_number, comment_number, opts \\ [])

View Source
@spec delete_discussion_comment_in_org(
  String.t(),
  String.t(),
  integer(),
  integer(),
  keyword()
) ::
  :ok | {:error, GitHub.Error.t()}

Delete a discussion comment

Deletes a comment on a team discussion. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

resources

Resources

Link to this function

delete_discussion_comment_legacy(team_id, discussion_number, comment_number, opts \\ [])

View Source
@spec delete_discussion_comment_legacy(integer(), integer(), integer(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Delete a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion comment endpoint.

Deletes a comment on a team discussion. OAuth access tokens require the write:discussion scope.

resources

Resources

Link to this function

delete_discussion_in_org(org, team_slug, discussion_number, opts \\ [])

View Source
@spec delete_discussion_in_org(String.t(), String.t(), integer(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Delete a discussion

Delete a discussion from a team's page. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

resources

Resources

Link to this function

delete_discussion_legacy(team_id, discussion_number, opts \\ [])

View Source
@spec delete_discussion_legacy(integer(), integer(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Delete a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion endpoint.

Delete a discussion from a team's page. OAuth access tokens require the write:discussion scope.

resources

Resources

Link to this function

delete_in_org(org, team_slug, opts \\ [])

View Source
@spec delete_in_org(String.t(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Delete a team

To delete a team, the authenticated user must be an organization owner or team maintainer.

If you are an organization owner, deleting a parent team will delete all of its child teams as well.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}.

resources

Resources

Link to this function

delete_legacy(team_id, opts \\ [])

View Source
@spec delete_legacy(
  integer(),
  keyword()
) :: :ok | {:error, GitHub.Error.t()}

Delete a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a team endpoint.

To delete a team, the authenticated user must be an organization owner or team maintainer.

If you are an organization owner, deleting a parent team will delete all of its child teams as well.

resources

Resources

Link to this function

get_by_name(org, team_slug, opts \\ [])

View Source
@spec get_by_name(String.t(), String.t(), keyword()) ::
  {:ok, GitHub.Team.full()} | {:error, GitHub.Error.t()}

Get a team by name

Gets a team using the team's slug. To create the slug, GitHub replaces special characters in the name string, changes all words to lowercase, and replaces spaces with a - separator. For example, "My TEam Näme" would become my-team-name.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}.

resources

Resources

Link to this function

get_discussion_comment_in_org(org, team_slug, discussion_number, comment_number, opts \\ [])

View Source
@spec get_discussion_comment_in_org(
  String.t(),
  String.t(),
  integer(),
  integer(),
  keyword()
) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Get a discussion comment

Get a specific comment on a team discussion. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

resources

Resources

Link to this function

get_discussion_comment_legacy(team_id, discussion_number, comment_number, opts \\ [])

View Source
@spec get_discussion_comment_legacy(integer(), integer(), integer(), keyword()) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Get a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a discussion comment endpoint.

Get a specific comment on a team discussion. OAuth access tokens require the read:discussion scope.

resources

Resources

Link to this function

get_discussion_in_org(org, team_slug, discussion_number, opts \\ [])

View Source
@spec get_discussion_in_org(String.t(), String.t(), integer(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Get a discussion

Get a specific discussion on a team's page. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

resources

Resources

Link to this function

get_discussion_legacy(team_id, discussion_number, opts \\ [])

View Source
@spec get_discussion_legacy(integer(), integer(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Get a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a discussion endpoint.

Get a specific discussion on a team's page. OAuth access tokens require the read:discussion scope.

resources

Resources

Link to this function

get_legacy(team_id, opts \\ [])

View Source
@spec get_legacy(
  integer(),
  keyword()
) :: {:ok, GitHub.Team.full()} | {:error, GitHub.Error.t()}

Get a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the Get a team by name endpoint.

resources

Resources

Link to this function

get_member_legacy(team_id, username, opts \\ [])

View Source
@spec get_member_legacy(integer(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Get team member (Legacy)

The "Get team member" endpoint (described below) is deprecated.

We recommend using the Get team membership for a user endpoint instead. It allows you to get both active and pending memberships.

To list members in a team, the team must be visible to the authenticated user.

resources

Resources

Link to this function

get_membership_for_user_in_org(org, team_slug, username, opts \\ [])

View Source
@spec get_membership_for_user_in_org(String.t(), String.t(), String.t(), keyword()) ::
  {:ok, GitHub.Team.Membership.t()} | {:error, GitHub.Error.t()}

Get team membership for a user

Team members will include the members of child teams.

To get a user's membership with a team, the team must be visible to the authenticated user.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/memberships/{username}.

Note: The response contains the state of the membership and the member's role.

The role for organization owners is set to maintainer. For more information about maintainer roles, see Create a team.

resources

Resources

Link to this function

get_membership_for_user_legacy(team_id, username, opts \\ [])

View Source
@spec get_membership_for_user_legacy(integer(), String.t(), keyword()) ::
  {:ok, GitHub.Team.Membership.t()} | {:error, GitHub.Error.t()}

Get team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get team membership for a user endpoint.

Team members will include the members of child teams.

To get a user's membership with a team, the team must be visible to the authenticated user.

Note: The response contains the state of the membership and the member's role.

The role for organization owners is set to maintainer. For more information about maintainer roles, see Create a team.

resources

Resources

@spec list(
  String.t(),
  keyword()
) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}

List teams

Lists all teams in an organization that are visible to the authenticated user.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_child_in_org(org, team_slug, opts \\ [])

View Source
@spec list_child_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}

List child teams

Lists the child teams of the team specified by {team_slug}.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/teams.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_child_legacy(team_id, opts \\ [])

View Source
@spec list_child_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}

List child teams (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List child teams endpoint.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_discussion_comments_in_org(org, team_slug, discussion_number, opts \\ [])

View Source
@spec list_discussion_comments_in_org(String.t(), String.t(), integer(), keyword()) ::
  {:ok, [GitHub.Team.DiscussionComment.t()]} | {:error, GitHub.Error.t()}

List discussion comments

List all comments on a team discussion. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments.

options

Options

  • direction: The direction to sort the results by.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_discussion_comments_legacy(team_id, discussion_number, opts \\ [])

View Source
@spec list_discussion_comments_legacy(integer(), integer(), keyword()) ::
  {:ok, [GitHub.Team.DiscussionComment.t()]} | {:error, GitHub.Error.t()}

List discussion comments (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussion comments endpoint.

List all comments on a team discussion. OAuth access tokens require the read:discussion scope.

options

Options

  • direction: The direction to sort the results by.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_discussions_in_org(org, team_slug, opts \\ [])

View Source
@spec list_discussions_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.Team.Discussion.t()]} | {:error, GitHub.Error.t()}

List discussions

List all discussions on a team's page. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions.

options

Options

  • direction: The direction to sort the results by.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.
  • pinned: Pinned discussions only filter

resources

Resources

Link to this function

list_discussions_legacy(team_id, opts \\ [])

View Source
@spec list_discussions_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.Team.Discussion.t()]} | {:error, GitHub.Error.t()}

List discussions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussions endpoint.

List all discussions on a team's page. OAuth access tokens require the read:discussion scope.

options

Options

  • direction: The direction to sort the results by.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_for_authenticated_user(opts \\ [])

View Source
@spec list_for_authenticated_user(keyword()) ::
  {:ok, [GitHub.Team.full()]} | {:error, GitHub.Error.t()}

List teams for the authenticated user

List all of the teams across all of the organizations to which the authenticated user belongs. This method requires user, repo, or read:org scope when authenticating via OAuth. When using a fine-grained personal access token, the resource owner of the token must be a single organization, and have at least read-only member organization permissions. The response payload only contains the teams from a single organization when using a fine-grained personal access token.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_members_in_org(org, team_slug, opts \\ [])

View Source
@spec list_members_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}

List team members

Team members will include the members of child teams.

To list members in a team, the team must be visible to the authenticated user.

options

Options

  • role: Filters members returned by their role in the team.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_members_legacy(team_id, opts \\ [])

View Source
@spec list_members_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}

List team members (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team members endpoint.

Team members will include the members of child teams.

options

Options

  • role: Filters members returned by their role in the team.
  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_pending_invitations_in_org(org, team_slug, opts \\ [])

View Source
@spec list_pending_invitations_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.Organization.Invitation.t()]} | {:error, GitHub.Error.t()}

List pending team invitations

The return hash contains a role field which refers to the Organization Invitation role and will be one of the following values: direct_member, admin, billing_manager, hiring_manager, or reinstate. If the invitee is not a GitHub member, the login field in the return hash will be null.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/invitations.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_pending_invitations_legacy(team_id, opts \\ [])

View Source
@spec list_pending_invitations_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.Organization.Invitation.t()]} | {:error, GitHub.Error.t()}

List pending team invitations (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List pending team invitations endpoint.

The return hash contains a role field which refers to the Organization Invitation role and will be one of the following values: direct_member, admin, billing_manager, hiring_manager, or reinstate. If the invitee is not a GitHub member, the login field in the return hash will be null.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_projects_in_org(org, team_slug, opts \\ [])

View Source
@spec list_projects_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.Team.Project.t()]} | {:error, GitHub.Error.t()}

List team projects

Lists the organization projects for a team.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_projects_legacy(team_id, opts \\ [])

View Source
@spec list_projects_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.Team.Project.t()]} | {:error, GitHub.Error.t()}

List team projects (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team projects endpoint.

Lists the organization projects for a team.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_repos_in_org(org, team_slug, opts \\ [])

View Source
@spec list_repos_in_org(String.t(), String.t(), keyword()) ::
  {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}

List team repositories

Lists a team's repositories visible to the authenticated user.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

list_repos_legacy(team_id, opts \\ [])

View Source
@spec list_repos_legacy(
  integer(),
  keyword()
) :: {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}

List team repositories (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team repositories endpoint.

options

Options

  • per_page: The number of results per page (max 100).
  • page: Page number of the results to fetch.

resources

Resources

Link to this function

remove_member_legacy(team_id, username, opts \\ [])

View Source
@spec remove_member_legacy(integer(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove team member (Legacy)

The "Remove team member" endpoint (described below) is deprecated.

We recommend using the Remove team membership for a user endpoint instead. It allows you to remove both active and pending memberships.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

resources

Resources

Link to this function

remove_membership_for_user_in_org(org, team_slug, username, opts \\ [])

View Source
@spec remove_membership_for_user_in_org(String.t(), String.t(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove team membership for a user

To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}.

resources

Resources

Link to this function

remove_membership_for_user_legacy(team_id, username, opts \\ [])

View Source
@spec remove_membership_for_user_legacy(integer(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team membership for a user endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub's products in the GitHub Help documentation.

To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.

Note: When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "Synchronizing teams between your identity provider and GitHub."

resources

Resources

Link to this function

remove_project_in_org(org, team_slug, project_id, opts \\ [])

View Source
@spec remove_project_in_org(String.t(), String.t(), integer(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove a project from a team

Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read access to both the team and project, or admin access to the team or project. This endpoint removes the project from the team, but does not delete the project.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}.

resources

Resources

Link to this function

remove_project_legacy(team_id, project_id, opts \\ [])

View Source
@spec remove_project_legacy(integer(), integer(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove a project from a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove a project from a team endpoint.

Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read access to both the team and project, or admin access to the team or project. Note: This endpoint removes the project from the team, but does not delete it.

resources

Resources

Link to this function

remove_repo_in_org(org, team_slug, owner, repo, opts \\ [])

View Source
@spec remove_repo_in_org(String.t(), String.t(), String.t(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove a repository from a team

If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

resources

Resources

Link to this function

remove_repo_legacy(team_id, owner, repo, opts \\ [])

View Source
@spec remove_repo_legacy(integer(), String.t(), String.t(), keyword()) ::
  :ok | {:error, GitHub.Error.t()}

Remove a repository from a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove a repository from a team endpoint.

If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.

resources

Resources

Link to this function

update_discussion_comment_in_org(org, team_slug, discussion_number, comment_number, body, opts \\ [])

View Source
@spec update_discussion_comment_in_org(
  String.t(),
  String.t(),
  integer(),
  integer(),
  map(),
  keyword()
) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Update a discussion comment

Edits the body text of a discussion comment. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

resources

Resources

Link to this function

update_discussion_comment_legacy(team_id, discussion_number, comment_number, body, opts \\ [])

View Source
@spec update_discussion_comment_legacy(
  integer(),
  integer(),
  integer(),
  map(),
  keyword()
) ::
  {:ok, GitHub.Team.DiscussionComment.t()} | {:error, GitHub.Error.t()}

Update a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion comment endpoint.

Edits the body text of a discussion comment. OAuth access tokens require the write:discussion scope.

resources

Resources

Link to this function

update_discussion_in_org(org, team_slug, discussion_number, body, opts \\ [])

View Source
@spec update_discussion_in_org(String.t(), String.t(), integer(), map(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Update a discussion

Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

resources

Resources

Link to this function

update_discussion_legacy(team_id, discussion_number, body, opts \\ [])

View Source
@spec update_discussion_legacy(integer(), integer(), map(), keyword()) ::
  {:ok, GitHub.Team.Discussion.t()} | {:error, GitHub.Error.t()}

Update a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion endpoint.

Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion scope.

resources

Resources

Link to this function

update_in_org(org, team_slug, body, opts \\ [])

View Source
@spec update_in_org(String.t(), String.t(), map(), keyword()) ::
  {:ok, GitHub.Team.full()} | {:error, GitHub.Error.t()}

Update a team

To edit a team, the authenticated user must either be an organization owner or a team maintainer.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}.

resources

Resources

Link to this function

update_legacy(team_id, body, opts \\ [])

View Source
@spec update_legacy(integer(), map(), keyword()) ::
  {:ok, GitHub.Team.full()} | {:error, GitHub.Error.t()}

Update a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a team endpoint.

To edit a team, the authenticated user must either be an organization owner or a team maintainer.

Note: With nested teams, the privacy for parent teams cannot be secret.

resources

Resources