* init * implement working source + tests * add docs * add docs * fix bad comments * Update airbyte-integrations/connectors/source-dockerhub/acceptance-test-config.yml * Update airbyte-integrations/connectors/source-dockerhub/Dockerfile * Update airbyte-integrations/connectors/source-dockerhub/.dockerignore * Apply suggestions from code review * Update docs/integrations/sources/dockerhub.md * Update airbyte-integrations/connectors/source-dockerhub/integration_tests/acceptance.py Co-authored-by: George Claireaux <george@airbyte.io> * address @Phlair's feedback * address @Phlair's feedback * each record is now a Docker image rather than response page * format * fix unit tests * fix acceptance tests * add icon, definition and generate seed spec * add requests to requirements Co-authored-by: sw-yx <shawnthe1@gmail.com>
1.2 KiB
1.2 KiB
Dockerhub Source API
- Origin issue/discussion: https://github.com/airbytehq/airbyte/issues/12773
- API docs: https://docs.docker.com/registry/spec/api/
- Helpful StackOverflow answer on DockerHub API auth call: https://stackoverflow.com/questions/56193110/how-can-i-use-docker-registry-http-api-v2-to-obtain-a-list-of-all-repositories-i#answer-68654659
All API calls need to be authenticated, but for public info, you can just obtain a short lived token from this endpoint without any username/password, so this is what we have done for simplicity.
If you are reading this in the future and need to expand this source connector to include private data, do take note that you'll need to add the /secrets/config.json files and change the auth strategy (we think it takes either HTTP basic auth or Oauth2 to the same endpoint, with the right scope):
- Original notes: https://github.com/airbytehq/airbyte/issues/12773#issuecomment-1126785570
- Auth docs: https://docs.docker.com/registry/spec/auth/jwt/
- Might also want to use OAuth2: https://docs.docker.com/registry/spec/auth/oauth/
- Scope docs: https://docs.docker.com/registry/spec/auth/scope/