Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Source Instatus: built in yaml #21008

Merged
merged 9 commits into from
Jan 16, 2023

Conversation

darynaishchenko
Copy link
Collaborator

@darynaishchenko darynaishchenko commented Jan 4, 2023

Added source-instatus

Added two custom components ListAddFields and UpdatesSubstreamSlicer.
This was done for the maintenance_updates_stream and incident_updates_stream to work correctly.
The work algorithm is as follows, in the parent streams maintenance and incident is a list of all update objects. The ListAddFields component selects their IDs from these objects and adds them to the new list field "updates_ids".
Next, UpdatesSubstreamSlicer creates a stream of slices, iterating over the list of updates_ids and adding them to the slice with the correct parent id.
That is, ListAddFields solves the problem of not having a separate list of all updates_ids at the beginning and cannot extract them from the list of update objects. And UpdatesSubstreamSlicer has an additional iteration over the list of updates and creates a correct stream slice.

@darynaishchenko darynaishchenko self-assigned this Jan 4, 2023
@octavia-squidington-iv octavia-squidington-iv added area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/source/instatus labels Jan 4, 2023
@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 4, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3837230646
❌ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3837230646
🐛 https://gradle.com/s/rrt7recttsxgy

Build Failed

Test summary info:

=========================== short test summary info ============================
ERROR test_core.py::TestSpec::test_config_match_spec[inputs0] - FileNotFoundE...
ERROR test_core.py::TestConnection::test_check[inputs0] - FileNotFoundError: ...
ERROR test_core.py::TestDiscovery::test_discover[inputs0] - FileNotFoundError...
ERROR test_core.py::TestDiscovery::test_defined_cursors_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_refs_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-allOf]
ERROR test_core.py::TestDiscovery::test_defined_keyword_exist_in_schema[inputs0-not]
ERROR test_core.py::TestDiscovery::test_primary_keys_exist_in_schema[inputs0]
ERROR test_core.py::TestDiscovery::test_streams_has_sync_modes[inputs0] - Fil...
ERROR test_core.py::TestDiscovery::test_additional_properties_is_true[inputs0]
ERROR test_core.py::TestDiscovery::test_backward_compatibility[inputs0] - Fil...
ERROR test_core.py::TestBasicRead::test_read[inputs0] - FileNotFoundError: [E...
ERROR test_core.py::TestBasicRead::test_airbyte_trace_message_on_failure[inputs0]
ERROR test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
================== 13 passed, 2 skipped, 14 errors in 26.20s ===================

@darynaishchenko
Copy link
Collaborator Author

/test connector=connectors/source-instatus

@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 4, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3837702947
✅ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3837702947
Python tests coverage:

	 Name                                                 Stmts   Miss  Cover   Missing
	 ----------------------------------------------------------------------------------
	 source_acceptance_test/base.py                          12      4    67%   16-19
	 source_acceptance_test/config.py                       141      5    96%   87, 93, 239, 243-244
	 source_acceptance_test/conftest.py                     211     95    55%   36, 42-44, 49, 54, 77, 83, 89-91, 110, 115-117, 123-125, 131-132, 137-138, 143, 149, 158-167, 173-178, 193, 217, 248, 254, 262-267, 275-285, 293-306, 311-317, 324-335, 342-358
	 source_acceptance_test/plugin.py                        69     25    64%   22-23, 31, 36, 120-140, 144-148
	 source_acceptance_test/tests/test_core.py              402    115    71%   53, 58, 93-104, 109-116, 120-121, 125-126, 308, 346-363, 376-387, 391-396, 402, 435-440, 478-485, 528-530, 533, 598-606, 618-621, 626, 682-683, 689, 692, 728-738, 751-776
	 source_acceptance_test/tests/test_incremental.py       160     14    91%   56-63, 68-81, 244
	 source_acceptance_test/utils/asserts.py                 39      2    95%   62-63
	 source_acceptance_test/utils/common.py                  94     10    89%   16-17, 32-38, 72, 75
	 source_acceptance_test/utils/compare.py                 62     23    63%   21-51, 68, 97-99
	 source_acceptance_test/utils/connector_runner.py       133     33    75%   24-27, 46-47, 50-54, 57-58, 73-75, 78-80, 83-85, 88-90, 93-95, 124-125, 159-161, 208
	 source_acceptance_test/utils/json_schema_helper.py     107     13    88%   30-31, 38, 41, 65-68, 96, 120, 192-194
	 ----------------------------------------------------------------------------------
	 TOTAL                                                 1609    339    79%

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:380: The previous connector image could not be retrieved.
================== 26 passed, 3 skipped in 679.32s (0:11:19) ===================

Copy link
Collaborator

@bazarnov bazarnov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes are required. Please check the comments bellow.

}
}
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: please add new line

}
}
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: please add new line

}
}
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

}
}
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

}
}
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

type: string
title: Rest API Key
airbyte_secret: true
description: INSTATUS REST API key
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why upper-case letters are used?

Comment on lines 40 to 55
401_ignore_requester:
$ref: "*ref(definitions.requester)"
error_handler:
type: CompositeErrorHandler
error_handlers:
- type: DefaultErrorHandler
response_filters:
# 401 This user is not an owner of the status page
- http_codes: [ 401 ]
action: IGNORE
- response_filters:
- http_codes: [ 429 ]
action: RETRY
backoff_strategies:
- type: "ConstantBackoffStrategy"
backoff_time_in_seconds: 310
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also need to handle 422 and 403 or are these the exhausted list of exceptions for this connector?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation doesn't have detailed information about the errors, so all I could do was handle the errors I encountered. 401 replaces 403 and 422 errors.

action: RETRY
backoff_strategies:
- type: "ConstantBackoffStrategy"
backoff_time_in_seconds: 310
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does API return the RetryAfter header for 429?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thank you, I replaced ConstantBackoffStrategy with WaitTimeFromHeader.

- type: "ConstantBackoffStrategy"
backoff_time_in_seconds: 310

401_ignore_requester:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use a user-friendly name for this one? something like: api_error_handler_requester?

@@ -0,0 +1,114 @@
#
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This module should be covered with unit/integration tests (up to you), as it overrides/extends the default components.

@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 4, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3839298363
✅ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3839298363
Python tests coverage:

	 Name                                                 Stmts   Miss  Cover   Missing
	 ----------------------------------------------------------------------------------
	 source_acceptance_test/base.py                          12      4    67%   16-19
	 source_acceptance_test/config.py                       141      5    96%   87, 93, 239, 243-244
	 source_acceptance_test/conftest.py                     211     95    55%   36, 42-44, 49, 54, 77, 83, 89-91, 110, 115-117, 123-125, 131-132, 137-138, 143, 149, 158-167, 173-178, 193, 217, 248, 254, 262-267, 275-285, 293-306, 311-317, 324-335, 342-358
	 source_acceptance_test/plugin.py                        69     25    64%   22-23, 31, 36, 120-140, 144-148
	 source_acceptance_test/tests/test_core.py              402    115    71%   53, 58, 93-104, 109-116, 120-121, 125-126, 308, 346-363, 376-387, 391-396, 402, 435-440, 478-485, 528-530, 533, 598-606, 618-621, 626, 682-683, 689, 692, 728-738, 751-776
	 source_acceptance_test/tests/test_incremental.py       160     14    91%   56-63, 68-81, 244
	 source_acceptance_test/utils/asserts.py                 39      2    95%   62-63
	 source_acceptance_test/utils/common.py                  94     10    89%   16-17, 32-38, 72, 75
	 source_acceptance_test/utils/compare.py                 62     23    63%   21-51, 68, 97-99
	 source_acceptance_test/utils/connector_runner.py       133     33    75%   24-27, 46-47, 50-54, 57-58, 73-75, 78-80, 83-85, 88-90, 93-95, 124-125, 159-161, 208
	 source_acceptance_test/utils/json_schema_helper.py     107     13    88%   30-31, 38, 41, 65-68, 96, 120, 192-194
	 ----------------------------------------------------------------------------------
	 TOTAL                                                 1609    339    79%

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:380: The previous connector image could not be retrieved.
================== 26 passed, 3 skipped in 655.02s (0:10:55) ===================

Copy link
Collaborator

