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

🎉 New Source: Bing Ads #4911

Merged
merged 36 commits into from
Aug 13, 2021
Merged

🎉 New Source: Bing Ads #4911

merged 36 commits into from
Aug 13, 2021

Conversation

yaroslav-dudar
Copy link
Contributor

@yaroslav-dudar yaroslav-dudar commented Jul 22, 2021

What

Bing Ads Source connector #2508
Implemented 4 streams: Account, Campaign, AdGroup, Ad

How

Connector implemented with SDK library https://github.com/BingAds/BingAds-Python-SDK

Recommended reading order

  1. client.py
  2. source.py
  3. cache.py

Pre-merge Checklist

Expand the checklist which is relevant for this PR.

Connector checklist

  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • Secrets are annotated with airbyte_secret in the connector's spec
  • Credentials added to Github CI if needed and not already present. instructions for injecting secrets into CI.
  • Unit & integration tests added as appropriate (and are passing)
    • Community members: please provide proof of this succeeding locally e.g: screenshot or copy-paste acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • /test connector=connectors/<name> command as documented here is passing.
    • Community members can skip this, Airbyters will run this for you.
  • Code reviews completed
  • Documentation updated
    • README.md
    • docs/SUMMARY.md if it's a new connector
    • Created or updated reference docs in docs/integrations/<source or destination>/<name>.
    • Changelog in the appropriate page in docs/integrations/.... See changelog example
    • docs/integrations/README.md contains a reference to the new connector
    • Build status added to build page
  • Build is successful
  • Connector version bumped like described here
  • New Connector version released on Dockerhub by running the /publish command described here
  • No major blockers
  • PR merged into master branch
  • Follow up tickets have been created
  • Associated tickets have been closed & stakeholders notified

Connector Generator checklist

  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • If adding a new generator, add it to the list of scaffold modules being tested
  • The generator test modules (all connectors with -scaffold in their name) have been updated with the latest scaffold by running ./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates then checking in your changes
  • Documentation which references the generator is updated as needed.

@github-actions github-actions bot added area/connectors Connector related issues area/documentation Improvements or additions to documentation labels Jul 22, 2021
@yaroslav-dudar
Copy link
Contributor Author

yaroslav-dudar commented Jul 22, 2021

/test connector=connectors/source-bing-ads

🕑 connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1056489683
❌ connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1056489683

@yaroslav-dudar
Copy link
Contributor Author

yaroslav-dudar commented Jul 22, 2021

/test connector=connectors/source-bing-ads

🕑 connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1056550331
✅ connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1056550331

@yaroslav-dudar yaroslav-dudar changed the title Yaroslav dudar/2508 bing ads 🎉 New Source: Bing Ads Jul 23, 2021
@lazebnyi lazebnyi marked this pull request as ready for review August 5, 2021 05:49
@yaroslav-dudar yaroslav-dudar requested a review from Phlair August 5, 2021 06:16
Copy link
Contributor

@Phlair Phlair left a comment

Choose a reason for hiding this comment

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

Really like the use of caching here and nice unit tests.

It would be nice to document the caching strategy somewhere (maybe in README or a docstring). Once I'd read through all the classes it completely makes sense but it could be described somewhere central so reading all the code isn't necessary to gain that understanding. E.g. We need to cache Accounts to reuse in Campaigns, and cache Campaigns to reuse in AdGroups and so on and so on.

Is it the case that BingAds can only ever be full refresh or did we choose not to implement incremental for simplicity?

Other minor review points in comments.

@Phlair
Copy link
Contributor

Phlair commented Aug 12, 2021

imo this is close enough to being merged that this issue can come after as a separate PR.

@yaroslav-dudar yaroslav-dudar requested a review from Phlair August 12, 2021 17:23
@yaroslav-dudar
Copy link
Contributor Author

yaroslav-dudar commented Aug 12, 2021

/test connector=connectors/source-bing-ads

🕑 connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1124872380
✅ connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1124872380

@jrhizor jrhizor temporarily deployed to more-secrets August 12, 2021 17:47 Inactive
Copy link
Contributor

@Phlair Phlair left a comment

Choose a reason for hiding this comment

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

Thanks for the changes, lgtm!

One note for the future, in case of ever implementing incremental we'd need to ensure that data doesn't get missed due to the caching strategy but for full refresh as is it's no problem

@yaroslav-dudar
Copy link
Contributor Author

yaroslav-dudar commented Aug 13, 2021

/publish connector=connectors/source-bing-ads

🕑 connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1127993044
✅ connectors/source-bing-ads https://github.com/airbytehq/airbyte/actions/runs/1127993044

@jrhizor jrhizor temporarily deployed to more-secrets August 13, 2021 14:32 Inactive
@yaroslav-dudar yaroslav-dudar merged commit 5373965 into master Aug 13, 2021
@yaroslav-dudar yaroslav-dudar deleted the yaroslav-dudar/2508-bing-ads branch August 13, 2021 15:13
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/bing-ads connectors/sources-api
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New Source: Bing Ads
8 participants