@@ -94,7 +94,7 @@ export class Features implements FeatureEnablement {
94
94
gitHubVersion : util . GitHubVersion ,
95
95
repositoryNwo : RepositoryNwo ,
96
96
tempDir : string ,
97
- logger : Logger
97
+ private readonly logger : Logger
98
98
) {
99
99
this . gitHubFeatureFlags = new GitHubFeatureFlags (
100
100
gitHubVersion ,
@@ -135,26 +135,55 @@ export class Features implements FeatureEnablement {
135
135
136
136
// Do not use this feature if user explicitly disables it via an environment variable.
137
137
if ( envVar === "false" ) {
138
+ this . logger . debug (
139
+ `Feature ${ feature } is disabled via the environment variable ${ featureConfig [ feature ] . envVar } .`
140
+ ) ;
138
141
return false ;
139
142
}
140
143
141
144
// Never use this feature if the CLI version explicitly can't support it.
142
145
const minimumVersion = featureConfig [ feature ] . minimumVersion ;
143
146
if ( codeql && minimumVersion ) {
144
147
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
+ ) ;
145
152
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
+ ) ;
146
158
}
147
159
}
148
160
149
161
// Use this feature if user explicitly enables it via an environment variable.
150
162
if ( envVar === "true" ) {
163
+ this . logger . debug (
164
+ `Feature ${ feature } is enabled via the environment variable ${ featureConfig [ feature ] . envVar } .`
165
+ ) ;
151
166
return true ;
152
167
}
168
+
153
169
// 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.`
157
185
) ;
186
+ return defaultValue ;
158
187
}
159
188
}
160
189
0 commit comments