Skip to content

Commit b87bc42

Browse files
committed
fix(client): explicit add status code for all response
1 parent 20b1624 commit b87bc42

23 files changed

+72
-62
lines changed

pygitguardian/client.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
from .models import (
2828
APITokensResponse,
2929
CreateInvitation,
30-
CreateInvitationParameter,
30+
CreateInvitationParameters,
3131
CreateTeam,
3232
CreateTeamInvitation,
3333
CreateTeamMember,
34-
CreateTeamMemberParameter,
34+
CreateTeamMemberParameters,
3535
DeleteMemberParameters,
3636
Detail,
3737
Document,
@@ -40,7 +40,7 @@
4040
HoneytokenResponse,
4141
HoneytokenWithContextResponse,
4242
Invitation,
43-
InvitationParameter,
43+
InvitationParameters,
4444
JWTResponse,
4545
JWTService,
4646
Member,
@@ -56,11 +56,11 @@
5656
SourceParameters,
5757
Team,
5858
TeamInvitation,
59-
TeamInvitationParameter,
59+
TeamInvitationParameters,
6060
TeamMember,
61-
TeamMemberParameter,
61+
TeamMemberParameters,
6262
TeamSourceParameters,
63-
TeamsParameter,
63+
TeamsParameters,
6464
UpdateMember,
6565
UpdateTeam,
6666
UpdateTeamSource,
@@ -1005,7 +1005,7 @@ def delete_member(
10051005

10061006
def list_teams(
10071007
self,
1008-
parameters: Optional[TeamsParameter] = None,
1008+
parameters: Optional[TeamsParameters] = None,
10091009
extra_headers: Optional[Dict[str, str]] = None,
10101010
) -> Union[Detail, CursorPaginatedResponse[Team]]:
10111011
params = parameters.to_dict() if parameters else {}
@@ -1021,6 +1021,7 @@ def list_teams(
10211021
else:
10221022
obj = load_detail(response)
10231023

1024+
obj.status_code = response.status_code
10241025
return obj
10251026

10261027
def get_team(
@@ -1100,7 +1101,7 @@ def delete_team(
11001101
def list_team_invitations(
11011102
self,
11021103
team_id: int,
1103-
parameters: Optional[TeamInvitationParameter] = None,
1104+
parameters: Optional[TeamInvitationParameters] = None,
11041105
extra_headers: Optional[Dict[str, str]] = None,
11051106
) -> Union[Detail, CursorPaginatedResponse[TeamInvitation]]:
11061107
response = self.get(
@@ -1117,6 +1118,7 @@ def list_team_invitations(
11171118
else:
11181119
obj = load_detail(response)
11191120

1121+
obj.status_code = response.status_code
11201122
return obj
11211123

11221124
def create_team_invitation(
@@ -1157,7 +1159,7 @@ def delete_team_invitation(
11571159
def list_team_members(
11581160
self,
11591161
team_id: int,
1160-
parameters: Optional[TeamMemberParameter] = None,
1162+
parameters: Optional[TeamMemberParameters] = None,
11611163
extra_headers: Optional[Dict[str, str]] = None,
11621164
) -> Union[Detail, CursorPaginatedResponse[TeamMember]]:
11631165
response = self.get(
@@ -1174,13 +1176,14 @@ def list_team_members(
11741176
else:
11751177
obj = load_detail(response)
11761178

1179+
obj.status_code = response.status_code
11771180
return obj
11781181

11791182
def create_team_member(
11801183
self,
11811184
team_id: int,
11821185
member: CreateTeamMember,
1183-
parameters: Optional[CreateTeamMemberParameter] = None,
1186+
parameters: Optional[CreateTeamMemberParameters] = None,
11841187
extra_headers: Optional[Dict[str, str]] = None,
11851188
) -> Union[Detail, TeamMember]:
11861189
response = self.post(
@@ -1230,6 +1233,7 @@ def list_sources(
12301233
else:
12311234
obj = load_detail(response)
12321235

1236+
obj.status_code = response.status_code
12331237
return obj
12341238

12351239
def list_team_sources(
@@ -1250,6 +1254,7 @@ def list_team_sources(
12501254
else:
12511255
obj = load_detail(response)
12521256

1257+
obj.status_code = response.status_code
12531258
return obj
12541259

12551260
def update_team_source(
@@ -1272,7 +1277,7 @@ def update_team_source(
12721277

12731278
def list_invitations(
12741279
self,
1275-
parameters: Optional[InvitationParameter] = None,
1280+
parameters: Optional[InvitationParameters] = None,
12761281
extra_headers: Optional[Dict[str, str]] = None,
12771282
) -> Union[Detail, CursorPaginatedResponse[Invitation]]:
12781283
response = self.get(
@@ -1289,12 +1294,13 @@ def list_invitations(
12891294
else:
12901295
obj = load_detail(response)
12911296

1297+
obj.status_code = response.status_code
12921298
return obj
12931299

12941300
def create_invitation(
12951301
self,
12961302
invitation: CreateInvitation,
1297-
parameters: Optional[CreateInvitationParameter] = None,
1303+
parameters: Optional[CreateInvitationParameters] = None,
12981304
extra_headers: Optional[Dict[str, str]] = None,
12991305
) -> Union[Detail, Invitation]:
13001306
response = self.post(

pygitguardian/models.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,15 +1207,15 @@ class DeleteMemberParameters(Base, FromDictMixin):
12071207

12081208

12091209
@dataclass
1210-
class TeamsParameter(PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin):
1210+
class TeamsParameters(PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin):
12111211
is_global: Optional[bool] = None
12121212

12131213

12141214
TeamsParameterSchema = cast(
12151215
Type[BaseSchema],
1216-
marshmallow_dataclass.class_schema(TeamsParameter, base_schema=BaseSchema),
1216+
marshmallow_dataclass.class_schema(TeamsParameters, base_schema=BaseSchema),
12171217
)
1218-
TeamsParameter.SCHEMA = TeamsParameterSchema()
1218+
TeamsParameters.SCHEMA = TeamsParameterSchema()
12191219

12201220

12211221
@dataclass
@@ -1275,7 +1275,7 @@ class IncidentPermission(str, Enum):
12751275

12761276

12771277
@dataclass
1278-
class TeamInvitationParameter(PaginationParameter, ToDictMixin):
1278+
class TeamInvitationParameters(PaginationParameter, ToDictMixin):
12791279
invitation_id: Optional[int] = None
12801280
is_team_leader: Optional[bool] = None
12811281
incident_permission: Optional[IncidentPermission] = None
@@ -1292,7 +1292,7 @@ class Meta:
12921292
exclude_none = True
12931293

12941294

1295-
TeamInvitationParameter.SCHEMA = TeamInvitationParameterSchema()
1295+
TeamInvitationParameters.SCHEMA = TeamInvitationParameterSchema()
12961296

12971297

12981298
@dataclass
@@ -1351,7 +1351,7 @@ class Meta:
13511351

13521352

13531353
@dataclass
1354-
class TeamMemberParameter(PaginationParameter, SearchParameter, ToDictMixin):
1354+
class TeamMemberParameters(PaginationParameter, SearchParameter, ToDictMixin):
13551355
is_team_leader: Optional[bool] = None
13561356
incident_permission: Optional[IncidentPermission] = None
13571357
member_id: Optional[int] = None
@@ -1366,13 +1366,13 @@ class TeamMembershipParameterSchema(BaseSchema):
13661366

13671367
@post_load
13681368
def make_team_member_parameter(self, data: Dict[str, Any], **kwargs: Any):
1369-
return TeamMemberParameter(**data)
1369+
return TeamMemberParameters(**data)
13701370

13711371
class Meta:
13721372
exclude_none = True
13731373

13741374

1375-
TeamMemberParameter.SCHEMA = TeamMembershipParameterSchema()
1375+
TeamMemberParameters.SCHEMA = TeamMembershipParameterSchema()
13761376

13771377

13781378
@dataclass
@@ -1402,17 +1402,17 @@ def make_team_member(self, data: Dict[str, Any], **kwargs: Any):
14021402

14031403

14041404
@dataclass
1405-
class CreateTeamMemberParameter(ToDictMixin):
1406-
send_email: bool
1405+
class CreateTeamMemberParameters(ToDictMixin):
1406+
send_email: Optional[bool] = None
14071407

14081408

14091409
CreateTeamMemberParameterSchema = cast(
14101410
Type[BaseSchema],
14111411
marshmallow_dataclass.class_schema(
1412-
CreateTeamMemberParameter, base_schema=BaseSchema
1412+
CreateTeamMemberParameters, base_schema=BaseSchema
14131413
),
14141414
)
1415-
CreateTeamMemberParameter.SCHEMA = CreateTeamMemberParameterSchema()
1415+
CreateTeamMemberParameters.SCHEMA = CreateTeamMemberParameterSchema()
14161416

14171417

14181418
@dataclass
@@ -1483,10 +1483,10 @@ class SourceParameters(TeamSourceParameters):
14831483

14841484

14851485
@dataclass
1486-
class InvitationParameter(
1486+
class InvitationParameters(
14871487
PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin
14881488
):
1489-
ordering: Literal["date", "-date"]
1489+
ordering: Optional[Literal["date", "-date"]] = None
14901490

14911491

14921492
@dataclass
@@ -1512,17 +1512,17 @@ def make_invitation(self, data: Dict[str, Any], **kwargs: Any):
15121512

15131513

15141514
@dataclass
1515-
class CreateInvitationParameter(FromDictMixin, ToDictMixin):
1515+
class CreateInvitationParameters(FromDictMixin, ToDictMixin):
15161516
send_email: Optional[bool] = None
15171517

15181518

15191519
CreateInvitationParameterSchema = cast(
15201520
Type[BaseSchema],
15211521
marshmallow_dataclass.class_schema(
1522-
CreateInvitationParameter, base_schema=BaseSchema
1522+
CreateInvitationParameters, base_schema=BaseSchema
15231523
),
15241524
)
1525-
CreateInvitationParameter.SCHEMA = CreateInvitationParameterSchema()
1525+
CreateInvitationParameters.SCHEMA = CreateInvitationParameterSchema()
15261526

15271527

15281528
@dataclass

pygitguardian/models_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,15 @@ def __bool__(self) -> bool:
7777
return self.status_code == 200
7878

7979

80+
@dataclass
8081
class PaginationParameter(ToDictMixin):
8182
"""Pagination mixin used for endpoints that support pagination."""
8283

8384
cursor: str = ""
8485
per_page: int = 20
8586

8687

88+
@dataclass
8789
class SearchParameter(ToDictMixin):
8890
search: Optional[str] = None
8991

tests/cassettes/test_add_team_sources.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:
@@ -200,7 +200,7 @@ interactions:
200200
User-Agent:
201201
- pygitguardian/1.18.0 (Darwin;py3.11.8)
202202
method: GET
203-
uri: https://api.gitguardian.com/v1/teams/19/sources?type=azure_devops
203+
uri: https://api.gitguardian.com/v1/teams/19/sources?cursor=&per_page=20&type=azure_devops
204204
response:
205205
body:
206206
string: '[{"id":124,"type":"azure_devops","full_name":"gg-integration-test /

tests/cassettes/test_create_team_invitation.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_create_team_member.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ interactions:
7070
User-Agent:
7171
- pygitguardian/1.18.0 (Darwin;py3.11.8)
7272
method: GET
73-
uri: https://api.gitguardian.com/v1/teams?is_global=False
73+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
7474
response:
7575
body:
7676
string:

tests/cassettes/test_create_team_member_parameters.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ interactions:
7070
User-Agent:
7171
- pygitguardian/1.18.0 (Darwin;py3.11.8)
7272
method: GET
73-
uri: https://api.gitguardian.com/v1/teams?is_global=False
73+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
7474
response:
7575
body:
7676
string:

tests/cassettes/test_delete_team.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_delete_team_invitation.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_delete_team_member.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ interactions:
7070
User-Agent:
7171
- pygitguardian/1.18.0 (Darwin;py3.11.8)
7272
method: GET
73-
uri: https://api.gitguardian.com/v1/teams?is_global=False
73+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
7474
response:
7575
body:
7676
string:

tests/cassettes/test_delete_team_sources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_get_team.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_global_team.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=True
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=True
1515
response:
1616
body:
1717
string: '[{"id":6,"is_global":true,"name":"All incidents","description":null,"gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/6"}]'

tests/cassettes/test_list_team_invitations.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_list_team_members.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

tests/cassettes/test_list_teams_sources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interactions:
1111
User-Agent:
1212
- pygitguardian/1.18.0 (Darwin;py3.11.8)
1313
method: GET
14-
uri: https://api.gitguardian.com/v1/teams?is_global=False
14+
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
1515
response:
1616
body:
1717
string:

0 commit comments

Comments
 (0)