""" Methods for the git namespace https://docs.github.com/en/rest/reference/git """ from __future__ import annotations from typing import Any, Dict from ..const import GitHubRequestKwarg, RepositoryType from ..models.git_tree import GitHubGitTreeModel from ..models.response import GitHubResponseModel from .base import BaseNamespace class GitHubGitNamespace(BaseNamespace): """Methods for the git namespace""" async def get_tree( self, repository: RepositoryType, tree_sha: str, **kwargs: Dict[GitHubRequestKwarg, Any], ) -> GitHubResponseModel[GitHubGitTreeModel]: """ Get a tree Returns a single tree using the SHA1 value for that tree. If truncated is true in the response then the number of items in the tree array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. **Arguments**: `repository` The repository to return the tree for, example "octocat/hello-world" `tree_sha` The tree SHA or ref to return https://docs.github.com/en/rest/reference/git#get-a-tree """ response = await self._client.async_call_api( endpoint=f"/repos/{repository}/git/trees/{tree_sha}", **kwargs, ) response.data = GitHubGitTreeModel(response.data) return response