Skip to content

Gl Work#3

Merged
rdeshmukh15 merged 11 commits intomasterfrom
gl-master
Apr 2, 2026
Merged

Gl Work#3
rdeshmukh15 merged 11 commits intomasterfrom
gl-master

Conversation

@atttiwari
Copy link
Copy Markdown
Collaborator

@atttiwari atttiwari commented Dec 15, 2025

Description of change
SAC-29457
Consolidated PR to merge the newly created tap-drip.

Manual QA steps

  • - Discovery: Running
  • - Sync: Running
  • - Unit tests: Running
  • - Integration Tests: Running

Notes

  • New tap creation

Rollback steps

  • Revert this branch.

* SAC-29455: Added new schema

* SAC-29455: Updated child stream scheam to add parent id

* Added sync, unitest cases and exception handling (#2)

* SAC-29456:Updated sync, unitest cases and exception handling

* SAC-29456: Addressed copilot review comments

* SAC-29456: fixed integration tests

* SAC-29456: Addressed review comments
@atttiwari atttiwari requested a review from Copilot December 15, 2025 07:27
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces the newly created tap-drip connector for extracting data from the Drip API. The implementation follows Singer.io specifications and includes comprehensive stream definitions, error handling, and test coverage.

Key Changes:

  • Complete tap implementation with 15 data streams including accounts, conversions, campaigns, subscribers, workflows, and related entities
  • Full test suite including unit tests and integration tests
  • CI/CD configuration with CircleCI pipeline

Reviewed changes

Copilot reviewed 57 out of 58 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tap_drip/init.py Main entry point implementing discovery and sync modes
tap_drip/client.py HTTP client with authentication, error handling, and retry logic
tap_drip/sync.py Sync orchestration managing stream selection and state
tap_drip/streams/abstracts.py Base stream classes defining replication patterns
tap_drip/streams/*.py Individual stream implementations for all Drip API endpoints
tap_drip/schemas/*.json JSON schemas for all supported streams
tests/unittests/*.py Unit tests for sync, client, and bookmark functionality
tests/test_*.py Integration tests for discovery, pagination, bookmarks, etc.
setup.py Package configuration with dependencies
.circleci/config.yml CI pipeline configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +57 to +58
logging=f"verify {expected_parent_tap_stream_id} "
f"is saved in metadata as a parent-tap-stream-id")
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

The parameter name 'logging' is misleading. This appears to be an assertion message parameter, which should be named 'msg' to match unittest conventions.

Suggested change
logging=f"verify {expected_parent_tap_stream_id} "
f"is saved in metadata as a parent-tap-stream-id")
msg=f"verify {expected_parent_tap_stream_id} "
f"is saved in metadata as a parent-tap-stream-id")

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

README.md Outdated

**[tags](https://developer.drip.com/?shell#list-all-tags-used-in-an-account)**
- Data Key = tags
- Primary keys: ['tag_name', 'account_id']
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Primary key mismatch: README documents 'tag_name' as primary key for tags stream, but tests/base.py line 125 and tap_drip/streams/tags.py line 5 both define 'tag_id' as the primary key. Update README to use 'tag_id'.

Suggested change
- Primary keys: ['tag_name', 'account_id']
- Primary keys: ['tag_id', 'account_id']

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

"event_actions",
"forms",
"single_email_campaigns",
"peoples",
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Stream name 'peoples' is inconsistent with the actual stream name 'people' used throughout the codebase (tap_drip/streams/people.py line 4, README.md line 29). Should be 'people'.

Suggested change
"peoples",
"people",

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

README.md Outdated

**[custom_field_identifiers](https://developer.drip.com/?shell#list-all-custom-field-identifiers-used-in-an-account)**
- Data Key = custom_field_identifiers
- Primary keys: ['id', 'account_id']
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Primary key mismatch for custom_field_identifiers: README shows ['id', 'account_id'] but tests/base.py line 53 and tap_drip/streams/custom_field_identifiers.py line 5 define ['custom_field_id', 'account_id']. Update README to match implementation.

Suggested change
- Primary keys: ['id', 'account_id']
- Primary keys: ['custom_field_id', 'account_id']

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

{
"name": "custom_field_identifiers",
"key_properties": [
"id",
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Primary key mismatch: config shows ['id', 'account_id'] for custom_field_identifiers, but the actual implementation uses ['custom_field_id', 'account_id'] (tap_drip/streams/custom_field_identifiers.py line 5). Update config to match implementation.

Suggested change
"id",
"custom_field_id",

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

{
"name": "tags",
"key_properties": [
"tag_name",
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

Primary key mismatch: config uses 'tag_name' but the implementation uses 'tag_id' (tap_drip/streams/tags.py line 5, tests/base.py line 125). Update config to use 'tag_id'.

Suggested change
"tag_name",
"tag_id",

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

@prijendev
Copy link
Copy Markdown

why build is failing?

@atttiwari
Copy link
Copy Markdown
Collaborator Author

- master
jobs:
- build:
context: circleci-user No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing empty last line

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

addressed

@atttiwari atttiwari requested a review from prijendev December 31, 2025 06:20
MuralidharT03 and others added 2 commits March 18, 2026 18:23
* Add retry logic for server 5xx errors

* Addressed copilot review comments

* Remove 5xx errors from exceptions per API docs

* Update logic to use single dictionary lookup

* Exclude streams with less records than API_LIMIT

* Added logging when using default retry
Co-authored-by: atttiwari <atul.tiwari@qlik.com>
@@ -0,0 +1,2 @@

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Add version number :
#0.0.1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

addressed

setup.py Outdated
Comment on lines +1 to +2


Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Remove these empty lines

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

addressed

@rdeshmukh15 rdeshmukh15 merged commit c524819 into master Apr 2, 2026
1 check passed
@rdeshmukh15 rdeshmukh15 deleted the gl-master branch April 2, 2026 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants