Skip to content

Commit 4dd9f9c

Browse files
committed
Ignores malformed Org AI settings
(#4300, #4338)
1 parent 278de01 commit 4dd9f9c

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/plus/gk/models/organization.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,14 @@ export function fromGKDevAIProviders(providers?: GkDevAIProviders): OrgAIProvide
104104
if (providers == null) return result;
105105

106106
Object.entries(providers).forEach(([type, provider]) => {
107-
result[fromGkDevAIProviderType(type as GkDevAIProviderType)] = fromGkDevAIProvider(
108-
type as GkDevAIProviderType,
109-
provider,
110-
);
107+
try {
108+
result[fromGkDevAIProviderType(type as GkDevAIProviderType)] = fromGkDevAIProvider(
109+
type as GkDevAIProviderType,
110+
provider,
111+
);
112+
} catch {
113+
// ignore invalid provider, continue with others
114+
}
111115
});
112116
return result;
113117
}

src/plus/gk/organizationService.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,22 @@ export class OrganizationService implements Disposable {
140140

141141
private async updateOrganizationPermissions(orgId: string | undefined): Promise<void> {
142142
const settings = orgId != null ? await this.getOrganizationSettings(orgId) : undefined;
143+
let aiProviders;
144+
try {
145+
aiProviders = fromGKDevAIProviders(settings?.aiProviders);
146+
} catch {
147+
aiProviders = {};
148+
if (settings) {
149+
settings.enforceAiProviders = false;
150+
}
151+
}
143152

144153
void setContext(
145154
'gitlens:gk:organization:ai:enabled',
146155
settings?.aiSettings.enabled ?? settings?.aiEnabled ?? true,
147156
);
148157
void setContext('gitlens:gk:organization:ai:enforceProviders', settings?.enforceAiProviders ?? false);
149-
void setContext('gitlens:gk:organization:ai:providers', fromGKDevAIProviders(settings?.aiProviders) ?? {});
158+
void setContext('gitlens:gk:organization:ai:providers', aiProviders);
150159
void setContext('gitlens:gk:organization:drafts:byob', settings?.draftsSettings.bucket != null);
151160
void setContext('gitlens:gk:organization:drafts:enabled', settings?.draftsSettings.enabled ?? true);
152161
}

0 commit comments

Comments
 (0)