airbyte-source-github 1.8.29__tar.gz → 1.8.29.dev202506231501__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 (63) hide show
  1. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/PKG-INFO +1 -1
  2. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/pyproject.toml +1 -1
  3. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/errors_handlers.py +14 -0
  4. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/streams.py +17 -0
  5. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/README.md +0 -0
  6. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/__init__.py +0 -0
  7. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/backoff_strategies.py +0 -0
  8. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/config_migrations.py +0 -0
  9. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/constants.py +0 -0
  10. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/github_schema.py +0 -0
  11. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/graphql.py +0 -0
  12. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/run.py +0 -0
  13. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/assignees.json +0 -0
  14. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/branches.json +0 -0
  15. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/collaborators.json +0 -0
  16. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/comments.json +0 -0
  17. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/commit_comment_reactions.json +0 -0
  18. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/commit_comments.json +0 -0
  19. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/commits.json +0 -0
  20. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/contributor_activity.json +0 -0
  21. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/deployments.json +0 -0
  22. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/events.json +0 -0
  23. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_comment_reactions.json +0 -0
  24. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_events.json +0 -0
  25. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_labels.json +0 -0
  26. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_milestones.json +0 -0
  27. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_reactions.json +0 -0
  28. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issue_timeline_events.json +0 -0
  29. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/issues.json +0 -0
  30. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/organizations.json +0 -0
  31. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/project_cards.json +0 -0
  32. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/project_columns.json +0 -0
  33. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/projects.json +0 -0
  34. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/projects_v2.json +0 -0
  35. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/pull_request_comment_reactions.json +0 -0
  36. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/pull_request_commits.json +0 -0
  37. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/pull_request_stats.json +0 -0
  38. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/pull_requests.json +0 -0
  39. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/releases.json +0 -0
  40. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/repositories.json +0 -0
  41. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/review_comments.json +0 -0
  42. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/reviews.json +0 -0
  43. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/events/comment.json +0 -0
  44. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/events/commented.json +0 -0
  45. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/events/committed.json +0 -0
  46. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/events/cross_referenced.json +0 -0
  47. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/events/reviewed.json +0 -0
  48. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/reaction.json +0 -0
  49. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/reactions.json +0 -0
  50. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/user.json +0 -0
  51. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/shared/user_graphql.json +0 -0
  52. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/stargazers.json +0 -0
  53. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/tags.json +0 -0
  54. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/team_members.json +0 -0
  55. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/team_memberships.json +0 -0
  56. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/teams.json +0 -0
  57. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/users.json +0 -0
  58. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/workflow_jobs.json +0 -0
  59. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/workflow_runs.json +0 -0
  60. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/schemas/workflows.json +0 -0
  61. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/source.py +0 -0
  62. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/spec.json +0 -0
  63. {airbyte_source_github-1.8.29 → airbyte_source_github-1.8.29.dev202506231501}/source_github/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-source-github
3
- Version: 1.8.29
3
+ Version: 1.8.29.dev202506231501
4
4
  Summary: Source implementation for GitHub.
5
5
  License: MIT
6
6
  Author: Airbyte
@@ -5,7 +5,7 @@ requires = [
5
5
  build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [tool.poetry]
8
- version = "1.8.29"
8
+ version = "1.8.29.dev202506231501"
9
9
  name = "airbyte-source-github"
10
10
  description = "Source implementation for GitHub."
11
11
  authors = [
@@ -43,6 +43,13 @@ GITHUB_DEFAULT_ERROR_MAPPING = DEFAULT_ERROR_MAPPING | {
43
43
  }
44
44
 
45
45
 
46
+ def is_conflict_with_empty_repository(response_or_exception: Optional[Union[requests.Response, Exception]] = None) -> bool:
47
+ if isinstance(response_or_exception, requests.Response) and response_or_exception.status_code == requests.codes.CONFLICT:
48
+ response_data = response_or_exception.json()
49
+ return response_data.get("message") == "Git Repository is empty."
50
+ return False
51
+
52
+
46
53
  class GithubStreamABCErrorHandler(HttpStatusErrorHandler):
47
54
  def __init__(self, stream: HttpStream, **kwargs): # type: ignore # noqa
48
55
  self.stream = stream
@@ -88,6 +95,13 @@ class GithubStreamABCErrorHandler(HttpStatusErrorHandler):
88
95
  error_message=f"Response status code: {response_or_exception.status_code}. Retrying...",
89
96
  )
90
97
 
98
+ if is_conflict_with_empty_repository(response_or_exception=response_or_exception):
99
+ return ErrorResolution(
100
+ response_action=ResponseAction.IGNORE,
101
+ failure_type=FailureType.config_error,
102
+ error_message="Git Repository is empty.",
103
+ )
104
+
91
105
  return super().interpret_response(response_or_exception)
92
106
 
93
107
 
@@ -29,6 +29,7 @@ from .errors_handlers import (
29
29
  ContributorActivityErrorHandler,
30
30
  GitHubGraphQLErrorHandler,
31
31
  GithubStreamABCErrorHandler,
32
+ is_conflict_with_empty_repository,
32
33
  )
33
34
  from .graphql import (
34
35
  CursorStorage,
@@ -217,6 +218,22 @@ class GithubStream(GithubStreamABC):
217
218
  record["repository"] = stream_slice["repository"]
218
219
  return record
219
220
 
221
+ def parse_response(
222
+ self,
223
+ response: requests.Response,
224
+ stream_state: Mapping[str, Any],
225
+ stream_slice: Mapping[str, Any] = None,
226
+ next_page_token: Mapping[str, Any] = None,
227
+ ) -> Iterable[Mapping]:
228
+ if is_conflict_with_empty_repository(response):
229
+ return
230
+ yield from super().parse_response(
231
+ response=response,
232
+ stream_state=stream_state,
233
+ stream_slice=stream_slice,
234
+ next_page_token=next_page_token,
235
+ )
236
+
220
237
 
221
238
  class SemiIncrementalMixin(CheckpointMixin):
222
239
  """