class Github::Client::Orgs::Teams
All actions against teams require at a minimum an authenticated user who is a member of the owner's team in the :org being managed. Api calls that require explicit permissions are noted.
Public Instance Methods
Add a team member
In order to add a user to a team, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with.
@example
github = Github.new oauth_token: '...' github.orgs.teams.add_member 'team-id', 'user-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 223 def add_member(*args) arguments(args, required: [:id, :user]) put_request("/teams/#{arguments.id}/members/#{arguments.user}", arguments.params) end
Add a team membership
In order to add a user to a team, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with.
@see developer.github.com/v3/orgs/teams/#add-team-membership
@param [Integer] :team_id @param [String] :username @param [Hash] :params @option params [String] :role
The role that this user should have in the team. Can be one of: * member - a normal member of the team. * maintainer - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. Default: member
@example
github = Github.new oauth_token: '...' github.orgs.teams.add_membership 'team-id', 'user-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 299 def add_membership(*args) arguments(args, required: [:team_id, :user]) put_request("/teams/#{arguments.team_id}/memberships/#{arguments.user}", arguments.params) end
Add a team repository
In order to add a repo to a team, the authenticated user must be an owner of the org that the team is associated with. Also, the repo must be owned by the organization, or a direct for of a repo owned by the organization.
@see developer.github.com/v3/orgs/teams/#add-team-repo
@example
github = Github.new oauth_token: '...' github.orgs.teams.add_repo 'team-id', 'user-name', 'repo-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 380 def add_repo(*args) arguments(args, required: [:id, :user, :repo]) put_request("/teams/#{arguments.id}/repos/#{arguments.user}/#{arguments.repo}", arguments.params) end
Create a team
In order to create a team, the authenticated user must be an owner of :org
@see developer.github.com/v3/orgs/teams/#create-team
@param [Hash] params @option params [String] :name
Required. The name of the team
@option params [String] :description
The description of the team.
@option params [Array] :repo_names
The repositories to add the team to.
@option params [String] :privacy
The level of privacy this team should have. Can be one of: * secret - only visible to organization owners and members of this team. * closed - visible to all members of this organization. Default: secret
@option params [String] :permission
The permission to grant the team. Can be one of: * pull - team members can pull, but not push or administor this repositories. * push - team members can pull and push, but not administor this repositores. * admin - team members can pull, push and administor these repositories. Default: pull
@example
github = Github.new oauth_token: '...' github.orgs.teams.create 'org-name', name: "new team", permission: "push", repo_names: [ "github/dotfiles" ]
@api public
# File lib/github_api/client/orgs/teams.rb, line 97 def create(*args) arguments(args, required: [:org_name]) do assert_required %w(name) end post_request("/orgs/#{arguments.org_name}/teams", arguments.params) end
Delete a team
@see developer.github.com/v3/orgs/teams/#delete-team
In order to delete a team, the authenticated user must be an owner of the org that the team is associated with
@example
github = Github.new oauth_token: '...' github.orgs.teams.delete 'team-id'
@api public
# File lib/github_api/client/orgs/teams.rb, line 160 def delete(*args) arguments(args, required: [:id]) delete_request("/teams/#{arguments.id}", arguments.params) end
Edit a team
In order to edit a team, the authenticated user must be an owner of the org that the team is associated with.
@see developer.github.com/v3/orgs/teams/#edit-team
@param [Hash] params @option params [String] :name
The repositories to add the team to.
@option params [String] :description
The description of the team.
@option params [String] :privacy
The level of privacy this team should have. Can be one of: * secret - only visible to organization owners and members of this team. * closed - visible to all members of this organization. Default: secret
@option params [String] :permission
The permission to grant the team. Can be one of: * pull - team members can pull, but not push or administor this repositories. * push - team members can pull and push, but not administor this repositores. * admin - team members can pull, push and administor these repositories. Default: pull
@example
github = Github.new oauth_token: '...' github.orgs.teams.edit 'team-id', name: "new team name", permission: "push"
@api public
# File lib/github_api/client/orgs/teams.rb, line 140 def edit(*args) arguments(args, required: [:id]) do assert_required %w(name) end patch_request("/teams/#{arguments.id}", arguments.params) end
Get a team
@see developer.github.com/v3/orgs/teams/#get-team
@example
github = Github.new oauth_token: '...' github.orgs.teams.get 'team-id'
@api public
# File lib/github_api/client/orgs/teams.rb, line 51 def get(*args) arguments(args, required: [:id]) get_request("/teams/#{arguments.id}", arguments.params) end
List user teams
List all of the teams across all of the organizations to which the authenticated user belongs. This method requires user or repo scope when authenticating via OAuth.
@example
github = Github.new oauth_token: '...' github.orgs.teams.list
List teams
@see developer.github.com/v3/orgs/teams/#list-teams
@example
github = Github.new oauth_token: '...' github.orgs.teams.list org: 'org-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 29 def list(*args) params = arguments(args).params if (org = params.delete('org')) response = get_request("/orgs/#{org}/teams", params) else response = get_request('/user/teams', params) end return response unless block_given? response.each { |el| yield el } end
List team members
In order to list members in a team, the authenticated user must be a member of the team.
@see developer.github.com/v3/orgs/teams/#list-team-members
@param [Integer] :team_id
@example
github = Github.new oauth_token: '...' github.orgs.teams.list_members 'team-id' github.orgs.teams.list_members 'team-id' { |member| ... }
@api public
# File lib/github_api/client/orgs/teams.rb, line 182 def list_members(*args) arguments(args, required: [:team_id]) response = get_request("/teams/#{arguments.team_id}/members", arguments.params) return response unless block_given? response.each { |el| yield el } end
List team repositories
@see developer.github.com/v3/orgs/teams/#list-team-repos
@example
github = Github.new oauth_token: '...' github.orgs.teams.list_repos 'team-id'
@api public
# File lib/github_api/client/orgs/teams.rb, line 338 def list_repos(*args) arguments(args, required: [:id]) response = get_request("/teams/#{arguments.id}/repos", arguments.params) return response unless block_given? response.each { |el| yield el } end
Remove a team member
@see developer.github.com/v3/orgs/teams/#remove-team-member
In order to remove a user from a team, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. note: This does not delete the user, it just remove them from the team.
@example
github = Github.new oauth_token: '...' github.orgs.teams.remove_member 'team-id', 'user-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 245 def remove_member(*args) arguments(args, required: [:id, :user]) delete_request("/teams/#{arguments.id}/members/#{arguments.user}", arguments.params) end
Remove a team membership
In order to remove a user from a team, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. note: This does not delete the user, it just remove them from the team.
@see developer.github.com/v3/orgs/teams/#remove-team-membership
@example
github = Github.new oauth_token: '...' github.orgs.teams.remove_membership 'team-id', 'user-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 321 def remove_membership(*args) arguments(args, required: [:team_id, :user]) delete_request("/teams/#{arguments.team_id}/memberships/#{arguments.user}", arguments.params) end
Remove a team repository
In order to add a repo to a team, the authenticated user must be an owner of the org that the team is associated with. note: This does not delete the repo, it just removes it from the team.
@see developer.github.com/v3/orgs/teams/#remove-team-repo
@example
github = Github.new oauth_token: '...' github.orgs.teams.remove_repo 'team-id', 'user-name', 'repo-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 400 def remove_repo(*args) arguments(args, required: [:id, :user, :repo]) delete_request("/teams/#{arguments.id}/repos/#{arguments.user}/#{arguments.repo}", arguments.params) end
Check if a user is a member of a team
@see developer.github.com/v3/orgs/teams/#get-team-member
@param [Integer] :team_id @param [String] :username
@example
github = Github.new oauth_token: '...' github.orgs.teams.team_member? 'team-id', 'user-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 203 def team_member?(*args) arguments(args, required: [:team_id, :user]) response = get_request("/teams/#{arguments.team_id}/members/#{arguments.user}", arguments.params) response.status == 204 rescue Github::Error::NotFound false end
Get team membership
In order to get a user's membership with a team, the team must be visible to the authenticated user.
@see developer.github.com/v3/orgs/teams/#get-team-membership
@param [Integer] :team_id @param [String] :username
@example
github = Github.new oauth_token: '...' github.orgs.teams.team_membership 'team-id', 'username'
@api public
# File lib/github_api/client/orgs/teams.rb, line 268 def team_membership(*args) arguments(args, required: [:team_id, :username]) get_request("/teams/#{arguments.team_id}/memberships/#{arguments.username}", arguments.params) end
Check if a repository belongs to a team
@see developer.github.com/v3/orgs/teams/#get-team-repo
@example
github = Github.new oauth_token: '...' github.orgs.teams.team_repo? 'team-id', 'user-name', 'repo-name'
@api public
# File lib/github_api/client/orgs/teams.rb, line 356 def team_repo?(*args) arguments(args, required: [:id, :user, :repo]) response = get_request("/teams/#{arguments.id}/repos/#{arguments.user}/#{arguments.repo}", arguments.params) response.status == 204 rescue Github::Error::NotFound false end