github-agent 1.4.1__tar.gz → 1.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. {github_agent-1.4.1 → github_agent-1.4.2}/PKG-INFO +3 -3
  2. {github_agent-1.4.1 → github_agent-1.4.2}/README.md +2 -2
  3. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/agent_server.py +1 -1
  4. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_repos.py +18 -2
  5. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_repo.py +4 -1
  6. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp_server.py +4 -1
  7. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-tools/scripts/inspect_pr_checks.py +3 -3
  8. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/PKG-INFO +3 -3
  9. {github_agent-1.4.1 → github_agent-1.4.2}/pyproject.toml +1 -1
  10. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_org_crud.py +48 -0
  11. {github_agent-1.4.1 → github_agent-1.4.2}/LICENSE +0 -0
  12. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/__init__.py +0 -0
  13. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/__main__.py +0 -0
  14. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/__init__.py +0 -0
  15. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_base.py +0 -0
  16. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_branches.py +0 -0
  17. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_commits.py +0 -0
  18. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_contents.py +0 -0
  19. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_dependabot.py +0 -0
  20. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_issues.py +0 -0
  21. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_orgs.py +0 -0
  22. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_pages.py +0 -0
  23. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_pulls.py +0 -0
  24. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_releases.py +0 -0
  25. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_search.py +0 -0
  26. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api/api_client_workflows.py +0 -0
  27. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/api_client.py +0 -0
  28. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/auth.py +0 -0
  29. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/connectors/__init__.py +0 -0
  30. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/connectors/mcp_source_presets.json +0 -0
  31. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/github_gql.py +0 -0
  32. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/github_input_models.py +0 -0
  33. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/github_response_models.py +0 -0
  34. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/kg_ingest.py +0 -0
  35. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/__init__.py +0 -0
  36. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_action.py +0 -0
  37. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_branch.py +0 -0
  38. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_collaborator.py +0 -0
  39. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_commit.py +0 -0
  40. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_content.py +0 -0
  41. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_dependabot.py +0 -0
  42. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_issue.py +0 -0
  43. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_org.py +0 -0
  44. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_pull.py +0 -0
  45. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_release.py +0 -0
  46. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp/mcp_search.py +0 -0
  47. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/mcp_config.json +0 -0
  48. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/ontology/__init__.py +0 -0
  49. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/ontology/github.ttl +0 -0
  50. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/prompts/__init__.py +0 -0
  51. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/prompts/code_collaboration_specialist.json +0 -0
  52. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/prompts/main_agent.json +0 -0
  53. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/__init__.py +0 -0
  54. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-actions-ci-review/SKILL.md +0 -0
  55. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-backlog-planner/SKILL.md +0 -0
  56. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-backlog-planner/references/addressed-heuristics.md +0 -0
  57. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-backlog-planner/scripts/build_plan.py +0 -0
  58. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-ci-failure-sweep/SKILL.md +0 -0
  59. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-ci-failure-sweep/references/actions-tool-cheatsheet.md +0 -0
  60. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-ci-failure-sweep/scripts/summarize_runs.py +0 -0
  61. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-dependabot-review/SKILL.md +0 -0
  62. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-issue-tracking/SKILL.md +0 -0
  63. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-org-remediation-loop/SKILL.md +0 -0
  64. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-org-remediation-loop/scripts/classify_fix_risk.py +0 -0
  65. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-pr-review-sweep/SKILL.md +0 -0
  66. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-pr-review-sweep/references/pulls-tool-cheatsheet.md +0 -0
  67. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-pr-review-sweep/scripts/summarize_prs.py +0 -0
  68. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-project-provisioner/SKILL.md +0 -0
  69. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-project-provisioner/scripts/enable_pages.py +0 -0
  70. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-pull-request-create/SKILL.md +0 -0
  71. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-pull-request-review/SKILL.md +0 -0
  72. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-repository-management/SKILL.md +0 -0
  73. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-tools/SKILL.md +0 -0
  74. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-tools/code-reviewer.md +0 -0
  75. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-tools/scripts/fetch_comments.py +0 -0
  76. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-triage-resolver/SKILL.md +0 -0
  77. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-triage-resolver/references/resolution-rules.md +0 -0
  78. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-triage-resolver/scripts/classify_safe.py +0 -0
  79. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent/skills/github-triage-resolver/scripts/gh_write.py +0 -0
  80. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/SOURCES.txt +0 -0
  81. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/dependency_links.txt +0 -0
  82. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/entry_points.txt +0 -0
  83. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/requires.txt +0 -0
  84. {github_agent-1.4.1 → github_agent-1.4.2}/github_agent.egg-info/top_level.txt +0 -0
  85. {github_agent-1.4.1 → github_agent-1.4.2}/scripts/security_sanitizer.py +0 -0
  86. {github_agent-1.4.1 → github_agent-1.4.2}/scripts/validate_a2a_agent.py +0 -0
  87. {github_agent-1.4.1 → github_agent-1.4.2}/scripts/verify_api_integration.py +0 -0
  88. {github_agent-1.4.1 → github_agent-1.4.2}/setup.cfg +0 -0
  89. {github_agent-1.4.1 → github_agent-1.4.2}/tests/conftest.py +0 -0
  90. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_action_discovery.py +0 -0
  91. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_api_client_endpoints.py +0 -0
  92. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_api_validation.py +0 -0
  93. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_auth_client_edge_cases.py +0 -0
  94. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_concept_parity.py +0 -0
  95. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_github_agent_api_brute_force_coverage.py +0 -0
  96. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_github_agent_brute_force_coverage.py +0 -0
  97. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_github_gql.py +0 -0
  98. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_hardening.py +0 -0
  99. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_init_dynamics.py +0 -0
  100. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_kg_ingest.py +0 -0
  101. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_mcp_coverage.py +0 -0
  102. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_model_fields.py +0 -0
  103. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_pages.py +0 -0
  104. {github_agent-1.4.1 → github_agent-1.4.2}/tests/test_startup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -48,7 +48,7 @@ Dynamic: license-file
48
48
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
49
49
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
50
50
 
51
- *Version: 1.4.1*
51
+ *Version: 1.4.2*
52
52
 
53
53
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
54
54
  > CLI interfaces, including the integrated A2A agent server, are maintained in the
@@ -129,7 +129,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
129
129
  | `github_create_pull_request` | `APITOOL` | Create a new pull request in a repository. |
130
130
  | `github_create_pull_request_review` | `APITOOL` | Create a review on a pull request. |
131
131
  | `github_create_release` | `APITOOL` | Create a new repository release. |
132
- | `github_create_repository` | `APITOOL` | Create a new repository for the authenticated user. |
132
+ | `github_create_repository` | `APITOOL` | Create a repository for the authenticated user, or for an organization when 'org' is given. |
133
133
  | `github_delete_branch` | `APITOOL` | Delete a branch in a repository. |
134
134
  | `github_delete_branch_protection` | `APITOOL` | Delete branch protection configuration. |
135
135
  | `github_delete_content` | `APITOOL` | Delete a file in a repository. |
@@ -20,7 +20,7 @@
20
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
21
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
22
22
 
23
- *Version: 1.4.1*
23
+ *Version: 1.4.2*
24
24
 
25
25
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
26
26
  > CLI interfaces, including the integrated A2A agent server, are maintained in the
@@ -101,7 +101,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
101
101
  | `github_create_pull_request` | `APITOOL` | Create a new pull request in a repository. |
102
102
  | `github_create_pull_request_review` | `APITOOL` | Create a review on a pull request. |
103
103
  | `github_create_release` | `APITOOL` | Create a new repository release. |
104
- | `github_create_repository` | `APITOOL` | Create a new repository for the authenticated user. |
104
+ | `github_create_repository` | `APITOOL` | Create a repository for the authenticated user, or for an organization when 'org' is given. |
105
105
  | `github_delete_branch` | `APITOOL` | Delete a branch in a repository. |
106
106
  | `github_delete_branch_protection` | `APITOOL` | Delete branch protection configuration. |
107
107
  | `github_delete_content` | `APITOOL` | Delete a file in a repository. |
@@ -4,7 +4,7 @@ import os
4
4
  import sys
