openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
40 lines (39 loc) • 1.4 kB
JavaScript
import { l as normalizeOptionalString } from "./string-coerce-1VuiLaaR.mjs";
import { c as isRecord } from "./record-coerce-TIsquoVR.mjs";
//#region src/gateway/github-repository-target.ts
function resolveGitHubForkParent(value) {
if (!isRecord(value) || value.fork !== true || !isRecord(value.parent)) return;
const parentOwner = isRecord(value.parent.owner) ? value.parent.owner : void 0;
const owner = normalizeOptionalString(parentOwner?.login);
const repo = normalizeOptionalString(value.parent.name);
return owner && repo ? {
owner,
repo
} : void 0;
}
/** Projects GitHub's repository response into the canonical push/head/base relationship. */
function resolveGitHubRepositoryTarget(value, push) {
if (!isRecord(value)) return;
const defaultBranch = normalizeOptionalString(value.default_branch);
if (value.fork !== true) return defaultBranch ? {
fork: false,
push,
pullRequest: {
...push,
defaultBranch
}
} : void 0;
const parent = resolveGitHubForkParent(value);
const parentRecord = isRecord(value.parent) ? value.parent : void 0;
const parentDefaultBranch = normalizeOptionalString(parentRecord?.default_branch);
return parent && parentDefaultBranch ? {
fork: true,
push,
pullRequest: {
...parent,
defaultBranch: parentDefaultBranch
}
} : void 0;
}
//#endregion
export { resolveGitHubRepositoryTarget as n, resolveGitHubForkParent as t };