Add linting
This commit is contained in:
parent
71bcc1ac0d
commit
4449c02d54
|
@ -0,0 +1,3 @@
|
|||
dist/
|
||||
lib/
|
||||
node_modules/
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"plugins": ["jest", "@typescript-eslint"],
|
||||
"extends": ["plugin:github/es6"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 9,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"rules": {
|
||||
"eslint-comments/no-use": "off",
|
||||
"import/no-namespace": "off",
|
||||
"no-unused-vars": "off",
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
"@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
|
||||
"@typescript-eslint/no-require-imports": "error",
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"@typescript-eslint/ban-ts-ignore": "error",
|
||||
"camelcase": "off",
|
||||
"@typescript-eslint/class-name-casing": "error",
|
||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
||||
"@typescript-eslint/generic-type-naming": ["error", "^[A-Z][A-Za-z]*$"],
|
||||
"@typescript-eslint/no-array-constructor": "error",
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-extraneous-class": "error",
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/no-object-literal-type-assertion": "error",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||
"@typescript-eslint/no-useless-constructor": "error",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
"@typescript-eslint/prefer-for-of": "warn",
|
||||
"@typescript-eslint/prefer-function-type": "warn",
|
||||
"@typescript-eslint/prefer-includes": "error",
|
||||
"@typescript-eslint/prefer-interface": "error",
|
||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/require-array-sort-compare": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": "error",
|
||||
"semi": "off",
|
||||
"@typescript-eslint/type-annotation-spacing": "error",
|
||||
"@typescript-eslint/unbound-method": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"jest/globals": true
|
||||
}
|
||||
}
|
31
src/main.ts
31
src/main.ts
|
@ -1,11 +1,11 @@
|
|||
import * as core from '@actions/core';
|
||||
import * as github from '@actions/github';
|
||||
import { Octokit } from '@octokit/rest';
|
||||
import {Octokit} from '@octokit/rest';
|
||||
|
||||
type Issue = Octokit.IssuesListForRepoResponseItem
|
||||
type IssueLabel = Octokit.IssuesListForRepoResponseItemLabelsItem
|
||||
type Issue = Octokit.IssuesListForRepoResponseItem;
|
||||
type IssueLabel = Octokit.IssuesListForRepoResponseItemLabelsItem;
|
||||
|
||||
type Args = {
|
||||
interface Args {
|
||||
repoToken: string;
|
||||
staleIssueMessage: string;
|
||||
stalePrMessage: string;
|
||||
|
@ -17,9 +17,9 @@ type Args = {
|
|||
exemptPrLabel: string;
|
||||
onlyLabels: string;
|
||||
operationsPerRun: number;
|
||||
};
|
||||
}
|
||||
|
||||
async function run() {
|
||||
async function run(): Promise<void> {
|
||||
try {
|
||||
const args = getAndValidateArgs();
|
||||
|
||||
|
@ -43,7 +43,7 @@ async function processIssues(
|
|||
state: 'open',
|
||||
labels: args.onlyLabels,
|
||||
per_page: 100,
|
||||
page: page
|
||||
page
|
||||
});
|
||||
|
||||
operationsLeft -= 1;
|
||||
|
@ -52,23 +52,26 @@ async function processIssues(
|
|||
return operationsLeft;
|
||||
}
|
||||
|
||||
for (var issue of issues.data.values()) {
|
||||
for (const issue of issues.data.values()) {
|
||||
core.debug(`found issue: ${issue.title} last updated ${issue.updated_at}`);
|
||||
let isPr = !!issue.pull_request;
|
||||
const isPr = !!issue.pull_request;
|
||||
|
||||
let staleMessage = isPr ? args.stalePrMessage : args.staleIssueMessage;
|
||||
const staleMessage = isPr ? args.stalePrMessage : args.staleIssueMessage;
|
||||
if (!staleMessage) {
|
||||
core.debug(`skipping ${isPr ? 'pr' : 'issue'} due to empty message`);
|
||||
continue;
|
||||
}
|
||||
|
||||
let staleLabel = isPr ? args.stalePrLabel : args.staleIssueLabel;
|
||||
let exemptLabel = isPr ? args.exemptPrLabel : args.exemptIssueLabel;
|
||||
const staleLabel = isPr ? args.stalePrLabel : args.staleIssueLabel;
|
||||
const exemptLabel = isPr ? args.exemptPrLabel : args.exemptIssueLabel;
|
||||
|
||||
if (exemptLabel && isLabeled(issue, exemptLabel)) {
|
||||
continue;
|
||||
} else if (isLabeled(issue, staleLabel)) {
|
||||
if (args.daysBeforeClose >= 0 && wasLastUpdatedBefore(issue, args.daysBeforeClose)) {
|
||||
if (
|
||||
args.daysBeforeClose >= 0 &&
|
||||
wasLastUpdatedBefore(issue, args.daysBeforeClose)
|
||||
) {
|
||||
operationsLeft -= await closeIssue(client, issue);
|
||||
} else {
|
||||
continue;
|
||||
|
@ -167,7 +170,7 @@ function getAndValidateArgs(): Args {
|
|||
)
|
||||
};
|
||||
|
||||
for (var numberInput of [
|
||||
for (const numberInput of [
|
||||
'days-before-stale',
|
||||
'days-before-close',
|
||||
'operations-per-run'
|
||||
|
|
Loading…
Reference in New Issue