Package-level declarations

Types

Link copied to clipboard
data class AutomatedReviewFinding(val key: String, val ruleId: String, val severity: String, val message: String, val remediation: String = "", val subjectId: String = "", val category: String = "", val task: String = "")

Immutable evidence at first response, not the issue's current workflow state.

Link copied to clipboard
data class ReviewAction(val id: String, val label: String, val needsIssue: Boolean = false)
Link copied to clipboard
data class ReviewComment(val id: String, val author: String, val text: String, val createdAt: String, val url: String)
Link copied to clipboard
data class ReviewConnection(val projectId: String, val issueRepository: String, val issueLabel: String, val provider: String = "github", val apiUrl: String = "https://api.github.com", val webUrl: String = "https://github.com")

No credentials or machine-local paths belong in the shared connection contract.

Link copied to clipboard
data class ReviewFinding(val record: ReviewRecord, val ref: ReviewThreadRef, val url: String, val state: String, val stateReason: String? = null, val author: String, val createdAt: String = "", val updatedAt: String = "", val assignees: List<String> = emptyList(), val labels: List<String> = emptyList(), val permissions: ReviewPermissions = ReviewPermissions())
Link copied to clipboard

Kotlin owns durable identities; report URLs, array positions and revisions are occurrence evidence only.

Link copied to clipboard
data class ReviewPermissions(val comment: Boolean = false, val changeState: Boolean = false, val classify: Boolean = false)
Link copied to clipboard
interface ReviewProvider

Synchronous provider boundary; IO runs outside read actions and the UI thread. actions uses cached permissions.

Link copied to clipboard
class ReviewProviderException(message: String, val retryAfterSeconds: Long = 60, val operationRejected: Boolean = false) : RuntimeException

Redacted provider failure. Only a definite rejection permits a new write attempt without reconciliation.

Link copied to clipboard
data class ReviewRecord(val schema: Int = 2, val id: String, val projectId: String, val anchorType: String = "object", val kind: String = "question", val title: String, val message: String, val report: ReviewReport, val target: ReviewTarget, val source: ReviewSource = ReviewSource(), val automatic: AutomatedReviewFinding? = null, val annotation: Map<String, Any?>? = null, val pullRequest: Map<String, Any?>? = null)

Portable issue metadata. Version 1 remains readable; version 2 adds ticketless automated findings.

Link copied to clipboard
data class ReviewReport(val revision: String = "", val url: String)
Link copied to clipboard
data class ReviewSource(val repository: String = "", val repositoryUrl: String = "", val revision: String = "", val renderedRevision: String = "", val path: String = "", val startLine: Int? = null, val endLine: Int? = null, val githubUrl: String = "", val ideaUrl: String = "", val contentHash: String = "")
Link copied to clipboard
data class ReviewTarget(val key: String, val entityId: String = "", val property: String = "", val reference: String = "", val kotlinReference: String = "", val workProductId: String = "", val moduleId: String = "", val viewpoint: String = "", val reportFragment: String = "#", val contentHash: String = "", val authors: List<String> = emptyList(), val relativeSelector: ReviewTextSelector? = null)

Finding identity and model/source location are independent: a subjectId need not be an entityId.

Link copied to clipboard
data class ReviewTextSelector(val quote: String, val start: Int, val end: Int, val prefix: String? = null, val suffix: String? = null)
Link copied to clipboard
data class ReviewThreadRef(val provider: String, val host: String, val project: String, val itemId: String)
Link copied to clipboard
data class ReviewUser(val login: String, val name: String = "")
Link copied to clipboard

Future backends deliberately fail rather than advertising partially working review workflows.

Generated with STIG