Skip to content

python(feat): campaigns resource - #795

Open
Brandon-Shippy wants to merge 2 commits into
mainfrom
python/campaigns-resource
Open

Brandon-Shippy wants to merge 2 commits into
mainfrom
python/campaigns-resource

Conversation

@Brandon-Shippy

@Brandon-Shippy Brandon-Shippy commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Description

Adds a campaigns resource to sift_client. A campaign groups the reports from a series of runs, so a whole test program can be reviewed at once.

  • CampaignsAPIAsync with the usual get, list_, find, create, update, archive, unarchive, plus get_or_create. Wired up as
    client.campaigns
  • CampaignsLowLevelClient wraps CampaignService; the high-level client has zero proto imports
  • Pydantic models in sift_types/campaign.py
  • add_runs(...) and add_reports(...) grow a campaign without replacing its report list
  • report_summaries(...) returns the per-report rule rollup; Campaign.report_summaries() and Campaign.runs read it back from the campaign
  • RunCreate.create_default_report so a run generates the report a campaign holds
  • Sync wrappers and type stubs registered

Validation

  • End to End testing with manual script written to test each new API feature.
  • Verified against a local stack, including a multi-run test program collected into one campaign

@github-actions

github-actions Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Python docs preview: https://sift-stack.github.io/sift/python/pr-795/

Deployed from 735d09d. The link may take up to a minute to become live as GitHub Pages propagates.

@Brandon-Shippy
Brandon-Shippy force-pushed the python/campaigns-resource branch from 3b1af5d to 41c3e0e Compare September 17, 2026 23:57
@Brandon-Shippy
Brandon-Shippy marked this pull request as ready for review September 17, 2026 23:57
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.

1 participant