Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
bd77449
Bump the npm-minor group across 1 directory with 6 updates
dependabot[bot] May 20, 2026
a0a8d16
Bump ruby/setup-ruby
dependabot[bot] May 20, 2026
89c58e6
Rebuild
github-actions[bot] May 20, 2026
14c1509
Rebuild
github-actions[bot] May 20, 2026
0cd24d8
Update changelog and version after v4.36.0
github-actions[bot] May 22, 2026
80795fb
Rebuild
github-actions[bot] May 22, 2026
0fb8a66
Merge pull request #3928 from github/mergeback/v4.36.0-to-main-7211b7c8
oscarsj May 22, 2026
8a1e375
Merge branch 'main' into dependabot/npm_and_yarn/npm-minor-28e225f5ad
mbg May 22, 2026
0e150e4
Merge pull request #3921 from github/dependabot/npm_and_yarn/npm-mino…
mbg May 22, 2026
8b0c522
Update supported GitHub Enterprise Server versions
github-actions[bot] May 27, 2026
b42b754
Bump the npm-minor group across 1 directory with 2 updates
dependabot[bot] May 27, 2026
bef1eb7
Bump tmp from 0.2.4 to 0.2.7
dependabot[bot] May 28, 2026
6a37b3a
Rebuild
github-actions[bot] May 28, 2026
ad170e6
Merge branch 'main' into dependabot/github_actions/dot-github/workflo…
mbg May 28, 2026
5e6adf7
Merge pull request #3936 from github/dependabot/npm_and_yarn/tmp-0.2.7
mbg May 28, 2026
cef2e7a
Merge pull request #3925 from github/dependabot/github_actions/dot-gi…
mbg May 28, 2026
115001b
Merge pull request #3934 from github/dependabot/npm_and_yarn/npm-mino…
mbg May 28, 2026
d1eb120
Merge pull request #3933 from github/update-supported-enterprise-serv…
henrymercer May 29, 2026
5245323
Disable missing diff-ranges fallback when overlay enabled manually
henrymercer Jun 1, 2026
2a1689e
Merge pull request #3939 from github/henrymercer/skip-overlay-revert-…
henrymercer Jun 1, 2026
9431011
Update changelog for v4.36.1
github-actions[bot] Jun 2, 2026
87557b9
Merge pull request #3940 from github/update-v4.36.1-2a1689ed4
henrymercer Jun 2, 2026
c02b552
Revert "Update version and changelog for v3.36.0"
github-actions[bot] Jun 2, 2026
2587a4b
Revert "Rebuild"
github-actions[bot] Jun 2, 2026
3b37ae1
Merge remote-tracking branch 'origin/releases/v4' into backport-v3.36…
github-actions[bot] Jun 2, 2026
b6eff7b
Update version and changelog for v3.36.1
github-actions[bot] Jun 2, 2026
e816d2e
Rebuild
github-actions[bot] Jun 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Disable missing diff-ranges fallback when overlay enabled manually
  • Loading branch information
henrymercer committed Jun 1, 2026
commit 524532393a46071bdfc81527a811ffa69e16723a
17 changes: 13 additions & 4 deletions lib/entry-points.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

