( repo: string, number: LooseRecord, issue: LooseRecord, )
| 1197 | } |
| 1198 | |
| 1199 | function hydratePrCloseCoveragePullRequest( |
| 1200 | repo: string, |
| 1201 | number: LooseRecord, |
| 1202 | issue: LooseRecord, |
| 1203 | ): PrCloseCoverageProofPullRequestView { |
| 1204 | const pull = fetchPullRequest(repo, number); |
| 1205 | const commentsWindow = fetchPrCloseCoverageProofCommentWindow( |
| 1206 | repo, |
| 1207 | number, |
| 1208 | issue.comments, |
| 1209 | PR_CLOSE_COVERAGE_PROOF_COMMENT_LIMIT, |
| 1210 | ); |
| 1211 | const comments = commentsWindow.comments.filter( |
| 1212 | (comment: JsonValue) => !isClawSweeperNoiseComment(comment), |
| 1213 | ); |
| 1214 | return { |
| 1215 | number: Number(number), |
| 1216 | title: stringFromUnknown(pull.title) || stringFromUnknown(issue.title) || `#${number}`, |
| 1217 | url: |
| 1218 | stringFromUnknown(pull.html_url) || |
| 1219 | stringFromUnknown(pull.url) || |
| 1220 | stringFromUnknown(issue.html_url) || |
| 1221 | "", |
| 1222 | state: stringFromUnknown(pull.state) || stringFromUnknown(issue.state) || "unknown", |
| 1223 | mergedAt: stringOrNull(pull.merged_at ?? pull.mergedAt), |
| 1224 | body: compactPrCloseCoverageProofText(pull.body), |
| 1225 | updatedAt: stringOrNull(pull.updated_at ?? pull.updatedAt ?? issue.updated_at), |
| 1226 | comments: compactPrCloseCoverageProofCommentWindow( |
| 1227 | comments, |
| 1228 | comments.length, |
| 1229 | PR_CLOSE_COVERAGE_PROOF_COMMENT_LIMIT, |
| 1230 | ), |
| 1231 | commentsTruncated: commentsWindow.total > PR_CLOSE_COVERAGE_PROOF_COMMENT_LIMIT, |
| 1232 | }; |
| 1233 | } |
| 1234 | |
| 1235 | function rawCommentBody(value: JsonValue): string { |
| 1236 | return stringFromUnknown(value?.body); |
no test coverage detected