airbyte-source-github 1.7.3__tar.gz → 1.7.5__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 (61) hide show
  1. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/PKG-INFO +1 -1
  2. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/pyproject.toml +1 -1
  3. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/source.py +7 -6
  4. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/spec.json +10 -0
  5. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/streams.py +1 -1
  6. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/README.md +0 -0
  7. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/__init__.py +0 -0
  8. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/config_migrations.py +0 -0
  9. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/constants.py +0 -0
  10. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/github_schema.py +0 -0
  11. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/graphql.py +0 -0
  12. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/run.py +0 -0
  13. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/assignees.json +0 -0
  14. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/branches.json +0 -0
  15. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/collaborators.json +0 -0
  16. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/comments.json +0 -0
  17. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/commit_comment_reactions.json +0 -0
  18. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/commit_comments.json +0 -0
  19. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/commits.json +0 -0
  20. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/contributor_activity.json +0 -0
  21. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/deployments.json +0 -0
  22. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/events.json +0 -0
  23. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_comment_reactions.json +0 -0
  24. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_events.json +0 -0
  25. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_labels.json +0 -0
  26. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_milestones.json +0 -0
  27. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_reactions.json +0 -0
  28. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issue_timeline_events.json +0 -0
  29. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/issues.json +0 -0
  30. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/organizations.json +0 -0
  31. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/project_cards.json +0 -0
  32. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/project_columns.json +0 -0
  33. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/projects.json +0 -0
  34. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/projects_v2.json +0 -0
  35. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/pull_request_comment_reactions.json +0 -0
  36. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/pull_request_commits.json +0 -0
  37. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/pull_request_stats.json +0 -0
  38. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/pull_requests.json +0 -0
  39. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/releases.json +0 -0
  40. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/repositories.json +0 -0
  41. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/review_comments.json +0 -0
  42. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/reviews.json +0 -0
  43. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/events/comment.json +0 -0
  44. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/events/commented.json +0 -0
  45. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/events/committed.json +0 -0
  46. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/events/cross_referenced.json +0 -0
  47. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/events/reviewed.json +0 -0
  48. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/reaction.json +0 -0
  49. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/reactions.json +0 -0
  50. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/user.json +0 -0
  51. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/shared/user_graphql.json +0 -0
  52. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/stargazers.json +0 -0
  53. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/tags.json +0 -0
  54. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/team_members.json +0 -0
  55. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/team_memberships.json +0 -0
  56. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/teams.json +0 -0
  57. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/users.json +0 -0
  58. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/workflow_jobs.json +0 -0
  59. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/workflow_runs.json +0 -0
  60. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/schemas/workflows.json +0 -0
  61. {airbyte_source_github-1.7.3 → airbyte_source_github-1.7.5}/source_github/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-github
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Summary: Source implementation for GitHub.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -5,7 +5,7 @@ requires = [
5
5
  build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [tool.poetry]
8
- version = "1.7.3"
8
+ version = "1.7.5"
9
9
  name = "airbyte-source-github"
10
10
  description = "Source implementation for GitHub."
11
11
  authors = [
@@ -1,16 +1,15 @@
1
1
  #
2
2
  # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
3
  #
4
-
4
+ import logging
5
5
  from os import getenv
6
6
  from typing import Any, List, Mapping, MutableMapping, Optional, Tuple
7
7
  from urllib.parse import urlparse
8
8
 
9
- from airbyte_cdk import AirbyteLogger
10
- from airbyte_cdk.models import FailureType, SyncMode
9
+ from airbyte_cdk.models import FailureType
11
10
  from airbyte_cdk.sources import AbstractSource
12
11
  from airbyte_cdk.sources.streams import Stream
13
- from airbyte_cdk.sources.streams.http.auth import MultipleTokenAuthenticator
12
+ from airbyte_cdk.sources.streams.http.requests_native_auth import MultipleTokenAuthenticator
14
13
  from airbyte_cdk.utils.traced_exception import AirbyteTracedException
15
14
  from source_github.utils import MultipleTokenAuthenticatorWithRateLimiter
16
15
 
@@ -191,7 +190,7 @@ class SourceGithub(AbstractSource):
191
190
  )
192
191
  return user_message
193
192
 
194
- def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> Tuple[bool, Any]:
193
+ def check_connection(self, logger: logging.Logger, config: Mapping[str, Any]) -> Tuple[bool, Any]:
195
194
  config = self._validate_and_transform_config(config)
196
195
  try:
197
196
  authenticator = self._get_authenticator(config)
@@ -238,12 +237,13 @@ class SourceGithub(AbstractSource):
238
237
  # This parameter is deprecated and in future will be used sane default, page_size: 10
239
238
  page_size = config.get("page_size_for_large_streams", constants.DEFAULT_PAGE_SIZE_FOR_LARGE_STREAM)
240
239
  access_token_type, _ = self.get_access_token(config)
241
-
240
+ max_waiting_time = config.get("max_waiting_time", 10) * 60
242
241
  organization_args = {
243
242
  "authenticator": authenticator,
244
243
  "organizations": organizations,
245
244
  "api_url": config.get("api_url"),
246
245
  "access_token_type": access_token_type,
246
+ "max_waiting_time": max_waiting_time,
247
247
  }
248
248
  start_date = config.get("start_date")
249
249
  organization_args_with_start_date = {**organization_args, "start_date": start_date}
@@ -254,6 +254,7 @@ class SourceGithub(AbstractSource):
254
254
  "repositories": repositories,
255
255
  "page_size_for_large_streams": page_size,
256
256
  "access_token_type": access_token_type,
257
+ "max_waiting_time": max_waiting_time,
257
258
  }
258
259
  repository_args_with_start_date = {**repository_args, "start_date": start_date}
259
260
 
@@ -131,6 +131,16 @@
131
131
  "description": "List of GitHub repository branches to pull commits for, e.g. `airbytehq/airbyte/master`. If no branches are specified for a repository, the default branch will be pulled.",
132
132
  "order": 4,
133
133
  "pattern_descriptor": "org/repo/branch1 org/repo/branch2"
134
+ },
135
+ "max_waiting_time": {
136
+ "type": "integer",
137
+ "title": "Max Waiting Time (in minutes)",
138
+ "examples": [10, 30, 60],
139
+ "default": 10,
140
+ "minimum": 1,
141
+ "maximum": 60,
142
+ "description": "Max Waiting Time for rate limit. Set higher value to wait till rate limits will be resetted to continue sync",
143
+ "order": 5
134
144
  }
135
145
  }
136
146
  },
@@ -42,7 +42,7 @@ class GithubStreamABC(HttpStream, ABC):
42
42
 
43
43
  def __init__(self, api_url: str = "https://api.github.com", access_token_type: str = "", **kwargs):
44
44
  if kwargs.get("authenticator"):
45
- kwargs["authenticator"].max_time = self.max_time
45
+ kwargs["authenticator"].max_time = kwargs.pop("max_waiting_time", self.max_time)
46
46
  super().__init__(**kwargs)
47
47
 
48
48
  self.access_token_type = access_token_type