MCPcopy
hub / github.com/openclaw/clawsweeper / lowSignalUnmergeablePrApplyBlockReason

Function lowSignalUnmergeablePrApplyBlockReason

src/clawsweeper.ts:3089–3119  ·  view source on GitHub ↗
(number: number)

Source from the content-addressed store, hash-verified

3087}
3088
3089function lowSignalUnmergeablePrApplyBlockReason(number: number): string | null {
3090 const issue = ghJson<{ assignees?: unknown[] }>([
3091 "api",
3092 `repos/${targetRepo()}/issues/${number}`,
3093 "--jq",
3094 "{assignees:[.assignees[]? | {login:.login}]}",
3095 ]);
3096 if ((issue.assignees ?? []).length > 0) return "assigned PR has maintainer/human signal";
3097
3098 const pull = ghJson<{ requested_reviewers?: unknown[]; requested_teams?: unknown[] }>([
3099 "api",
3100 `repos/${targetRepo()}/pulls/${number}`,
3101 "--jq",
3102 "{requested_reviewers:[.requested_reviewers[]? | {login:.login}],requested_teams:[.requested_teams[]? | {slug:.slug}]}",
3103 ]);
3104 if ((pull.requested_reviewers ?? []).length > 0 || (pull.requested_teams ?? []).length > 0) {
3105 return "requested reviewers or teams indicate active review signal";
3106 }
3107
3108 const maintainerComments = maintainerAssociatedEntries(
3109 ghPaged<unknown>(`repos/${targetRepo()}/issues/${number}/comments`),
3110 );
3111 if (maintainerComments.length > 0) return "maintainer issue comment blocks low-signal auto-close";
3112
3113 const maintainerReviews = maintainerAssociatedEntries(
3114 ghPaged<unknown>(`repos/${targetRepo()}/pulls/${number}/reviews`),
3115 );
3116 if (maintainerReviews.length > 0) return "maintainer PR review blocks low-signal auto-close";
3117
3118 return null;
3119}
3120
3121function unconfirmedProductDirectionApplyBlockReason(
3122 number: number,

Callers 1

applyDecisionsCommandFunction · 0.85

Calls 4

targetRepoFunction · 0.85
ghJsonFunction · 0.70
ghPagedFunction · 0.70

Tested by

no test coverage detected