github3.py Logo
latest
  • Using Two-factor Authentication with github3.py
  • Using Tokens for Your Projects
  • Gist Code Examples
  • Git Code Examples
  • GitHub Examples
  • Issue Code Examples
  • Using Logging with github3.py
  • A Conversation With Octocat
  • User Guide for github3.py
  • API Reference
    • Anonymous Functional API
    • App and Installation API Objects
    • Authorizations API Classes
    • Events API Classes
    • Gist API Objects
    • Git API Classes
    • GitHub Object
    • Issues API Objects
    • Notifications
    • Organizations and their Related Objects
      • Team Objects
        • ShortTeam
        • Team
        • Membership
      • Organization Objects
        • ShortOrganization
        • Organization
    • Projects and their Associated Objects
    • Pull Requests and their Associated Objects
    • Repository API Objects
    • Search Results
    • Custom Iterator Structures
    • Users and their Associated Objects
    • Internals
  • Release Notes and History
  • Writing Tests for github3.py
github3.py
  • Docs »
  • API Reference »
  • Organizations and their Related Objects
  • Edit on GitHub

Organizations and their Related Objects¶

This section of the documentation covers the objects that represent data returned by the API for organizations.

Team Objects¶

class github3.orgs.ShortTeam(json, session: GitHubSession)¶

Object representing a team in the GitHub API.

id¶

Unique identifier for this team across all of GitHub.

members_count¶

The number of members in this team.

members_urlt¶

A URITemplate instance to either retrieve all members in this team or to test if a user is a member.

name¶

The human-readable name provided to this team.

permission¶

The level of permissions this team has, e.g., push, pull, or admin.

privacy¶

The privacy level of this team inside the organization.

repos_count¶

The number of repositories this team can access.

repositories_url¶

The URL of the resource to enumerate all repositories this team can access.

slug¶

The handle for this team or the portion you would use in an at-mention after the /, e.g., in @myorg/myteam the slug is myteam.

Please see GitHub’s Team Documentation for more information.

add_or_update_membership(username, role='member')¶

Add or update the user’s membership in this team.

This returns a dictionary like so:

{
    'state': 'pending',
    'url': 'https://api.github.com/teams/...',
    'role': 'member',
}
Parameters
  • username (str) – (required), login of user whose membership is being modified

  • role (str) – (optional), the role the user should have once their membership has been modified. Options: ‘member’, ‘maintainer’. Default: ‘member’

Returns

dictionary of the invitation response

Return type

dict

add_repository(repository, permission='')¶

Add repository to this team.

If a permission is not provided, the team’s default permission will be assigned, by GitHub.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • permission (str) – (optional), (‘pull’, ‘push’, ‘admin’)

Returns

True if successful, False otherwise

Return type

bool

as_dict()¶

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()¶

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

delete()¶

Delete this team.

Returns

True if successful, False otherwise

Return type

bool

edit(name: str, permission: str = '', parent_team_id: Optional[int] = None, privacy: Optional[str] = None)¶

Edit this team.

Parameters
  • name (str) – (required), the new name of this team

  • permission (str) –

    (optional), one of (‘pull’, ‘push’, ‘admin’) .. deprecated:: 3.0.0

    This was deprecated by the GitHub API.

  • parent_team_id (int) – (optional), id of the parent team for this team

  • privacy (str) – (optional), one of “closed” or “secret”

Returns

True if successful, False otherwise

Return type

bool

classmethod from_dict(json_dict, session)¶

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)¶

Return an instance of this class formed from json.

has_repository(repository)¶

Check if this team has access to repository.

Parameters

repository (str) – (required), form: ‘user/repo’

Returns

True if the team can access the repository, False otherwise

Return type

bool

members(role=None, number=-1, etag=None)¶

Iterate over the members of this team.

Parameters
  • role (str) – (optional), filter members returned by their role in the team. Can be one of: "member", "maintainer", "all". Default: "all".

  • number (int) – (optional), number of users to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of the members of this team

Return type

ShortUser

membership_for(username)¶

Retrieve the membership information for the user.

Parameters

username (str) – (required), name of the user

Returns

dictionary with the membership

Return type

dict