@bazarnov bazarnov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, once custom components are covered with unit/integration tests. Nice!

@darynaishchenko darynaishchenko linked an issue Jan 6, 2023 that may be closed by this pull request
Copy link
Contributor

@brianjlai brianjlai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good but I added a couple of suggestions on how we might streamline some of the components which had some repitition. Along with some formatting nits.

Also echoing @bazarnov to please add unit tests for the custom components and explain in the PR description why they were needed over the existing ones in the language. This feedback helps us figure out how we can enhance the language. Once we have those I will approve

from setuptools import find_packages, setup

MAIN_REQUIREMENTS = [
"airbyte-cdk",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just in case to protect from potential breaking major changes in the future, can you pin this to "airbyte-cdk~=0.1" so we will only get the latest minor and patch versions like it is in the setup.py template from the generator.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

# 401 This user is not an owner of the status page
- http_codes: [ 401 ]
action: IGNORE
- response_filters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, can you also include type: DefaultErrorHandler on this second element of the error_handlers array?

- type: DefaultErrorHandler
  response_filters:
    - http_codes: [ 429 ]
      action: RETRY
  backoff_strategies:
    - type: WaitTimeFromHeader
       header: "Retry-After"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

# 401 This user is not an owner of the status page
- http_codes: [ 401 ]
action: IGNORE
- response_filters:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above comment

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

type: BearerAuthenticator
api_token: "{{ config['api_key'] }}"

public_data_requester:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the public_data_requester is duplicating almost everything from the requester/api_error_handler_requester. The main thing that appears to change is that the url_base is set to https://{{ stream_slice.url }}.instatus.com/summary.json instead. Can we instead refactor this a bit so that everything can be defined on requester and reduce the duplicated fields..

The public_data_requester can just be written to override the one url_base instead of the whole thing:

public_data_requester:
  $ref: "*ref(definitions.requester)"
  url_base: "https://{{ stream_slice.url }}.instatus.com/summary.json"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- path: [ "updates_ids" ]
value: "{{ record['updates'] }}"


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit extra space

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

stream_slicer:
$ref: "*ref(definitions.page_url_stream_slicer)"


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit extra space

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.public_data_requester)"
path: "https://{{ stream_slice.url }}.instatus.com/summary.json"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To stick with convention we should separate the base_url and the path:
url_base: "https://{{ stream_slice.url }}.instatus.com/"
path: "summary.json"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I returned the previous version because it doesn't have stream_slice at the url_base step, so I received an error while SAT.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah i see. sorry for the mistake

