Skip to content

Commit

Permalink
Add type hint for Organization.create_project() (#2032)
Browse files Browse the repository at this point in the history
Organization.create_project() did not have a type hint, add one, and a test case.
  • Loading branch information
karthik-kadajji committed Oct 12, 2021
1 parent 99e00a2 commit d71c25a
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 0 deletions.
2 changes: 2 additions & 0 deletions github/Organization.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ class Organization(CompletableGithubObject):
def remove_from_membership(self, member: NamedUser) -> None: ...
def remove_from_public_members(self, public_member: NamedUser) -> None: ...
def remove_outside_collaborator(self, collaborator: NamedUser) -> None: ...
def create_project(self, param: str, body: _NotSetType) -> None: ...
@property
def repos_url(self) -> str: ...
@property
Expand All @@ -206,3 +207,4 @@ class Organization(CompletableGithubObject):
def updated_at(self) -> datetime: ...
@property
def url(self) -> str: ...

13 changes: 13 additions & 0 deletions tests/Issue2030.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from . import Framework


class Organization(Framework.TestCase):
def testIssue2030CreateProject(self):
super().setUp()
project = "ultratendency"
self.user = self.g.get_user("karthik-kadajji-t")
self.org = self.g.get_organization("testkarthik")
self.org.create_project(project)
project = self.org.get_projects()[0].name

self.assertEqual("ultratendency", project)
44 changes: 44 additions & 0 deletions tests/ReplayData/Organization.testIssue2030CreateProject.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
https
GET
api.github.com
None
/users/karthik-kadajji-t
{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('Server', 'GitHub.com'), ('Date', 'Tue, 17 Aug 2021 12:32:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"87c4de76b4f773556feaecd9712e801e0084fab92ded5c7801a4acfcfb6c6c39"'), ('Last-Modified', 'Tue, 17 Aug 2021 08:32:14 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', ''), ('github-authentication-token-expiration', '2021-09-09 21:12:46 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4989'), ('X-RateLimit-Reset', '1629206924'), ('X-RateLimit-Used', '11'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'C00C:184D:CB5A41:D66D29:611BAC56')]
{"login":"karthik-kadajji-t","id":88677462,"node_id":"MDQ6VXNlcjg4Njc3NDYy","avatar_url":"https://avatars.githubusercontent.com/u/88677462?v=4","gravatar_id":"","url":"https://api.github.com/users/karthik-kadajji-t","html_url":"https://github.com/karthik-kadajji-t","followers_url":"https://api.github.com/users/karthik-kadajji-t/followers","following_url":"https://api.github.com/users/karthik-kadajji-t/following{/other_user}","gists_url":"https://api.github.com/users/karthik-kadajji-t/gists{/gist_id}","starred_url":"https://api.github.com/users/karthik-kadajji-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karthik-kadajji-t/subscriptions","organizations_url":"https://api.github.com/users/karthik-kadajji-t/orgs","repos_url":"https://api.github.com/users/karthik-kadajji-t/repos","events_url":"https://api.github.com/users/karthik-kadajji-t/events{/privacy}","received_events_url":"https://api.github.com/users/karthik-kadajji-t/received_events","type":"User","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":0,"public_gists":0,"followers":0,"following":0,"created_at":"2021-08-09T16:41:12Z","updated_at":"2021-08-17T08:32:14Z","private_gists":0,"total_private_repos":0,"owned_private_repos":0,"disk_usage":0,"collaborators":0,"two_factor_authentication":false,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":10000}}

https
GET
api.github.com
None
/orgs/testkarthik
{'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('Server', 'GitHub.com'), ('Date', 'Tue, 17 Aug 2021 12:32:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"b671bda157a6f08c57bdef6f58a5c575475afd4396e3aeb8ba248853f7d945c2"'), ('Last-Modified', 'Fri, 13 Aug 2021 13:30:46 GMT'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'admin:org, read:org, repo, user, write:org'), ('github-authentication-token-expiration', '2021-09-09 21:12:46 UTC'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4988'), ('X-RateLimit-Reset', '1629206924'), ('X-RateLimit-Used', '12'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '7DF8:184C:61F6D6:6C1779:611BAC56')]
{"login":"testkarthik","id":88720686,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg4NzIwNjg2","url":"https://api.github.com/orgs/testkarthik","repos_url":"https://api.github.com/orgs/testkarthik/repos","events_url":"https://api.github.com/orgs/testkarthik/events","hooks_url":"https://api.github.com/orgs/testkarthik/hooks","issues_url":"https://api.github.com/orgs/testkarthik/issues","members_url":"https://api.github.com/orgs/testkarthik/members{/member}","public_members_url":"https://api.github.com/orgs/testkarthik/public_members{/member}","avatar_url":"https://avatars.githubusercontent.com/u/88720686?v=4","description":null,"name":"testkarthik","company":null,"blog":null,"location":"USadddaa","email":null,"twitter_username":"twittertest","is_verified":false,"has_organization_projects":true,"has_repository_projects":true,"public_repos":0,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/testkarthik","created_at":"2021-08-10T12:31:31Z","updated_at":"2021-08-13T13:30:46Z","type":"Organization","total_private_repos":0,"owned_private_repos":0,"private_gists":0,"disk_usage":0,"collaborators":0,"billing_email":"_er@gmail.cm","default_repository_permission":"admin","members_can_create_repositories":true,"two_factor_requirement_enabled":false,"members_can_create_pages":true,"members_can_create_public_pages":false,"members_can_create_private_pages":true,"plan":{"name":"free","space":976562499,"private_repos":10000,"filled_seats":1,"seats":0}}

https
POST
api.github.com
None
/orgs/testkarthik/projects
{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python', 'Content-Type': 'application/json'}
{"name": "ultratendency"}
201
[('Server', 'GitHub.com'), ('Date', 'Tue, 17 Aug 2021 12:32:23 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Content-Length', '1486'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', '"94e0b57910367b556e808c0400e17bf40b1e60438405c0e452cd9625244de0dd"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'repo, write:org'), ('github-authentication-token-expiration', '2021-09-09 21:12:46 UTC'), ('Location', 'https://api.github.com/projects/13097272'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4987'), ('X-RateLimit-Reset', '1629206924'), ('X-RateLimit-Used', '13'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('X-GitHub-Request-Id', '7DF3:184E:1A1F7B7:1AEF43E:611BAC56')]
{"owner_url":"https://api.github.com/orgs/testkarthik","url":"https://api.github.com/projects/13097272","html_url":"https://github.com/orgs/testkarthik/projects/22","columns_url":"https://api.github.com/projects/13097272/columns","id":13097272,"node_id":"PRO_kwDOBUnFLs4Ax9k4","name":"ultratendency","body":null,"number":22,"state":"open","creator":{"login":"karthik-kadajji-t","id":88677462,"node_id":"MDQ6VXNlcjg4Njc3NDYy","avatar_url":"https://avatars.githubusercontent.com/u/88677462?v=4","gravatar_id":"","url":"https://api.github.com/users/karthik-kadajji-t","html_url":"https://github.com/karthik-kadajji-t","followers_url":"https://api.github.com/users/karthik-kadajji-t/followers","following_url":"https://api.github.com/users/karthik-kadajji-t/following{/other_user}","gists_url":"https://api.github.com/users/karthik-kadajji-t/gists{/gist_id}","starred_url":"https://api.github.com/users/karthik-kadajji-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karthik-kadajji-t/subscriptions","organizations_url":"https://api.github.com/users/karthik-kadajji-t/orgs","repos_url":"https://api.github.com/users/karthik-kadajji-t/repos","events_url":"https://api.github.com/users/karthik-kadajji-t/events{/privacy}","received_events_url":"https://api.github.com/users/karthik-kadajji-t/received_events","type":"User","site_admin":false},"created_at":"2021-08-17T12:32:23Z","updated_at":"2021-08-17T12:32:23Z","organization_permission":"write","private":true}

https
GET
api.github.com
None
/orgs/testkarthik/projects
{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'token private_token_removed', 'User-Agent': 'PyGithub/Python'}
None
200
[('Server', 'GitHub.com'), ('Date', 'Tue, 17 Aug 2021 12:32:23 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"f84f6e37e193a8568bbac1bee0b16333c20ca1ca26dadc31129821e8aacad527"'), ('X-OAuth-Scopes', 'admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete:packages, delete_repo, gist, notifications, repo, user, workflow, write:discussion, write:packages'), ('X-Accepted-OAuth-Scopes', 'read:org, repo'), ('github-authentication-token-expiration', '2021-09-09 21:12:46 UTC'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4986'), ('X-RateLimit-Reset', '1629206924'), ('X-RateLimit-Used', '14'), ('X-RateLimit-Resource', 'core'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '0'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', '7E1A:AA20:1B68AF6:1C3923B:611BAC57')]
[{"owner_url":"https://api.github.com/orgs/testkarthik","url":"https://api.github.com/projects/13097272","html_url":"https://github.com/orgs/testkarthik/projects/22","columns_url":"https://api.github.com/projects/13097272/columns","id":13097272,"node_id":"PRO_kwDOBUnFLs4Ax9k4","name":"ultratendency","body":null,"number":22,"state":"open","creator":{"login":"karthik-kadajji-t","id":88677462,"node_id":"MDQ6VXNlcjg4Njc3NDYy","avatar_url":"https://avatars.githubusercontent.com/u/88677462?v=4","gravatar_id":"","url":"https://api.github.com/users/karthik-kadajji-t","html_url":"https://github.com/karthik-kadajji-t","followers_url":"https://api.github.com/users/karthik-kadajji-t/followers","following_url":"https://api.github.com/users/karthik-kadajji-t/following{/other_user}","gists_url":"https://api.github.com/users/karthik-kadajji-t/gists{/gist_id}","starred_url":"https://api.github.com/users/karthik-kadajji-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karthik-kadajji-t/subscriptions","organizations_url":"https://api.github.com/users/karthik-kadajji-t/orgs","repos_url":"https://api.github.com/users/karthik-kadajji-t/repos","events_url":"https://api.github.com/users/karthik-kadajji-t/events{/privacy}","received_events_url":"https://api.github.com/users/karthik-kadajji-t/received_events","type":"User","site_admin":false},"created_at":"2021-08-17T12:32:23Z","updated_at":"2021-08-17T12:32:23Z","organization_permission":"write","private":true}]

0 comments on commit d71c25a

Please sign in to comment.