Don't process a stale issue in the same run it's marked stale (#696)
This commit is contained in:
parent
57708ae6dd
commit
65d24b7092
|
@ -278,6 +278,7 @@ class Issue {
|
||||||
this.milestone = issue.milestone;
|
this.milestone = issue.milestone;
|
||||||
this.assignees = issue.assignees || [];
|
this.assignees = issue.assignees || [];
|
||||||
this.isStale = is_labeled_1.isLabeled(this, this.staleLabel);
|
this.isStale = is_labeled_1.isLabeled(this, this.staleLabel);
|
||||||
|
this.markedStaleThisRun = false;
|
||||||
}
|
}
|
||||||
get isPullRequest() {
|
get isPullRequest() {
|
||||||
return is_pull_request_1.isPullRequest(this);
|
return is_pull_request_1.isPullRequest(this);
|
||||||
|
@ -599,6 +600,7 @@ class IssuesProcessor {
|
||||||
issueLogger.info(`This $$type should be marked as stale based on the option ${issueLogger.createOptionLink(this._getDaysBeforeStaleUsedOptionName(issue))} (${logger_service_1.LoggerService.cyan(daysBeforeStale)})`);
|
issueLogger.info(`This $$type should be marked as stale based on the option ${issueLogger.createOptionLink(this._getDaysBeforeStaleUsedOptionName(issue))} (${logger_service_1.LoggerService.cyan(daysBeforeStale)})`);
|
||||||
yield this._markStale(issue, staleMessage, staleLabel, skipMessage);
|
yield this._markStale(issue, staleMessage, staleLabel, skipMessage);
|
||||||
issue.isStale = true; // This issue is now considered stale
|
issue.isStale = true; // This issue is now considered stale
|
||||||
|
issue.markedStaleThisRun = true;
|
||||||
issueLogger.info(`This $$type is now stale`);
|
issueLogger.info(`This $$type is now stale`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -734,8 +736,13 @@ class IssuesProcessor {
|
||||||
else {
|
else {
|
||||||
issueLogger.info(`The stale label should be removed if all conditions met`);
|
issueLogger.info(`The stale label should be removed if all conditions met`);
|
||||||
}
|
}
|
||||||
|
if (issue.markedStaleThisRun) {
|
||||||
|
issueLogger.info(`marked stale this run, so don't check for updates`);
|
||||||
|
}
|
||||||
// Should we un-stale this issue?
|
// Should we un-stale this issue?
|
||||||
if (shouldRemoveStaleWhenUpdated && issueHasComments) {
|
if (shouldRemoveStaleWhenUpdated &&
|
||||||
|
issueHasComments &&
|
||||||
|
!issue.markedStaleThisRun) {
|
||||||
issueLogger.info(`Remove the stale label since the $$type has a comment and the workflow should remove the stale label when updated`);
|
issueLogger.info(`Remove the stale label since the $$type has a comment and the workflow should remove the stale label when updated`);
|
||||||
yield this._removeStaleLabel(issue, staleLabel);
|
yield this._removeStaleLabel(issue, staleLabel);
|
||||||
// Are there labels to remove or add when an issue is no longer stale?
|
// Are there labels to remove or add when an issue is no longer stale?
|
||||||
|
|
|
@ -20,6 +20,7 @@ export class Issue implements IIssue {
|
||||||
readonly milestone?: IMilestone | null;
|
readonly milestone?: IMilestone | null;
|
||||||
readonly assignees: Assignee[];
|
readonly assignees: Assignee[];
|
||||||
isStale: boolean;
|
isStale: boolean;
|
||||||
|
markedStaleThisRun: boolean;
|
||||||
operations = new Operations();
|
operations = new Operations();
|
||||||
private readonly _options: IIssuesProcessorOptions;
|
private readonly _options: IIssuesProcessorOptions;
|
||||||
|
|
||||||
|
@ -39,6 +40,7 @@ export class Issue implements IIssue {
|
||||||
this.milestone = issue.milestone;
|
this.milestone = issue.milestone;
|
||||||
this.assignees = issue.assignees || [];
|
this.assignees = issue.assignees || [];
|
||||||
this.isStale = isLabeled(this, this.staleLabel);
|
this.isStale = isLabeled(this, this.staleLabel);
|
||||||
|
this.markedStaleThisRun = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
get isPullRequest(): boolean {
|
get isPullRequest(): boolean {
|
||||||
|
|
|
@ -465,6 +465,7 @@ export class IssuesProcessor {
|
||||||
);
|
);
|
||||||
await this._markStale(issue, staleMessage, staleLabel, skipMessage);
|
await this._markStale(issue, staleMessage, staleLabel, skipMessage);
|
||||||
issue.isStale = true; // This issue is now considered stale
|
issue.isStale = true; // This issue is now considered stale
|
||||||
|
issue.markedStaleThisRun = true;
|
||||||
issueLogger.info(`This $$type is now stale`);
|
issueLogger.info(`This $$type is now stale`);
|
||||||
} else {
|
} else {
|
||||||
issueLogger.info(
|
issueLogger.info(
|
||||||
|
@ -666,8 +667,16 @@ export class IssuesProcessor {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (issue.markedStaleThisRun) {
|
||||||
|
issueLogger.info(`marked stale this run, so don't check for updates`);
|
||||||
|
}
|
||||||
|
|
||||||
// Should we un-stale this issue?
|
// Should we un-stale this issue?
|
||||||
if (shouldRemoveStaleWhenUpdated && issueHasComments) {
|
if (
|
||||||
|
shouldRemoveStaleWhenUpdated &&
|
||||||
|
issueHasComments &&
|
||||||
|
!issue.markedStaleThisRun
|
||||||
|
) {
|
||||||
issueLogger.info(
|
issueLogger.info(
|
||||||
`Remove the stale label since the $$type has a comment and the workflow should remove the stale label when updated`
|
`Remove the stale label since the $$type has a comment and the workflow should remove the stale label when updated`
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue