Skip to content

Equativ Bid Adapter: address upstream PR review comments - #7

Closed
web-rendering-cd[bot] wants to merge 52 commits into
masterfrom
fix/WR-1983-address-review-comments
Closed

Equativ Bid Adapter: address upstream PR review comments#7
web-rendering-cd[bot] wants to merge 52 commits into
masterfrom
fix/WR-1983-address-review-comments

Conversation

@web-rendering-cd

Copy link
Copy Markdown

GitLab MR !18: Equativ Bid Adapter: address upstream PR review comments

teddypierre and others added 30 commits May 21, 2026 14:12
Per WR-1983, callerId=169 was generating ~2,200 invalid model errors
and ~50 null body errors per 24h in SSB.

Root causes:
- imp[] could be empty when all impressions were filtered by
  prepareSplitImps (e.g. no recognised media type after floor grouping,
  or when a feature flag disables the relevant processor)
- request id could be absent if bidderRequest.auctionId was missing
- POST body could be null if converter.toORTB returned nothing

Fix: add three guards in buildRequests after converter.toORTB:
1. Skip bid if data is null/undefined (null body)
2. Skip bid if data.id is falsy (missing required oRTB id field)
3. Skip bid if data.imp is empty (no valid impressions)

Each guard logs a warning and omits the request rather than sending
an invalid oRTB payload to SSB.

Also fix pre-existing test issues exposed by the new guards:
- ortb2 publisher-id tests used  which caused the
  imp hook to throw (destructuring undefined); use  instead
- video missing-properties test was not guarded by FEATURES.VIDEO;
  with video disabled the imp is not built so the guard fires
- native missing-assets test callCount updated from 4 to 5 to account
  for the guard warn (native processor skips imps with no assets,
  leaving imp[] empty)
On every push to github-sharethrough-prebidjs (i.e. after an MR is merged):

1. Uses CI_JOB_TOKEN to look up the merged MR by its merge commit SHA
2. Bails out silently if the MR carries the 'no-upstream' label
3. Mints a GitHub App installation token via RS256 JWT + openssl
4. Force-pushes the source branch to sharethrough/Prebid.js
5. Opens a PR against prebid/Prebid.js, or skips if one is already open
   (the force-push already updates the existing PR's branch)

The job is allow_failure: true so a GitHub outage never blocks the
GitLab pipeline.

Requires CI/CD variables (masked + protected):
  GH_APP_ID          - GitHub App numeric ID
  GH_APP_PRIVATE_KEY - RSA private key PEM

NOTE: this MR must be merged with the 'no-upstream' label so this
CI config is not shipped to prebid/Prebid.js.
test: WR-2017 e2e verification

See merge request smartadserver/private/be/prebid.js!6
test: WR-2017 e2e verification (attempt 2)

See merge request smartadserver/private/be/prebid.js!7
GitHub App token minting and push to sharethrough/Prebid.js confirmed
working. Temporary validation job no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Keep the cleaned-up version without the temporary test-gh-token job.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…h-prebidjs'

feat(ci): add ship-to-upstream job (WR-2017)

See merge request smartadserver/private/be/prebid.js!5
After pushing the source branch to the fork, automatically open a pull
request against the fork's default branch so changes are visible for
review on GitHub.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…h-prebidjs'

ci: open PR on sharethrough/Prebid.js after branch push (WR-2017)

See merge request smartadserver/private/be/prebid.js!8
…ough-prebidjs'

fix(equativBidAdapter): skip invalid bid requests before sending to SSB

See merge request smartadserver/private/be/prebid.js!4
…-2017)

Feature branches are based on github-sharethrough-prebidjs which carries
.gitlab-ci.yml and ci/ — files that must not appear in PRs on the public
GitHub fork.

Instead of pushing the full branch, identify the two parents of the merge
commit (PARENT1 = previous target-branch tip, PARENT2 = MR source-branch
head), cherry-pick PARENT1..PARENT2 onto a fresh copy of prebid/Prebid.js
master, and push that. Falls back to a full push if cherry-pick conflicts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…prebidjs'

ci: cherry-pick MR commits onto prebid master to exclude CI files (WR-2017)