96 changes: 70 additions & 26 deletions src/config-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,7 @@ const checkOverlayEnablementMacro = makeMacro({
| {
overlayDatabaseMode: OverlayDatabaseMode;
useOverlayDatabaseCaching: boolean;
overlayModeSetExplicitly?: boolean;
}
| {
disabledReason: OverlayDisabledReason;
Expand Down Expand Up @@ -1124,7 +1125,13 @@ const checkOverlayEnablementMacro = makeMacro({
if ("disabledReason" in expected) {
t.deepEqual(result, new Failure(expected.disabledReason));
} else {
t.deepEqual(result, new Success(expected));
t.deepEqual(
result,
new Success({
overlayModeSetExplicitly: false,
...expected,
}),
);
}
} finally {
// Restore the original environment
Expand All @@ -1143,6 +1150,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand All @@ -1154,6 +1162,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.OverlayBase,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand Down Expand Up @@ -1812,6 +1821,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand All @@ -1824,6 +1834,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand Down Expand Up @@ -1920,6 +1931,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand Down Expand Up @@ -1965,6 +1977,7 @@ checkOverlayEnablementMacro.serial(
{
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: true,
},
);

Expand Down Expand Up @@ -2182,33 +2195,64 @@ test("applyIncrementalAnalysisSettings: keeps overlay mode and adds exclusions w
]);
});

test("applyIncrementalAnalysisSettings: disables overlay analysis when diff ranges are unavailable", async (t) => {
const config = createTestConfig({
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
});
config.useOverlayDatabaseCaching = true;
const codeql = createStubCodeQL({});
const logger = getRunnerLogger(true);
const addDiagnosticsStub = sinon
.stub(overlayDiagnostics, "addOverlayDisablementDiagnostics")
.resolves();
test.serial(
"applyIncrementalAnalysisSettings: disables overlay analysis when diff ranges are unavailable",
async (t) => {
const config = createTestConfig({
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
});
config.useOverlayDatabaseCaching = true;
const codeql = createStubCodeQL({});
const logger = getRunnerLogger(true);
const addDiagnosticsStub = sinon
.stub(overlayDiagnostics, "addOverlayDisablementDiagnostics")
.resolves();

await configUtils.applyIncrementalAnalysisSettings(
config,
false,
codeql,
logger,
);

await configUtils.applyIncrementalAnalysisSettings(
config,
false,
codeql,
logger,
);
t.is(config.overlayDatabaseMode, OverlayDatabaseMode.None);
t.is(config.useOverlayDatabaseCaching, false);
t.deepEqual(config.extraQueryExclusions, []);
t.true(addDiagnosticsStub.calledOnce);
t.is(
addDiagnosticsStub.firstCall.args[2],
OverlayDisabledReason.DiffInformedAnalysisNotEnabled,
);
},
);

t.is(config.overlayDatabaseMode, OverlayDatabaseMode.None);
t.is(config.useOverlayDatabaseCaching, false);
t.deepEqual(config.extraQueryExclusions, []);
t.true(addDiagnosticsStub.calledOnce);
t.is(
addDiagnosticsStub.firstCall.args[2],
OverlayDisabledReason.DiffInformedAnalysisNotEnabled,
);
});
test.serial(
"applyIncrementalAnalysisSettings: keeps overlay mode when set explicitly and diff ranges are unavailable",
async (t) => {
const config = createTestConfig({
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
});
config.useOverlayDatabaseCaching = false;
config.overlayModeSetExplicitly = true;
const codeql = createStubCodeQL({});
const logger = getRunnerLogger(true);
const addDiagnosticsStub = sinon
.stub(overlayDiagnostics, "addOverlayDisablementDiagnostics")
.resolves();

await configUtils.applyIncrementalAnalysisSettings(
config,
false,
codeql,
logger,
);

t.is(config.overlayDatabaseMode, OverlayDatabaseMode.Overlay);
t.is(config.useOverlayDatabaseCaching, false);
t.deepEqual(config.extraQueryExclusions, []);
t.true(addDiagnosticsStub.notCalled);
},
);

test("applyIncrementalAnalysisSettings: adds exclusions for diff-informed-only runs", async (t) => {
const config = createTestConfig({});
Expand Down
36 changes: 26 additions & 10 deletions src/config-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,11 @@ export interface Config {
*/
useOverlayDatabaseCaching: boolean;

/**
* Whether the overlay database mode was set explicitly.
*/
overlayModeSetExplicitly: boolean;

/**
* A partial mapping from repository properties that affect us to their values.
*/
Expand Down Expand Up @@ -573,6 +578,7 @@ export async function initActionState(
extraQueryExclusions: [],
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: false,
repositoryProperties,
enableFileCoverageInformation,
};
Expand Down Expand Up @@ -772,6 +778,7 @@ async function checkRunnerResources(
interface EnabledOverlayConfig {
overlayDatabaseMode: Exclude<OverlayDatabaseMode, OverlayDatabaseMode.None>;
useOverlayDatabaseCaching: boolean;
overlayModeSetExplicitly: boolean;
}

/**
Expand Down Expand Up @@ -826,6 +833,7 @@ export async function checkOverlayEnablement(
return validateOverlayDatabaseMode(
modeEnv,
false,
true,
codeql,
languages,
sourceRoot,
Expand Down Expand Up @@ -917,6 +925,7 @@ export async function checkOverlayEnablement(
return validateOverlayDatabaseMode(
overlayDatabaseMode,
true,
false,
codeql,
languages,
sourceRoot,
Expand All @@ -935,6 +944,7 @@ export async function checkOverlayEnablement(
async function validateOverlayDatabaseMode(
overlayDatabaseMode: Exclude<OverlayDatabaseMode, OverlayDatabaseMode.None>,
useOverlayDatabaseCaching: boolean,
overlayModeSetExplicitly: boolean,
codeql: CodeQL,
languages: Language[],
sourceRoot: string,
Expand Down Expand Up @@ -1006,6 +1016,7 @@ async function validateOverlayDatabaseMode(
return new Success({
overlayDatabaseMode,
useOverlayDatabaseCaching,
overlayModeSetExplicitly,
});
}

Expand Down Expand Up @@ -1080,14 +1091,14 @@ function hasQueryCustomisation(userConfig: UserConfig): boolean {
/**
* Finalize the incremental-analysis configuration for this run.
*
* Overlay analysis has only been validated in combination with diff-informed
* analysis, so if `Overlay` mode was selected for a pull request but the diff
* ranges could not be computed, fall back to a full non-overlay analysis.
* Overlay analysis has only been validated in combination with diff-informed analysis, so if
* `Overlay` mode was selected for a pull request but the diff ranges could not be computed, fall
* back to a full non-overlay analysis. If the overlay mode was set explicitly, this fallback does
* not apply.
*
* Query exclusions for incremental-only queries are then applied whenever the
* diff ranges are available — which, after the fallback above, is exactly the
* set of runs where any kind of incremental analysis (overlay or
* diff-informed) is in effect.
* Query exclusions for incremental-only queries are then applied whenever the diff ranges are
* available — which, after the fallback above, is exactly the set of runs where any kind of
* incremental analysis (overlay or diff-informed) is in effect.
*/
export async function applyIncrementalAnalysisSettings(
config: Config,
Expand All @@ -1097,7 +1108,8 @@ export async function applyIncrementalAnalysisSettings(
): Promise<void> {
if (
config.overlayDatabaseMode === OverlayDatabaseMode.Overlay &&
!hasDiffRanges
!hasDiffRanges &&
!config.overlayModeSetExplicitly
) {
logger.info(
`Reverting overlay database mode to ${OverlayDatabaseMode.None} ` +
Expand Down Expand Up @@ -1251,14 +1263,18 @@ export async function initConfig(
logger,
);
if (overlayDatabaseModeResult.isSuccess()) {
const { overlayDatabaseMode, useOverlayDatabaseCaching } =
overlayDatabaseModeResult.value;
const {
overlayDatabaseMode,
useOverlayDatabaseCaching,
overlayModeSetExplicitly,
} = overlayDatabaseModeResult.value;
logger.info(
`Using overlay database mode: ${overlayDatabaseMode} ` +
`${useOverlayDatabaseCaching ? "with" : "without"} caching.`,
);
config.overlayDatabaseMode = overlayDatabaseMode;
config.useOverlayDatabaseCaching = useOverlayDatabaseCaching;
config.overlayModeSetExplicitly = overlayModeSetExplicitly;
} else {
const overlayDisabledReason = overlayDatabaseModeResult.value;
logger.info(
Expand Down
1 change: 1 addition & 0 deletions src/testing-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,7 @@ export function createTestConfig(overrides: Partial<Config>): Config {
extraQueryExclusions: [],
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
overlayModeSetExplicitly: false,
repositoryProperties: {},
enableFileCoverageInformation: true,
} satisfies Config,
Expand Down
Loading