Skip to content

Commit 3aa7135

Browse files
authored
Merge pull request #2567 from github/NlightNFotis/feature_flag_fix
Tolerate other GitHub variants when retrieving feature flags from GitHub API
2 parents b91f43b + fddb49d commit 3aa7135

File tree

6 files changed

+53
-4
lines changed

6 files changed

+53
-4
lines changed

lib/feature-flags.js

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/feature-flags.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/feature-flags.test.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/feature-flags.test.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/feature-flags.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,36 @@ test(`All features are disabled if running against GHES`, async (t) => {
6060
});
6161
});
6262

63+
test(`Feature flags are requested in Proxima`, async (t) => {
64+
await withTmpDir(async (tmpDir) => {
65+
const loggedMessages = [];
66+
const features = setUpFeatureFlagTests(
67+
tmpDir,
68+
getRecordingLogger(loggedMessages),
69+
{ type: GitHubVariant.GHE_DOTCOM },
70+
);
71+
72+
mockFeatureFlagApiEndpoint(200, initializeFeatures(true));
73+
74+
for (const feature of Object.values(Feature)) {
75+
// Ensure we have gotten a response value back from the Mock API
76+
t.assert(
77+
await features.getValue(feature, includeCodeQlIfRequired(feature)),
78+
);
79+
}
80+
81+
// And that we haven't bailed preemptively.
82+
t.assert(
83+
loggedMessages.find(
84+
(v: LoggedMessage) =>
85+
v.type === "debug" &&
86+
v.message ===
87+
"Not running against github.com. Disabling all toggleable features.",
88+
) === undefined,
89+
);
90+
});
91+
});
92+
6393
test("API response missing and features use default value", async (t) => {
6494
await withTmpDir(async (tmpDir) => {
6595
const loggedMessages: LoggedMessage[] = [];

src/feature-flags.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,10 @@ class GitHubFeatureFlags {
485485

486486
private async loadApiResponse(): Promise<GitHubFeatureFlagsApiResponse> {
487487
// Do nothing when not running against github.com
488-
if (this.gitHubVersion.type !== util.GitHubVariant.DOTCOM) {
488+
if (
489+
this.gitHubVersion.type !== util.GitHubVariant.DOTCOM &&
490+
this.gitHubVersion.type !== util.GitHubVariant.GHE_DOTCOM
491+
) {
489492
this.logger.debug(
490493
"Not running against github.com. Disabling all toggleable features.",
491494
);

0 commit comments

Comments
 (0)