See merge request smartadserver/private/be/prebid.js!10
test: WR-2017 e2e verification (attempt 4 — CI files excluded)

See merge request smartadserver/private/be/prebid.js!11
CI runner has no default git user configured; cherry-pick fails with
"unable to auto-detect email address" and falls back to the full push
(which includes CI files). Fix by setting a bot identity before the
cherry-pick step.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bidjs'

ci: set git identity before cherry-pick (WR-2017)

See merge request smartadserver/private/be/prebid.js!12
test: WR-2017 e2e verification (attempt 5 — git identity fix)

See merge request smartadserver/private/be/prebid.js!13
Using prebid-upstream/master as the base caused PRs to show 100+ extra
commits (those that sharethrough/Prebid.js:master hadn't synced yet).

Fix: fetch github-fork/master and cherry-pick MR commits onto that instead.
The PR diff then shows only our changes, regardless of fork sync state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bidjs'

ci: base cherry-pick on fork master, not prebid upstream (WR-2017)

See merge request smartadserver/private/be/prebid.js!14
test: WR-2017 e2e verification (attempt 6 — fork master base)

See merge request smartadserver/private/be/prebid.js!15
* Changed version modules

* AGT-938 Prebid modules saving data (prebid#81)

* AGT-938 Prebid modules saving data

* Fix arguments for storeCounters

---------

Co-authored-by: Alex <alex@MacBook-Pro-Alex.local>

* AGT-940 Remove BLACK_LIST constant (prebid#82)

Co-authored-by: Alex <alex@MacBook-Pro-Alex.local>

---------

Co-authored-by: Alex <alex@MacBook-Pro-Alex.local>
nisart007 and others added 22 commits June 17, 2026 07:45
* CI: scan for contributed domain blacklists

* Add permission
* Apply suggested fix to test/spec/modules/apsBidAdapter_spec.js from Copilot Autofix

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Apply suggested fix to test/spec/modules/apsBidAdapter_spec.js from Copilot Autofix

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: Demetrio Girardi <dgirardi@prebid.org>
* prebid server adapter safe renderer support

* refactor

* adds pbs converter_spec
Floxis is registered with IAB Europe TCF as Vendor ID 1609; declare it via spec.gvlid so the adapter is gated under TCF consent. Docs updated.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* Fix for Useless conditional

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix timestamp comparison logic in jixieIdSystem.js

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Merges prebid/Prebid.js master into github-sharethrough-prebidjs so the
long-lived branch keeps tracking upstream (the source of truth). Runs on a
scheduled pipeline and can be triggered manually from the GitLab UI. Merge
preserves branch-only files (ci/, .gitlab-ci.yml, equativ adapter); fails
without pushing on conflict; pushes with -o ci.skip so the sync merge does
not trigger ship-to-upstream.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a placementuuid bidder parameter forwarded in imp.ext.bidder. When
provided it takes precedence over the now-deprecated siteId, pageId and
formatId parameters, which are kept to support the inventory-structure
ramp-up. Adds TypeScript types and docs marking the legacy params as
deprecated, plus unit tests for passthrough and precedence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…'github-sharethrough-prebidjs'

[WR-2026] Equativ Bid Adapter: add placementuuid param, deprecate site/page/format

See merge request smartadserver/private/be/prebid.js!16
- Log bid.bidId instead of full bid object in skip warnings (avoids
  exposing sensitive request metadata in logs)
- Move per-bid isValid check before converter.toORTB to avoid
  module-level side effects (networkId, feedbackArray) for invalid bids
- Guard bidRequest.params destructure with || {} to handle undefined params
- Fix video properties test: use this.skip() when FEATURES.VIDEO is off
  and deepClone to avoid mutating the shared DEFAULT_VIDEO_BID_REQUESTS
- Replace manual sinon.stub().restore() with sandBox.stub() so cleanup
  is guaranteed in afterEach even when assertions throw
- Add test for mixed valid/invalid bid scenario
…through-prebidjs'

Equativ Bid Adapter: address upstream PR review comments

See merge request smartadserver/private/be/prebid.js!18
@pierreted90

Copy link
Copy Markdown
Collaborator

Closing in favor of a clean PR with only the adapter commits (no CI files).

@pierreted90 pierreted90 closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

10 participants