Skip to content

Commit d9ceda3

Browse files
committed
Add debug logging for feature flag enablement
1 parent ec29823 commit d9ceda3

File tree

3 files changed

+51
-7
lines changed

3 files changed

+51
-7
lines changed

lib/feature-flags.js

Lines changed: 17 additions & 2 deletions
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.

src/feature-flags.ts

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export class Features implements FeatureEnablement {
9494
gitHubVersion: util.GitHubVersion,
9595
repositoryNwo: RepositoryNwo,
9696
tempDir: string,
97-
logger: Logger
97+
private readonly logger: Logger
9898
) {
9999
this.gitHubFeatureFlags = new GitHubFeatureFlags(
100100
gitHubVersion,
@@ -135,26 +135,55 @@ export class Features implements FeatureEnablement {
135135

136136
// Do not use this feature if user explicitly disables it via an environment variable.
137137
if (envVar === "false") {
138+
this.logger.debug(
139+
`Feature ${feature} is disabled via the environment variable ${featureConfig[feature].envVar}.`
140+
);
138141
return false;
139142
}
140143

141144
// Never use this feature if the CLI version explicitly can't support it.
142145
const minimumVersion = featureConfig[feature].minimumVersion;
143146
if (codeql && minimumVersion) {
144147
if (!(await util.codeQlVersionAbove(codeql, minimumVersion))) {
148+
this.logger.debug(
149+
`Feature ${feature} is disabled because the CodeQL CLI version is older than the minimum ` +
150+
`version ${minimumVersion}.`
151+
);
145152
return false;
153+
} else {
154+
this.logger.debug(
155+
`CodeQL CLI version ${await codeql.getVersion()} is newer than the minimum ` +
156+
`version ${minimumVersion} for feature ${feature}.`
157+
);
146158
}
147159
}
148160

149161
// Use this feature if user explicitly enables it via an environment variable.
150162
if (envVar === "true") {
163+
this.logger.debug(
164+
`Feature ${feature} is enabled via the environment variable ${featureConfig[feature].envVar}.`
165+
);
151166
return true;
152167
}
168+
153169
// Ask the GitHub API if the feature is enabled.
154-
return (
155-
(await this.gitHubFeatureFlags.getValue(feature)) ??
156-
featureConfig[feature].defaultValue
170+
const apiValue = await this.gitHubFeatureFlags.getValue(feature);
171+
if (apiValue !== undefined) {
172+
this.logger.debug(
173+
`Feature ${feature} is ${
174+
apiValue ? "enabled" : "disabled"
175+
} via the GitHub API.`
176+
);
177+
return apiValue;
178+
}
179+
180+
const defaultValue = featureConfig[feature].defaultValue;
181+
this.logger.debug(
182+
`Feature ${feature} is ${
183+
defaultValue ? "enabled" : "disabled"
184+
} due to its default value.`
157185
);
186+
return defaultValue;
158187
}
159188
}
160189

0 commit comments

Comments
 (0)