Module aiogithubapi.namespaces.projects
Methods for the projects namespace
https://docs.github.com/en/rest/reference/projects
Expand source code
"""
Methods for the projects namespace
https://docs.github.com/en/rest/reference/projects
"""
from __future__ import annotations
from typing import Any, Dict
from aiogithubapi.helpers import repository_full_name
from ..const import GitHubRequestKwarg, HttpMethod, RepositoryType
from ..models.projects import GitHubProjectModel
from ..models.response import GitHubResponseModel
from .base import BaseNamespace
class _BaseProjectsNamespace(BaseNamespace):
"""Methods for the base projects namespace"""
async def _list(
self,
endpoint: str,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[list[GitHubProjectModel]]:
"""Internal helper"""
response = await self._client.async_call_api(endpoint=endpoint, **kwargs)
response.data = [GitHubProjectModel(project) for project in response.data or []]
return response
async def _get(
self,
endpoint: str,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""Internal helper"""
response = await self._client.async_call_api(endpoint=endpoint, **kwargs)
response.data = GitHubProjectModel(response.data)
return response
async def _update(
self,
endpoint: str,
data: dict[str, Any],
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""Internal helper"""
response = await self._client.async_call_api(
endpoint=endpoint,
data=data,
method=HttpMethod.PATCH,
**kwargs,
)
response.data = GitHubProjectModel(response.data)
return response
async def _create(
self,
endpoint: str,
data: dict[str, Any],
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""Internal helper"""
response = await self._client.async_call_api(
endpoint=endpoint,
data=data,
method=HttpMethod.POST,
**kwargs,
)
response.data = GitHubProjectModel(response.data)
return response
async def _delete(
self,
endpoint: str,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[None]:
"""Internal helper"""
return await self._client.async_call_api(
endpoint=endpoint,
method=HttpMethod.DELETE,
**kwargs,
)
class GitHubBaseProjectsNamespace(_BaseProjectsNamespace):
"""Methods for the organization projects namespace"""
async def get(
self,
project_id: int,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""
Get a project
**Arguments**:
`project_id`
The project ID to return
https://docs.github.com/en/rest/reference/projects#list-organization-projects
"""
return await super()._get(endpoint=f"/projects/{project_id}", **kwargs)
async def update(
self,
project_id: int,
data: dict[str, Any],
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""
Get a project
**Arguments**:
`project_id`
The project ID to return
`data`
A dictionary of the data to update.
https://docs.github.com/en/rest/reference/projects#update-a-project
"""
return await super()._update(endpoint=f"/projects/{project_id}", data=data, **kwargs)
async def delete(
self,
project_id: int,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[None]:
"""
Delete a project
**Arguments**:
`project_id`
The project ID to return
https://docs.github.com/en/rest/reference/projects#delete-a-project
"""
return await super()._delete(endpoint=f"/projects/{project_id}", **kwargs)
class GitHubOrganizationProjectsNamespace(_BaseProjectsNamespace):
"""Methods for the organization projects namespace"""
async def list(
self,
org: str,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[list[GitHubProjectModel]]:
"""
List organization projects
**Arguments**:
`org`
The organization to return, example "octocat"
https://docs.github.com/en/rest/reference/projects#list-organization-projects
"""
return await super()._list(endpoint=f"/orgs/{org}/projects", **kwargs)
async def create(
self,
org: str,
name: str,
*,
body: str | None = None,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""
List organization projects
**Arguments**:
`org`
The organization to create the project for, example "octocat"
`name`
The name of the project.
`body`
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-an-organization-project
"""
return await super()._create(
endpoint=f"/orgs/{org}/projects",
data={"name": name, "body": body},
**kwargs,
)
class GitHubRepositoryProjectsNamespace(_BaseProjectsNamespace):
"""Methods for the repository projects namespace"""
async def list(
self,
repository: RepositoryType,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[list[GitHubProjectModel]]:
"""
List repository projects
**Arguments**:
`repository`
The repository to return the zip from, example "octocat/hello-world"
https://docs.github.com/en/rest/reference/projects#list-repository-projects
"""
return await super()._list(
endpoint=f"/repos/{repository_full_name(repository)}/projects",
**kwargs,
)
async def create(
self,
repository: RepositoryType,
name: str,
*,
body: str | None = None,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""
Create a new repoitory project
**Arguments**:
`repository`
The repository to return the zip from, example "octocat/hello-world"
`name`
The name of the project.
`body`
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-an-organization-project
"""
return await super()._create(
endpoint=f"/repos/{repository_full_name(repository)}/projects",
data={"name": name, "body": body},
**kwargs,
)
class GitHubUsersProjectsNamespace(_BaseProjectsNamespace):
"""Methods for the users projects namespace"""
async def list(
self,
username: str,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[list[GitHubProjectModel]]:
"""
List user projects
**Arguments**:
`username`
The username to return project from, example "octocat"
https://docs.github.com/en/rest/reference/projects#list-user-projects
"""
return await super()._list(endpoint=f"/users/{username}/projects", **kwargs)
class GitHubUserProjectsNamespace(_BaseProjectsNamespace):
"""Methods for the user projects namespace"""
async def create(
self,
name: str,
*,
body: str | None = None,
**kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubProjectModel]:
"""
Create a new project for the authenticated user
**Arguments**:
`name`
The name of the project.
`body`
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-a-user-project
"""
return await super()._create(
endpoint=f"/user/projects",
data={"name": name, "body": body},
**kwargs,
)
Classes
class GitHubBaseProjectsNamespace (client: GitHubClient)
-
Methods for the organization projects namespace
Initialise the namespace.
Expand source code
class GitHubBaseProjectsNamespace(_BaseProjectsNamespace): """Methods for the organization projects namespace""" async def get( self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Get a project **Arguments**: `project_id` The project ID to return https://docs.github.com/en/rest/reference/projects#list-organization-projects """ return await super()._get(endpoint=f"/projects/{project_id}", **kwargs) async def update( self, project_id: int, data: dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Get a project **Arguments**: `project_id` The project ID to return `data` A dictionary of the data to update. https://docs.github.com/en/rest/reference/projects#update-a-project """ return await super()._update(endpoint=f"/projects/{project_id}", data=data, **kwargs) async def delete( self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[None]: """ Delete a project **Arguments**: `project_id` The project ID to return https://docs.github.com/en/rest/reference/projects#delete-a-project """ return await super()._delete(endpoint=f"/projects/{project_id}", **kwargs)
Ancestors
- aiogithubapi.namespaces.projects._BaseProjectsNamespace
- BaseNamespace
Methods
async def delete(self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[None]
-
Delete a project
Arguments:
project_id
The project ID to return
https://docs.github.com/en/rest/reference/projects#delete-a-project
Expand source code
async def delete( self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[None]: """ Delete a project **Arguments**: `project_id` The project ID to return https://docs.github.com/en/rest/reference/projects#delete-a-project """ return await super()._delete(endpoint=f"/projects/{project_id}", **kwargs)
async def get(self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubProjectModel]
-
Get a project
Arguments:
project_id
The project ID to return
https://docs.github.com/en/rest/reference/projects#list-organization-projects
Expand source code
async def get( self, project_id: int, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Get a project **Arguments**: `project_id` The project ID to return https://docs.github.com/en/rest/reference/projects#list-organization-projects """ return await super()._get(endpoint=f"/projects/{project_id}", **kwargs)
async def update(self, project_id: int, data: dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubProjectModel]
-
Get a project
Arguments:
project_id
The project ID to return
data
A dictionary of the data to update.
https://docs.github.com/en/rest/reference/projects#update-a-project
Expand source code
async def update( self, project_id: int, data: dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Get a project **Arguments**: `project_id` The project ID to return `data` A dictionary of the data to update. https://docs.github.com/en/rest/reference/projects#update-a-project """ return await super()._update(endpoint=f"/projects/{project_id}", data=data, **kwargs)
class GitHubOrganizationProjectsNamespace (client: GitHubClient)
-
Methods for the organization projects namespace
Initialise the namespace.
Expand source code
class GitHubOrganizationProjectsNamespace(_BaseProjectsNamespace): """Methods for the organization projects namespace""" async def list( self, org: str, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List organization projects **Arguments**: `org` The organization to return, example "octocat" https://docs.github.com/en/rest/reference/projects#list-organization-projects """ return await super()._list(endpoint=f"/orgs/{org}/projects", **kwargs) async def create( self, org: str, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ List organization projects **Arguments**: `org` The organization to create the project for, example "octocat" `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-an-organization-project """ return await super()._create( endpoint=f"/orgs/{org}/projects", data={"name": name, "body": body}, **kwargs, )
Ancestors
- aiogithubapi.namespaces.projects._BaseProjectsNamespace
- BaseNamespace
Methods
async def create(self, org: str, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubProjectModel]
-
List organization projects
Arguments:
org
The organization to create the project for, example "octocat"
name
The name of the project.
body
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-an-organization-project
Expand source code
async def create( self, org: str, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ List organization projects **Arguments**: `org` The organization to create the project for, example "octocat" `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-an-organization-project """ return await super()._create( endpoint=f"/orgs/{org}/projects", data={"name": name, "body": body}, **kwargs, )
async def list(self, org: str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[list[GitHubProjectModel]]
-
List organization projects
Arguments:
org
The organization to return, example "octocat"
https://docs.github.com/en/rest/reference/projects#list-organization-projects
Expand source code
async def list( self, org: str, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List organization projects **Arguments**: `org` The organization to return, example "octocat" https://docs.github.com/en/rest/reference/projects#list-organization-projects """ return await super()._list(endpoint=f"/orgs/{org}/projects", **kwargs)
class GitHubRepositoryProjectsNamespace (client: GitHubClient)
-
Methods for the repository projects namespace
Initialise the namespace.
Expand source code
class GitHubRepositoryProjectsNamespace(_BaseProjectsNamespace): """Methods for the repository projects namespace""" async def list( self, repository: RepositoryType, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List repository projects **Arguments**: `repository` The repository to return the zip from, example "octocat/hello-world" https://docs.github.com/en/rest/reference/projects#list-repository-projects """ return await super()._list( endpoint=f"/repos/{repository_full_name(repository)}/projects", **kwargs, ) async def create( self, repository: RepositoryType, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Create a new repoitory project **Arguments**: `repository` The repository to return the zip from, example "octocat/hello-world" `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-an-organization-project """ return await super()._create( endpoint=f"/repos/{repository_full_name(repository)}/projects", data={"name": name, "body": body}, **kwargs, )
Ancestors
- aiogithubapi.namespaces.projects._BaseProjectsNamespace
- BaseNamespace
Methods
async def create(self, repository: RepositoryType, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubProjectModel]
-
Create a new repoitory project
Arguments:
repository
The repository to return the zip from, example "octocat/hello-world"
name
The name of the project.
body
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-an-organization-project
Expand source code
async def create( self, repository: RepositoryType, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Create a new repoitory project **Arguments**: `repository` The repository to return the zip from, example "octocat/hello-world" `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-an-organization-project """ return await super()._create( endpoint=f"/repos/{repository_full_name(repository)}/projects", data={"name": name, "body": body}, **kwargs, )
async def list(self, repository: RepositoryType, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[list[GitHubProjectModel]]
-
List repository projects
Arguments:
repository
The repository to return the zip from, example "octocat/hello-world"
https://docs.github.com/en/rest/reference/projects#list-repository-projects
Expand source code
async def list( self, repository: RepositoryType, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List repository projects **Arguments**: `repository` The repository to return the zip from, example "octocat/hello-world" https://docs.github.com/en/rest/reference/projects#list-repository-projects """ return await super()._list( endpoint=f"/repos/{repository_full_name(repository)}/projects", **kwargs, )
class GitHubUserProjectsNamespace (client: GitHubClient)
-
Methods for the user projects namespace
Initialise the namespace.
Expand source code
class GitHubUserProjectsNamespace(_BaseProjectsNamespace): """Methods for the user projects namespace""" async def create( self, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Create a new project for the authenticated user **Arguments**: `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-a-user-project """ return await super()._create( endpoint=f"/user/projects", data={"name": name, "body": body}, **kwargs, )
Ancestors
- aiogithubapi.namespaces.projects._BaseProjectsNamespace
- BaseNamespace
Methods
async def create(self, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubProjectModel]
-
Create a new project for the authenticated user
Arguments:
name
The name of the project.
body
The description of the project.
https://docs.github.com/en/rest/reference/projects#create-a-user-project
Expand source code
async def create( self, name: str, *, body: str | None = None, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubProjectModel]: """ Create a new project for the authenticated user **Arguments**: `name` The name of the project. `body` The description of the project. https://docs.github.com/en/rest/reference/projects#create-a-user-project """ return await super()._create( endpoint=f"/user/projects", data={"name": name, "body": body}, **kwargs, )
class GitHubUsersProjectsNamespace (client: GitHubClient)
-
Methods for the users projects namespace
Initialise the namespace.
Expand source code
class GitHubUsersProjectsNamespace(_BaseProjectsNamespace): """Methods for the users projects namespace""" async def list( self, username: str, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List user projects **Arguments**: `username` The username to return project from, example "octocat" https://docs.github.com/en/rest/reference/projects#list-user-projects """ return await super()._list(endpoint=f"/users/{username}/projects", **kwargs)
Ancestors
- aiogithubapi.namespaces.projects._BaseProjectsNamespace
- BaseNamespace
Methods
async def list(self, username: str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[list[GitHubProjectModel]]
-
List user projects
Arguments:
username
The username to return project from, example "octocat"
https://docs.github.com/en/rest/reference/projects#list-user-projects
Expand source code
async def list( self, username: str, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[list[GitHubProjectModel]]: """ List user projects **Arguments**: `username` The username to return project from, example "octocat" https://docs.github.com/en/rest/reference/projects#list-user-projects """ return await super()._list(endpoint=f"/users/{username}/projects", **kwargs)