new_session()¶

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

property ratelimit_remaining¶

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) → GitHubCore¶

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

remove_repository(repository)¶

Remove repository from this team.

Parameters

repository (str) – (required), form: ‘user/repo’

Returns

True if successful, False otherwise

Return type

bool

repositories(number=-1, etag=None)¶

Iterate over the repositories this team has access to.

Parameters
  • number (int) – (optional), number of repos to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of repositories this team has access to

Return type

ShortRepositoryWithPermissions

revoke_membership(username)¶

Revoke this user’s team membership.

Parameters

username (str) – (required), name of the team member

Returns

True if successful, False otherwise

Return type

bool

class github3.orgs.Team(json, session: GitHubSession)¶

Object representing a team in the GitHub API.

In addition to the attributes on a ShortTeam a Team has the following attribute:

created_at¶

A datetime instance representing the time and date when this team was created.

members_count¶

The number of members in this team.

organization¶

A ShortOrganization representing the organization this team belongs to.

repos_count¶

The number of repositories this team can access.

updated_at¶

A datetime instance representing the time and date when this team was updated.

Please see GitHub’s Team Documentation for more information.

add_or_update_membership(username, role='member')¶

Add or update the user’s membership in this team.

This returns a dictionary like so:

{
    'state': 'pending',
    'url': 'https://api.github.com/teams/...',
    'role': 'member',
}
Parameters
  • username (str) – (required), login of user whose membership is being modified

  • role (str) – (optional), the role the user should have once their membership has been modified. Options: ‘member’, ‘maintainer’. Default: ‘member’

Returns

dictionary of the invitation response

Return type

dict

add_repository(repository, permission='')¶

Add repository to this team.

If a permission is not provided, the team’s default permission will be assigned, by GitHub.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • permission (str) – (optional), (‘pull’, ‘push’, ‘admin’)

Returns

True if successful, False otherwise

Return type

bool

as_dict()¶

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()¶

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

delete()¶

Delete this team.

Returns

True if successful, False otherwise

Return type

bool

edit(name: str, permission: str = '', parent_team_id: Optional[int] = None, privacy: Optional[str] = None)¶

Edit this team.

Parameters
  • name (str) – (required), the new name of this team

  • permission (str) –

    (optional), one of (‘pull’, ‘push’, ‘admin’) .. deprecated:: 3.0.0

    This was deprecated by the GitHub API.

  • parent_team_id (int) – (optional), id of the parent team for this team

  • privacy (str) – (optional), one of “closed” or “secret”

Returns

True if successful, False otherwise

Return type

bool

classmethod from_dict(json_dict, session)¶

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)¶

Return an instance of this class formed from json.

has_repository(repository)¶

Check if this team has access to repository.

Parameters

repository (str) – (required), form: ‘user/repo’

Returns

True if the team can access the repository, False otherwise

Return type

bool

members(role=None, number=-1, etag=None)¶

Iterate over the members of this team.

Parameters
  • role (str) – (optional), filter members returned by their role in the team. Can be one of: "member", "maintainer", "all". Default: "all".

  • number (int) – (optional), number of users to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of the members of this team

Return type

ShortUser

membership_for(username)¶

Retrieve the membership information for the user.

Parameters

username (str) – (required), name of the user

Returns

dictionary with the membership

Return type

dict

new_session()¶

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

property ratelimit_remaining¶

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) → GitHubCore¶

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

remove_repository(repository)¶

Remove repository from this team.

Parameters

repository (str) – (required), form: ‘user/repo’

Returns

True if successful, False otherwise

Return type

bool

repositories(number=-1, etag=None)¶

Iterate over the repositories this team has access to.

Parameters
  • number (int) – (optional), number of repos to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of repositories this team has access to

Return type

ShortRepositoryWithPermissions

revoke_membership(username)¶

Revoke this user’s team membership.

Parameters

username (str) – (required), name of the team member

Returns

True if successful, False otherwise

Return type

bool

class github3.orgs.Membership(json, session: GitHubSession)¶

Object describing a user’s membership in teams and organizations.

organization¶

A ShortOrganization instance representing the organization this membership is part of.

organization_url¶

The URL of the organization resource in the API that this membership is part of.

