Module aiogithubapi.namespaces.issues

Methods for the issues namespace

https://docs.github.com/en/rest/reference/issues

Expand source code
"""
Methods for the issues namespace

https://docs.github.com/en/rest/reference/issues
"""
from __future__ import annotations

from typing import Any, Dict, List

from ..const import (
    GitHubIssueLockReason,
    GitHubRequestKwarg,
    HttpMethod,
    RepositoryType,
)
from ..helpers import repository_full_name
from ..models.issue import GitHubIssueModel
from ..models.issue_comment import GitHubIssueCommentModel
from ..models.response import GitHubResponseModel
from .base import BaseNamespace


class GitHubIssuesNamespace(BaseNamespace):
    """
    Methods for the issues namespace

    Note: GitHub's REST API v3 considers every pull request an issue,
    but not every issue is a pull request. For this reason, "Issues"
    endpoints may return both issues and pull requests in the response.
    You can identify pull requests by the pull_request key.
    """

    async def get(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Get an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to return, example "1"

        https://docs.github.com/en/rest/reference/issues#get-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
            **kwargs,
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def create(
        self,
        repository: RepositoryType,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Create an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `data`

         The data the issue will be created with, example {"title": "new title"}

        https://docs.github.com/en/rest/reference/issues#create-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def update(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Update an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to update, example "1"

         `data`

         The data to update, example {"title": "new title"}

        https://docs.github.com/en/rest/reference/issues#update-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def lock(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        lock_reason: GitHubIssueLockReason,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Lock an issue

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to lock, example "1"

         `lock_reason`

         The reason why the issue was locked;
            * off-topic
            * too heated
            * resolved
            * spam

        https://docs.github.com/en/rest/reference/issues#lock-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
            data={"lock_reason": lock_reason},
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PUT},
        )
        return response

    async def unlock(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Unlock an issue

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to lock, example "1"

        https://docs.github.com/en/rest/reference/issues#unlock-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
        )
        return response

    async def list(
        self,
        repository: RepositoryType,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueModel]]:
        """
         List repository issues

         **Arguments**:

         `repository`

         The repository to return, example "octocat/hello-world"

        https://docs.github.com/en/rest/reference/issues#list-repository-issues
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues",
            **kwargs,
        )
        response.data = [GitHubIssueModel(data) for data in response.data]
        return response

    async def get_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
        """
         Get an issue comment

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to return, example "1"

        https://docs.github.com/en/rest/reference/issues#list-issue-comments
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            **kwargs,
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def create_comment(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueCommentModel]:
        """
         Create an issue comment

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to create a comment in, example "1"

         `data`

         The data the issue will be created with, example {"body": "test"}

        https://docs.github.com/en/rest/reference/issues#create-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def update_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueCommentModel]:
        """
         Update an issue comment

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to update, example "1"

         `data`

         The data the issue will be created with, example {"body": "test"}

        https://docs.github.com/en/rest/reference/issues#update-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def delete_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Delete an issue comment

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to delete, example "1"

        https://docs.github.com/en/rest/reference/issues#delete-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
        )
        return response

    async def list_comments(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
        """
         List issue comments

         **Arguments**:

         `repository`

         The repository the comments belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to return comments for, example "1"

        https://docs.github.com/en/rest/reference/issues#list-issue-comments
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
            **kwargs,
        )
        response.data = [GitHubIssueCommentModel(data) for data in response.data]
        return response

Classes

class GitHubIssuesNamespace (client: GitHubClient)

Methods for the issues namespace

Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key.

Initialise the namespace.

Expand source code
class GitHubIssuesNamespace(BaseNamespace):
    """
    Methods for the issues namespace

    Note: GitHub's REST API v3 considers every pull request an issue,
    but not every issue is a pull request. For this reason, "Issues"
    endpoints may return both issues and pull requests in the response.
    You can identify pull requests by the pull_request key.
    """

    async def get(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Get an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to return, example "1"

        https://docs.github.com/en/rest/reference/issues#get-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
            **kwargs,
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def create(
        self,
        repository: RepositoryType,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Create an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `data`

         The data the issue will be created with, example {"title": "new title"}

        https://docs.github.com/en/rest/reference/issues#create-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def update(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueModel]:
        """
         Update an issue

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to update, example "1"

         `data`

         The data to update, example {"title": "new title"}

        https://docs.github.com/en/rest/reference/issues#update-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
        )
        response.data = GitHubIssueModel(response.data)
        return response

    async def lock(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        lock_reason: GitHubIssueLockReason,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Lock an issue

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to lock, example "1"

         `lock_reason`

         The reason why the issue was locked;
            * off-topic
            * too heated
            * resolved
            * spam

        https://docs.github.com/en/rest/reference/issues#lock-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
            data={"lock_reason": lock_reason},
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PUT},
        )
        return response

    async def unlock(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Unlock an issue

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to lock, example "1"

        https://docs.github.com/en/rest/reference/issues#unlock-an-issue
        """
        response = await self._client.async_call_api(
            endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
        )
        return response

    async def list(
        self,
        repository: RepositoryType,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueModel]]:
        """
         List repository issues

         **Arguments**:

         `repository`

         The repository to return, example "octocat/hello-world"

        https://docs.github.com/en/rest/reference/issues#list-repository-issues
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues",
            **kwargs,
        )
        response.data = [GitHubIssueModel(data) for data in response.data]
        return response

    async def get_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
        """
         Get an issue comment

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to return, example "1"

        https://docs.github.com/en/rest/reference/issues#list-issue-comments
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            **kwargs,
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def create_comment(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueCommentModel]:
        """
         Create an issue comment

         **Arguments**:

         `repository`

         The repository the issue belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to create a comment in, example "1"

         `data`

         The data the issue will be created with, example {"body": "test"}

        https://docs.github.com/en/rest/reference/issues#create-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def update_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        data: Dict[str, Any],
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[GitHubIssueCommentModel]:
        """
         Update an issue comment

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to update, example "1"

         `data`

         The data the issue will be created with, example {"body": "test"}

        https://docs.github.com/en/rest/reference/issues#update-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            data=data,
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
        )
        response.data = GitHubIssueCommentModel(response.data)
        return response

    async def delete_comment(
        self,
        repository: RepositoryType,
        comment_id: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[None]:
        """
         Delete an issue comment

         **Arguments**:

         `repository`

         The repository the comment belong to, example "octocat/hello-world"

         `comment_id`

         The ID of a comment in an issue number to delete, example "1"

        https://docs.github.com/en/rest/reference/issues#delete-an-issue-comment
        """
        response = await self._client.async_call_api(
            endpoint=(
                f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
            ),
            **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
        )
        return response

    async def list_comments(
        self,
        repository: RepositoryType,
        issue_number: int | str,
        **kwargs: Dict[GitHubRequestKwarg, Any],
    ) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
        """
         List issue comments

         **Arguments**:

         `repository`

         The repository the comments belong to, example "octocat/hello-world"

         `issue_number`

         The issue number to return comments for, example "1"

        https://docs.github.com/en/rest/reference/issues#list-issue-comments
        """
        response = await self._client.async_call_api(
            endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
            **kwargs,
        )
        response.data = [GitHubIssueCommentModel(data) for data in response.data]
        return response

Ancestors

Methods

async def create(self, repository: RepositoryType, data: Dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubIssueModel]

Create an issue

Arguments:

repository

The repository the issue belong to, example "octocat/hello-world"

data

The data the issue will be created with, example {"title": "new title"}

https://docs.github.com/en/rest/reference/issues#create-an-issue

Expand source code
async def create(
    self,
    repository: RepositoryType,
    data: Dict[str, Any],
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubIssueModel]:
    """
     Create an issue

     **Arguments**:

     `repository`

     The repository the issue belong to, example "octocat/hello-world"

     `data`

     The data the issue will be created with, example {"title": "new title"}

    https://docs.github.com/en/rest/reference/issues#create-an-issue
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues",
        data=data,
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
    )
    response.data = GitHubIssueModel(response.data)
    return response
