MCPcopy Create free account
hub / github.com/github/gh-aw / createStandardResolveNumber

Function createStandardResolveNumber

actions/setup/js/update_handler_factory.cjs:43–80  ·  view source on GitHub ↗

* Creates a standard resolve number function for issue/PR handlers that use resolveTarget helper * This factory eliminates duplication between update_issue and update_pull_request * * @param {Object} config - Configuration for the resolve function * @param {string} config.itemType - Type of item

(config)

Source from the content-addressed store, hash-verified

41 * @returns {Function} Resolve number function
42 */
43function createStandardResolveNumber(config) {
44 const { itemType, itemNumberField, supportsPR, supportsIssue } = config;
45
46 return function resolveNumber(item, updateTarget, context, resolvedTemporaryIds) {
47 // Resolve temporary IDs in the item number field before target resolution
48 let resolvedItem = item;
49 const itemNumberValue = item[itemNumberField];
50 if (resolvedTemporaryIds && itemNumberValue != null) {
51 const tempIdMap = loadTemporaryIdMapFromResolved(resolvedTemporaryIds);
52 const resolvedTarget = resolveRepoIssueTarget(itemNumberValue, tempIdMap, context.repo.owner, context.repo.repo);
53 if (resolvedTarget.wasTemporaryId && resolvedTarget.resolved) {
54 resolvedItem = { ...item, [itemNumberField]: resolvedTarget.resolved.number };
55 core.info(`Resolved temporary ID '${itemNumberValue}' to #${resolvedTarget.resolved.number}`);
56 } else if (resolvedTarget.wasTemporaryId && !resolvedTarget.resolved) {
57 return {
58 success: false,
59 deferred: true,
60 error: resolvedTarget.errorMessage || `Unresolved temporary ID: ${itemNumberValue}`,
61 };
62 }
63 }
64
65 const targetResult = resolveTarget({
66 targetConfig: updateTarget,
67 item: { ...resolvedItem, item_number: resolvedItem[itemNumberField] },
68 context: context,
69 itemType: itemType,
70 supportsPR: supportsPR,
71 supportsIssue: supportsIssue,
72 });
73
74 if (!targetResult.success) {
75 return { success: false, shouldFail: targetResult.shouldFail, error: targetResult.error };
76 }
77
78 return { success: true, number: targetResult.number };
79 };
80}
81
82/**
83 * Creates a standard format success result function

Callers 2

update_issue.cjsFile · 0.85

Calls 3

resolveRepoIssueTargetFunction · 0.85
resolveTargetFunction · 0.70

Tested by

no test coverage detected