mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 17:19:48 +01:00
Merge pull request #186450 from sandeep-sen/main
Enabling tag telemetry for Go
This commit is contained in:
@@ -244,6 +244,28 @@ const PyModulesToLookFor = [
|
||||
'playwright'
|
||||
];
|
||||
|
||||
const GoModulesToLookFor = [
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/storage/azblob',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/storage/azfile',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/storage/azqueue',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/tracing/azotel',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azadmin',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/monitor/azquery',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/data/aztables',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/cognitiveservices/azopenai',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/azidentity',
|
||||
'github.com/Azure/azure-sdk-for-go/sdk/azcore'
|
||||
];
|
||||
|
||||
|
||||
export class WorkspaceTagsService implements IWorkspaceTagsService {
|
||||
declare readonly _serviceBrand: undefined;
|
||||
private _tags: Tags | undefined;
|
||||
@@ -565,7 +587,25 @@ export class WorkspaceTagsService implements IWorkspaceTagsService {
|
||||
"workspace.py.azure-communication-administration" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.py.azure-security-attestation" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.py.azure-data-nspkg" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.py.azure-data-tables" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
|
||||
"workspace.py.azure-data-tables" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/storage/azblob" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/storage/azfile" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/storage/azqueue" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/tracing/azotel" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azadmin" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/monitor/azquery" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/data/aztables" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/cognitiveservices/azopenai" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/azidentity" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
|
||||
"workspace.go.mod.github.com/Azure/azure-sdk-for-go/sdk/azcore" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }
|
||||
}
|
||||
*/
|
||||
private async resolveWorkspaceTags(): Promise<Tags> {
|
||||
@@ -624,6 +664,8 @@ export class WorkspaceTagsService implements IWorkspaceTagsService {
|
||||
tags['workspace.py.app'] = nameSet.has('app.py');
|
||||
tags['workspace.py.pyproject'] = nameSet.has('pyproject.toml');
|
||||
|
||||
tags['workspace.go.mod'] = nameSet.has('go.mod');
|
||||
|
||||
const mainActivity = nameSet.has('mainactivity.cs') || nameSet.has('mainactivity.fs');
|
||||
const appDelegate = nameSet.has('appdelegate.cs') || nameSet.has('appdelegate.fs');
|
||||
const androidManifest = nameSet.has('androidmanifest.xml');
|
||||
@@ -752,6 +794,36 @@ export class WorkspaceTagsService implements IWorkspaceTagsService {
|
||||
}
|
||||
});
|
||||
|
||||
const goModPromises = getFilePromises('go.mod', this.fileService, this.textFileService, content => {
|
||||
try {
|
||||
const lines: string[] = splitLines(content.value);
|
||||
let firstRequireBlockFound: boolean = false;
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line: string = lines[i].trim();
|
||||
if (line.startsWith('require (')) {
|
||||
if (!firstRequireBlockFound) {
|
||||
firstRequireBlockFound = true;
|
||||
continue;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (line.startsWith(')')) {
|
||||
break;
|
||||
}
|
||||
if (firstRequireBlockFound && line !== '') {
|
||||
const packageName: string = line.split(' ')[0].trim();
|
||||
if (GoModulesToLookFor.indexOf(packageName) > -1) {
|
||||
tags['workspace.go.mod.' + packageName] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
// Ignore errors when resolving file or parsing file contents
|
||||
}
|
||||
});
|
||||
|
||||
const pomPromises = getFilePromises('pom.xml', this.fileService, this.textFileService, content => {
|
||||
try {
|
||||
let dependenciesContent;
|
||||
@@ -792,7 +864,7 @@ export class WorkspaceTagsService implements IWorkspaceTagsService {
|
||||
});
|
||||
});
|
||||
|
||||
return Promise.all([...packageJsonPromises, ...requirementsTxtPromises, ...pipfilePromises, ...pomPromises, ...gradlePromises, ...androidPromises]).then(() => tags);
|
||||
return Promise.all([...packageJsonPromises, ...requirementsTxtPromises, ...pipfilePromises, ...pomPromises, ...gradlePromises, ...androidPromises, ...goModPromises]).then(() => tags);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user