async def create_comment(self, repository: RepositoryType, issue_number: int | str, data: Dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubIssueCommentModel]

Create an issue comment

Arguments:

repository

The repository the issue belong to, example "octocat/hello-world"

issue_number

The issue number to create a comment in, example "1"

data

The data the issue will be created with, example {"body": "test"}

https://docs.github.com/en/rest/reference/issues#create-an-issue-comment

Expand source code
async def create_comment(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    data: Dict[str, Any],
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubIssueCommentModel]:
    """
     Create an issue comment

     **Arguments**:

     `repository`

     The repository the issue belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to create a comment in, example "1"

     `data`

     The data the issue will be created with, example {"body": "test"}

    https://docs.github.com/en/rest/reference/issues#create-an-issue-comment
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
        data=data,
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.POST},
    )
    response.data = GitHubIssueCommentModel(response.data)
    return response
async def delete_comment(self, repository: RepositoryType, comment_id: int | str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[None]

Delete an issue comment

Arguments:

repository

The repository the comment belong to, example "octocat/hello-world"

comment_id

The ID of a comment in an issue number to delete, example "1"

https://docs.github.com/en/rest/reference/issues#delete-an-issue-comment

Expand source code
async def delete_comment(
    self,
    repository: RepositoryType,
    comment_id: int | str,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[None]:
    """
     Delete an issue comment

     **Arguments**:

     `repository`

     The repository the comment belong to, example "octocat/hello-world"

     `comment_id`

     The ID of a comment in an issue number to delete, example "1"

    https://docs.github.com/en/rest/reference/issues#delete-an-issue-comment
    """
    response = await self._client.async_call_api(
        endpoint=(
            f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
        ),
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
    )
    return response
async def get(self, repository: RepositoryType, issue_number: int | str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubIssueModel]

Get an issue

Arguments:

repository

The repository the issue belong to, example "octocat/hello-world"

issue_number

The issue number to return, example "1"

https://docs.github.com/en/rest/reference/issues#get-an-issue

Expand source code
async def get(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubIssueModel]:
    """
     Get an issue

     **Arguments**:

     `repository`

     The repository the issue belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to return, example "1"

    https://docs.github.com/en/rest/reference/issues#get-an-issue
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
        **kwargs,
    )
    response.data = GitHubIssueModel(response.data)
    return response