5
5
  import warnings
6
6
 
7
- __version__ = "1.4.1"
7
+ __version__ = "1.4.2"
8
8
 
9
9
  logging.basicConfig(
10
10
  level=logging.INFO,
@@ -52,11 +52,27 @@ class Api(BaseApiClient):
52
52
 
53
53
  @require_auth
54
54
  def create_repository(self, name: str, **kwargs) -> Response:
55
- """Create a new repository for the authenticated user."""
55
+ """Create a repository for the authenticated user, or for an organization when 'org' is given.
56
+
57
+ Without ``org``: POST /user/repos — the repository is created under
58
+ the authenticated user's personal account.
59
+
60
+ With ``org``: POST /orgs/{org}/repos (same payload shape as
61
+ ``create_organization_repository``). ``org`` is consumed as the URL
62
+ path segment and is never forwarded as a JSON body field. This
63
+ distinction matters: GitHub's /user/repos endpoint silently ignores
64
+ an unrecognized "org" body field instead of rejecting it, which
65
+ previously let a caller pass ``org=...`` expecting an organization
66
+ repository and get a 201 Created — with the repository silently
67
+ created under the personal account instead (a wrong-target bug, not
68
+ a clean failure).
69
+ """
56
70
  try:
71
+ org = kwargs.pop("org", None)
57
72
  payload = {"name": name, **kwargs}
73
+ url = f"{self.url}/orgs/{org}/repos" if org else f"{self.url}/user/repos"
58
74
  response = self._session.post(
59
- url=f"{self.url}/user/repos",
75
+ url=url,
60
76
  json=payload,
61
77
  headers=self.headers,
62
78
  verify=self.verify,
@@ -90,7 +90,10 @@ def register_repo_tools(mcp: FastMCP):
90
90
  - 'get': {"owner", "repo"} — a single repository.
91
91
  - 'create': {"name", plus payload fields such as description,
92
92
  private, auto_init, ...} — create a repository for the
93
- authenticated user.
93
+ authenticated user. Pass "org" to create it inside an
94
+ organization instead (POST /orgs/{org}/repos rather than
95
+ POST /user/repos); "org" is consumed as the URL path segment
96
+ and is never sent in the request body.
94
97
  - 'delete': {"owner", "repo"} — delete a repository.
95
98
  - 'update': {"owner", "repo", plus mutable repository settings} —
96
99
  PATCH /repos/{owner}/{repo}.
@@ -191,7 +191,10 @@ def register_repo_tools(mcp: FastMCP):
191
191
  - 'get': {"owner", "repo"} — a single repository.
192
192
  - 'create': {"name", plus payload fields such as description,
193
193
  private, auto_init, ...} — create a repository for the
194
- authenticated user.
194
+ authenticated user. Pass "org" to create it inside an
195
+ organization instead (POST /orgs/{org}/repos rather than
196
+ POST /user/repos); "org" is consumed as the URL path segment
197
+ and is never sent in the request body.
195
198
  - 'delete': {"owner", "repo"} — delete a repository.
196
199
  - 'update': {"owner", "repo", plus mutable repository settings} —
197
200
  PATCH /repos/{owner}/{repo}.
@@ -58,7 +58,7 @@ class GhResult:
58
58
 
59
59
  def run_gh_command(args: Sequence[str], cwd: Path) -> GhResult:
60
60
  process = subprocess.run(
61
- ["gh", *args],
61
+ [which("gh") or "gh", *args],
62
62
  cwd=cwd,
63
63
  text=True,
64
64
  capture_output=True,
@@ -68,7 +68,7 @@ def run_gh_command(args: Sequence[str], cwd: Path) -> GhResult:
68
68
 
69
69
  def run_gh_command_raw(args: Sequence[str], cwd: Path) -> tuple[int, bytes, str]:
70
70
  process = subprocess.run(
71
- ["gh", *args],
71
+ [which("gh") or "gh", *args],
72
72
  cwd=cwd,
73
73
  capture_output=True,
74
74
  )
@@ -144,7 +144,7 @@ def main() -> int:
144
144
 
145
145
  def find_git_root(start: Path) -> Path | None:
146
146
  result = subprocess.run(
147
- ["git", "rev-parse", "--show-toplevel"],
147
+ [which("git") or "git", "rev-parse", "--show-toplevel"],
148
148
  cwd=start,
149
149
  text=True,
150
150
  capture_output=True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -48,7 +48,7 @@ Dynamic: license-file
48
48
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
49
49
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
50
50
 
51
- *Version: 1.4.1*
51
+ *Version: 1.4.2*
52
52
 
53
53
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
54
54
  > CLI interfaces, including the integrated A2A agent server, are maintained in the
@@ -129,7 +129,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
129
129
  | `github_create_pull_request` | `APITOOL` | Create a new pull request in a repository. |
130
130
  | `github_create_pull_request_review` | `APITOOL` | Create a review on a pull request. |
131
131
  | `github_create_release` | `APITOOL` | Create a new repository release. |
132
- | `github_create_repository` | `APITOOL` | Create a new repository for the authenticated user. |
132
+ | `github_create_repository` | `APITOOL` | Create a repository for the authenticated user, or for an organization when 'org' is given. |
133
133
  | `github_delete_branch` | `APITOOL` | Delete a branch in a repository. |
134
134
  | `github_delete_branch_protection` | `APITOOL` | Delete branch protection configuration. |
135
135
  | `github_delete_content` | `APITOOL` | Delete a file in a repository. |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "github-agent"
7
- version = "1.4.1"
7
+ version = "1.4.2"
8
8
  readme = "README.md"
9
9
  description = "GitHub Agent for MCP"
10
10
  requires-python = ">=3.11, <3.15"
@@ -263,6 +263,54 @@ def test_org_repo_create_payload_parity_with_user_repo_create(mock_session):
263
263
  assert org_call.kwargs["url"] == "https://api.github.com/orgs/Knuckles-Team/repos"
264
264
 
265
265
 
266
+ def test_create_repository_without_org_posts_to_user_repos(mock_session):
267
+ """Back-compat: no 'org' kwarg -> POST /user/repos, unchanged behavior."""
268
+ api = Api(token="test")
269
+ mock_session.post.return_value = make_response(
270
+ status_code=201, json_data=REPO_PAYLOAD
271
+ )
272
+
273
+ res = api.create_repository(name="service", private=True, description="d")
274
+
275
+ assert isinstance(res.data, Repository)
276
+ call = mock_session.post.call_args
277
+ assert call.kwargs["url"] == "https://api.github.com/user/repos"
278
+ assert call.kwargs["json"] == {
279
+ "name": "service",
280
+ "private": True,
281
+ "description": "d",
282
+ }
283
+ assert "org" not in call.kwargs["json"]
284
+
285
+
286
+ def test_create_repository_with_org_kwarg_routes_to_org_repos(mock_session):
287
+ """Regression test for the silent-wrong-target bug: passing 'org' to
288
+ create_repository must POST to /orgs/{org}/repos (not /user/repos),
289
+ and 'org' must never leak into the JSON body — GitHub's /user/repos
290
+ endpoint silently ignores an unrecognized "org" field rather than
291
+ erroring, which previously caused the repo to be created under the
292
+ personal account instead of the intended organization.
293
+ """
294
+ api = Api(token="test")
295
+ mock_session.post.return_value = make_response(
296
+ status_code=201, json_data=REPO_PAYLOAD
297
+ )
298
+
299
+ res = api.create_repository(
300
+ name="service", org="Knuckles-Team", private=True, description="d"
301
+ )
302
+
303
+ assert isinstance(res.data, Repository)
304
+ call = mock_session.post.call_args
305
+ assert call.kwargs["url"] == "https://api.github.com/orgs/Knuckles-Team/repos"
306
+ assert call.kwargs["json"] == {
307
+ "name": "service",
308
+ "private": True,
309
+ "description": "d",
310
+ }
311
+ assert "org" not in call.kwargs["json"]
312
+
313
+
266
314
  def test_get_organization_membership(mock_session):
267
315
  api = Api(token="test")
268
316
  mock_session.get.return_value = make_response(json_data=MEMBERSHIP_PAYLOAD)
File without changes
File without changes