Skip to content

github ¤

Classes:

GitHub ¤

GitHub(token: str)

Bases: Client

GitHub client.

Initialize GitHub API client.

Parameters:

  • token (str) –

    A GitHub token. Recommended scopes: admin:org and read:user.

Methods:

consolidate_beneficiaries ¤

consolidate_beneficiaries(
    sponsors: Sponsors,
    beneficiaries: Mapping[
        str,
        Mapping[
            str, Iterable[str | Mapping[str, str | bool]]
        ],
    ],
) -> None

Parameters:

create_repo ¤

create_repo(
    repository: str,
    *,
    description: str | None = None,
    homepage: str | None = None,
    private: bool = False,
    has_issues: bool = False,
    has_projects: bool = False,
    has_wiki: bool = False,
    has_discussions: bool = False
) -> None

Create a repository.

Parameters:

  • repository (str) –

    The repository, like namespace/repo.

  • description (str | None, default: None ) –

    The repository description.

  • homepage (str | None, default: None ) –

    The repository homepage.

  • private (bool, default: False ) –

    Whether the repository is private.

  • has_issues (bool, default: False ) –

    Enable issues.

  • has_projects (bool, default: False ) –

    Enable projects.

  • has_wiki (bool, default: False ) –

    Enable the wiki.

  • has_discussions (bool, default: False ) –

    Enable discussions.

get_failed_invites ¤

get_failed_invites(org: str) -> set[str]

Parameters:

  • org (str) –

    The organization name.

Returns:

  • set[str]

    A set of member names.

get_issues ¤

get_issues(
    github_accounts: Iterable[str],
    known_github_users: Iterable[Account] | None = None,
    *,
    allow_labels: set[str] | None = None
) -> IssueDict

Get issues from GitHub.

Parameters:

  • github_accounts (Iterable[str]) –

    A list of GitHub account names.

  • known_github_users (Iterable[Account] | None, default: None ) –

    Known user accounts.

  • allow_labels (set[str] | None, default: None ) –

    A set of labels to keep.

Returns:

  • IssueDict

    A dictionary of issues.

get_org_members ¤

get_org_members(org: str) -> set[str]

Get organization members (username only).

Parameters:

  • org (str) –

    The organization name.

Returns:

  • set[str]

    A set of member names.

get_sponsors ¤

get_sponsors(*, exclude_private: bool = False) -> Sponsors

Get GitHub sponsors.

Parameters:

  • exclude_private (bool, default: False ) –

Returns:

get_team_invites ¤

get_team_invites(org: str, team: str) -> set[str]

Get pending invitations to a GitHub team.

Parameters:

  • org (str) –

    The organization name.

  • team (str) –

    The team name.

Returns:

  • set[str]

    A set of member names.

get_team_members ¤

get_team_members(org: str, team: str) -> set[str]

Get members of a GitHub team.

Parameters:

  • org (str) –

    The organization name.

  • team (str) –

    The team name.

Returns:

  • set[str]

    A set of member names.

grant_access ¤

grant_access(user: str, org: str, team: str) -> None

Grant access to a user to a GitHub team.

Parameters:

  • user (str) –

    A username.

  • org (str) –

    An organization name.

  • team (str) –

    A team name.

is_org ¤

is_org(account: str) -> bool

Check if an account is an organization.

Parameters:

  • account (str) –

    An account name.

Returns:

  • bool

    Whether the account is an organization.

revoke_access ¤

revoke_access(user: str, org: str, team: str) -> None

Revoke access from a user to a GitHub team.

Parameters:

  • user (str) –

    A username.

  • org (str) –

    An organization name.

  • team (str) –

    A team name.

sync_team ¤

sync_team(
    team: str,
    *,
    sponsors: Sponsors | None = None,
    min_amount: int | None = None,
    include_users: set[str] | None = None,
    exclude_users: set[str] | None = None,
    dry_run: bool = False
) -> None

Sync sponsors with members of a GitHub team.

Parameters:

  • team (str) –

    GitHub team to sync sponsors with.

  • sponsors (Sponsors | None, default: None ) –

    Sponsors data.

  • min_amount (int | None, default: None ) –

    Minimum amount to be considered a sponsor.

  • include_users (set[str] | None, default: None ) –

    Users to always grant access to.

  • exclude_users (set[str] | None, default: None ) –

    Users to never grant access to.

  • dry_run (bool, default: False ) –

    Display changes without applying them.