state¶

The state of this membership, e.g., active or pending.

active¶

Warning

This is a computed attribute, it is not returned by the API.

A boolean attribute equivalent to self.state.lower() == 'active'.

pending¶

Warning

This is a computed attribute, it is not returned by the API.

A boolean attribute equivalent to self.state.lower() == 'pending'.

as_dict()¶

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()¶

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

edit(state)¶

Edit the user’s membership.

Parameters

state (str) – (required), the state the membership should be in. Only accepts "active".

Returns

True if successful, False otherwise

Return type

bool

classmethod from_dict(json_dict, session)¶

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)¶

Return an instance of this class formed from json.

new_session()¶

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

property ratelimit_remaining¶

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) → GitHubCore¶

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

Organization Objects¶

class github3.orgs.ShortOrganization(json, session: GitHubSession)¶

Object for the shortened representation of an Organization.

GitHub’s API returns different amounts of information about orgs based upon how that information is retrieved. Often times, when iterating over several orgs, GitHub will return less information. To provide a clear distinction between the types of orgs, github3.py uses different classes with different sets of attributes.

New in version 1.0.0.

avatar_url¶

The URL of the avatar image for this organization.

description¶

The user-provided description of this organization.

events_url¶

The URL to retrieve the events related to this organization.

hooks_url¶

The URL for the resource to manage organization hooks.

id¶

The unique identifier for this organization across GitHub.

issues_url¶

The URL to retrieve the issues across this organization’s repositories.

login¶

The unique username of the organization.

members_url¶

The URL to retrieve the members of this organization.

public_members_urlt¶

A uritemplate.URITemplate that can be expanded to either list the public members of this organization or verify a user is a public member.

repos_url¶

The URL to retrieve the repositories in this organization.

url¶

The URL to retrieve this organization from the GitHub API.

type¶

Deprecated since version 1.0.0: This will be removed in a future release.

Previously returned by the API to indicate the type of the account.

add_or_update_membership(username, role='member')¶

Add a member or update their role.

Parameters
  • username (str) – (required), user to add or update.

  • role (str) – (optional), role to give to the user. Options are member, admin. Defaults to member.

Returns

the created or updated membership

Return type

Membership

Raises

ValueError if role is not a valid choice

add_repository(repository, team_id)¶

Add repository to team.

Changed in version 1.0: The second parameter used to be team but has been changed to team_id. This parameter is now required to be an integer to improve performance of this method.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • team_id (int) – (required), team id

Returns

True if successful, False otherwise

Return type

bool

all_events(username, number=-1, etag=None)¶

Iterate over all org events visible to the authenticated user.

Parameters
  • username (str) – (required), the username of the currently authenticated user.

  • number (int) – (optional), number of events to return. Default: -1 iterates over all events available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of events

Return type

Event

as_dict()¶

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()¶

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

