Practice reviews

Withdraw a card from a developer's practice page, or restore it

Changed on

Only practice-page feedback that is waiting to be read or already shown can be withdrawn. The developer sees that it was withdrawn, not what it said; its record and evidence stay. Restoring puts it back through the page's ordinary checks and sends nothing.

patch/workspaces/{workspaceSlug}/practices/reviews/feedback/{feedbackId}/withdrawal

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /workspaces/{workspaceSlug}/practices/reviews/feedback/{feedbackId}/withdrawal
  • Auth: HTTP bearer

Path parameters

workspaceSlugstring required

Workspace slug

feedbackIdstring uuid required

Request body

reasonstring required

Why, kept with the withdrawal for the workspace's administrators

withdrawnboolean required

true withdraws the card; false restores it

Response

Feedback detail after the change

agentJobIdstring uuid required
bodystring

Stored composed body; null when none was produced, and always null on the IN_APP and IN_CHAT channels — neither the developer's practice pages nor the mentor's prepared context is readable by an operator

channel'IN_CONTEXT' | 'IN_CHAT' | 'IN_APP' required
createdAtstring date-time required
deliveredAtstring date-time

When the feedback was placed; null if it was not delivered

deliveryState'AWAITING_APPROVAL' | 'PREPARED' | 'PARTIALLY_DELIVERED' | 'PARTIALLY_FAILED' | 'DELIVERED' | 'SUPERSEDED' | 'SUPPRESSED' | 'FAILED' | 'DISCARDED' | 'UNCONFIRMED' required
idstring uuid required
location'GITHUB' | 'GITLAB' | 'OTHER_WORK' | 'HEPH' | 'SLACK' | 'NEXT_CONVERSATION' | 'PRACTICE_PAGES' required

Where the feedback appears, by the provider that shows it: the channel split where the provider is known

replacesIdstring uuid

The feedback this one replaced; null on a first delivery

reviewedRevisionstring

Reviewed source revision for an immutable approval package

suppressionReason'VOLUME_CAPPED' | 'COMPOSER_DEDUPED' | 'COMPOSER_WITHHELD' | 'REPEATS_DELIVERED_NOTE' | 'REACTED_DISPUTED' | 'REACTED_NOT_APPLICABLE' | 'CONVERSATION_EXPIRED' | 'ARTIFACT_GONE' | 'ARTIFACT_CLOSED' | 'ISSUE_SNAPSHOT_CHANGED' | 'ARTIFACT_MERGED' | 'PUBLIC_SUBJECT_INELIGIBLE' | 'ARTIFACT_DRAFT' | 'RECIPIENT_OPTED_OUT' | 'EMPTY_AFTER_SANITIZE' | 'INSTANCE_SILENCED' | 'WORKSPACE_DISABLED' | 'WORKSPACE_DELIVERY_PAUSED' | 'STALE_ROLLOUT_REVISION' | 'OUTSIDE_CURRENT_COVERAGE' | 'APPROVAL_STALE' | 'APPROVAL_NO_LONGER_ELIGIBLE' | 'PRACTICE_REQUIRES_APPROVAL' | 'BACKFILL_QUIET' | 'OBSERVATION_INVALIDATED' | 'REVIEWED_REVISION_CHANGED'

Why delivery stopped; set on withheld or terminally partial feedback

threadKeystring

Cross-run continuity key tying successive deliveries together

Changes

    • info

      added the optional property / to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status

    • breaking

      for the path request parameter workspaceSlug, the minLength was increased from 0 to 3

    • warning

      for the path request parameter workspaceSlug, the maxLength was set to 51

    • warning

      changed the pattern of the path request parameter workspaceSlug from ^[a-z0-9][a-z0-9-]{2,50}$ to ^(?!.*--)[a-z0-9][a-z0-9-]{1,49}[a-z0-9]$