diff --git a/.github/pr-welcome-community.md b/.github/pr-welcome-community.md index b34152aff..1591a0e41 100644 --- a/.github/pr-welcome-community.md +++ b/.github/pr-welcome-community.md @@ -29,4 +29,3 @@ As needed or by request, Airbyte Maintainers can execute the following slash com - `/test` - Runs connector tests with the updated CDK If you have any questions, feel free to ask in the PR comments or join our [Slack community](https://airbytehq.slack.com/). - diff --git a/.github/workflows/connector-tests.yml b/.github/workflows/connector-tests.yml index 2eda73dda..2bd73d7b2 100644 --- a/.github/workflows/connector-tests.yml +++ b/.github/workflows/connector-tests.yml @@ -76,7 +76,7 @@ jobs: cdk_extra: file-based - connector: destination-motherduck # For now, we mark as 'n/a' to always test this connector - cdk_extra: n/a # change to 'sql' to test less often + cdk_extra: n/a # change to 'sql' to test less often # source-amplitude failing for unrelated issue "date too far back" # e.g. https://github.com/airbytehq/airbyte-python-cdk/actions/runs/16053716569/job/45302638848?pr=639 # - connector: source-amplitude diff --git a/.github/workflows/slash_command_dispatch.yml b/.github/workflows/slash_command_dispatch.yml index 10ef9243b..1fa1f7012 100644 --- a/.github/workflows/slash_command_dispatch.yml +++ b/.github/workflows/slash_command_dispatch.yml @@ -36,7 +36,6 @@ jobs: pr=${{ github.event.issue.pull_request != null && github.event.issue.number || '' }} comment-id=${{ github.event.comment.id }} - - name: Edit comment with error message if: steps.dispatch.outputs.error-message uses: peter-evans/create-or-update-comment@v4 diff --git a/.gitignore b/.gitignore index 3936ce877..c80eca84b 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,6 @@ dist .vscode **/__pycache__ .tmp + +# ASDF tool versions files +.tool-versions diff --git a/airbyte_cdk/manifest_migrations/README.md b/airbyte_cdk/manifest_migrations/README.md index fc15a9c80..ef85fc8be 100644 --- a/airbyte_cdk/manifest_migrations/README.md +++ b/airbyte_cdk/manifest_migrations/README.md @@ -20,14 +20,15 @@ This directory contains the logic and registry for manifest migrations in the Ai 3. **Register the Migration:** - Open `migrations/registry.yaml`. - - Add an entry under the appropriate version, or create a new version section if needed. - - Version can be: "*", "==6.48.3", "~=1.2", ">=1.0.0,<2.0.0", "6.48.3" + - Add an entry under the appropriate version, or create a new version section if needed. + - Version can be: "*", "==6.48.3", "~=1.2", ">=1.0.0,<2.0.0", "6.48.3" - Each migration entry should include: - `name`: The filename (without `.py`) - `order`: The order in which this migration should be applied for the version - `description`: A short description of the migration Example: + ```yaml manifest_migrations: - version: 6.45.2 @@ -71,4 +72,4 @@ class ExampleMigration(ManifestMigration): --- -For more details, see the docstrings in `manifest_migration.py` and the examples in the `migrations/` folder. \ No newline at end of file +For more details, see the docstrings in `manifest_migration.py` and the examples in the `migrations/` folder. diff --git a/airbyte_cdk/manifest_migrations/migrations/registry.yaml b/airbyte_cdk/manifest_migrations/migrations/registry.yaml index 6bad4ba5b..393f499d7 100644 --- a/airbyte_cdk/manifest_migrations/migrations/registry.yaml +++ b/airbyte_cdk/manifest_migrations/migrations/registry.yaml @@ -4,7 +4,7 @@ manifest_migrations: - version: "*" - migrations: + migrations: - name: http_requester_url_base_to_url order: 1 description: | diff --git a/unit_tests/resource/http/response/declarative/property_chunking/rates_one_two.json b/unit_tests/resource/http/response/declarative/property_chunking/rates_one_two.json index 4fa000473..020d77d26 100644 --- a/unit_tests/resource/http/response/declarative/property_chunking/rates_one_two.json +++ b/unit_tests/resource/http/response/declarative/property_chunking/rates_one_two.json @@ -7,4 +7,4 @@ "rates": { "fake_currency": 1.2345 } -} \ No newline at end of file +} diff --git a/unit_tests/resource/http/response/declarative/property_chunking/rates_three_four.json b/unit_tests/resource/http/response/declarative/property_chunking/rates_three_four.json index 0a121f492..014c7754f 100644 --- a/unit_tests/resource/http/response/declarative/property_chunking/rates_three_four.json +++ b/unit_tests/resource/http/response/declarative/property_chunking/rates_three_four.json @@ -7,4 +7,4 @@ "rates": { "fake_currency": 1.2345 } -} \ No newline at end of file +} diff --git a/unit_tests/resource/http/response/file_api/article_attachments.json b/unit_tests/resource/http/response/file_api/article_attachments.json index 832499618..ec38c9356 100644 --- a/unit_tests/resource/http/response/file_api/article_attachments.json +++ b/unit_tests/resource/http/response/file_api/article_attachments.json @@ -16,4 +16,4 @@ "updated_at": "2025-03-11T23:33:57Z" } ] -} \ No newline at end of file +} diff --git a/unit_tests/resource/http/response/file_api/articles.json b/unit_tests/resource/http/response/file_api/articles.json index 6b97dea63..86f5df535 100644 --- a/unit_tests/resource/http/response/file_api/articles.json +++ b/unit_tests/resource/http/response/file_api/articles.json @@ -1,37 +1,35 @@ { - "count": 7, - "next_page": null, - "end_time": 1741736037, - "articles": [ - { - "id": 12138789487375, - "url": "https://d3v-airbyte.zendesk.com/api/v2/help_center/en-us/articles/12138789487375.json", - "html_url": "https://d3v-airbyte.zendesk.com/hc/en-us/articles/12138789487375-This-is-an-article-with-an-attachment", - "author_id": 360786799676, - "comments_disabled": false, - "draft": true, - "promoted": false, - "position": 0, - "vote_sum": 0, - "vote_count": 0, - "section_id": 7253394947215, - "created_at": "2025-03-11T23:33:57Z", - "updated_at": "2025-03-11T23:33:57Z", - "name": "This is an article with an attachment!", - "title": "This is an article with an attachment!", - "source_locale": "en-us", - "locale": "en-us", - "outdated": false, - "outdated_locales": [], - "edited_at": "2025-03-11T23:33:57Z", - "user_segment_id": 7253375826191, - "permission_group_id": 7253379449487, - "content_tag_ids": [], - "label_names": [], - "body": "

Here be some text\"some_image.webp\"

", - "user_segment_ids": [ - 7253375826191 - ] - } - ] - } \ No newline at end of file + "count": 7, + "next_page": null, + "end_time": 1741736037, + "articles": [ + { + "id": 12138789487375, + "url": "https://d3v-airbyte.zendesk.com/api/v2/help_center/en-us/articles/12138789487375.json", + "html_url": "https://d3v-airbyte.zendesk.com/hc/en-us/articles/12138789487375-This-is-an-article-with-an-attachment", + "author_id": 360786799676, + "comments_disabled": false, + "draft": true, + "promoted": false, + "position": 0, + "vote_sum": 0, + "vote_count": 0, + "section_id": 7253394947215, + "created_at": "2025-03-11T23:33:57Z", + "updated_at": "2025-03-11T23:33:57Z", + "name": "This is an article with an attachment!", + "title": "This is an article with an attachment!", + "source_locale": "en-us", + "locale": "en-us", + "outdated": false, + "outdated_locales": [], + "edited_at": "2025-03-11T23:33:57Z", + "user_segment_id": 7253375826191, + "permission_group_id": 7253379449487, + "content_tag_ids": [], + "label_names": [], + "body": "

Here be some text\"some_image.webp\"

", + "user_segment_ids": [7253375826191] + } + ] +} diff --git a/unit_tests/sources/declarative/file/file_stream_manifest.yaml b/unit_tests/sources/declarative/file/file_stream_manifest.yaml index 6d8ffd638..256a3816c 100644 --- a/unit_tests/sources/declarative/file/file_stream_manifest.yaml +++ b/unit_tests/sources/declarative/file/file_stream_manifest.yaml @@ -154,14 +154,13 @@ definitions: http_method: GET authenticator: type: SelectiveAuthenticator - authenticator_selection_path: [ "credentials", "credentials" ] + authenticator_selection_path: ["credentials", "credentials"] authenticators: oauth2.0: "#/definitions/bearer_authenticator" api_token: "#/definitions/basic_authenticator" download_target_extractor: type: DpathExtractor - field_path: [ "content_url" ] - + field_path: ["content_url"] streams: - $ref: "#/definitions/articles_stream" diff --git a/unit_tests/sources/declarative/file/test_file_stream_with_filename_extractor.yaml b/unit_tests/sources/declarative/file/test_file_stream_with_filename_extractor.yaml index d827189ab..1124b9ec0 100644 --- a/unit_tests/sources/declarative/file/test_file_stream_with_filename_extractor.yaml +++ b/unit_tests/sources/declarative/file/test_file_stream_with_filename_extractor.yaml @@ -154,16 +154,15 @@ definitions: http_method: GET authenticator: type: SelectiveAuthenticator - authenticator_selection_path: [ "credentials", "credentials" ] + authenticator_selection_path: ["credentials", "credentials"] authenticators: oauth2.0: "#/definitions/bearer_authenticator" api_token: "#/definitions/basic_authenticator" download_target_extractor: type: DpathExtractor - field_path: [ "content_url" ] + field_path: ["content_url"] filename_extractor: "{{ record.id }}/{{ record.file_name }}/" - streams: - $ref: "#/definitions/articles_stream" - $ref: "#/definitions/article_attachments_stream" diff --git a/unit_tests/sources/declarative/parsers/resources/stream_with_incremental_and_aync_retriever_with_partition_router.yaml b/unit_tests/sources/declarative/parsers/resources/stream_with_incremental_and_aync_retriever_with_partition_router.yaml index 5564af11b..f31f5def0 100644 --- a/unit_tests/sources/declarative/parsers/resources/stream_with_incremental_and_aync_retriever_with_partition_router.yaml +++ b/unit_tests/sources/declarative/parsers/resources/stream_with_incremental_and_aync_retriever_with_partition_router.yaml @@ -20,11 +20,11 @@ requester: login_requester: path: /session type: HttpRequester - url_base: 'https://api.sendgrid.com' + url_base: "https://api.sendgrid.com" http_method: POST request_body_json: - password: '{{ config.apikey }}' - username: '{{ parameters.name }}' + password: "{{ config.apikey }}" + username: "{{ parameters.name }}" session_token_path: - id request_authentication: @@ -109,7 +109,7 @@ list_stream: primary_key: "id" extractor: $ref: "#/extractor" - field_path: [ "{{ parameters['name'] }}" ] + field_path: ["{{ parameters['name'] }}"] status_mapping: failed: - Error @@ -117,7 +117,7 @@ list_stream: - Pending completed: - Success - timeout: [ ] + timeout: [] status_extractor: type: DpathExtractor field_path: @@ -179,4 +179,4 @@ list_stream: primary_key: "id" extractor: $ref: "#/extractor" - field_path: ["{{ parameters['name'] }}"] \ No newline at end of file + field_path: ["{{ parameters['name'] }}"]