github-haystack 2.1.0__tar.gz → 3.0.0__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 (48) hide show
  1. {github_haystack-2.1.0 → github_haystack-3.0.0}/CHANGELOG.md +29 -2
  2. {github_haystack-2.1.0 → github_haystack-3.0.0}/LICENSE.txt +1 -1
  3. {github_haystack-2.1.0 → github_haystack-3.0.0}/PKG-INFO +4 -4
  4. {github_haystack-2.1.0 → github_haystack-3.0.0}/pyproject.toml +3 -2
  5. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/file_editor.py +1 -1
  6. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/pr_creator.py +1 -1
  7. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/context_prompt.py +0 -5
  8. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_file_editor_tool.py +17 -17
  9. {github_haystack-2.1.0 → github_haystack-3.0.0}/.gitignore +0 -0
  10. {github_haystack-2.1.0 → github_haystack-3.0.0}/README.md +0 -0
  11. {github_haystack-2.1.0 → github_haystack-3.0.0}/pydoc/config_docusaurus.yml +0 -0
  12. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/__init__.py +0 -0
  13. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/issue_commenter.py +0 -0
  14. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/issue_viewer.py +0 -0
  15. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/repo_forker.py +0 -0
  16. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/github/repo_viewer.py +0 -0
  17. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/components/connectors/py.typed +0 -0
  18. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/__init__.py +0 -0
  19. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/file_editor_prompt.py +0 -0
  20. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/issue_commenter_prompt.py +0 -0
  21. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/issue_viewer_prompt.py +0 -0
  22. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/pr_creator_prompt.py +0 -0
  23. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/repo_forker_prompt.py +0 -0
  24. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/repo_viewer_prompt.py +0 -0
  25. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/github/system_prompt.py +0 -0
  26. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/prompts/py.typed +0 -0
  27. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/__init__.py +0 -0
  28. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/file_editor_tool.py +0 -0
  29. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/issue_commenter_tool.py +0 -0
  30. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/issue_viewer_tool.py +0 -0
  31. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/pr_creator_tool.py +0 -0
  32. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/repo_forker_tool.py +0 -0
  33. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/repo_viewer_tool.py +0 -0
  34. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/github/utils.py +0 -0
  35. {github_haystack-2.1.0 → github_haystack-3.0.0}/src/haystack_integrations/tools/py.typed +0 -0
  36. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/__init__.py +0 -0
  37. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_file_editor.py +0 -0
  38. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_issue_commenter.py +0 -0
  39. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_issue_commenter_tool.py +0 -0
  40. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_issue_viewer.py +0 -0
  41. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_issue_viewer_tool.py +0 -0
  42. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_pr_creator.py +0 -0
  43. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_pr_creator_tool.py +0 -0
  44. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_repo_forker.py +0 -0
  45. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_repo_forker_tool.py +0 -0
  46. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_repo_viewer.py +0 -0
  47. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_repo_viewer_tool.py +0 -0
  48. {github_haystack-2.1.0 → github_haystack-3.0.0}/tests/test_utils.py +0 -0
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [integrations/github-v2.1.0] - 2026-05-13
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Simplify pydoc configs (#2855)
8
+
9
+ ### 🧪 Testing
10
+
11
+ - GitHub - make tests compatible with new Agent parameters (#2865)
12
+ - Test compatible integrations with python 3.14; update pyproject (#3001)
13
+ - Track test coverage for all integrations (#3065)
14
+ - Add unit tests for github + fix small handler bug (#3280)
15
+
16
+ ### 🧹 Chores
17
+
18
+ - Add ANN type annotations to faiss, fastembed, firecrawl, github, google_ai (#2988)
19
+ - Enforce ruff docstring rules (D102/D103/D205/D209/D213/D417/D419) in integrations 11-20 (#3009)
20
+
21
+ ### 🌀 Miscellaneous
22
+
23
+ - Test: Fix github tests due to changes on Haystack main (#2778)
24
+
3
25
  ## [integrations/github-v2.0.0] - 2026-01-12
4
26
 
5
27
  ### 📚 Documentation
@@ -25,11 +47,17 @@
25
47
 
26
48
  ## [integrations/github-v1.2.1] - 2025-10-20
27
49
 
50
+
51
+ ### 🌀 Miscellaneous
52
+
53
+ - Fix: handle empty GitHub tokens in authentication headers (#2400)
54
+
55
+ ## [integrations/github-v1.2.0] - 2025-10-10
56
+
28
57
  ### 🚀 Features
29
58
 
30
59
  - Add support for GitHubRepoForkerTool (#1968)
31
60
 
32
-
33
61
  ### 🧪 Testing
34
62
 
35
63
  - Fix GitHub test (#2119)
@@ -41,7 +69,6 @@
41
69
  ### 🌀 Miscellaneous
42
70
 
43
71
  - Chore: Fix linting github (#2255)
44
- - Fix: handle empty GitHub tokens in authentication headers (#2400)
45
72
 
46
73
  ## [integrations/github-v1.1.0] - 2025-07-01
47
74
 
@@ -58,7 +58,7 @@ APPENDIX: How to apply the Apache License to your work.
58
58
 
59
59
  To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
60
60
 
61
- Copyright [yyyy] [name of copyright owner]
61
+ Copyright 2023-present deepset GmbH
62
62
 
63
63
  Licensed under the Apache License, Version 2.0 (the "License");
64
64
  you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: github-haystack
3
- Version: 2.1.0
3
+ Version: 3.0.0
4
4
  Summary: Haystack components for interacting with GitHub repositories
5
5
  Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations/github
6
6
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/github/README.md
@@ -11,14 +11,14 @@ License-File: LICENSE.txt
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
16
15
  Classifier: Programming Language :: Python :: 3.12
17
16
  Classifier: Programming Language :: Python :: 3.13
18
17
  Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Programming Language :: Python :: 3.15
19
19
  Classifier: Programming Language :: Python :: Implementation :: CPython
20
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
21
- Requires-Python: >=3.10
21
+ Requires-Python: >=3.11
22
22
  Requires-Dist: haystack-ai>=2.22.0
23
23
  Description-Content-Type: text/markdown
24
24
 
@@ -7,7 +7,7 @@ name = "github-haystack"
7
7
  dynamic = ["version"]
8
8
  description = 'Haystack components for interacting with GitHub repositories'
9
9
  readme = "README.md"
10
- requires-python = ">=3.10"
10
+ requires-python = ">=3.11"
11
11
  license = "Apache-2.0"
12
12
  keywords = []
13
13
  authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }]
@@ -15,11 +15,11 @@ classifiers = [
15
15
  "License :: OSI Approved :: Apache Software License",
16
16
  "Development Status :: 4 - Beta",
17
17
  "Programming Language :: Python",
18
- "Programming Language :: Python :: 3.10",
19
18
  "Programming Language :: Python :: 3.11",
20
19
  "Programming Language :: Python :: 3.12",
21
20
  "Programming Language :: Python :: 3.13",
22
21
  "Programming Language :: Python :: 3.14",
22
+ "Programming Language :: Python :: 3.15",
23
23
  "Programming Language :: Python :: Implementation :: CPython",
24
24
  "Programming Language :: Python :: Implementation :: PyPy",
25
25
  ]
@@ -128,6 +128,7 @@ ignore = [
128
128
  "PLR0912",
129
129
  "PLR0913",
130
130
  "PLR0915",
131
+ "PLR0917",
131
132
  # Misc
132
133
  "B008",
133
134
  "S101",
@@ -12,7 +12,7 @@ from haystack.utils import Secret, deserialize_secrets_inplace
12
12
  logger = logging.getLogger(__name__)
13
13
 
14
14
 
15
- class Command(str, Enum):
15
+ class Command(str, Enum): # noqa: UP042 # StrEnum would change str() of this public enum
16
16
  """
17
17
  Available commands for file operations in GitHub.
18
18
 
@@ -248,7 +248,7 @@ class GitHubPRCreator:
248
248
  # For cross-repository PRs, head must be in the format username:branch
249
249
  head = f"{fork_owner}:{branch}"
250
250
 
251
- pr_data = {
251
+ pr_data: dict[str, Any] = {
252
252
  "title": title,
253
253
  "body": body,
254
254
  "head": head,
@@ -168,9 +168,4 @@ This is a mono-repo maintained by the deepset-Team that contains integrations fo
168
168
  Typically, an integration consists of one or more components. Some integrations only contain document stores.
169
169
  Each integration is a standalone pypi-package but you can find all of them in the core integrations repo.
170
170
 
171
-
172
- 3. "deepset-ai/haystack-experimental"
173
-
174
- Contains experimental features for the Haystack framework.
175
-
176
171
  """
@@ -1,7 +1,7 @@
1
1
  # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
- import unittest
4
+ import unittest.mock
5
5
 
6
6
  from haystack import Pipeline
7
7
  from haystack.components.agents import Agent
@@ -143,16 +143,6 @@ class TestGitHubFileEditorTool:
143
143
 
144
144
  pipeline_dict = pipeline.to_dict()
145
145
 
146
- # Remove parameters introduced after haystack-ai==2.12.0 (the minimum supported version)
147
- # to maintain compatibility
148
- try:
149
- pipeline_dict["components"]["agent"]["init_parameters"]["chat_generator"]["init_parameters"].pop(
150
- "http_client_kwargs", None
151
- )
152
- pipeline_dict["components"]["agent"]["init_parameters"].pop("tool_invoker_kwargs", None)
153
- except KeyError:
154
- pass
155
-
156
146
  expected_dict = {
157
147
  "metadata": {},
158
148
  "max_runs_per_component": 100,
@@ -205,16 +195,26 @@ class TestGitHubFileEditorTool:
205
195
  "connection_type_validation": True,
206
196
  }
207
197
 
208
- # Compatibility with newer versions of Haystack that include these parameters
209
- for key in ["confirmation_strategies", "required_variables", "user_prompt"]:
210
- if key in pipeline_dict["components"]["agent"]["init_parameters"]:
211
- expected_dict["components"]["agent"]["init_parameters"][key] = pipeline_dict["components"]["agent"][
212
- "init_parameters"
213
- ][key]
198
+ # The Agent and the OpenAIChatGenerator belong to haystack-ai, and their init parameters vary across the
199
+ # haystack-ai versions this integration supports. Accept whatever the installed version adds beyond the
200
+ # expected baseline: this test only pins the serialization of GitHubFileEditorTool.
201
+ actual_agent_params = pipeline_dict["components"]["agent"]["init_parameters"]
202
+ expected_agent_params = expected_dict["components"]["agent"]["init_parameters"]
203
+ for actual_params, expected_params in [
204
+ (actual_agent_params, expected_agent_params),
205
+ (
206
+ actual_agent_params["chat_generator"]["init_parameters"],
207
+ expected_agent_params["chat_generator"]["init_parameters"],
208
+ ),
209
+ ]:
210
+ for key in actual_params.keys() - expected_params.keys():
211
+ expected_params[key] = actual_params[key]
214
212
 
215
213
  assert pipeline_dict == expected_dict
216
214
 
217
215
  deserialized_pipeline = Pipeline.from_dict(pipeline_dict)
216
+ assert deserialized_pipeline == pipeline
217
+
218
218
  deserialized_components = [instance for _, instance in deserialized_pipeline.graph.nodes(data="instance")]
219
219
  deserialized_agent = deserialized_components[0]
220
220
  assert isinstance(deserialized_agent, Agent)