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_member(*args) click to toggle source

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 220
def add_member(*args)
  arguments(args, required: [:id, :user])

  put_request("/teams/#{arguments.id}/members/#{arguments.user}",
              arguments.params)
end
Also aliased as: add_team_member
add_membership(*args) click to toggle source

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 296
def add_membership(*args)
  arguments(args, required: [:team_id, :user])

  put_request("/teams/#{arguments.team_id}/memberships/#{arguments.user}",
              arguments.params)
end
Also aliased as: add_team_membership
add_repo(*args) click to toggle source

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 377
def add_repo(*args)
  arguments(args, required: [:id, :user, :repo])

  put_request("/teams/#{arguments.id}/repos/#{arguments.user}/#{arguments.repo}", arguments.params)
end
Also aliased as: add_repository
add_repository(*args)
Alias for: add_repo
add_team_member(*args)
Alias for: add_member
add_team_membership(*args)
Alias for: add_membership
all(*args)
Alias for: list
all_members(*args)
Alias for: list_members
create(*args) click to toggle source

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 94
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(*args) click to toggle source

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 157
def delete(*args)
  arguments(args, required: [:id])

  delete_request("/teams/#{arguments.id}", arguments.params)
end
Also aliased as: remove
edit(*args) click to toggle source

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 137
def edit(*args)
  arguments(args, required: [:id]) do
    assert_required %w(name)
  end

  patch_request("/teams/#{arguments.id}", arguments.params)
end
find(*args)
Alias for: get
get(*args) click to toggle source

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 48
def get(*args)
  arguments(args, required: [:id])

  get_request("/teams/#{arguments.id}", arguments.params)
end
Also aliased as: find
list(*args) { |el| ... } click to toggle source

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 26
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
Also aliased as: all
list_members(*args) { |el| ... } click to toggle source

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 179
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
Also aliased as: all_members
list_repos(*args) { |el| ... } click to toggle source

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 335
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
Also aliased as: repos
remove(*args)
Alias for: delete
remove_member(*args) click to toggle source

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 242
def remove_member(*args)
  arguments(args, required: [:id, :user])

  delete_request("/teams/#{arguments.id}/members/#{arguments.user}",
                 arguments.params)
end
Also aliased as: remove_team_member
remove_membership(*args) click to toggle source

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 318
def remove_membership(*args)
  arguments(args, required: [:team_id, :user])

  delete_request("/teams/#{arguments.team_id}/memberships/#{arguments.user}",
                 arguments.params)
end
Also aliased as: remove_team_membership
remove_repo(*args) click to toggle source

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 397
def remove_repo(*args)
  arguments(args, required: [:id, :user, :repo])

  delete_request("/teams/#{arguments.id}/repos/#{arguments.user}/#{arguments.repo}", arguments.params)
end
Also aliased as: remove_repository
remove_repository(*args)
Alias for: remove_repo
remove_team_member(*args)
Alias for: remove_member
remove_team_membership(*args)
Alias for: remove_membership
repos(*args)
Alias for: list_repos
team_member?(*args) click to toggle source

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 200
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
team_membership(*args) click to toggle source

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 265
def team_membership(*args)
  arguments(args, required: [:team_id, :username])

  get_request("/teams/#{arguments.team_id}/memberships/#{arguments.username}",
              arguments.params)
end
team_repo?(*args) click to toggle source

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 353
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
Also aliased as: team_repository?
team_repository?(*args)
Alias for: team_repo?