airbyte-source-github 2.6.0__tar.gz → 2.6.1__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 (35) hide show
  1. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/PKG-INFO +1 -1
  2. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/pyproject.toml +1 -1
  3. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/manifest.yaml +10 -6
  4. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/.airbyte-pypi-readme.md +0 -0
  5. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/__init__.py +0 -0
  6. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/backoff_strategies.py +0 -0
  7. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/components.py +0 -0
  8. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/config_migrations.py +0 -0
  9. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/constants.py +0 -0
  10. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/errors_handlers.py +0 -0
  11. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/github_schema.py +0 -0
  12. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/graphql.py +0 -0
  13. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/run.py +0 -0
  14. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/commit_comments.json +0 -0
  15. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/issue_reactions.json +0 -0
  16. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/issue_timeline_events.json +0 -0
  17. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/projects.json +0 -0
  18. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/projects_v2.json +0 -0
  19. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/pull_request_comment_reactions.json +0 -0
  20. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/pull_request_stats.json +0 -0
  21. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/pull_requests.json +0 -0
  22. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/releases.json +0 -0
  23. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/reviews.json +0 -0
  24. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/events/comment.json +0 -0
  25. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/events/commented.json +0 -0
  26. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/events/committed.json +0 -0
  27. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/events/cross_referenced.json +0 -0
  28. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/events/reviewed.json +0 -0
  29. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/reaction.json +0 -0
  30. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/reactions.json +0 -0
  31. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/user.json +0 -0
  32. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/schemas/shared/user_graphql.json +0 -0
  33. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/source.py +0 -0
  34. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/streams.py +0 -0
  35. {airbyte_source_github-2.6.0 → airbyte_source_github-2.6.1}/source_github/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-github
3
- Version: 2.6.0
3
+ Version: 2.6.1
4
4
  Summary: Source implementation for GitHub.
5
5
  Home-page: https://airbyte.com
6
6
  License: ELv2
@@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",]
3
3
  build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
- version = "2.6.0"
6
+ version = "2.6.1"
7
7
  name = "airbyte-source-github"
8
8
  description = "Source implementation for GitHub."
9
9
  authors = [ "Airbyte <contact@airbyte.io>",]
@@ -513,25 +513,29 @@ definitions:
513
513
  page_link_paginator:
514
514
  type: DefaultPaginator
515
515
  page_token_option:
516
- type: RequestOption
517
- inject_into: request_parameter
518
- field_name: "page"
516
+ type: RequestPath
519
517
  pagination_strategy:
520
518
  # GitHub's documented end-of-data signal is the absence of a `rel="next"` link
521
519
  # header — a short page is not guaranteed to be the last page. This mirrors the
522
520
  # legacy `GithubStreamABC.next_page_token`, which parsed `page` out of that same link.
523
521
  # Inferring the end from `last_page_size < 100` instead would silently truncate the org
524
522
  # repo list that drives every downstream partition.
523
+ # The full `next` URL becomes the request path (`DefaultPaginator.path()` returns the
524
+ # token for a `RequestPath` option, and `HttpRequester` accepts an absolute URL as
525
+ # path). Extracting only `page=N` is not enough: past GitHub's large-dataset threshold
526
+ # the next link carries an opaque `after` cursor and page-only requests are rejected
527
+ # with 422. The requester's `request_parameters`/`since` are still appended and
528
+ # duplicate the ones already in the URL with identical values, which GitHub accepts.
525
529
  # CursorPaginationStrategy replaces `headers["link"]` with `response.links`, so this
526
530
  # walks that dict. Chained `.get(...)` with defaults is required rather than
527
531
  # `headers.link.next.url`: on the last page there is no `next` link, and attribute
528
532
  # access would raise Jinja's UndefinedError. InterpolatedString defaults `default` to
529
533
  # the template itself, so JinjaInterpolation.eval's UndefinedError guard just
530
534
  # re-evaluates the same failing expression and the error escapes, failing the sync.
531
- # On the last page there is no `next` link, so `regex_search` gets "" and returns None;
532
- # CursorPaginationStrategy ends on `token if token else None`, so pagination stops.
535
+ # On the last page there is no `next` link, so the cursor renders "" which becomes
536
+ # None; CursorPaginationStrategy ends on `token if token else None`, so pagination stops.
533
537
  type: CursorPagination
534
- cursor_value: '{{ headers.get("link", {}).get("next", {}).get("url", "") | regex_search("[?&]page=([0-9]+)") }}'
538
+ cursor_value: '{{ headers.get("link", {}).get("next", {}).get("url", "") }}'
535
539
 
536
540
  # Resolver streams: internal parent streams used only to drive the shared
537
541
  # partition routers below. They are not exposed in the catalog.