@dataclass
class ListAddFields(AddFields):
"""
ListAddFields uses to transform record by adding an ids from list object field to one list.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For both of these custom components can you please include a quick summary in the PR description and in these comments why the existing AddFields component and the UpdatesSubstreamSlicer were not suitable for reuse by the Instatus API?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added two custom components ListAddFields and UpdatesSubstreamSlicer.
This was done for the maintenance_updates_stream and incident_updates_stream to work correctly.
The work algorithm is as follows, in the parent streams maintenance and incident is a list of all update objects. The ListAddFields component selects their IDs from these objects and adds them to the new field "updates_ids", which is a list.
Next, UpdatesSubstreamSlicer creates a stream of slices, additionally iterating over the list of updates_ids and adding them to the slice with the correct parent id.
That is, ListAddFields solves the problem that we do not have a separate list of all updates_ids at the beginning and cannot extract them from the list of update objects. And UpdatesSubstreamSlicer has an additional iteration over the list of updates and creates a correct stream slice.

@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 10, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3882850012
❌ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3882850012
🐛 https://gradle.com/s/rvivee3hiepki

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestBasicRead::test_read[inputs0] - docker.errors.Contai...
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:380: The previous connector image could not be retrieved.
============= 2 failed, 24 passed, 3 skipped in 347.24s (0:05:47) ==============

@darynaishchenko
Copy link
Collaborator Author

Overall looks good but I added a couple of suggestions on how we might streamline some of the components which had some repitition. Along with some formatting nits.

Also echoing @bazarnov to please add unit tests for the custom components and explain in the PR description why they were needed over the existing ones in the language. This feedback helps us figure out how we can enhance the language. Once we have those I will approve

Added unit tests and explanations about components.

@darynaishchenko
Copy link
Collaborator Author

/test connector=connectors/source-instatus

@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 10, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3884032530
❌ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3884032530
🐛 https://gradle.com/s/3m4qxrswjkkf2

Build Failed

Test summary info:

=========================== short test summary info ============================
FAILED test_core.py::TestBasicRead::test_read[inputs0] - docker.errors.Contai...
FAILED test_full_refresh.py::TestFullRefresh::test_sequential_reads[inputs0]
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:380: The previous connector image could not be retrieved.
============= 2 failed, 24 passed, 3 skipped in 346.69s (0:05:46) ==============

Copy link
Contributor

@brianjlai brianjlai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding comments for the custom components and for updating the connector manifest. One more suggestion to reuse the schema_loader component, and once the TestBasicRead and TestFullRefresh are passing then this is ready to be released.

stream_slice_field: "page_id"

page_components_stream:
schema_loader:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of defining this in every stream, if you were to reference the schema loader in the base stream, you should be able to avoid defining it in every stream.

base_stream:
  retriever:
    $ref: "*ref(definitions.retriever)"
  schema_loader:
    $ref: "*ref(definitions.schema_loader)"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, done

@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 11, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3892284489
✅ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3892284489
Python tests coverage:

Name                            Stmts   Miss  Cover
---------------------------------------------------
source_instatus/__init__.py         2      0   100%
source_instatus/components.py      42      5    88%
source_instatus/source.py           4      1    75%
---------------------------------------------------
TOTAL                              48      6    88%
	 Name                                                 Stmts   Miss  Cover   Missing
	 ----------------------------------------------------------------------------------
	 source_acceptance_test/base.py                          12      4    67%   16-19
	 source_acceptance_test/config.py                       141      5    96%   87, 93, 239, 243-244
	 source_acceptance_test/conftest.py                     211     95    55%   36, 42-44, 49, 54, 77, 83, 89-91, 110, 115-117, 123-125, 131-132, 137-138, 143, 149, 158-167, 173-178, 193, 217, 248, 254, 262-267, 275-285, 293-306, 311-317, 324-335, 342-358
	 source_acceptance_test/plugin.py                        69     25    64%   22-23, 31, 36, 120-140, 144-148
	 source_acceptance_test/tests/test_core.py              402    115    71%   53, 58, 93-104, 109-116, 120-121, 125-126, 308, 346-363, 376-387, 391-396, 402, 435-440, 478-485, 528-530, 533, 598-606, 618-621, 626, 682-683, 689, 692, 728-738, 751-776
	 source_acceptance_test/tests/test_incremental.py       160     14    91%   56-63, 68-81, 244
	 source_acceptance_test/utils/asserts.py                 39      2    95%   62-63
	 source_acceptance_test/utils/common.py                  94     10    89%   16-17, 32-38, 72, 75
	 source_acceptance_test/utils/compare.py                 62     23    63%   21-51, 68, 97-99
	 source_acceptance_test/utils/connector_runner.py       133     33    75%   24-27, 46-47, 50-54, 57-58, 73-75, 78-80, 83-85, 88-90, 93-95, 124-125, 159-161, 208
	 source_acceptance_test/utils/json_schema_helper.py     107     13    88%   30-31, 38, 41, 65-68, 96, 120, 192-194
	 ----------------------------------------------------------------------------------
	 TOTAL                                                 1609    339    79%

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:97: The previous connector image could not be retrieved.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:380: The previous connector image could not be retrieved.
================== 26 passed, 3 skipped in 654.66s (0:10:54) ===================

@darynaishchenko darynaishchenko temporarily deployed to more-secrets January 13, 2023 09:41 — with GitHub Actions Inactive
@darynaishchenko darynaishchenko temporarily deployed to more-secrets January 13, 2023 09:41 — with GitHub Actions Inactive
@darynaishchenko darynaishchenko temporarily deployed to more-secrets January 13, 2023 09:41 — with GitHub Actions Inactive
@darynaishchenko darynaishchenko temporarily deployed to more-secrets January 13, 2023 09:41 — with GitHub Actions Inactive
@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 13, 2023

/publish connector=connectors/source-instatus

🕑 Publishing the following connectors:
connectors/source-instatus
https://github.com/airbytehq/airbyte/actions/runs/3910179810


Connector Did it publish? Were definitions generated?
connectors/source-instatus

if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️

@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 10:18 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 10:18 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 10:18 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 10:19 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 11:05 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 11:05 — with GitHub Actions Inactive
@darynaishchenko
Copy link
Collaborator Author

darynaishchenko commented Jan 13, 2023

/test connector=connectors/source-instatus

🕑 connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3910897568
✅ connectors/source-instatus https://github.com/airbytehq/airbyte/actions/runs/3910897568
Python tests coverage:

Name                            Stmts   Miss  Cover
---------------------------------------------------
source_instatus/__init__.py         2      0   100%
source_instatus/components.py      42      5    88%
source_instatus/source.py           4      1    75%
---------------------------------------------------
TOTAL                              48      6    88%
	 Name                                                 Stmts   Miss  Cover   Missing
	 ----------------------------------------------------------------------------------
	 source_acceptance_test/base.py                          12      4    67%   16-19
	 source_acceptance_test/config.py                       141      5    96%   87, 93, 239, 243-244
	 source_acceptance_test/conftest.py                     211     95    55%   36, 42-44, 49, 54, 77, 83, 89-91, 110, 115-117, 123-125, 131-132, 137-138, 143, 149, 158-167, 173-178, 193, 217, 248, 254, 262-267, 275-285, 293-306, 311-317, 324-335, 342-358
	 source_acceptance_test/plugin.py                        69     25    64%   22-23, 31, 36, 120-140, 144-148
	 source_acceptance_test/tests/test_core.py              402    115    71%   53, 58, 93-104, 109-116, 120-121, 125-126, 308, 346-363, 376-387, 391-396, 402, 435-440, 478-485, 528-530, 533, 598-606, 618-621, 626, 682-683, 689, 692, 728-738, 751-776
	 source_acceptance_test/tests/test_incremental.py       160     14    91%   56-63, 68-81, 244
	 source_acceptance_test/utils/asserts.py                 39      2    95%   62-63
	 source_acceptance_test/utils/common.py                  94     10    89%   16-17, 32-38, 72, 75
	 source_acceptance_test/utils/compare.py                 62     23    63%   21-51, 68, 97-99
	 source_acceptance_test/utils/connector_runner.py       133     33    75%   24-27, 46-47, 50-54, 57-58, 73-75, 78-80, 83-85, 88-90, 93-95, 124-125, 159-161, 208
	 source_acceptance_test/utils/json_schema_helper.py     107     13    88%   30-31, 38, 41, 65-68, 96, 120, 192-194
	 ----------------------------------------------------------------------------------
	 TOTAL                                                 1609    339    79%

Build Passed

Test summary info:

=========================== short test summary info ============================
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/plugin.py:63: Skipping TestIncremental.test_two_sequential_reads: This connector does not implement incremental sync
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:94: The previous and actual specifications are identical.
SKIPPED [1] ../usr/local/lib/python3.9/site-packages/source_acceptance_test/tests/test_core.py:377: The previous and actual discovered catalogs are identical.
================== 26 passed, 3 skipped in 662.83s (0:11:02) ===================

@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 12:18 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 12:18 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 12:58 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 12:59 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 13:37 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 13:37 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 14:37 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 14:37 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 15:24 — with GitHub Actions Inactive
@octavia-squidington-iii octavia-squidington-iii temporarily deployed to more-secrets January 13, 2023 15:24 — with GitHub Actions Inactive
@lazebnyi lazebnyi temporarily deployed to more-secrets January 13, 2023 19:00 — with GitHub Actions Inactive
@lazebnyi lazebnyi temporarily deployed to more-secrets January 13, 2023 19:01 — with GitHub Actions Inactive
@darynaishchenko darynaishchenko merged commit 6091b38 into master Jan 16, 2023
@darynaishchenko darynaishchenko deleted the daryna/source-instatus/built-in-yaml branch January 16, 2023 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/source/instatus
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New source: connector InStatus
6 participants