mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 23:55:51 +03:00
[GH-ISSUE #775] Add Resolution Center thread/message read support (web/iris) #212
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#212
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rudrankriyam on GitHub (Feb 25, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/775
Problem
After identifying a rejected or unresolved submission, we still need a structured way to traverse:
Without this, users must manually inspect App Store Connect UI.
Scope
Add read-only Resolution Center retrieval commands in web/iris mode, including thread, message, and rejection reason surfaces.
Endpoint Contract (Observed)
Thread discovery:
GET /iris/v1/apps/{appId}/resolutionCenterThreads?include=appStoreVersions,app,appMessageThreadDetail,build,betaBackgroundAssetReviewSubmission&limit[appStoreVersions]=2000&filter[threadType]=REJECTION_BINARY,REJECTION_METADATA,REJECTION_REVIEW_SUBMISSION,APP_MESSAGE_ARC,APP_MESSAGE_ARB,APP_MESSAGE_COMM,APP_MESSAGE_INFORMATIONALGET /iris/v1/resolutionCenterThreads?filter[reviewSubmission]={reviewSubmissionId}&include=reviewSubmissionThread details / messages:
GET /iris/v1/resolutionCenterThreads/{threadId}/resolutionCenterMessages?include=fromActor,rejections,resolutionCenterMessageAttachments&limit[rejections]=2000&limit[resolutionCenterMessageAttachments]=1000GET /iris/v1/resolutionCenterThreads/{threadId}/resolutionCenterDraftMessage?include=resolutionCenterMessageAttachments,fromActor&limit[resolutionCenterMessageAttachments]=1000Rejections:
GET /iris/v1/reviewRejections?filter[resolutionCenterMessage.resolutionCenterThread]={threadId}&include=appCustomProductPageVersion,appEvent,appStoreVersion,appStoreVersionExperiment,backgroundAssetVersions,gameCenterAchievementVersions,gameCenterLeaderboardVersions,gameCenterLeaderboardSetVersions,gameCenterChallengeVersions,gameCenterActivityVersions,build,appBundleVersion,rejectionAttachments&limit=2000&limit[rejectionAttachments]=1000Important API Nuance
Some include shapes return 400. Example observed:
include=fromActor,rejections,resolutionCenterThreadonresolutionCenterMessages-> 400Implementation should use known-good include sets above and avoid unsupported expansions.
Proposed Command UX
asc web review threads list --app <app-id>asc web review threads list --submission <review-submission-id>asc web review messages list --thread <thread-id>asc web review rejections list --thread <thread-id>asc web review draft show --thread <thread-id>Output Expectations
Thread output:
thread.idthreadTypestatecreatedDatelastMessageResponseDatecanDeveloperAddNoteMessage output:
message.idcreatedDatefromActor.actorTypemessageBody(raw HTML + optional plain-text projection)Rejection output:
reviewRejection.idreasons[]including:reasonSection(e.g.2.1)reasonDescriptionreasonCode(e.g.2.1.0)Parsing / UX Considerations
--plain-textto strip tags for table/markdown outputs.Error Handling
Test Plan (RED -> GREEN)
threads list --appwith fixture containing multiple thread types.threads list --submissionmapping correctness.messages list --threadverifies actor/body/date fields.rejections list --threadverifies reason mapping.Definition of Done