@biffo/cli 0.313.0 → 0.313.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +49 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -719,7 +719,8 @@ function checkCoreOwnership({
|
|
|
719
719
|
branch = "",
|
|
720
720
|
commitMessage = "",
|
|
721
721
|
warnOnly = [],
|
|
722
|
-
templateShippedPaths = null
|
|
722
|
+
templateShippedPaths = null,
|
|
723
|
+
upgradeCommitFiles = null
|
|
723
724
|
}) {
|
|
724
725
|
const empty = {
|
|
725
726
|
blocked: [],
|
|
@@ -729,8 +730,13 @@ function checkCoreOwnership({
|
|
|
729
730
|
knownOrphans: []
|
|
730
731
|
};
|
|
731
732
|
if (!isInstance) return { skipped: "template", ...empty };
|
|
732
|
-
|
|
733
|
-
|
|
733
|
+
let effectiveChangedFiles = changedFiles;
|
|
734
|
+
if (branch.startsWith(UPGRADE_BRANCH_PREFIX)) {
|
|
735
|
+
const exempt = new Set(upgradeCommitFiles ?? []);
|
|
736
|
+
effectiveChangedFiles = changedFiles.filter((f) => !exempt.has(f));
|
|
737
|
+
if (effectiveChangedFiles.length === 0) return { skipped: "upgrade-branch", ...empty };
|
|
738
|
+
}
|
|
739
|
+
const manifestTemplateOwned = effectiveChangedFiles.filter((f) => isTemplateOwned(f, manifest));
|
|
734
740
|
const knownOrphans = [];
|
|
735
741
|
const templateOwned = [];
|
|
736
742
|
for (const path of manifestTemplateOwned) {
|
|
@@ -12722,7 +12728,37 @@ async function fetchTemplateShippedPaths(repoRoot, runner = defaultRunner) {
|
|
|
12722
12728
|
return paths.length > 0 ? new Set(paths) : null;
|
|
12723
12729
|
}
|
|
12724
12730
|
|
|
12731
|
+
// src/lib/upgrade-commit-files.ts
|
|
12732
|
+
var defaultRunner2 = async (args, cwd) => {
|
|
12733
|
+
const result = await execa("git", args, { cwd, reject: false, timeout: 15e3 });
|
|
12734
|
+
return { stdout: String(result.stdout ?? ""), exitCode: result.exitCode ?? null };
|
|
12735
|
+
};
|
|
12736
|
+
var splitLines = (stdout) => stdout.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
12737
|
+
async function resolveUpgradeCommitFiles(repoRoot, base, opts = {}, runner = defaultRunner2) {
|
|
12738
|
+
let rev;
|
|
12739
|
+
try {
|
|
12740
|
+
rev = await runner(["rev-list", "--reverse", `${base}..HEAD`], repoRoot);
|
|
12741
|
+
} catch {
|
|
12742
|
+
return null;
|
|
12743
|
+
}
|
|
12744
|
+
if (rev.exitCode !== 0) return null;
|
|
12745
|
+
const commits = splitLines(rev.stdout);
|
|
12746
|
+
if (commits.length === 0) {
|
|
12747
|
+
return opts.stagedFallbackFiles ?? null;
|
|
12748
|
+
}
|
|
12749
|
+
const first = commits[0];
|
|
12750
|
+
let diff;
|
|
12751
|
+
try {
|
|
12752
|
+
diff = await runner(["diff-tree", "--no-commit-id", "--name-only", "-r", first], repoRoot);
|
|
12753
|
+
} catch {
|
|
12754
|
+
return null;
|
|
12755
|
+
}
|
|
12756
|
+
if (diff.exitCode !== 0) return null;
|
|
12757
|
+
return splitLines(diff.stdout);
|
|
12758
|
+
}
|
|
12759
|
+
|
|
12725
12760
|
// src/scripts/check-core-ownership.ts
|
|
12761
|
+
var LOCAL_UPGRADE_BASE = "origin/dev";
|
|
12726
12762
|
var BOLD = "\x1B[1m";
|
|
12727
12763
|
var DIM = "\x1B[2m";
|
|
12728
12764
|
var RED = "\x1B[31m";
|
|
@@ -12748,6 +12784,7 @@ async function runOwnershipCheck(argv) {
|
|
|
12748
12784
|
let changedFiles;
|
|
12749
12785
|
let deletedFiles = [];
|
|
12750
12786
|
let commitMessage = "";
|
|
12787
|
+
let ciBase = null;
|
|
12751
12788
|
if (staged) {
|
|
12752
12789
|
const { stdout } = await execa("git", ["diff", "--cached", "--name-status"], { cwd: root });
|
|
12753
12790
|
({ changed: changedFiles, deleted: deletedFiles } = parseNameStatus(stdout));
|
|
@@ -12762,11 +12799,12 @@ async function runOwnershipCheck(argv) {
|
|
|
12762
12799
|
process.exit(2);
|
|
12763
12800
|
}
|
|
12764
12801
|
await execa("git", ["fetch", "--quiet", "origin", base], { cwd: root, reject: false });
|
|
12765
|
-
|
|
12802
|
+
ciBase = `origin/${base}`;
|
|
12803
|
+
const { stdout } = await execa("git", ["diff", "--name-status", `${ciBase}...HEAD`], {
|
|
12766
12804
|
cwd: root
|
|
12767
12805
|
});
|
|
12768
12806
|
({ changed: changedFiles, deleted: deletedFiles } = parseNameStatus(stdout));
|
|
12769
|
-
const { stdout: log2 } = await execa("git", ["log", "--format=%B",
|
|
12807
|
+
const { stdout: log2 } = await execa("git", ["log", "--format=%B", `${ciBase}..HEAD`], {
|
|
12770
12808
|
cwd: root,
|
|
12771
12809
|
reject: false
|
|
12772
12810
|
});
|
|
@@ -12777,6 +12815,11 @@ async function runOwnershipCheck(argv) {
|
|
|
12777
12815
|
reject: false
|
|
12778
12816
|
});
|
|
12779
12817
|
const branch = resolveBranch(process.env, gitBranch);
|
|
12818
|
+
const upgradeCommitFiles = branch.startsWith(UPGRADE_BRANCH_PREFIX) ? await resolveUpgradeCommitFiles(
|
|
12819
|
+
root,
|
|
12820
|
+
ciBase ?? LOCAL_UPGRADE_BASE,
|
|
12821
|
+
staged ? { stagedFallbackFiles: changedFiles } : {}
|
|
12822
|
+
) : null;
|
|
12780
12823
|
const templateShippedPaths = staged ? null : await fetchTemplateShippedPaths(root);
|
|
12781
12824
|
if (!staged && templateShippedPaths === null) {
|
|
12782
12825
|
console.error(
|
|
@@ -12790,6 +12833,7 @@ async function runOwnershipCheck(argv) {
|
|
|
12790
12833
|
branch,
|
|
12791
12834
|
commitMessage,
|
|
12792
12835
|
warnOnly: readDivergenceConfig(root).warnOnly,
|
|
12836
|
+
upgradeCommitFiles,
|
|
12793
12837
|
templateShippedPaths
|
|
12794
12838
|
});
|
|
12795
12839
|
if (result.knownOrphans.length > 0) {
|