Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions graphql_api/tests/test_owner.py
Original file line number Diff line number Diff line change
Expand Up @@ -720,12 +720,37 @@ def test_owner_query_with_private_repos(self):
query = """{
owner(username: "%s") {
hasPrivateRepos
hasPublicRepos
hasActiveRepos
}
}
""" % (current_org.username)

data = self.gql_request(query, owner=current_org)
assert data["owner"]["hasPrivateRepos"] == True
assert data["owner"]["hasPublicRepos"] == False
assert data["owner"]["hasActiveRepos"] == True

def test_owner_query_with_no_active_repos(self):
current_org = OwnerFactory(
username="random-plan-user",
service="github",
)
RepositoryFactory(
author=current_org, active=False, activated=False, private=True
)
query = """{
owner(username: "%s") {
hasPrivateRepos
hasPublicRepos
hasActiveRepos
}
}
""" % (current_org.username)
data = self.gql_request(query, owner=current_org)
assert data["owner"]["hasPrivateRepos"] == True
assert data["owner"]["hasPublicRepos"] == False
assert data["owner"]["hasActiveRepos"] == False

def test_owner_query_with_public_repos(self):
current_org = OwnerFactory(
Expand All @@ -749,12 +774,16 @@ def test_owner_query_with_public_repos(self):
query = """{
owner(username: "%s") {
hasPrivateRepos
hasPublicRepos
hasActiveRepos
}
}
""" % (current_org.username)

data = self.gql_request(query, owner=current_org)
assert data["owner"]["hasPrivateRepos"] == False
assert data["owner"]["hasPublicRepos"] == True
assert data["owner"]["hasActiveRepos"] == True

def test_owner_hash_owner_id(self):
user = OwnerFactory(username="sample-user")
Expand Down
2 changes: 2 additions & 0 deletions graphql_api/types/owner/owner.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ type Owner {
defaultOrgUsername: String
delinquent: Boolean
hashOwnerid: String
hasActiveRepos: Boolean
hasPrivateRepos: Boolean
hasPublicRepos: Boolean
invoice(invoiceId: String!): Invoice
invoices: [Invoice] @cost(complexity: 100)
isAdmin: Boolean
Expand Down
14 changes: 14 additions & 0 deletions graphql_api/types/owner/owner.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,20 @@ def resolve_has_private_repos(owner: Owner, info: GraphQLResolveInfo) -> bool:
return owner.has_private_repos


@owner_bindable.field("hasPublicRepos")
@sync_to_async
@require_part_of_org
def resolve_has_public_repos(owner: Owner, info: GraphQLResolveInfo) -> bool:
return owner.has_public_repos


@owner_bindable.field("hasActiveRepos")
@sync_to_async
@require_part_of_org
def resolve_has_active_repos(owner: Owner, info: GraphQLResolveInfo) -> bool:
return owner.has_active_repos


@owner_bindable.field("ownerid")
@require_part_of_org
def resolve_ownerid(owner: Owner, info: GraphQLResolveInfo) -> int:
Expand Down