@@ -24,6 +24,7 @@ module.exports = [
2424 __webpack_require__( 2994 ),
2525 __webpack_require__( 7866 ),
2626 __webpack_require__( 8224 ),
27+ __webpack_require__( 3707 ),
2728];
2829
2930
@@ -2512,6 +2513,209 @@ module.exports = async ( { context, octokit, config = {}, issue }, data ) => {
25122513};
25132514
25142515
2516+ /***/ }),
2517+
2518+ /***/ 8927:
2519+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2520+
2521+ /**
2522+ * External dependencies
2523+ */
2524+ const { setFailed, getInput: coreGetInput } = __webpack_require__( 2186 );
2525+
2526+ const inputs = {
2527+ targetMilestone: {
2528+ input: 'target_milestone',
2529+ default: '',
2530+ required: false,
2531+ },
2532+ };
2533+
2534+ const getInput = ( input ) => {
2535+ const value = coreGetInput( input.input ) || input.default;
2536+ if ( input.required && ! value ) {
2537+ throw new Error(
2538+ `Update Milestone: Missing required input ${ input.input } your input: ${ input }`
2539+ );
2540+ }
2541+
2542+ return value;
2543+ };
2544+
2545+ module.exports = async () => {
2546+ try {
2547+ return {
2548+ targetMilestone: getInput( inputs.targetMilestone ),
2549+ };
2550+ } catch ( error ) {
2551+ setFailed( `Update Milestone: Target milestone: ${ error }` );
2552+ }
2553+ };
2554+
2555+
2556+ /***/ }),
2557+
2558+ /***/ 3707:
2559+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2560+
2561+ const runner = __webpack_require__( 9561 );
2562+ const getConfig = __webpack_require__( 8927 );
2563+
2564+ module.exports = {
2565+ name: 'update-milestone',
2566+ events: [ 'release' ],
2567+ runner,
2568+ getConfig,
2569+ };
2570+
2571+
2572+ /***/ }),
2573+
2574+ /***/ 9561:
2575+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2576+
2577+ /**
2578+ * External dependencies
2579+ */
2580+ const { setFailed } = __webpack_require__( 2186 );
2581+
2582+ /**
2583+ * Internal dependencies
2584+ */
2585+ const debug = __webpack_require__( 5800 );
2586+ const updateMilestoneHandler = __webpack_require__( 8223 );
2587+
2588+ /**
2589+ * @typedef {import('@actions/github').GitHub} GitHub
2590+ * @typedef {import('@actions/github').context} GitHubContext
2591+ * @typedef {import('../../typedefs').AutomationTaskRunner} AutomationTaskRunner
2592+ */
2593+
2594+ const runnerMatrix = {
2595+ release: {
2596+ published: updateMilestoneHandler,
2597+ },
2598+ };
2599+
2600+ /**
2601+ * The task runner for this action
2602+ *
2603+ * @param {string} eventName The event we want the runner for.
2604+ * @param {string} [action] The action we want the runner for.
2605+ *
2606+ * @return {AutomationTaskRunner} A runner function.
2607+ */
2608+ const getRunnerTask = ( eventName, action ) => {
2609+ if (
2610+ ! runnerMatrix[ eventName ] ||
2611+ action === undefined ||
2612+ ! runnerMatrix[ eventName ][ action ]
2613+ ) {
2614+ return;
2615+ }
2616+ return runnerMatrix[ eventName ][ action ];
2617+ };
2618+
2619+ /**
2620+ * The task runner for this action to update the milestone
2621+ *
2622+ * @param {GitHubContext} context Context for the job run (github).
2623+ * @param {GitHub} octokit GitHub api helper.
2624+ * @param {Object} config Config object.
2625+ *
2626+ * @return {AutomationTaskRunner} task runner.
2627+ */
2628+ const runner = async ( context, octokit, config ) => {
2629+ const task = getRunnerTask( context.eventName, context.payload.action );
2630+ if ( typeof task === 'function' ) {
2631+ debug( `Update Milestone: Executing the ${ task.name } task.` );
2632+ await task( context, octokit, config );
2633+ } else {
2634+ setFailed(
2635+ `Update Milestone: There is no configured task for the event = '${ context.eventName }' and the payload action = '${ context.payload.action }'`
2636+ );
2637+ }
2638+ };
2639+
2640+ module.exports = runner;
2641+
2642+
2643+ /***/ }),
2644+
2645+ /***/ 8223:
2646+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2647+
2648+ /**
2649+ * Internal dependencies
2650+ */
2651+ const debug = __webpack_require__( 5800 );
2652+ const { getMilestoneByTitle } = __webpack_require__( 1606 );
2653+
2654+ /**
2655+ * @typedef {import('../../typedefs').GitHubContext} GitHubContext
2656+ * @typedef {import('../../typedefs').GitHub} GitHub
2657+ */
2658+
2659+ /**
2660+ * @param {GitHubContext} context
2661+ * @param {GitHub} octokit
2662+ * @param {Object} config
2663+ */
2664+ module.exports = async ( context, octokit, config ) => {
2665+ const targetMilestone = await getMilestoneByTitle(
2666+ context,
2667+ octokit,
2668+ config.targetMilestone,
2669+ 'closed'
2670+ );
2671+
2672+ if ( ! targetMilestone ) {
2673+ debug(
2674+ `Update Milestone: Could not find the target milestone: ${ config.targetMilestone }`
2675+ );
2676+ return;
2677+ }
2678+ debug(
2679+ `Update Milestone: Found the target milestone: ${ config.targetMilestone }`
2680+ );
2681+
2682+ if ( targetMilestone.due_on !== null ) {
2683+ debug(
2684+ `Update Milestone: Target milestone: ${ config.targetMilestone } already have a due date.`
2685+ );
2686+ return;
2687+ }
2688+
2689+ const updateDueDate = ( milestoneNumber, dueDate ) => {
2690+ return octokit.issues.updateMilestone( {
2691+ owner: context.repo.owner,
2692+ repo: context.repo.repo,
2693+ milestone_number: milestoneNumber,
2694+ due_on: dueDate,
2695+ } );
2696+ };
2697+
2698+ const date = new Date();
2699+ const dueDate = date.toISOString();
2700+
2701+ const milestoneUpdate = await updateDueDate(
2702+ targetMilestone.number,
2703+ dueDate
2704+ );
2705+
2706+ if ( ! milestoneUpdate ) {
2707+ debug(
2708+ `Update Milestone: Could not update the due date of the milestone: ${ config.targetMilestone }`
2709+ );
2710+ return;
2711+ }
2712+
2713+ debug(
2714+ `Update Milestone: Milstone ${ config.targetMilestone } successfully updated with the ${ dueDate } due date.`
2715+ );
2716+ };
2717+
2718+
25152719/***/ }),
25162720
25172721/***/ 5800:
0 commit comments