async def get_comment(self, repository: RepositoryType, comment_id: int | str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[List[GitHubIssueCommentModel]]

Get an issue comment

Arguments:

repository

The repository the issue belong to, example "octocat/hello-world"

comment_id

The ID of a comment in an issue number to return, example "1"

https://docs.github.com/en/rest/reference/issues#list-issue-comments

Expand source code
async def get_comment(
    self,
    repository: RepositoryType,
    comment_id: int | str,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
    """
     Get an issue comment

     **Arguments**:

     `repository`

     The repository the issue belong to, example "octocat/hello-world"

     `comment_id`

     The ID of a comment in an issue number to return, example "1"

    https://docs.github.com/en/rest/reference/issues#list-issue-comments
    """
    response = await self._client.async_call_api(
        endpoint=(
            f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
        ),
        **kwargs,
    )
    response.data = GitHubIssueCommentModel(response.data)
    return response
async def list(self, repository: RepositoryType, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[typing.List[GitHubIssueModel]]

List repository issues

Arguments:

repository

The repository to return, example "octocat/hello-world"

https://docs.github.com/en/rest/reference/issues#list-repository-issues

Expand source code
async def list(
    self,
    repository: RepositoryType,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[List[GitHubIssueModel]]:
    """
     List repository issues

     **Arguments**:

     `repository`

     The repository to return, example "octocat/hello-world"

    https://docs.github.com/en/rest/reference/issues#list-repository-issues
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues",
        **kwargs,
    )
    response.data = [GitHubIssueModel(data) for data in response.data]
    return response
async def list_comments(self, repository: RepositoryType, issue_number: int | str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[List[GitHubIssueCommentModel]]

List issue comments

Arguments:

repository

The repository the comments belong to, example "octocat/hello-world"

issue_number

The issue number to return comments for, example "1"

https://docs.github.com/en/rest/reference/issues#list-issue-comments

Expand source code
async def list_comments(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[List[GitHubIssueCommentModel]]:
    """
     List issue comments

     **Arguments**:

     `repository`

     The repository the comments belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to return comments for, example "1"

    https://docs.github.com/en/rest/reference/issues#list-issue-comments
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}/comments",
        **kwargs,
    )
    response.data = [GitHubIssueCommentModel(data) for data in response.data]
    return response
async def lock(self, repository: RepositoryType, issue_number: int | str, lock_reason: GitHubIssueLockReason, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[None]

Lock an issue

Arguments:

repository

The repository the comment belong to, example "octocat/hello-world"

issue_number

The issue number to lock, example "1"

lock_reason

The reason why the issue was locked; * off-topic * too heated * resolved * spam

https://docs.github.com/en/rest/reference/issues#lock-an-issue

Expand source code
async def lock(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    lock_reason: GitHubIssueLockReason,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[None]:
    """
     Lock an issue

     **Arguments**:

     `repository`

     The repository the comment belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to lock, example "1"

     `lock_reason`

     The reason why the issue was locked;
        * off-topic
        * too heated
        * resolved
        * spam

    https://docs.github.com/en/rest/reference/issues#lock-an-issue
    """
    response = await self._client.async_call_api(
        endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
        data={"lock_reason": lock_reason},
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PUT},
    )
    return response
async def unlock(self, repository: RepositoryType, issue_number: int | str, **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[None]

Unlock an issue

Arguments:

repository

The repository the comment belong to, example "octocat/hello-world"

issue_number

The issue number to lock, example "1"

https://docs.github.com/en/rest/reference/issues#unlock-an-issue

Expand source code
async def unlock(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[None]:
    """
     Unlock an issue

     **Arguments**:

     `repository`

     The repository the comment belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to lock, example "1"

    https://docs.github.com/en/rest/reference/issues#unlock-an-issue
    """
    response = await self._client.async_call_api(
        endpoint=(f"/repos/{repository_full_name(repository)}/issues/{issue_number}/lock"),
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.DELETE},
    )
    return response
async def update(self, repository: RepositoryType, issue_number: int | str, data: Dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubIssueModel]

Update an issue

Arguments:

repository

The repository the issue belong to, example "octocat/hello-world"

issue_number

The issue number to update, example "1"

data

The data to update, example {"title": "new title"}

https://docs.github.com/en/rest/reference/issues#update-an-issue

Expand source code
async def update(
    self,
    repository: RepositoryType,
    issue_number: int | str,
    data: Dict[str, Any],
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubIssueModel]:
    """
     Update an issue

     **Arguments**:

     `repository`

     The repository the issue belong to, example "octocat/hello-world"

     `issue_number`

     The issue number to update, example "1"

     `data`

     The data to update, example {"title": "new title"}

    https://docs.github.com/en/rest/reference/issues#update-an-issue
    """
    response = await self._client.async_call_api(
        endpoint=f"/repos/{repository_full_name(repository)}/issues/{issue_number}",
        data=data,
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
    )
    response.data = GitHubIssueModel(response.data)
    return response
async def update_comment(self, repository: RepositoryType, comment_id: int | str, data: Dict[str, Any], **kwargs: Dict[GitHubRequestKwarg, Any]) ‑> GitHubResponseModel[GitHubIssueCommentModel]

Update an issue comment

Arguments:

repository

The repository the comment belong to, example "octocat/hello-world"

comment_id

The ID of a comment in an issue number to update, example "1"

data

The data the issue will be created with, example {"body": "test"}

https://docs.github.com/en/rest/reference/issues#update-an-issue-comment

Expand source code
async def update_comment(
    self,
    repository: RepositoryType,
    comment_id: int | str,
    data: Dict[str, Any],
    **kwargs: Dict[GitHubRequestKwarg, Any],
) -> GitHubResponseModel[GitHubIssueCommentModel]:
    """
     Update an issue comment

     **Arguments**:

     `repository`

     The repository the comment belong to, example "octocat/hello-world"

     `comment_id`

     The ID of a comment in an issue number to update, example "1"

     `data`

     The data the issue will be created with, example {"body": "test"}

    https://docs.github.com/en/rest/reference/issues#update-an-issue-comment
    """
    response = await self._client.async_call_api(
        endpoint=(
            f"/repos/{repository_full_name(repository)}" f"/issues/comments/{comment_id}"
        ),
        data=data,
        **{**kwargs, GitHubRequestKwarg.METHOD: HttpMethod.PATCH},
    )
    response.data = GitHubIssueCommentModel(response.data)
    return response