block(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Block a specific user from an organization.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to block.

Returns

True if successful, Fales otherwise

Return type

bool

blocked_users(number: int = -1, etag: Optional[str] = None) → Generator[ShortUser, None, None]¶

Iterate over the users blocked by this organization.

New in version 2.1.0.

Parameters
  • number (int) – (optional), number of users to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of the members of this team

Return type

ShortUser

cancel_invite(invitee_id)¶

Cancel the invitation using invitee_id of the user from the organization.

Parameters

invitee_id (int) – the identifier for the user being invited, to cancel its invitation

Returns

bool

conceal_member(username)¶

Conceal username’s membership in this organization.

Parameters

username (str) – username of the organization member to conceal

Returns

True if successful, False otherwise

Return type

bool

create_hook(name, config, events=['push'], active=True)¶

Create a hook on this organization.

Parameters
  • name (str) – (required), name of the hook

  • config (dict) – (required), key-value pairs which act as settings for this hook

  • events (list) – (optional), events the hook is triggered for

  • active (bool) – (optional), whether the hook is actually triggered

Returns

the created hook

Return type

OrganizationHook

create_project(name, body='')¶

Create a project for this organization.

If the client is authenticated and a member of the organization, this will create a new project in the organization.

Parameters
  • name (str) – (required), name of the project

  • body (str) – (optional), the body of the project

Returns

the new project

Return type

Project

create_repository(name, description='', homepage='', private=False, has_issues=True, has_wiki=True, team_id=0, auto_init=False, gitignore_template='', license_template='', has_projects=True)¶

Create a repository for this organization.

If the client is authenticated and a member of the organization, this will create a new repository in the organization.

name should be no longer than 100 characters

Parameters
  • name (str) –

    (required), name of the repository

    Warning

    this should be no longer than 100 characters

  • description (str) – (optional)

  • homepage (str) – (optional)

  • private (bool) – (optional), If True, create a private repository. API default: False

  • has_issues (bool) – (optional), If True, enable issues for this repository. API default: True

  • has_wiki (bool) – (optional), If True, enable the wiki for this repository. API default: True

  • team_id (int) – (optional), id of the team that will be granted access to this repository

  • auto_init (bool) – (optional), auto initialize the repository.

  • gitignore_template (str) – (optional), name of the template; this is ignored if auto_int is False.

  • license_template (str) – (optional), name of the license; this is ignored if auto_int is False.

  • has_projects (bool) – (optional), If True, enable projects for this repository. API default: True

Returns

the created repository

Return type

Repository

create_team(name: str, repo_names: Optional[Sequence[str]] = [], maintainers: Optional[Union[Sequence[str], Sequence[_users._User]]] = [], permission: str = 'pull', parent_team_id: Optional[int] = None, privacy: str = 'secret')¶

Create a new team and return it.

This only works if the authenticated user owns this organization.

Parameters
  • name (str) – (required), name to be given to the team

  • repo_names (list) – (optional) repositories, e.g. [‘github/dotfiles’]

  • maintainers (list) – (optional) list of usernames who will be maintainers

  • permission (str) –

    (optional), options:

    • pull – (default) members can not push or administer

      repositories accessible by this team

    • push – members can push and pull but not administer

      repositories accessible by this team

    • admin – members can push, pull and administer

      repositories accessible by this team

  • parent_team_id (int) – (optional), the ID of a team to set as the parent team.

  • privacy (str) –

    (optional), options:

    • secret – (default) only visible to organization

      owners and members of this team

    • closed – visible to all members of this organization

Returns

the created team

Return type

Team

edit(billing_email=None, company=None, email=None, location=None, name=None, description=None, has_organization_projects=None, has_repository_projects=None, default_repository_permission=None, members_can_create_repositories=None)¶

Edit this organization.

Parameters
  • billing_email (str) – (optional) Billing email address (private)

  • company (str) – (optional)

  • email (str) – (optional) Public email address

  • location (str) – (optional)

  • name (str) – (optional)

  • description (str) – (optional) The description of the company.

  • has_organization_projects (bool) – (optional) Toggles whether organization projects are enabled for the organization.

  • has_repository_projects (bool) – (optional) Toggles whether repository projects are enabled for repositories that belong to the organization.

  • default_repository_permission (string) –

    (optional) Default permission level members have for organization repositories:

    • read – (default) can pull, but not push to or administer

      this repository.

    • write – can pull and push, but not administer this

      repository.

    • admin – can pull, push, and administer this repository.

    • none – no permissions granted by default.

  • members_can_create_repositories (bool) –

    (optional) Toggles ability of non-admin organization members to create repositories:

    • True – (default) all organization members can create

      repositories.

    • False – only admin members can create repositories.

Returns

True if successful, False otherwise

Return type

bool

failed_invitations()¶

List failed organization invitations.

Returns

bool

classmethod from_dict(json_dict, session)¶

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)¶

Return an instance of this class formed from json.

hook(hook_id)¶

Get a single hook.

Parameters

hook_id (int) – (required), id of the hook

Returns

the hook

Return type

OrganizationHook

hooks(number=-1, etag=None)¶

Iterate over hooks registered on this organization.

Parameters
  • number (int) – (optional), number of hoks to return. Default: -1 returns all hooks

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of hooks

Return type

OrganizationHook

invitations(number=-1, etag=None)¶

Iterate over outstanding invitations to this organization.

Returns

generator of invitation objects

Return type

Invitation

