Skip to content

prefect_github.credentials

Credential classes used to perform authenticated interactions with GitHub

GitHubCredentials

Bases: CredentialsBlock

Block used to manage GitHub authentication.

Attributes:

Name Type Description
token Optional[SecretStr]

the token to authenticate into GitHub.

Examples:

Load stored GitHub credentials:

from prefect_github import GitHubCredentials
github_credentials_block = GitHubCredentials.load("BLOCK_NAME")
Source code in prefect_github/credentials.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class GitHubCredentials(CredentialsBlock):
    """
    Block used to manage GitHub authentication.

    Attributes:
        token: the token to authenticate into GitHub.

    Examples:
        Load stored GitHub credentials:
        ```python
        from prefect_github import GitHubCredentials
        github_credentials_block = GitHubCredentials.load("BLOCK_NAME")
        ```
    """

    _block_type_name = "GitHub Credentials"
    _logo_url = "https://cdn.sanity.io/images/3ugk85nk/production/41971cfecfea5f79ff334164f06ecb34d1038dd4-250x250.png"  # noqa
    _documentation_url = "https://prefecthq.github.io/prefect-github/credentials/#prefect_github.credentials.GitHubCredentials"  # noqa

    token: Optional[SecretStr] = Field(
        default=None, description="A GitHub personal access token (PAT)."
    )

    def get_client(self) -> HTTPEndpoint:
        """
        Gets an authenticated GitHub GraphQL HTTPEndpoint client.

        Returns:
            An authenticated GitHub GraphQL HTTPEndpoint client.

        Example:
            Gets an authenticated GitHub GraphQL HTTPEndpoint client.
            ```python
            from prefect_github import GitHubCredentials

            github_credentials = GitHubCredentials(token=token)
            client = github_credentials.get_client()
            ```
        """

        if self.token is not None:
            base_headers = {"Authorization": f"Bearer {self.token.get_secret_value()}"}
        else:
            base_headers = None

        endpoint = HTTPEndpoint(
            "https://api.github.com/graphql", base_headers=base_headers
        )
        return endpoint

get_client()

Gets an authenticated GitHub GraphQL HTTPEndpoint client.

Returns:

Type Description
HTTPEndpoint

An authenticated GitHub GraphQL HTTPEndpoint client.

Example

Gets an authenticated GitHub GraphQL HTTPEndpoint client.

from prefect_github import GitHubCredentials

github_credentials = GitHubCredentials(token=token)
client = github_credentials.get_client()
Source code in prefect_github/credentials.py
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
def get_client(self) -> HTTPEndpoint:
    """
    Gets an authenticated GitHub GraphQL HTTPEndpoint client.

    Returns:
        An authenticated GitHub GraphQL HTTPEndpoint client.

    Example:
        Gets an authenticated GitHub GraphQL HTTPEndpoint client.
        ```python
        from prefect_github import GitHubCredentials

        github_credentials = GitHubCredentials(token=token)
        client = github_credentials.get_client()
        ```
    """

    if self.token is not None:
        base_headers = {"Authorization": f"Bearer {self.token.get_secret_value()}"}
    else:
        base_headers = None

    endpoint = HTTPEndpoint(
        "https://api.github.com/graphql", base_headers=base_headers
    )
    return endpoint