-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Labels
bugSomething isn't workingSomething isn't working
Description
The following config:
{
"auth_token": access_token,
"start_date": "2022-12-09",
"organizations": ["laurents"]
}
will crash the tap with the following traceback (trimmed to the useful part):
2022-12-09 17:36:11,534 Beginning incremental sync of 'repositories'...
2022-12-09 17:36:11,534 Tap has custom mapper. Using 1 provided map(s).
2022-12-09 17:36:11,900 Tap will run with 1 auth tokens
Traceback (most recent call last):
[...]
File "tap_github/repository_streams.py", line 182, in get_records
yield from super().get_records(context)
File "singer_sdk/streams/rest.py", line 537, in get_records
for record in self.request_records(context):
File "singer_sdk/streams/rest.py", line 357, in request_records
resp = decorated_request(prepared_request, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "singer_sdk/streams/rest.py", line 253, in _request
self.validate_response(response)
File "/tap_github/client.py", line 233, in validate_response
raise FatalAPIError(msg)
singer_sdk.exceptions.FatalAPIError: 404 Client Error: b'{"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/repos#list-organization-repositories"}' (Reason: Not Found) for path: /orgs/laurents/repos
This is because my username is not an org from github's perspective. Calling the users/laurents/repos
endpoint works fine on the other hand.
I'm not sure what the best solution is:
- let calling code check that the values are valid. I don't think this is right, the tap shouldn't crash.
- run a preliminary query like we do for repositories and use it to filter out invalid org names.
- handle the error where it's raised, but it's difficult to have enough context to do it properly.
- any other ideas?
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working