From 28150cda7e52a16cee606102778546d6a84cb05d Mon Sep 17 00:00:00 2001 From: ron-damon Date: Wed, 26 Jan 2022 18:35:52 -0300 Subject: [PATCH 01/13] add stream's logic and schema --- .../schemas/balance_transactions.json | 52 +++++++++++++++++++ .../source-shopify/source_shopify/source.py | 45 +++++++++++----- 2 files changed, 83 insertions(+), 14 deletions(-) create mode 100644 airbyte-integrations/connectors/source-shopify/source_shopify/schemas/balance_transactions.json diff --git a/airbyte-integrations/connectors/source-shopify/source_shopify/schemas/balance_transactions.json b/airbyte-integrations/connectors/source-shopify/source_shopify/schemas/balance_transactions.json new file mode 100644 index 000000000000..1abec0f45df3 --- /dev/null +++ b/airbyte-integrations/connectors/source-shopify/source_shopify/schemas/balance_transactions.json @@ -0,0 +1,52 @@ +{ + "type": ["null", "object"], + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": ["null", "string"] + }, + "test": { + "type": ["null", "boolean"] + }, + "payout_id": { + "type": ["null", "integer"] + }, + "payout_status": { + "type": ["null", "string"] + }, + "payoucurrencyt_status": { + "type": ["null", "string"] + }, + "amount": { + "type": ["null", "number"] + }, + "fee": { + "type": ["null", "number"] + }, + "net": { + "type": ["null", "number"] + }, + "source_id": { + "type": ["null", "integer"] + }, + "source_type": { + "type": ["null", "string"] + }, + "source_order_transaction_id": { + "type": ["null", "integer"] + }, + "source_order_id": { + "type": ["null", "integer"] + }, + "processed_at": { + "type": ["null", "string"], + "format": "date-time" + }, + "shop_url": { + "type": ["null", "string"] + } + } + +} diff --git a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py index db54e5e23432..89c3cdcf6ab0 100644 --- a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py +++ b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py @@ -249,25 +249,12 @@ def path(self, **kwargs) -> str: return f"{self.data_field}.json" -class Collects(IncrementalShopifyStream): - """ - Collects stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: - https://shopify.dev/docs/admin-api/rest/reference/products/collect - - The Collect stream is the link between Products and Collections, if the Collection is created for Products, - the `collect` record is created, it's reasonable to Full Refresh all collects. As for Incremental refresh - - we would use the since_id specificaly for this stream. +class IncrementalByIDShopifyStream(IncrementalShopifyStream): - """ - - data_field = "collects" cursor_field = "id" order_field = "id" filter_field = "since_id" - def path(self, **kwargs) -> str: - return f"{self.data_field}.json" - def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: return {self.cursor_field: max(latest_record.get(self.cursor_field, 0), current_stream_state.get(self.cursor_field, 0))} @@ -281,6 +268,35 @@ def request_params( return params +class Collects(IncrementalByIDShopifyStream): + """ + Collects stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: + https://shopify.dev/docs/admin-api/rest/reference/products/collect + + The Collect stream is the link between Products and Collections, if the Collection is created for Products, + the `collect` record is created, it's reasonable to Full Refresh all collects. As for Incremental refresh - + we would use the since_id specificaly for this stream. + """ + + data_field = "collects" + + def path(self, **kwargs) -> str: + return f"{self.data_field}.json" + + +class BalanceTransactions(IncrementalByIDShopifyStream): + + """ + PaymentsTransactions stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: + https://shopify.dev/api/admin-rest/2021-07/resources/transactions + """ + + data_field = "transactions" + + def path(self, **kwargs) -> str: + return f"shopify_payments/balance/{self.data_field}.json" + + class OrderRefunds(ChildSubstream): parent_stream_class: object = Orders slice_key = "order_id" @@ -474,6 +490,7 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]: OrderRefunds(config), OrderRisks(config), Transactions(config), + BalanceTransactions(config), Pages(config), PriceRules(config), DiscountCodes(config), From c4657940021227e08988f221eb8930ef64c88fc3 Mon Sep 17 00:00:00 2001 From: ron-damon Date: Wed, 26 Jan 2022 18:37:03 -0300 Subject: [PATCH 02/13] bump connector's version --- .../9da77001-af33-4bcd-be46-6252bf9342b9.json | 2 +- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- airbyte-config/init/src/main/resources/seed/source_specs.yaml | 2 +- airbyte-integrations/connectors/source-shopify/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/9da77001-af33-4bcd-be46-6252bf9342b9.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/9da77001-af33-4bcd-be46-6252bf9342b9.json index f7c25e91b97f..efb6e5cbc44e 100644 --- a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/9da77001-af33-4bcd-be46-6252bf9342b9.json +++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/9da77001-af33-4bcd-be46-6252bf9342b9.json @@ -2,7 +2,7 @@ "sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9", "name": "Shopify", "dockerRepository": "airbyte/source-shopify", - "dockerImageTag": "0.1.30", + "dockerImageTag": "0.1.31", "documentationUrl": "https://docs.airbyte.io/integrations/sources/shopify", "icon": "shopify.svg" } diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 11d3411ada9d..fa0e08e027fd 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -655,7 +655,7 @@ - name: Shopify sourceDefinitionId: 9da77001-af33-4bcd-be46-6252bf9342b9 dockerRepository: airbyte/source-shopify - dockerImageTag: 0.1.30 + dockerImageTag: 0.1.31 documentationUrl: https://docs.airbyte.io/integrations/sources/shopify icon: shopify.svg sourceType: api diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index e975588e95cc..41900501e4f9 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -6994,7 +6994,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-shopify:0.1.30" +- dockerImage: "airbyte/source-shopify:0.1.31" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/shopify" connectionSpecification: diff --git a/airbyte-integrations/connectors/source-shopify/Dockerfile b/airbyte-integrations/connectors/source-shopify/Dockerfile index 8bc56821e972..359f7e1e71ac 100644 --- a/airbyte-integrations/connectors/source-shopify/Dockerfile +++ b/airbyte-integrations/connectors/source-shopify/Dockerfile @@ -28,5 +28,5 @@ COPY source_shopify ./source_shopify ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.30 +LABEL io.airbyte.version=0.1.31 LABEL io.airbyte.name=airbyte/source-shopify From 4699ad8efcf116068221968b6069b8a490181edf Mon Sep 17 00:00:00 2001 From: ron-damon Date: Wed, 26 Jan 2022 18:37:51 -0300 Subject: [PATCH 03/13] add changelog entry --- docs/integrations/sources/shopify.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/integrations/sources/shopify.md b/docs/integrations/sources/shopify.md index becfc749a5ea..1f4a34be643c 100644 --- a/docs/integrations/sources/shopify.md +++ b/docs/integrations/sources/shopify.md @@ -33,6 +33,7 @@ This Source is capable of syncing the following core Streams: * [Orders Risks](https://shopify.dev/api/admin/rest/reference/orders/order-risk) * [Products](https://help.shopify.com/en/api/reference/products) * [Transactions](https://help.shopify.com/en/api/reference/orders/transaction) +* [Balance Transactions](https://shopify.dev/api/admin-rest/2021-07/resources/transactions) * [Pages](https://help.shopify.com/en/api/reference/online-store/page) * [Price Rules](https://help.shopify.com/en/api/reference/discounts/pricerule) * [Locations](https://shopify.dev/api/admin-rest/2021-10/resources/location) @@ -101,6 +102,7 @@ This connector support both: `OAuth 2.0` and `API PASSWORD` (for private applica | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | +| 0.1.31 | 2021-01-26 | [XXXX](https://github.com/airbytehq/airbyte/pull/XXXX) | Added `BalanceTransactions` | | 0.1.30 | 2021-01-24 | [9648](https://github.com/airbytehq/airbyte/pull/9648) | Added permission validation before sync | | 0.1.29 | 2022-01-20 | [9049](https://github.com/airbytehq/airbyte/pull/9248) | Added `shop_url` to the record for all streams | | 0.1.28 | 2022-01-19 | [9591](https://github.com/airbytehq/airbyte/pull/9591) | Implemented `OAuth2.0` authentication method for Airbyte Cloud | From 7dc2a257c0ec2c01bd87ba973e82f437f2ada6bb Mon Sep 17 00:00:00 2001 From: ron-damon Date: Wed, 26 Jan 2022 18:39:07 -0300 Subject: [PATCH 04/13] add test resources --- .../integration_tests/abnormal_state.json | 3 +++ .../integration_tests/configured_catalog.json | 12 ++++++++++++ .../source-shopify/integration_tests/state.json | 3 +++ 3 files changed, 18 insertions(+) diff --git a/airbyte-integrations/connectors/source-shopify/integration_tests/abnormal_state.json b/airbyte-integrations/connectors/source-shopify/integration_tests/abnormal_state.json index e4a7d9adcbb2..7002c7f424df 100644 --- a/airbyte-integrations/connectors/source-shopify/integration_tests/abnormal_state.json +++ b/airbyte-integrations/connectors/source-shopify/integration_tests/abnormal_state.json @@ -55,5 +55,8 @@ }, "fulfillments": { "updated_at": "2024-07-08T05:40:38-07:00" + }, + "balance_transactions": { + "id": 9999999999999 } } diff --git a/airbyte-integrations/connectors/source-shopify/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-shopify/integration_tests/configured_catalog.json index c9cc07b41ad1..dd39c24570f9 100644 --- a/airbyte-integrations/connectors/source-shopify/integration_tests/configured_catalog.json +++ b/airbyte-integrations/connectors/source-shopify/integration_tests/configured_catalog.json @@ -237,6 +237,18 @@ "sync_mode": "incremental", "cursor_field": ["updated_at"], "destination_sync_mode": "append" + }, + { + "stream": { + "name": "balance_transactions", + "json_schema": {}, + "supported_sync_modes": ["incremental", "full_refresh"], + "source_defined_cursor": true, + "default_cursor_field": ["id"] + }, + "sync_mode": "incremental", + "cursor_field": ["id"], + "destination_sync_mode": "append" } ] } diff --git a/airbyte-integrations/connectors/source-shopify/integration_tests/state.json b/airbyte-integrations/connectors/source-shopify/integration_tests/state.json index 5c9988b0f283..d7880edccc43 100644 --- a/airbyte-integrations/connectors/source-shopify/integration_tests/state.json +++ b/airbyte-integrations/connectors/source-shopify/integration_tests/state.json @@ -55,5 +55,8 @@ }, "fulfillments": { "updated_at": "2021-09-10T06:48:10-07:00" + }, + "balance_transactions": { + "id": 29427031703741 } } From 3d48edc0fcbbfce31602955772b00121f14b2fa0 Mon Sep 17 00:00:00 2001 From: ron-damon Date: Thu, 27 Jan 2022 15:13:51 -0300 Subject: [PATCH 05/13] add stream to SCOPES_MAPPING --- .../connectors/source-shopify/source_shopify/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/airbyte-integrations/connectors/source-shopify/source_shopify/utils.py b/airbyte-integrations/connectors/source-shopify/source_shopify/utils.py index e23813b90924..69c8aff87dbd 100644 --- a/airbyte-integrations/connectors/source-shopify/source_shopify/utils.py +++ b/airbyte-integrations/connectors/source-shopify/source_shopify/utils.py @@ -20,6 +20,7 @@ "read_locations": ["Locations"], "read_inventory": ["InventoryItems", "InventoryLevels"], "read_merchant_managed_fulfillment_orders": ["FulfillmentOrders"], + "read_shopify_payments_payouts": ["BalanceTransactions"], } From 2bb1aab7cd275dfbec594557bc3f4f9705c2e4a4 Mon Sep 17 00:00:00 2001 From: ron-damon Date: Thu, 27 Jan 2022 15:42:21 -0300 Subject: [PATCH 06/13] set PR --- docs/integrations/sources/shopify.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/sources/shopify.md b/docs/integrations/sources/shopify.md index 1f4a34be643c..16c3375ee052 100644 --- a/docs/integrations/sources/shopify.md +++ b/docs/integrations/sources/shopify.md @@ -102,7 +102,7 @@ This connector support both: `OAuth 2.0` and `API PASSWORD` (for private applica | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | -| 0.1.31 | 2021-01-26 | [XXXX](https://github.com/airbytehq/airbyte/pull/XXXX) | Added `BalanceTransactions` | +| 0.1.31 | 2021-01-26 | [9850](https://github.com/airbytehq/airbyte/pull/9850) | Added `BalanceTransactions` | | 0.1.30 | 2021-01-24 | [9648](https://github.com/airbytehq/airbyte/pull/9648) | Added permission validation before sync | | 0.1.29 | 2022-01-20 | [9049](https://github.com/airbytehq/airbyte/pull/9248) | Added `shop_url` to the record for all streams | | 0.1.28 | 2022-01-19 | [9591](https://github.com/airbytehq/airbyte/pull/9591) | Implemented `OAuth2.0` authentication method for Airbyte Cloud | From 156e54ae90cbe878abe55c64c4e18701348f74fb Mon Sep 17 00:00:00 2001 From: Harshith Mullapudi Date: Tue, 22 Mar 2022 13:03:27 +0530 Subject: [PATCH 07/13] fix: tests --- .../source-shopify/acceptance-test-config.yml | 2 +- .../source-shopify/source_shopify/source.py | 44 +++++++++++-------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/airbyte-integrations/connectors/source-shopify/acceptance-test-config.yml b/airbyte-integrations/connectors/source-shopify/acceptance-test-config.yml index b138f5a3b61c..cda71978b962 100644 --- a/airbyte-integrations/connectors/source-shopify/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-shopify/acceptance-test-config.yml @@ -25,7 +25,7 @@ tests: timeout_seconds: 3600 # some streams hold data only for some time, therefore certain streams could be empty while sync. # 'abandoned_checkouts' stream holds data up to 1 month. - empty_streams: ["abandoned_checkouts"] + empty_streams: ["abandoned_checkouts", "balance_transactions"] incremental: - config_path: "secrets/config.json" configured_catalog_path: "integration_tests/configured_catalog.json" diff --git a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py index ebdf831aff5f..fa138a786c8d 100644 --- a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py +++ b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py @@ -299,8 +299,17 @@ def path(self, **kwargs) -> str: return f"{self.data_field}.json" -class IncrementalByIDShopifyStream(IncrementalShopifyStream): +class Collects(IncrementalShopifyStream): + """ + Collects stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: + https://shopify.dev/docs/admin-api/rest/reference/products/collect + + The Collect stream is the link between Products and Collections, if the Collection is created for Products, + the `collect` record is created, it's reasonable to Full Refresh all collects. As for Incremental refresh - + we would use the since_id specificaly for this stream. + """ + data_field = "collects" cursor_field = "id" order_field = "id" filter_field = "since_id" @@ -321,23 +330,7 @@ def request_params( return params -class Collects(IncrementalByIDShopifyStream): - """ - Collects stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: - https://shopify.dev/docs/admin-api/rest/reference/products/collect - - The Collect stream is the link between Products and Collections, if the Collection is created for Products, - the `collect` record is created, it's reasonable to Full Refresh all collects. As for Incremental refresh - - we would use the since_id specificaly for this stream. - """ - - data_field = "collects" - - def path(self, **kwargs) -> str: - return f"{self.data_field}.json" - - -class BalanceTransactions(IncrementalByIDShopifyStream): +class BalanceTransactions(IncrementalShopifyStream): """ PaymentsTransactions stream does not support Incremental Refresh based on datetime fields, only `since_id` is supported: @@ -345,9 +338,24 @@ class BalanceTransactions(IncrementalByIDShopifyStream): """ data_field = "transactions" + cursor_field = "id" + order_field = "id" + filter_field = "since_id" def path(self, **kwargs) -> str: return f"shopify_payments/balance/{self.data_field}.json" + + def request_params( + self, stream_state: Mapping[str, Any] = None, next_page_token: Mapping[str, Any] = None, **kwargs + ) -> MutableMapping[str, Any]: + params = super().request_params(stream_state=stream_state, next_page_token=next_page_token, **kwargs) + # If there is a next page token then we should only send pagination-related parameters. + if not next_page_token and not stream_state: + params[self.filter_field] = 0 + return params + + def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: + return {self.cursor_field: max(latest_record.get(self.cursor_field, 0), current_stream_state.get(self.cursor_field, 0))} class OrderRefunds(ShopifySubstream): parent_stream_class: object = Orders From 8ae46499a2f63b2cfcf04e0047daf998e73f87e2 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 12:27:35 +0200 Subject: [PATCH 08/13] improved the request_params filtering logic --- .../source-shopify/source_shopify/source.py | 38 ++++++------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py index fa138a786c8d..e9cf2bd06693 100644 --- a/airbyte-integrations/connectors/source-shopify/source_shopify/source.py +++ b/airbyte-integrations/connectors/source-shopify/source_shopify/source.py @@ -38,6 +38,13 @@ def __init__(self, config: Dict): @property def url_base(self) -> str: return f"https://{self.config['shop']}.myshopify.com/admin/api/{self.api_version}/" + + @property + def default_filter_field_value(self) -> Union[int, str]: + # certain streams are using `since_id` field as `filter_field`, which requires to use `int` type, + # but many other use `str` values for this, we determine what to use based on `filter_field` value + # by default, we use the user defined `Start Date` as initial value, or 0 for `id`-dependent streams. + return 0 if self.filter_field == "since_id" else self.config["start_date"] @staticmethod def next_page_token(response: requests.Response) -> Optional[Mapping[str, Any]]: @@ -53,7 +60,7 @@ def request_params(self, next_page_token: Mapping[str, Any] = None, **kwargs) -> params.update(**next_page_token) else: params["order"] = f"{self.order_field} asc" - params[self.filter_field] = self.config["start_date"] + params[self.filter_field] = self.default_filter_field_value return params @limiter.balance_rate_limit() @@ -92,7 +99,7 @@ def state_checkpoint_interval(self) -> int: cursor_field = "updated_at" @property - def default_comparison_value(self) -> Union[int, str]: + def default_state_comparison_value(self) -> Union[int, str]: # certain streams are using `id` field as `cursor_field`, which requires to use `int` type, # but many other use `str` values for this, we determine what to use based on `cursor_field` value return 0 if self.cursor_field == "id" else "" @@ -100,8 +107,8 @@ def default_comparison_value(self) -> Union[int, str]: def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: return { self.cursor_field: max( - latest_record.get(self.cursor_field, self.default_comparison_value), - current_stream_state.get(self.cursor_field, self.default_comparison_value), + latest_record.get(self.cursor_field, self.default_state_comparison_value), + current_stream_state.get(self.cursor_field, self.default_state_comparison_value), ) } @@ -313,22 +320,10 @@ class Collects(IncrementalShopifyStream): cursor_field = "id" order_field = "id" filter_field = "since_id" - - def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: - return {self.cursor_field: max(latest_record.get(self.cursor_field, 0), current_stream_state.get(self.cursor_field, 0))} def path(self, **kwargs) -> str: return f"{self.data_field}.json" - def request_params( - self, stream_state: Mapping[str, Any] = None, next_page_token: Mapping[str, Any] = None, **kwargs - ) -> MutableMapping[str, Any]: - params = super().request_params(stream_state=stream_state, next_page_token=next_page_token, **kwargs) - # If there is a next page token then we should only send pagination-related parameters. - if not next_page_token and not stream_state: - params[self.filter_field] = 0 - return params - class BalanceTransactions(IncrementalShopifyStream): @@ -344,18 +339,7 @@ class BalanceTransactions(IncrementalShopifyStream): def path(self, **kwargs) -> str: return f"shopify_payments/balance/{self.data_field}.json" - - def request_params( - self, stream_state: Mapping[str, Any] = None, next_page_token: Mapping[str, Any] = None, **kwargs - ) -> MutableMapping[str, Any]: - params = super().request_params(stream_state=stream_state, next_page_token=next_page_token, **kwargs) - # If there is a next page token then we should only send pagination-related parameters. - if not next_page_token and not stream_state: - params[self.filter_field] = 0 - return params - def get_updated_state(self, current_stream_state: MutableMapping[str, Any], latest_record: Mapping[str, Any]) -> Mapping[str, Any]: - return {self.cursor_field: max(latest_record.get(self.cursor_field, 0), current_stream_state.get(self.cursor_field, 0))} class OrderRefunds(ShopifySubstream): parent_stream_class: object = Orders From 52736292b3316d0aa15a4e5b05a160076ec38ae6 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 12:36:22 +0200 Subject: [PATCH 09/13] bumped the version correctly --- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- docs/integrations/sources/shopify.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 3f43ac7e744c..3d1d7e0e4d1d 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -697,7 +697,7 @@ - name: Shopify sourceDefinitionId: 9da77001-af33-4bcd-be46-6252bf9342b9 dockerRepository: airbyte/source-shopify - dockerImageTag: 0.1.35 + dockerImageTag: 0.1.36 documentationUrl: https://docs.airbyte.io/integrations/sources/shopify icon: shopify.svg sourceType: api diff --git a/docs/integrations/sources/shopify.md b/docs/integrations/sources/shopify.md index a08ceb9390c9..0c408471531d 100644 --- a/docs/integrations/sources/shopify.md +++ b/docs/integrations/sources/shopify.md @@ -139,7 +139,7 @@ This is expected when the connector hits the 429 - Rate Limit Exceeded HTTP Erro | Version | Date | Pull Request | Subject | | :--- | :--- | :--- | :--- | -| 0.1.36 | 2021-02-09 | [9850](https://github.com/airbytehq/airbyte/pull/9850) | Added `BalanceTransactions` | +| 0.1.36 | 2022-03-22 | [9850](https://github.com/airbytehq/airbyte/pull/9850) | Added `BalanceTransactions` stream | | 0.1.35 | 2022-03-07 | [10915](https://github.com/airbytehq/airbyte/pull/10915) | Fix a bug which caused `full-refresh` syncs of child REST entities configured for `incremental` | | 0.1.34 | 2022-03-02 | [10794](https://github.com/airbytehq/airbyte/pull/10794) | Minor specification re-order, fixed links in documentation | | 0.1.33 | 2022-02-17 | [10419](https://github.com/airbytehq/airbyte/pull/10419) | Fixed wrong field type for tax_exemptions for `Abandoned_checkouts` stream | From 5c74cdcb170248d6b9863928fdeb69f917ab7ac7 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 17:08:05 +0200 Subject: [PATCH 10/13] edited publish command due to the issue: https://github.com/google-github-actions/setup-gcloud/issues/539 --- .github/workflows/publish-command.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-command.yml b/.github/workflows/publish-command.yml index 3cbf9cfc878f..87fb6ccd36a7 100644 --- a/.github/workflows/publish-command.yml +++ b/.github/workflows/publish-command.yml @@ -51,7 +51,7 @@ jobs: environment: more-secrets steps: - name: Set up Cloud SDK - uses: google-github-actions/setup-gcloud@master + uses: google-github-actions/setup-gcloud@@v0 with: service_account_key: ${{ secrets.SPEC_CACHE_SERVICE_ACCOUNT_KEY }} export_default_credentials: true From 6098d830a7ee22c2f14457bd90772c3606147833 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 17:12:59 +0200 Subject: [PATCH 11/13] fixed @ element --- .github/workflows/publish-command.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-command.yml b/.github/workflows/publish-command.yml index 87fb6ccd36a7..2b6958559d00 100644 --- a/.github/workflows/publish-command.yml +++ b/.github/workflows/publish-command.yml @@ -51,7 +51,7 @@ jobs: environment: more-secrets steps: - name: Set up Cloud SDK - uses: google-github-actions/setup-gcloud@@v0 + uses: google-github-actions/setup-gcloud@v0 with: service_account_key: ${{ secrets.SPEC_CACHE_SERVICE_ACCOUNT_KEY }} export_default_credentials: true From 73c00e5b930b0c2bfe35e7577ddc107ea2b11d15 Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 17:19:40 +0200 Subject: [PATCH 12/13] fixed other actions from using @master to use @v0 --- .github/workflows/gke-kube-test-command.yml | 2 +- .github/workflows/publish-external-command.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gke-kube-test-command.yml b/.github/workflows/gke-kube-test-command.yml index 849713687dc2..31d77f8ac40e 100644 --- a/.github/workflows/gke-kube-test-command.yml +++ b/.github/workflows/gke-kube-test-command.yml @@ -76,7 +76,7 @@ jobs: sudo apt-get install socat - name: Set up Cloud SDK - uses: google-github-actions/setup-gcloud@master + uses: google-github-actions/setup-gcloud@v0 with: project_id: ${{ secrets.GKE_TEST_PROJECT_ID }} service_account_key: ${{ secrets.GKE_TEST_SA_KEY }} diff --git a/.github/workflows/publish-external-command.yml b/.github/workflows/publish-external-command.yml index 8fb7093d167d..8e9f89f9e375 100644 --- a/.github/workflows/publish-external-command.yml +++ b/.github/workflows/publish-external-command.yml @@ -50,7 +50,7 @@ jobs: environment: more-secrets steps: - name: Set up Cloud SDK - uses: google-github-actions/setup-gcloud@master + uses: google-github-actions/setup-gcloud@v0 with: service_account_key: ${{ secrets.SPEC_CACHE_SERVICE_ACCOUNT_KEY }} export_default_credentials: true From 8373e94a60dff76dfe940072a93ce077e190263b Mon Sep 17 00:00:00 2001 From: Oleksandr Bazarnov Date: Tue, 22 Mar 2022 21:17:33 +0200 Subject: [PATCH 13/13] new spec --- airbyte-config/init/src/main/resources/seed/source_specs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index 9bcd82ef0bb9..cab1d4be7c2b 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -7430,7 +7430,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-shopify:0.1.35" +- dockerImage: "airbyte/source-shopify:0.1.36" spec: documentationUrl: "https://docs.airbyte.io/integrations/sources/shopify" connectionSpecification: