feat: always post fresh review, supersede old with collapsed body #38
+1
-22
@@ -327,7 +327,7 @@ func main() {
|
||||
// In shared-token mode, skip superseding to avoid clobbering sibling reviews.
|
||||
sharedToken := hasSharedToken(existingReviews, sentinel)
|
||||
if !sharedToken {
|
||||
existing := findOwnReviewStrict(existingReviews, sentinel, *reviewerName)
|
||||
existing := findOwnReview(existingReviews, sentinel)
|
||||
if existing != nil {
|
||||
commentID, err := giteaClient.GetTimelineReviewCommentID(ctx, owner, repoName, prNumber, sentinel)
|
||||
if err != nil {
|
||||
@@ -594,24 +594,3 @@ func findOwnReview(reviews []gitea.Review, sentinel string) *gitea.Review {
|
||||
}
|
||||
return best
|
||||
}
|
||||
|
||||
// findOwnReviewStrict is like findOwnReview but also verifies the review
|
||||
// was posted by the expected user (defense-in-depth against sentinel injection).
|
||||
func findOwnReviewStrict(reviews []gitea.Review, sentinel, expectedLogin string) *gitea.Review {
|
||||
var best *gitea.Review
|
||||
for i := range reviews {
|
||||
if !strings.Contains(reviews[i].Body, sentinel) {
|
||||
continue
|
||||
}
|
||||
if strings.Contains(reviews[i].Body, "~~Original review~~") {
|
||||
continue
|
||||
}
|
||||
if expectedLogin != "" && reviews[i].User.Login != expectedLogin {
|
||||
continue
|
||||
}
|
||||
if best == nil || reviews[i].ID > best.ID {
|
||||
best = &reviews[i]
|
||||
}
|
||||
}
|
||||
return best
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user