feat(assignees): add 6 new options to avoid stale for assignees (#327)

* feat(assignees): add new option to avoid stale for assignees

closes #271

* test: add more coverage

* docs: fix readme format issue

* docs: reorder and enhance typo

* docs(contributing): add more information about the npm scripts
This commit is contained in:
Geoffrey Testelin
2021-02-28 12:15:08 +01:00
committed by GitHub
parent 996798eb71
commit ec96ff65b0
24 changed files with 2021 additions and 244 deletions

View File

@@ -2,6 +2,19 @@ import * as core from '@actions/core';
import {Issue} from '../issue';
import {Logger} from './logger';
/**
* @description
* Each log will prefix the message with the issue number
*
* @example
* warning('No stale') => "[#123] No stale"
*
* Each log method can have special tokens:
* - $$type => will replace this by either "pull request" or "issue" depending of the type of issue
*
* @example
* warning('The $$type will stale') => "The pull request will stale"
*/
export class IssueLogger implements Logger {
private readonly _issue: Issue;
@@ -10,15 +23,31 @@ export class IssueLogger implements Logger {
}
warning(message: Readonly<string>): void {
core.warning(this._prefixWithIssueNumber(message));
core.warning(this._format(message));
}
info(message: Readonly<string>): void {
core.info(this._prefixWithIssueNumber(message));
core.info(this._format(message));
}
error(message: Readonly<string>): void {
core.error(this._prefixWithIssueNumber(message));
core.error(this._format(message));
}
private _replaceTokens(message: Readonly<string>): string {
return this._replaceTypeToken(message);
}
private _replaceTypeToken(message: Readonly<string>): string {
return message
.replace(
/^\$\$type/,
this._issue.isPullRequest ? 'Pull request' : 'Issue'
)
.replace(
/\$\$type/g,
this._issue.isPullRequest ? 'pull request' : 'issue'
);
}
private _prefixWithIssueNumber(message: Readonly<string>): string {
@@ -28,4 +57,8 @@ export class IssueLogger implements Logger {
private _getIssueNumber(): number {
return this._issue.number;
}
private _format(message: Readonly<string>): string {
return this._prefixWithIssueNumber(this._replaceTokens(message));
}
}