invite(team_ids, invitee_id=None, email=None, role='direct_member')¶

Invite the user to join this organization.

Parameters
  • team_ids (list[int]) – (required), list of team identifiers to invite the user to

  • invitee_id (int) – (required if email is not specified), the identifier for the user being invited

  • email (str) – (required if invitee_id is not specified), the email address of the user being invited

  • role (str) – (optional) role to provide to the invited user. Must be one of

Returns

the created invitation

Return type

Invitation

is_blocking(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Check if this organization is blocking a specific user.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to unblock.

Returns

True if successful, Fales otherwise

Return type

bool

is_member(username)¶

Check if the user named username is a member.

Parameters

username (str) – name of the user you’d like to check

Returns

True if successful, False otherwise

Return type

bool

is_public_member(username)¶

Check if the user named username is a public member.

Parameters

username (str) – name of the user you’d like to check

Returns

True if the user is a public member, False otherwise

Return type

bool

members(filter=None, role=None, number=-1, etag=None)¶

Iterate over members of this organization.

Parameters
  • filter (str) – (optional), filter members returned by this method. Can be one of: "2fa_disabled", "all",. Default: "all". Filtering by "2fa_disabled" is only available for organization owners with private repositories.

  • role (str) – (optional), filter members returned by their role. Can be one of: "all", "admin", "member". Default: "all".

  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of members of this organization

Return type

ShortUser

membership_for(username)¶

Obtain the membership status of username.

Implements https://developer.github.com/v3/orgs/members/#get-organization-membership

Parameters

username (str) – (required), username name of the user

Returns

the membership information

Return type

Membership

new_session()¶

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

project(id, etag=None)¶

Return the organization project with the given ID.

Parameters

id (int) – (required), ID number of the project

Returns

requested project

Return type

Project

projects(number=-1, etag=None)¶

Iterate over projects for this organization.

Parameters
  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of organization projects

Return type

Project

public_events(number=-1, etag=None)¶

Iterate over public events for this org.

Parameters
  • number (int) – (optional), number of events to return. Default: -1 iterates over all events available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of public events

Return type

Event

public_members(number=-1, etag=None)¶

Iterate over public members of this organization.

Parameters
  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of public members

Return type

ShortUser

publicize_member(username: str) → bool¶

Make username’s membership in this organization public.

Parameters

username (str) – the name of the user whose membership you wish to publicize

Returns

True if successful, False otherwise

Return type

bool

property ratelimit_remaining¶

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) → GitHubCore¶

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

remove_member(username: str) → bool¶

Remove the user named username from this organization.

Note

Only a user may publicize their own membership. See also: https://developer.github.com/v3/orgs/members/#publicize-a-users-membership

Parameters

username (str) – name of the user to remove from the org

Returns

True if successful, False otherwise

Return type

bool

remove_membership(username)¶

Remove username from this organization.

Unlike remove_member, this will cancel a pending invitation.

Parameters

username (str) – (required), username of the member to remove

Returns

bool

remove_repository(repository: Union[Repository, ShortRepository, str], team_id: int)¶

Remove repository from the team with team_id.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • team_id (int) – (required), the unique identifier of the team

Returns

True if successful, False otherwise

Return type

bool

repositories(type='', number=-1, etag=None)¶

Iterate over repos for this organization.

Parameters
  • type (str) – (optional), accepted values: (‘all’, ‘public’, ‘member’, ‘private’, ‘forks’, ‘sources’), API default: ‘all’

  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of repositories in this organization

Return type

Repository

team(team_id: int) → Optional[Team]¶

Return the team specified by team_id.

Parameters

team_id (int) – (required), unique id for the team

Returns

the team identified by the id in this organization

Return type

Team

team_by_name(team_slug: str) → Optional[Team]¶

Return the team specified by team_slug.

Parameters

team_slug (str) – (required), slug for the team

Returns

the team identified by the slug in this organization

Return type

Team

teams(number=-1, etag=None)¶

Iterate over teams that are part of this organization.

Parameters
  • number (int) – (optional), number of teams to return. Default: -1 returns all available teams.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of this organization’s teams

Return type

ShortTeam

unblock(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Unblock a specific user from an organization.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to unblock.

Returns

True if successful, Fales otherwise

Return type

bool

class github3.orgs.Organization(json, session: GitHubSession)¶

Object for the full representation of a Organization.

GitHub’s API returns different amounts of information about orgs based upon how that information is retrieved. This object exists to represent the full amount of information returned for a specific org. For example, you would receive this class when calling organization(). To provide a clear distinction between the types of orgs, github3.py uses different classes with different sets of attributes.

Changed in version 1.0.0.

This object includes all attributes on ShortOrganization as well as the following:

blog¶

If set, the URL of this organization’s blog.

company¶

The name of the company that is associated with this organization.

created_at¶

A datetime instance representing the time and date when this organization was created.

email¶

The email address associated with this organization.

followers_count¶

The number of users following this organization. Organizations no longer have followers so this number will always be 0.

following_count¶

The number of users this organization follows. Organizations no longer follow users so this number will always be 0.

html_url¶

The URL used to view this organization in a browser.

location¶

The location of this organization, e.g., New York, NY.

name¶

The display name of this organization.

public_repos_count¶

The number of public repositories owned by thi sorganization.

add_or_update_membership(username, role='member')¶

Add a member or update their role.

Parameters
  • username (str) – (required), user to add or update.

  • role (str) – (optional), role to give to the user. Options are member, admin. Defaults to member.

Returns

the created or updated membership

Return type

Membership

Raises

ValueError if role is not a valid choice

add_repository(repository, team_id)¶

Add repository to team.

Changed in version 1.0: The second parameter used to be team but has been changed to team_id. This parameter is now required to be an integer to improve performance of this method.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • team_id (int) – (required), team id

Returns

True if successful, False otherwise

Return type

bool

all_events(username, number=-1, etag=None)¶

Iterate over all org events visible to the authenticated user.

Parameters
  • username (str) – (required), the username of the currently authenticated user.

  • number (int) – (optional), number of events to return. Default: -1 iterates over all events available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of events

Return type

Event

as_dict()¶

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()¶

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

block(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Block a specific user from an organization.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to block.

Returns

True if successful, Fales otherwise

Return type

bool

blocked_users(number: int = -1, etag: Optional[str] = None) → Generator[ShortUser, None, None]¶

Iterate over the users blocked by this organization.

New in version 2.1.0.

Parameters
  • number (int) – (optional), number of users to iterate over. Default: -1 iterates over all values

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of the members of this team

Return type

ShortUser

cancel_invite(invitee_id)¶

Cancel the invitation using invitee_id of the user from the organization.

Parameters

invitee_id (int) – the identifier for the user being invited, to cancel its invitation

Returns

bool

conceal_member(username)¶

Conceal username’s membership in this organization.

Parameters

username (str) – username of the organization member to conceal

Returns

True if successful, False otherwise

Return type

bool

create_hook(name, config, events=['push'], active=True)¶

Create a hook on this organization.

Parameters
  • name (str) – (required), name of the hook

  • config (dict) – (required), key-value pairs which act as settings for this hook

  • events (list) – (optional), events the hook is triggered for

  • active (bool) – (optional), whether the hook is actually triggered

Returns

the created hook

Return type

OrganizationHook

create_project(name, body='')¶

Create a project for this organization.

If the client is authenticated and a member of the organization, this will create a new project in the organization.

Parameters
  • name (str) – (required), name of the project

  • body (str) – (optional), the body of the project

Returns

the new project

Return type

Project

create_repository(name, description='', homepage='', private=False, has_issues=True, has_wiki=True, team_id=0, auto_init=False, gitignore_template='', license_template='', has_projects=True)¶

Create a repository for this organization.

If the client is authenticated and a member of the organization, this will create a new repository in the organization.

name should be no longer than 100 characters

Parameters
  • name (str) –

    (required), name of the repository

    Warning

    this should be no longer than 100 characters

  • description (str) – (optional)

  • homepage (str) – (optional)

  • private (bool) – (optional), If True, create a private repository. API default: False

  • has_issues (bool) – (optional), If True, enable issues for this repository. API default: True

  • has_wiki (bool) – (optional), If True, enable the wiki for this repository. API default: True

  • team_id (int) – (optional), id of the team that will be granted access to this repository

  • auto_init (bool) – (optional), auto initialize the repository.

  • gitignore_template (str) – (optional), name of the template; this is ignored if auto_int is False.

  • license_template (str) – (optional), name of the license; this is ignored if auto_int is False.

  • has_projects (bool) – (optional), If True, enable projects for this repository. API default: True

Returns

the created repository

Return type

Repository

create_team(name: str, repo_names: Optional[Sequence[str]] = [], maintainers: Optional[Union[Sequence[str], Sequence[_users._User]]] = [], permission: str = 'pull', parent_team_id: Optional[int] = None, privacy: str = 'secret')¶

Create a new team and return it.

This only works if the authenticated user owns this organization.

Parameters
  • name (str) – (required), name to be given to the team

  • repo_names (list) – (optional) repositories, e.g. [‘github/dotfiles’]

  • maintainers (list) – (optional) list of usernames who will be maintainers

  • permission (str) –

    (optional), options:

    • pull – (default) members can not push or administer

      repositories accessible by this team

    • push – members can push and pull but not administer

      repositories accessible by this team

    • admin – members can push, pull and administer

      repositories accessible by this team

  • parent_team_id (int) – (optional), the ID of a team to set as the parent team.

  • privacy (str) –

    (optional), options:

    • secret – (default) only visible to organization

      owners and members of this team

    • closed – visible to all members of this organization

Returns

the created team

Return type

Team

edit(billing_email=None, company=None, email=None, location=None, name=None, description=None, has_organization_projects=None, has_repository_projects=None, default_repository_permission=None, members_can_create_repositories=None)¶

Edit this organization.

Parameters
  • billing_email (str) – (optional) Billing email address (private)

  • company (str) – (optional)

  • email (str) – (optional) Public email address

  • location (str) – (optional)

  • name (str) – (optional)

  • description (str) – (optional) The description of the company.

  • has_organization_projects (bool) – (optional) Toggles whether organization projects are enabled for the organization.

  • has_repository_projects (bool) – (optional) Toggles whether repository projects are enabled for repositories that belong to the organization.

  • default_repository_permission (string) –

    (optional) Default permission level members have for organization repositories:

    • read – (default) can pull, but not push to or administer

      this repository.

    • write – can pull and push, but not administer this

      repository.

    • admin – can pull, push, and administer this repository.

    • none – no permissions granted by default.

  • members_can_create_repositories (bool) –

    (optional) Toggles ability of non-admin organization members to create repositories:

    • True – (default) all organization members can create

      repositories.

    • False – only admin members can create repositories.

Returns

True if successful, False otherwise

Return type

bool

failed_invitations()¶

List failed organization invitations.

Returns

bool

classmethod from_dict(json_dict, session)¶

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)¶

Return an instance of this class formed from json.

hook(hook_id)¶

Get a single hook.

Parameters

hook_id (int) – (required), id of the hook

Returns

the hook

Return type

OrganizationHook

hooks(number=-1, etag=None)¶

Iterate over hooks registered on this organization.

Parameters
  • number (int) – (optional), number of hoks to return. Default: -1 returns all hooks

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of hooks

Return type

OrganizationHook

invitations(number=-1, etag=None)¶

Iterate over outstanding invitations to this organization.

Returns

generator of invitation objects

Return type

Invitation

invite(team_ids, invitee_id=None, email=None, role='direct_member')¶

Invite the user to join this organization.

Parameters
  • team_ids (list[int]) – (required), list of team identifiers to invite the user to

  • invitee_id (int) – (required if email is not specified), the identifier for the user being invited

  • email (str) – (required if invitee_id is not specified), the email address of the user being invited

  • role (str) – (optional) role to provide to the invited user. Must be one of

Returns

the created invitation

Return type

Invitation

is_blocking(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Check if this organization is blocking a specific user.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to unblock.

Returns

True if successful, Fales otherwise

Return type

bool

is_member(username)¶

Check if the user named username is a member.

Parameters

username (str) – name of the user you’d like to check

Returns

True if successful, False otherwise

Return type

bool

is_public_member(username)¶

Check if the user named username is a public member.

Parameters

username (str) – name of the user you’d like to check

Returns

True if the user is a public member, False otherwise

Return type

bool

members(filter=None, role=None, number=-1, etag=None)¶

Iterate over members of this organization.

Parameters
  • filter (str) – (optional), filter members returned by this method. Can be one of: "2fa_disabled", "all",. Default: "all". Filtering by "2fa_disabled" is only available for organization owners with private repositories.

  • role (str) – (optional), filter members returned by their role. Can be one of: "all", "admin", "member". Default: "all".

  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of members of this organization

Return type

ShortUser

membership_for(username)¶

Obtain the membership status of username.

Implements https://developer.github.com/v3/orgs/members/#get-organization-membership

Parameters

username (str) – (required), username name of the user

Returns

the membership information

Return type

Membership

new_session()¶

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

project(id, etag=None)¶

Return the organization project with the given ID.

Parameters

id (int) – (required), ID number of the project

Returns

requested project

Return type

Project

projects(number=-1, etag=None)¶

Iterate over projects for this organization.

Parameters
  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of organization projects

Return type

Project

public_events(number=-1, etag=None)¶

Iterate over public events for this org.

Parameters
  • number (int) – (optional), number of events to return. Default: -1 iterates over all events available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of public events

Return type

Event

public_members(number=-1, etag=None)¶

Iterate over public members of this organization.

Parameters
  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of public members

Return type

ShortUser

publicize_member(username: str) → bool¶

Make username’s membership in this organization public.

Parameters

username (str) – the name of the user whose membership you wish to publicize

Returns

True if successful, False otherwise

Return type

bool

property ratelimit_remaining¶

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) → GitHubCore¶

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

remove_member(username: str) → bool¶

Remove the user named username from this organization.

Note

Only a user may publicize their own membership. See also: https://developer.github.com/v3/orgs/members/#publicize-a-users-membership

Parameters

username (str) – name of the user to remove from the org

Returns

True if successful, False otherwise

Return type

bool

remove_membership(username)¶

Remove username from this organization.

Unlike remove_member, this will cancel a pending invitation.

Parameters

username (str) – (required), username of the member to remove

Returns

bool

remove_repository(repository: Union[Repository, ShortRepository, str], team_id: int)¶

Remove repository from the team with team_id.

Parameters
  • repository (str) – (required), form: ‘user/repo’

  • team_id (int) – (required), the unique identifier of the team

Returns

True if successful, False otherwise

Return type

bool

repositories(type='', number=-1, etag=None)¶

Iterate over repos for this organization.

Parameters
  • type (str) – (optional), accepted values: (‘all’, ‘public’, ‘member’, ‘private’, ‘forks’, ‘sources’), API default: ‘all’

  • number (int) – (optional), number of members to return. Default: -1 will return all available.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of repositories in this organization

Return type

Repository

team(team_id: int) → Optional[Team]¶

Return the team specified by team_id.

Parameters

team_id (int) – (required), unique id for the team

Returns

the team identified by the id in this organization

Return type

Team

team_by_name(team_slug: str) → Optional[Team]¶

Return the team specified by team_slug.

Parameters

team_slug (str) – (required), slug for the team

Returns

the team identified by the slug in this organization

Return type

Team

teams(number=-1, etag=None)¶

Iterate over teams that are part of this organization.

Parameters
  • number (int) – (optional), number of teams to return. Default: -1 returns all available teams.

  • etag (str) – (optional), ETag from a previous request to the same endpoint

Returns

generator of this organization’s teams

Return type

ShortTeam

unblock(username: Union[ShortUser, User, AuthenticatedUser, Collaborator, Contributor, str]) → bool¶

Unblock a specific user from an organization.

New in version 2.1.0.

Parameters

username (str) – Name (or user-like instance) of the user to unblock.

Returns

True if successful, Fales otherwise

Return type

bool

Next Previous

© Copyright 2012-2021 - Ian Stapleton Cordasco Revision ce43e6e5.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
stable
3.2.0
3.1.2
3.1.1
3.1.0
3.0.0
2.0.0
1.2.0
1.1.0
1.0.2
1.0.1
1.0.0
develop
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.