feat(tags): rename, remove-by-email, bulk delete, and subscriber filters - #19
Merged
Merged
Conversation
…filters Bulk tag deletion (issue #10): kit bulk tags delete --file tags.json Rename (issue #12). PUT /v4/tags/{id} had no CLI command: kit tags update <id> <name> Remove by email (issue #12). The API identifies the subscriber with an email_address query parameter, which is why del() needed query support: kit tags remove-by-email <tagId> <email> The subscribers listing now takes the filters the API documents: --state, --created-after, --created-before, --tagged-after, --tagged-before.
This was referenced Aug 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 6 of 8. Base: #18.
What this adds
Bulk tag deletion:
Rename.
PUT /v4/tags/{id}had no CLI command:Remove by email:
The subscribers listing now takes the filters that the API documents:
--state,--created-after,--created-before,--tagged-after, and--tagged-before.Design notes
DELETE /v4/tags/{tag_id}/subscribersidentifies the subscriber with anemail_addressquery parameter. This is whydel()needed query support in part 1. The request carries no body. A test asserts both facts.The spec parameter list for that endpoint does not declare
email_address. The endpoint description does, and it names the parameter explicitly. This branch follows the description.Review notes
Tests: 306 before, 334 after.
Closes #10
Part of #12
The stack
Merge from the top down. Each part builds on the one above it.
Base branch:
mainfor part 1, the previous part's branch for the rest.GitHub retargets each base to
mainas the part below it merges.