UNPKG

projen

Version:

CDK for software projects

82 lines 12.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Stale = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const actions_const_1 = require("./actions.const"); const stale_util_1 = require("./stale-util"); const workflows_model_1 = require("./workflows-model"); const component_1 = require("../component"); /** * Warns and then closes issues and PRs that have had no activity for a specified amount of time. * * The default configuration will: * * * Add a "Stale" label to pull requests after 14 days and closed after 2 days * * Add a "Stale" label to issues after 60 days and closed after 7 days * * If a comment is added, the label will be removed and timer is restarted. * * @see https://github.com/actions/stale */ class Stale extends component_1.Component { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Stale", version: "0.103.12" }; constructor(github, options = {}) { super(github.project); const stale = github.addWorkflow("stale"); stale.on({ schedule: [{ cron: "0 1 * * *" }], // at 1am every day workflowDispatch: {}, }); const pullRequests = (0, stale_util_1.renderBehavior)(options.pullRequest, { stale: 14, close: 2, type: "pull request", }); const issues = (0, stale_util_1.renderBehavior)(options.issues, { stale: 60, close: 7, type: "issue", }); const renderExemptLabels = (exemptLabels) => { if (!exemptLabels || exemptLabels.length === 0) { return undefined; } return exemptLabels.join(","); }; stale.addJobs({ stale: { ...github.runsOnConfig(options), permissions: { issues: workflows_model_1.JobPermission.WRITE, pullRequests: workflows_model_1.JobPermission.WRITE, }, steps: [ { id: "run-actions-stale", uses: actions_const_1.GitHubActions.ACTIONS_STALE, with: { // disable global "days-before-stale": -1, "days-before-close": -1, // pull requests "days-before-pr-stale": pullRequests.daysBeforeStale, "days-before-pr-close": pullRequests.daysBeforeClose, "stale-pr-message": pullRequests.staleMessage, "close-pr-message": pullRequests.closeMessage, "stale-pr-label": pullRequests.staleLabel, "exempt-pr-labels": renderExemptLabels(pullRequests.exemptLabels), // issues "days-before-issue-stale": issues.daysBeforeStale, "days-before-issue-close": issues.daysBeforeClose, "stale-issue-message": issues.staleMessage, "close-issue-message": issues.closeMessage, "stale-issue-label": issues.staleLabel, "exempt-issue-labels": renderExemptLabels(issues.exemptLabels), }, }, ], }, }); } } exports.Stale = Stale; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL3N0YWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtREFBZ0Q7QUFFaEQsNkNBQThDO0FBQzlDLHVEQUFrRDtBQUNsRCw0Q0FBeUM7QUE0RXpDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxxQkFBUzs7SUFDbEMsWUFBWSxNQUFjLEVBQUUsVUFBd0IsRUFBRTtRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsbUJBQW1CO1lBQ3RELGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBQSwyQkFBYyxFQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDdkQsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsMkJBQWMsRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzVDLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxZQUF1QixFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1lBQ0QsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWixLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDL0IsV0FBVyxFQUFFO29CQUNYLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUs7b0JBQzNCLFlBQVksRUFBRSwrQkFBYSxDQUFDLEtBQUs7aUJBQ2xDO2dCQUNELEtBQUssRUFBRTtvQkFDTDt3QkFDRSxFQUFFLEVBQUUsbUJBQW1CO3dCQUN2QixJQUFJLEVBQUUsNkJBQWEsQ0FBQyxhQUFhO3dCQUNqQyxJQUFJLEVBQUU7NEJBQ0osaUJBQWlCOzRCQUNqQixtQkFBbUIsRUFBRSxDQUFDLENBQUM7NEJBQ3ZCLG1CQUFtQixFQUFFLENBQUMsQ0FBQzs0QkFFdkIsZ0JBQWdCOzRCQUNoQixzQkFBc0IsRUFBRSxZQUFZLENBQUMsZUFBZTs0QkFDcEQsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLGVBQWU7NEJBQ3BELGtCQUFrQixFQUFFLFlBQVksQ0FBQyxZQUFZOzRCQUM3QyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsWUFBWTs0QkFDN0MsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLFVBQVU7NEJBQ3pDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7NEJBRWpFLFNBQVM7NEJBQ1QseUJBQXlCLEVBQUUsTUFBTSxDQUFDLGVBQWU7NEJBQ2pELHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxlQUFlOzRCQUNqRCxxQkFBcUIsRUFBRSxNQUFNLENBQUMsWUFBWTs0QkFDMUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFlBQVk7NEJBQzFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxVQUFVOzRCQUN0QyxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO3lCQUMvRDtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFoRUgsc0JBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2l0SHViQWN0aW9ucyB9IGZyb20gXCIuL2FjdGlvbnMuY29uc3RcIjtcbmltcG9ydCB0eXBlIHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5pbXBvcnQgeyByZW5kZXJCZWhhdmlvciB9IGZyb20gXCIuL3N0YWxlLXV0aWxcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUnVuc09uT3B0aW9ucyB9IGZyb20gXCIuLi9ydW5uZXItb3B0aW9uc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTdGFsZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbGVPcHRpb25zIGV4dGVuZHMgUnVuc09uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIHN0YWxlIHB1bGwgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQnkgZGVmYXVsdCwgcHVsbCByZXF1ZXN0cyB3aXRoIG5vIGFjdGl2aXR5IHdpbGwgYmUgbWFya2VkIGFzXG4gICAqIHN0YWxlIGFmdGVyIDE0IGRheXMgYW5kIGNsb3NlZCB3aXRoaW4gMiBkYXlzIHdpdGggcmVsZXZhbnQgY29tbWVudHMuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdD86IFN0YWxlQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIEhvdyB0byBoYW5kbGUgc3RhbGUgaXNzdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJ5IGRlZmF1bHQsIHN0YWxlIGlzc3VlcyB3aXRoIG5vIGFjdGl2aXR5IHdpbGwgYmUgbWFya2VkIGFzXG4gICAqIHN0YWxlIGFmdGVyIDYwIGRheXMgYW5kIGNsb3NlZCB3aXRoaW4gNyBkYXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNzdWVzPzogU3RhbGVCZWhhdmlvcjtcbn1cblxuLyoqXG4gKiBTdGFsZSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFsZUJlaGF2aW9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhpcyBiZWhhdmlvciBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBTYW1lIGFzIHNldHRpbmcgYGRheXNCZWZvcmVTdGFsZWAgYW5kIGBkYXlzQmVmb3JlQ2xvc2VgIHRvIGAtMWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSBkYXlzIHVudGlsIHRoZSBpc3N1ZSBvciBwdWxsIHJlcXVlc3QgaXMgbWFya2VkIGFzIFwiU3RhbGVcIi4gU2V0IHRvIC0xIHRvIGRpc2FibGUuXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIHJlYWRvbmx5IGRheXNCZWZvcmVTdGFsZT86IG51bWJlcjtcblxuICAvKipcbiAgICogRGF5cyB1bnRpbCB0aGUgaXNzdWUvUFIgaXMgY2xvc2VkIGFmdGVyIGl0IGlzIG1hcmtlZCBhcyBcIlN0YWxlXCIuIFNldCB0byAtMSB0byBkaXNhYmxlLlxuICAgKiBAZGVmYXVsdCAtXG4gICAqL1xuICByZWFkb25seSBkYXlzQmVmb3JlQ2xvc2U/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgaXNzdWUvUFIgd2hlbiBpdCBiZWNvbWVzIHN0YWxlLlxuICAgKiBAZGVmYXVsdCBcIlRoaXMgcHVsbCByZXF1ZXN0IGlzIG5vdyBtYXJrZWQgYXMgc3RhbGUgYmVjYXVzZSBoYXNuXFwndCBzZWVuIGFjdGl2aXR5IGZvciBhIHdoaWxlLiBBZGQgYSBjb21tZW50IG9yIGl0IHdpbGwgYmUgY2xvc2VkIHNvb24uXCJcbiAgICovXG4gIHJlYWRvbmx5IHN0YWxlTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBpc3N1ZS9QUiB3aGVuIGl0J3MgY2xvc2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiQ2xvc2luZyB0aGlzIHB1bGwgcmVxdWVzdCBhcyBpdCBoYXNuXFwndCBzZWVuIGFjdGl2aXR5IGZvciBhIHdoaWxlLiBQbGVhc2UgYWRkIGEgY29tbWVudCBAbWVudGlvbmluZyBhIG1haW50YWluZXIgd2hlbiB5b3UgYXJlIHJlYWR5IHRvIGNvbnRpbnVlLlwiXG4gICAqL1xuICByZWFkb25seSBjbG9zZU1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBhcHBseSB0byB0aGUgaXNzdWUvUFIgd2hlbiBpdCBiZWNvbWVzIHN0YWxlLlxuICAgKiBAZGVmYXVsdCBcInN0YWxlXCJcbiAgICovXG4gIHJlYWRvbmx5IHN0YWxlTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVsIHdoaWNoIGV4ZW1wdCBhbiBpc3N1ZS9QUiBmcm9tIGJlY29taW5nIHN0YWxlLiBTZXQgdG8gYFtdYCB0byBkaXNhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtcImJhY2tsb2dcIl1cbiAgICovXG4gIHJlYWRvbmx5IGV4ZW1wdExhYmVscz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdhcm5zIGFuZCB0aGVuIGNsb3NlcyBpc3N1ZXMgYW5kIFBScyB0aGF0IGhhdmUgaGFkIG5vIGFjdGl2aXR5IGZvciBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS5cbiAqXG4gKiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHdpbGw6XG4gKlxuICogICogQWRkIGEgXCJTdGFsZVwiIGxhYmVsIHRvIHB1bGwgcmVxdWVzdHMgYWZ0ZXIgMTQgZGF5cyBhbmQgY2xvc2VkIGFmdGVyIDIgZGF5c1xuICogICogQWRkIGEgXCJTdGFsZVwiIGxhYmVsIHRvIGlzc3VlcyBhZnRlciA2MCBkYXlzIGFuZCBjbG9zZWQgYWZ0ZXIgNyBkYXlzXG4gKiAgKiBJZiBhIGNvbW1lbnQgaXMgYWRkZWQsIHRoZSBsYWJlbCB3aWxsIGJlIHJlbW92ZWQgYW5kIHRpbWVyIGlzIHJlc3RhcnRlZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hY3Rpb25zL3N0YWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFsZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGdpdGh1YjogR2l0SHViLCBvcHRpb25zOiBTdGFsZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0KTtcblxuICAgIGNvbnN0IHN0YWxlID0gZ2l0aHViLmFkZFdvcmtmbG93KFwic3RhbGVcIik7XG4gICAgc3RhbGUub24oe1xuICAgICAgc2NoZWR1bGU6IFt7IGNyb246IFwiMCAxICogKiAqXCIgfV0sIC8vIGF0IDFhbSBldmVyeSBkYXlcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHVsbFJlcXVlc3RzID0gcmVuZGVyQmVoYXZpb3Iob3B0aW9ucy5wdWxsUmVxdWVzdCwge1xuICAgICAgc3RhbGU6IDE0LFxuICAgICAgY2xvc2U6IDIsXG4gICAgICB0eXBlOiBcInB1bGwgcmVxdWVzdFwiLFxuICAgIH0pO1xuICAgIGNvbnN0IGlzc3VlcyA9IHJlbmRlckJlaGF2aW9yKG9wdGlvbnMuaXNzdWVzLCB7XG4gICAgICBzdGFsZTogNjAsXG4gICAgICBjbG9zZTogNyxcbiAgICAgIHR5cGU6IFwiaXNzdWVcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbmRlckV4ZW1wdExhYmVscyA9IChleGVtcHRMYWJlbHM/OiBzdHJpbmdbXSkgPT4ge1xuICAgICAgaWYgKCFleGVtcHRMYWJlbHMgfHwgZXhlbXB0TGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZW1wdExhYmVscy5qb2luKFwiLFwiKTtcbiAgICB9O1xuXG4gICAgc3RhbGUuYWRkSm9icyh7XG4gICAgICBzdGFsZToge1xuICAgICAgICAuLi5naXRodWIucnVuc09uQ29uZmlnKG9wdGlvbnMpLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBwdWxsUmVxdWVzdHM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFwicnVuLWFjdGlvbnMtc3RhbGVcIixcbiAgICAgICAgICAgIHVzZXM6IEdpdEh1YkFjdGlvbnMuQUNUSU9OU19TVEFMRSxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgLy8gZGlzYWJsZSBnbG9iYWxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1zdGFsZVwiOiAtMSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1jbG9zZVwiOiAtMSxcblxuICAgICAgICAgICAgICAvLyBwdWxsIHJlcXVlc3RzXG4gICAgICAgICAgICAgIFwiZGF5cy1iZWZvcmUtcHItc3RhbGVcIjogcHVsbFJlcXVlc3RzLmRheXNCZWZvcmVTdGFsZSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1wci1jbG9zZVwiOiBwdWxsUmVxdWVzdHMuZGF5c0JlZm9yZUNsb3NlLFxuICAgICAgICAgICAgICBcInN0YWxlLXByLW1lc3NhZ2VcIjogcHVsbFJlcXVlc3RzLnN0YWxlTWVzc2FnZSxcbiAgICAgICAgICAgICAgXCJjbG9zZS1wci1tZXNzYWdlXCI6IHB1bGxSZXF1ZXN0cy5jbG9zZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIFwic3RhbGUtcHItbGFiZWxcIjogcHVsbFJlcXVlc3RzLnN0YWxlTGFiZWwsXG4gICAgICAgICAgICAgIFwiZXhlbXB0LXByLWxhYmVsc1wiOiByZW5kZXJFeGVtcHRMYWJlbHMocHVsbFJlcXVlc3RzLmV4ZW1wdExhYmVscyksXG5cbiAgICAgICAgICAgICAgLy8gaXNzdWVzXG4gICAgICAgICAgICAgIFwiZGF5cy1iZWZvcmUtaXNzdWUtc3RhbGVcIjogaXNzdWVzLmRheXNCZWZvcmVTdGFsZSxcbiAgICAgICAgICAgICAgXCJkYXlzLWJlZm9yZS1pc3N1ZS1jbG9zZVwiOiBpc3N1ZXMuZGF5c0JlZm9yZUNsb3NlLFxuICAgICAgICAgICAgICBcInN0YWxlLWlzc3VlLW1lc3NhZ2VcIjogaXNzdWVzLnN0YWxlTWVzc2FnZSxcbiAgICAgICAgICAgICAgXCJjbG9zZS1pc3N1ZS1tZXNzYWdlXCI6IGlzc3Vlcy5jbG9zZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIFwic3RhbGUtaXNzdWUtbGFiZWxcIjogaXNzdWVzLnN0YWxlTGFiZWwsXG4gICAgICAgICAgICAgIFwiZXhlbXB0LWlzc3VlLWxhYmVsc1wiOiByZW5kZXJFeGVtcHRMYWJlbHMoaXNzdWVzLmV4ZW1wdExhYmVscyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=