From a87af49db8040474f0136dd2285d4af30fcaad9d Mon Sep 17 00:00:00 2001 From: Riley Shaw <30989490+ShineyDev@users.noreply.github.com> Date: Thu, 9 Jan 2025 13:41:59 +0000 Subject: [PATCH] implement ProjectOwner --- github/interfaces/__init__.py | 3 +++ github/interfaces/projectowner.py | 28 ++++++++++++++++++++++++++++ github/organization/organization.py | 7 ++++--- github/repository/issue.py | 6 ++++-- github/repository/pull.py | 6 ++++-- github/user/user.py | 7 ++++--- 6 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 github/interfaces/projectowner.py diff --git a/github/interfaces/__init__.py b/github/interfaces/__init__.py index 263799f3..eed2c8e1 100644 --- a/github/interfaces/__init__.py +++ b/github/interfaces/__init__.py @@ -22,6 +22,8 @@ from github.interfaces.packageowner import __all__ as _packageowner__all__ from github.interfaces.profileowner import * from github.interfaces.profileowner import __all__ as _profileowner__all__ +from github.interfaces.projectowner import * +from github.interfaces.projectowner import __all__ as _projectowner__all__ from github.interfaces.reactable import * from github.interfaces.reactable import __all__ as _reactable__all__ from github.interfaces.repositorynode import * @@ -58,6 +60,7 @@ *_packageowner__all__, *_repositorynode__all__, *_profileowner__all__, + *_projectowner__all__, *_reactable__all__, *_repositoryowner__all__, *_resource__all__, diff --git a/github/interfaces/projectowner.py b/github/interfaces/projectowner.py new file mode 100644 index 00000000..3b69fc3b --- /dev/null +++ b/github/interfaces/projectowner.py @@ -0,0 +1,28 @@ +from __future__ import annotations +from typing import TYPE_CHECKING + + +if TYPE_CHECKING: + from typing import TypedDict + + + class ProjectOwnerData(TypedDict): + # id: str # NOTE: on Node + # projectV2 # TODO + # projectsV2 # TODO + pass + + +class ProjectOwner: + """ + Represents an object that can own a :class:`~github.Project`. + """ + + __slots__ = () + + _data: ProjectOwnerData + + +__all__: list[str] = [ + "ProjectOwner", +] diff --git a/github/organization/organization.py b/github/organization/organization.py index 2be793d0..3e33b75b 100644 --- a/github/organization/organization.py +++ b/github/organization/organization.py @@ -14,7 +14,7 @@ from github.utility.types import DateTime import github -from github.interfaces import Actor, AnnouncementOwner, DiscussionAuthor, Node, PackageOwner, ProfileOwner, RepositoryOwner, Resource, Sponsorable, Type +from github.interfaces import Actor, AnnouncementOwner, DiscussionAuthor, Node, PackageOwner, ProfileOwner, ProjectOwner, RepositoryOwner, Resource, Sponsorable, Type from github.utility import MISSING @@ -29,6 +29,7 @@ from github.interfaces.node import NodeData from github.interfaces.packageowner import PackageOwnerData from github.interfaces.profileowner import ProfileOwnerData + from github.interfaces.projectowner import ProjectOwnerData from github.interfaces.repositoryowner import RepositoryOwnerData from github.interfaces.resource import ResourceData from github.interfaces.sponsorable import SponsorableData @@ -44,7 +45,7 @@ class OrganizationData( NodeData, PackageOwnerData, ProfileOwnerData, - # ProjectOwnerData, # TODO + ProjectOwnerData, RepositoryOwnerData, ResourceData, SponsorableData, @@ -99,7 +100,7 @@ class Organization( Node, PackageOwner, ProfileOwner, - # ProjectOwner, # TODO + ProjectOwner, RepositoryOwner, Resource, Sponsorable, diff --git a/github/repository/issue.py b/github/repository/issue.py index 18f51332..7e5574ab 100644 --- a/github/repository/issue.py +++ b/github/repository/issue.py @@ -11,7 +11,7 @@ from github.user.user import UserData import github -from github.interfaces import Assignable, Closable, Comment, Deletable, Labelable, Lockable, Node, Reactable, RepositoryNode, Resource, Subscribable, Type, Updatable +from github.interfaces import Assignable, Closable, Comment, Deletable, Labelable, Lockable, Node, ProjectOwner, Reactable, RepositoryNode, Resource, Subscribable, Type, Updatable from github.utility import MISSING @@ -26,6 +26,7 @@ from github.interfaces.labelable import LabelableData from github.interfaces.lockable import LockableData from github.interfaces.node import NodeData + from github.interfaces.projectowner import ProjectOwnerData from github.interfaces.reactable import ReactableData from github.interfaces.repositorynode import RepositoryNodeData from github.interfaces.resource import ResourceData @@ -45,7 +46,7 @@ class IssueData( LabelableData, LockableData, NodeData, - # ProjectOwnerData, # TODO + ProjectOwnerData, ReactableData, RepositoryNodeData, ResourceData, @@ -89,6 +90,7 @@ class Issue( Labelable, Lockable, Node, + ProjectOwner, Reactable, RepositoryNode, Resource, diff --git a/github/repository/pull.py b/github/repository/pull.py index 8213e4cd..2d896151 100644 --- a/github/repository/pull.py +++ b/github/repository/pull.py @@ -12,7 +12,7 @@ from github.utility.types import DateTime import github -from github.interfaces import Assignable, Closable, Comment, Labelable, Lockable, Node, Reactable, RepositoryNode, Resource, Type, Subscribable, Updatable +from github.interfaces import Assignable, Closable, Comment, Labelable, Lockable, Node, ProjectOwner, Reactable, RepositoryNode, Resource, Type, Subscribable, Updatable from github.utility import MISSING @@ -28,6 +28,7 @@ from github.interfaces.labelable import LabelableData from github.interfaces.lockable import LockableData from github.interfaces.node import NodeData + from github.interfaces.projectowner import ProjectOwnerData from github.interfaces.reactable import ReactableData from github.interfaces.repositorynode import RepositoryNodeData from github.interfaces.resource import ResourceData @@ -49,7 +50,7 @@ class PullData( LabelableData, LockableData, NodeData, - # ProjectOwnerData, # TODO + ProjectOwnerData, ReactableData, RepositoryNodeData, ResourceData, @@ -133,6 +134,7 @@ class Pull( Labelable, Lockable, Node, + ProjectOwner, Reactable, RepositoryNode, Resource, diff --git a/github/user/user.py b/github/user/user.py index fdcf7dfc..ac7d1614 100644 --- a/github/user/user.py +++ b/github/user/user.py @@ -16,7 +16,7 @@ from github.utility.types import DateTime import github -from github.interfaces import Actor, DiscussionAuthor, Node, PackageOwner, ProfileOwner, RepositoryOwner, Resource, Sponsorable, Type +from github.interfaces import Actor, DiscussionAuthor, Node, PackageOwner, ProfileOwner, ProjectOwner, RepositoryOwner, Resource, Sponsorable, Type from github.utility import MISSING @@ -29,6 +29,7 @@ from github.interfaces.node import NodeData from github.interfaces.packageowner import PackageOwnerData from github.interfaces.profileowner import ProfileOwnerData + from github.interfaces.projectowner import ProjectOwnerData from github.interfaces.repositoryowner import RepositoryOwnerData from github.interfaces.resource import ResourceData from github.interfaces.sponsorable import SponsorableData @@ -41,7 +42,7 @@ class UserData( NodeData, PackageOwnerData, ProfileOwnerData, - # ProjectOwnerData, # TODO (support-projects): GitHub Projects support + ProjectOwnerData, RepositoryOwnerData, ResourceData, SponsorableData, @@ -108,7 +109,7 @@ class User( Node, PackageOwner, ProfileOwner, - # ProjectOwner, # TODO (support-projects): GitHub Projects support + ProjectOwner, RepositoryOwner, Sponsorable, Type,