@@ -76,7 +76,7 @@ export async function sendTelemetry({
7676 exit_code,
7777 execution_time,
7878 metadata : process . env . REDOCLY_CLI_TELEMETRY_METADATA ,
79- environment_ci : process . env . CI ,
79+ environment_ci : isCIEnvironment ( ) ? 'true' : 'false' ,
8080 has_config : typeof config ?. document ?. parsed === 'undefined' ? 'no' : 'yes' ,
8181 spec_version,
8282 spec_keyword,
@@ -303,3 +303,60 @@ export const getCachedAnonymousId = (): string | undefined => {
303303 return ;
304304 }
305305} ;
306+
307+ function isCIEnvironment ( ) : boolean {
308+ if (
309+ process . env . CI ||
310+ process . stdout . isTTY === false ||
311+ process . env . CONTINUOUS_INTEGRATION ||
312+ // GitHub Actions
313+ process . env . GITHUB_ACTIONS ||
314+ // GitLab CI
315+ process . env . GITLAB_CI ||
316+ // Jenkins
317+ process . env . JENKINS_HOME ||
318+ process . env . JENKINS_URL ||
319+ // Generic CI indicators
320+ process . env . BUILD_NUMBER ||
321+ process . env . BUILD_ID ||
322+ // Bitbucket
323+ process . env . BITBUCKET_BUILD_NUMBER ||
324+ process . env . BITBUCKET_COMMIT ||
325+ // CircleCI
326+ process . env . CIRCLECI ||
327+ // Travis CI
328+ process . env . TRAVIS ||
329+ // Azure Pipelines
330+ process . env . TF_BUILD ||
331+ // TeamCity
332+ process . env . TEAMCITY_VERSION ||
333+ // Bamboo
334+ process . env . bamboo_buildNumber ||
335+ // AWS CodeBuild
336+ process . env . CODEBUILD_BUILD_ID ||
337+ // Buildkite
338+ process . env . BUILDKITE ||
339+ // Drone
340+ process . env . DRONE ||
341+ // Semaphore
342+ process . env . SEMAPHORE ||
343+ // AppVeyor
344+ process . env . APPVEYOR ||
345+ // Netlify
346+ process . env . NETLIFY ||
347+ // Vercel
348+ process . env . VERCEL ||
349+ // Render
350+ process . env . RENDER ||
351+ // Heroku
352+ process . env . HEROKU_TEST_RUN_ID ||
353+ // Buddy
354+ process . env . BUDDY_WORKSPACE_ID ||
355+ // CodeShip
356+ process . env . CI_NAME === 'codeship'
357+ ) {
358+ return true ;
359+ }
360+
361+ return false ;
362+ }
0 commit comments