diff --git a/console/src/app/modules/idp-table/idp-table.component.html b/console/src/app/modules/idp-table/idp-table.component.html
index a3e620f4d2..4d22549875 100644
--- a/console/src/app/modules/idp-table/idp-table.component.html
+++ b/console/src/app/modules/idp-table/idp-table.component.html
@@ -59,6 +59,11 @@
Generic JWT
+
{{ 'ACTIONS.COMINGSOON' | translate }}
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es-routing.module.ts b/console/src/app/modules/providers/provider-github-es/provider-github-es-routing.module.ts
new file mode 100644
index 0000000000..66e95eb17c
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es-routing.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { ProviderGithubESComponent } from './provider-github-es.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: ProviderGithubESComponent,
+ data: { animation: 'DetailPage' },
+ },
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class ProviderGithubESRoutingModule {}
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html
new file mode 100644
index 0000000000..03c2edc23b
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
{{ 'IDP.CREATE.GITHUBES.TITLE' | translate }}
+
+
+
+
{{ 'IDP.CREATE.GITHUBES.DESCRIPTION' | translate }}
+
+
+
+
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.scss b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.scss
new file mode 100644
index 0000000000..167ce8e736
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.scss
@@ -0,0 +1,96 @@
+.desc {
+ font-size: 14px;
+}
+
+@mixin provider-github-es-theme($theme) {
+ $is-dark-theme: map-get($theme, is-dark);
+
+ .github-es-create-content {
+ .title-row {
+ display: flex;
+ align-items: center;
+
+ .idp-logo {
+ height: 36px;
+ width: 36px;
+ margin-right: 1rem;
+ flex-shrink: 0;
+
+ &.dark {
+ display: if($is-dark-theme, block, none);
+ }
+
+ &.light {
+ display: if($is-dark-theme, none, block);
+ }
+ }
+
+ h1 {
+ margin: 0 1rem 0 0;
+ }
+ }
+ }
+
+ .formfield {
+ display: block;
+ max-width: 400px;
+
+ .mat-chip-input {
+ width: 100%;
+ margin: 0;
+ }
+
+ .chip {
+ border-radius: 0.5rem;
+ height: 40px;
+ }
+
+ @media only screen and (max-width: 450px) {
+ max-width: none;
+ }
+ }
+
+ .github-es-content {
+ .desc {
+ margin-bottom: 1rem;
+ }
+
+ .idp-scopes {
+ padding-bottom: 0.5rem;
+
+ .flex-line {
+ display: flex;
+ align-items: flex-start;
+ max-width: 400px;
+
+ .formfield {
+ flex: 1;
+ }
+
+ .scope-add-button {
+ margin-top: 1.75rem;
+ }
+ }
+ }
+ }
+}
+
+.github-es-create-actions {
+ display: flex;
+ margin-top: 1rem;
+
+ button[mat-raised-button] {
+ border-radius: 0.5rem;
+ margin-right: 1rem;
+ padding: 0.5rem 4rem;
+ }
+}
+
+.optional-h-wrapper {
+ display: flex;
+ align-items: center;
+
+ h2 {
+ margin-right: 0.25rem;
+ }
+}
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.spec.ts b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.spec.ts
new file mode 100644
index 0000000000..0086bf0ce3
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+
+import { ProviderOAuthComponent } from './provider-oauth.component';
+
+describe('ProviderOAuthComponent', () => {
+ let component: ProviderOAuthComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ProviderOAuthComponent],
+ }).compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ProviderOAuthComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts
new file mode 100644
index 0000000000..740b4b99ec
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.component.ts
@@ -0,0 +1,288 @@
+import { COMMA, ENTER, SPACE } from '@angular/cdk/keycodes';
+import { Location } from '@angular/common';
+import { Component, Injector, Type } from '@angular/core';
+import { AbstractControl, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
+import { MatLegacyChipInputEvent as MatChipInputEvent } from '@angular/material/legacy-chips';
+import { ActivatedRoute } from '@angular/router';
+import { take } from 'rxjs';
+import {
+ AddGitHubEnterpriseServerProviderRequest as AdminAddGitHubEnterpriseServerProviderRequest,
+ GetProviderByIDRequest as AdminGetProviderByIDRequest,
+ UpdateGitHubEnterpriseServerProviderRequest as AdminUpdateGitHubEnterpriseServerProviderRequest,
+} from 'src/app/proto/generated/zitadel/admin_pb';
+import { Options, Provider } from 'src/app/proto/generated/zitadel/idp_pb';
+import {
+ AddGitHubEnterpriseServerProviderRequest as MgmtAddGitHubEnterpriseServerProviderRequest,
+ GetProviderByIDRequest as MgmtGetProviderByIDRequest,
+ UpdateGitHubEnterpriseServerProviderRequest as MgmtUpdateGitHubEnterpriseServerProviderRequest,
+} from 'src/app/proto/generated/zitadel/management_pb';
+import { AdminService } from 'src/app/services/admin.service';
+import { Breadcrumb, BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
+import { ManagementService } from 'src/app/services/mgmt.service';
+import { ToastService } from 'src/app/services/toast.service';
+
+import { PolicyComponentServiceType } from '../../policies/policy-component-types.enum';
+
+@Component({
+ selector: 'cnsl-provider-github-es',
+ templateUrl: './provider-github-es.component.html',
+ styleUrls: ['./provider-github-es.component.scss'],
+})
+export class ProviderGithubESComponent {
+ public showOptional: boolean = false;
+ public options: Options = new Options();
+
+ public id: string | null = '';
+ public updateClientSecret: boolean = false;
+ public serviceType: PolicyComponentServiceType = PolicyComponentServiceType.MGMT;
+ private service!: ManagementService | AdminService;
+ public readonly separatorKeysCodes: number[] = [ENTER, COMMA, SPACE];
+ public form!: UntypedFormGroup;
+
+ public loading: boolean = false;
+
+ public provider?: Provider.AsObject;
+
+ constructor(
+ private route: ActivatedRoute,
+ private toast: ToastService,
+ private injector: Injector,
+ private _location: Location,
+ breadcrumbService: BreadcrumbService,
+ ) {
+ this.form = new UntypedFormGroup({
+ name: new UntypedFormControl('', [Validators.required]),
+ clientId: new UntypedFormControl('', [Validators.required]),
+ clientSecret: new UntypedFormControl('', [Validators.required]),
+ authorizationEndpoint: new UntypedFormControl('', [Validators.required]),
+ tokenEndpoint: new UntypedFormControl('', [Validators.required]),
+ userEndpoint: new UntypedFormControl('', [Validators.required]),
+ scopesList: new UntypedFormControl(['openid', 'profile', 'email'], []),
+ });
+
+ this.route.data.pipe(take(1)).subscribe((data) => {
+ this.serviceType = data.serviceType;
+
+ switch (this.serviceType) {
+ case PolicyComponentServiceType.MGMT:
+ this.service = this.injector.get(ManagementService as Type);
+
+ const bread: Breadcrumb = {
+ type: BreadcrumbType.ORG,
+ routerLink: ['/org'],
+ };
+
+ breadcrumbService.setBreadcrumb([bread]);
+ break;
+ case PolicyComponentServiceType.ADMIN:
+ this.service = this.injector.get(AdminService as Type);
+
+ const iamBread = new Breadcrumb({
+ type: BreadcrumbType.ORG,
+ name: 'Instance',
+ routerLink: ['/instance'],
+ });
+ breadcrumbService.setBreadcrumb([iamBread]);
+ break;
+ }
+
+ this.id = this.route.snapshot.paramMap.get('id');
+ if (this.id) {
+ this.clientSecret?.setValidators([]);
+ this.getData(this.id);
+ }
+ });
+ }
+
+ private getData(id: string): void {
+ this.loading = true;
+ const req =
+ this.serviceType === PolicyComponentServiceType.ADMIN
+ ? new AdminGetProviderByIDRequest()
+ : new MgmtGetProviderByIDRequest();
+ req.setId(id);
+ this.service
+ .getProviderByID(req)
+ .then((resp) => {
+ this.provider = resp.idp;
+ this.loading = false;
+ if (this.provider?.config?.githubEs) {
+ this.form.patchValue(this.provider.config.githubEs);
+ this.name?.setValue(this.provider.name);
+ }
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ this.loading = false;
+ });
+ }
+
+ public submitForm(): void {
+ this.provider ? this.updateGenericOAuthProvider() : this.addGenericOAuthProvider();
+ }
+
+ public addGenericOAuthProvider(): void {
+ if (this.serviceType === PolicyComponentServiceType.MGMT) {
+ const req = new MgmtAddGitHubEnterpriseServerProviderRequest();
+
+ req.setName(this.name?.value);
+ req.setAuthorizationEndpoint(this.authorizationEndpoint?.value);
+ req.setTokenEndpoint(this.tokenEndpoint?.value);
+ req.setUserEndpoint(this.userEndpoint?.value);
+ req.setClientId(this.clientId?.value);
+ req.setClientSecret(this.clientSecret?.value);
+ req.setScopesList(this.scopesList?.value);
+
+ this.loading = true;
+ (this.service as ManagementService)
+ .addGitHubEnterpriseServerProvider(req)
+ .then((idp) => {
+ setTimeout(() => {
+ this.loading = false;
+ this.close();
+ }, 2000);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ this.loading = false;
+ });
+ } else if (PolicyComponentServiceType.ADMIN) {
+ const req = new AdminAddGitHubEnterpriseServerProviderRequest();
+ req.setName(this.name?.value);
+ req.setAuthorizationEndpoint(this.authorizationEndpoint?.value);
+ req.setTokenEndpoint(this.tokenEndpoint?.value);
+ req.setUserEndpoint(this.userEndpoint?.value);
+ req.setClientId(this.clientId?.value);
+ req.setClientSecret(this.clientSecret?.value);
+ req.setScopesList(this.scopesList?.value);
+
+ this.loading = true;
+ (this.service as AdminService)
+ .addGitHubEnterpriseServerProvider(req)
+ .then((idp) => {
+ setTimeout(() => {
+ this.loading = false;
+ this.close();
+ }, 2000);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ this.loading = false;
+ });
+ }
+ }
+
+ public updateGenericOAuthProvider(): void {
+ if (this.provider) {
+ if (this.serviceType === PolicyComponentServiceType.MGMT) {
+ const req = new MgmtUpdateGitHubEnterpriseServerProviderRequest();
+ req.setId(this.provider.id);
+ req.setName(this.name?.value);
+ req.setAuthorizationEndpoint(this.authorizationEndpoint?.value);
+ req.setTokenEndpoint(this.tokenEndpoint?.value);
+ req.setUserEndpoint(this.userEndpoint?.value);
+ req.setClientId(this.clientId?.value);
+ req.setClientSecret(this.clientSecret?.value);
+ req.setScopesList(this.scopesList?.value);
+
+ this.loading = true;
+ (this.service as ManagementService)
+ .updateGitHubEnterpriseServerProvider(req)
+ .then((idp) => {
+ setTimeout(() => {
+ this.loading = false;
+ this.close();
+ }, 2000);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ this.loading = false;
+ });
+ } else if (PolicyComponentServiceType.ADMIN) {
+ const req = new AdminUpdateGitHubEnterpriseServerProviderRequest();
+ req.setId(this.provider.id);
+ req.setName(this.name?.value);
+ req.setAuthorizationEndpoint(this.authorizationEndpoint?.value);
+ req.setTokenEndpoint(this.tokenEndpoint?.value);
+ req.setUserEndpoint(this.userEndpoint?.value);
+ req.setClientId(this.clientId?.value);
+ req.setClientSecret(this.clientSecret?.value);
+ req.setScopesList(this.scopesList?.value);
+
+ this.loading = true;
+ (this.service as AdminService)
+ .updateGitHubEnterpriseServerProvider(req)
+ .then((idp) => {
+ setTimeout(() => {
+ this.loading = false;
+ this.close();
+ }, 2000);
+ })
+ .catch((error) => {
+ this.toast.showError(error);
+ this.loading = false;
+ });
+ }
+ }
+ }
+
+ public close(): void {
+ this._location.back();
+ }
+
+ public addScope(event: MatChipInputEvent): void {
+ const input = event.chipInput?.inputElement;
+ const value = event.value.trim();
+
+ if (value !== '') {
+ if (this.scopesList?.value) {
+ this.scopesList.value.push(value);
+ if (input) {
+ input.value = '';
+ }
+ }
+ }
+ }
+
+ public removeScope(uri: string): void {
+ if (this.scopesList?.value) {
+ const index = this.scopesList.value.indexOf(uri);
+
+ if (index !== undefined && index >= 0) {
+ this.scopesList.value.splice(index, 1);
+ }
+ }
+ }
+
+ public get name(): AbstractControl | null {
+ return this.form.get('name');
+ }
+
+ public get authorizationEndpoint(): AbstractControl | null {
+ return this.form.get('authorizationEndpoint');
+ }
+
+ public get tokenEndpoint(): AbstractControl | null {
+ return this.form.get('tokenEndpoint');
+ }
+
+ public get userEndpoint(): AbstractControl | null {
+ return this.form.get('userEndpoint');
+ }
+
+ public get clientId(): AbstractControl | null {
+ return this.form.get('clientId');
+ }
+
+ public get clientSecret(): AbstractControl | null {
+ return this.form.get('clientSecret');
+ }
+
+ public get issuer(): AbstractControl | null {
+ return this.form.get('issuer');
+ }
+
+ public get scopesList(): AbstractControl | null {
+ return this.form.get('scopesList');
+ }
+}
diff --git a/console/src/app/modules/providers/provider-github-es/provider-github-es.module.ts b/console/src/app/modules/providers/provider-github-es/provider-github-es.module.ts
new file mode 100644
index 0000000000..b334a531f4
--- /dev/null
+++ b/console/src/app/modules/providers/provider-github-es/provider-github-es.module.ts
@@ -0,0 +1,43 @@
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { MatIconModule } from '@angular/material/icon';
+import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';
+import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';
+import { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips';
+import { MatLegacyProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';
+import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';
+import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';
+import { TranslateModule } from '@ngx-translate/core';
+import { InputModule } from 'src/app/modules/input/input.module';
+
+import { CardModule } from '../../card/card.module';
+import { CreateLayoutModule } from '../../create-layout/create-layout.module';
+import { InfoSectionModule } from '../../info-section/info-section.module';
+import { ProviderOptionsModule } from '../../provider-options/provider-options.module';
+import { ProviderGithubESRoutingModule } from './provider-github-es-routing.module';
+import { ProviderGithubESComponent } from './provider-github-es.component';
+
+@NgModule({
+ declarations: [ProviderGithubESComponent],
+ imports: [
+ ProviderGithubESRoutingModule,
+ CommonModule,
+ FormsModule,
+ ReactiveFormsModule,
+ CreateLayoutModule,
+ InfoSectionModule,
+ InputModule,
+ MatButtonModule,
+ MatSelectModule,
+ MatIconModule,
+ MatChipsModule,
+ CardModule,
+ MatCheckboxModule,
+ MatTooltipModule,
+ TranslateModule,
+ ProviderOptionsModule,
+ MatLegacyProgressSpinnerModule,
+ ],
+})
+export default class ProviderGithubESModule {}
diff --git a/console/src/app/pages/instance/instance-routing.module.ts b/console/src/app/pages/instance/instance-routing.module.ts
index 1ba2a043be..4102c3bd14 100644
--- a/console/src/app/pages/instance/instance-routing.module.ts
+++ b/console/src/app/pages/instance/instance-routing.module.ts
@@ -57,6 +57,19 @@ const routes: Routes = [
},
],
},
+ {
+ path: 'github-es',
+ children: [
+ {
+ path: 'create',
+ loadChildren: () => import('src/app/modules/providers/provider-github-es/provider-github-es.module'),
+ },
+ {
+ path: ':id',
+ loadChildren: () => import('src/app/modules/providers/provider-github-es/provider-github-es.module'),
+ },
+ ],
+ },
{
path: 'jwt',
children: [
diff --git a/console/src/app/pages/orgs/org-routing.module.ts b/console/src/app/pages/orgs/org-routing.module.ts
index d4300276a6..810ed0eebb 100644
--- a/console/src/app/pages/orgs/org-routing.module.ts
+++ b/console/src/app/pages/orgs/org-routing.module.ts
@@ -45,6 +45,19 @@ const routes: Routes = [
},
],
},
+ {
+ path: 'github-es',
+ children: [
+ {
+ path: 'create',
+ loadChildren: () => import('src/app/modules/providers/provider-github-es/provider-github-es.module'),
+ },
+ {
+ path: ':id',
+ loadChildren: () => import('src/app/modules/providers/provider-github-es/provider-github-es.module'),
+ },
+ ],
+ },
{
path: 'jwt',
children: [
diff --git a/console/src/app/services/admin.service.ts b/console/src/app/services/admin.service.ts
index 59d4eb2474..7c03d46b3e 100644
--- a/console/src/app/services/admin.service.ts
+++ b/console/src/app/services/admin.service.ts
@@ -12,6 +12,8 @@ import {
AddGenericOAuthProviderResponse,
AddGenericOIDCProviderRequest,
AddGenericOIDCProviderResponse,
+ AddGitHubEnterpriseServerProviderRequest,
+ AddGitHubEnterpriseServerProviderResponse,
AddGitHubProviderRequest,
AddGitHubProviderResponse,
AddGoogleProviderRequest,
@@ -202,6 +204,8 @@ import {
UpdateGenericOAuthProviderResponse,
UpdateGenericOIDCProviderRequest,
UpdateGenericOIDCProviderResponse,
+ UpdateGitHubEnterpriseServerProviderRequest,
+ UpdateGitHubEnterpriseServerProviderResponse,
UpdateGitHubProviderRequest,
UpdateGitHubProviderResponse,
UpdateGoogleProviderRequest,
@@ -946,6 +950,18 @@ export class AdminService {
return this.grpcService.admin.updateJWTProvider(req, null).then((resp) => resp.toObject());
}
+ public addGitHubEnterpriseServerProvider(
+ req: AddGitHubEnterpriseServerProviderRequest,
+ ): Promise {
+ return this.grpcService.admin.addGitHubEnterpriseServerProvider(req, null).then((resp) => resp.toObject());
+ }
+
+ public updateGitHubEnterpriseServerProvider(
+ req: UpdateGitHubEnterpriseServerProviderRequest,
+ ): Promise {
+ return this.grpcService.admin.updateGitHubEnterpriseServerProvider(req, null).then((resp) => resp.toObject());
+ }
+
public deleteProvider(req: DeleteProviderRequest): Promise {
return this.grpcService.admin.deleteProvider(req, null).then((resp) => resp.toObject());
}
diff --git a/console/src/app/services/mgmt.service.ts b/console/src/app/services/mgmt.service.ts
index c06459a6f1..af2d200b61 100644
--- a/console/src/app/services/mgmt.service.ts
+++ b/console/src/app/services/mgmt.service.ts
@@ -33,6 +33,8 @@ import {
AddGenericOAuthProviderResponse,
AddGenericOIDCProviderRequest,
AddGenericOIDCProviderResponse,
+ AddGitHubEnterpriseServerProviderRequest,
+ AddGitHubEnterpriseServerProviderResponse,
AddGitHubProviderRequest,
AddGitHubProviderResponse,
AddGoogleProviderRequest,
@@ -435,6 +437,8 @@ import {
UpdateGenericOAuthProviderResponse,
UpdateGenericOIDCProviderRequest,
UpdateGenericOIDCProviderResponse,
+ UpdateGitHubEnterpriseServerProviderRequest,
+ UpdateGitHubEnterpriseServerProviderResponse,
UpdateGitHubProviderRequest,
UpdateGitHubProviderResponse,
UpdateGoogleProviderRequest,
@@ -905,6 +909,18 @@ export class ManagementService {
return this.grpcService.mgmt.updateJWTProvider(req, null).then((resp) => resp.toObject());
}
+ public addGitHubEnterpriseServerProvider(
+ req: AddGitHubEnterpriseServerProviderRequest,
+ ): Promise {
+ return this.grpcService.mgmt.addGitHubEnterpriseServerProvider(req, null).then((resp) => resp.toObject());
+ }
+
+ public updateGitHubEnterpriseServerProvider(
+ req: UpdateGitHubEnterpriseServerProviderRequest,
+ ): Promise {
+ return this.grpcService.mgmt.updateGitHubEnterpriseServerProvider(req, null).then((resp) => resp.toObject());
+ }
+
public deleteProvider(req: DeleteProviderRequest): Promise {
return this.grpcService.mgmt.deleteProvider(req, null).then((resp) => resp.toObject());
}
diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json
index 1e922debba..b0b9fd7250 100644
--- a/console/src/assets/i18n/de.json
+++ b/console/src/assets/i18n/de.json
@@ -1630,6 +1630,10 @@
"TITLE": "Google Provider",
"DESCRIPTION": "Geben Sie die erforderlichen Daten für Ihren Google-Identitätsprovider ein."
},
+ "GITHUBES": {
+ "TITLE": "GitHub Enterprise Server Provider",
+ "DESCRIPTION": "Geben Sie die erforderlichen Daten für Ihren GitHub Enterprise Server ein."
+ },
"GITHUB": {
"TITLE": "Github Provider",
"DESCRIPTION": "Geben Sie die erforderlichen Daten für Ihren Github-Identitätsprovider ein."
@@ -1678,9 +1682,9 @@
"SETAVAILABLE": "verfügbar setzen",
"SETUNAVAILABLE": "auf nicht verfügbar setzen",
"NAME": "Name",
- "AUTHORIZATIONENDPOINT": "Authorization Endpunkt",
- "TOKENENDPOINT": "Token Endpunkt",
- "USERENDPOINT": "User Endpunkt",
+ "AUTHORIZATIONENDPOINT": "Authorization Endpoint",
+ "TOKENENDPOINT": "Token Endpoint",
+ "USERENDPOINT": "User Endpoint",
"IDATTRIBUTE": "ID Attribut",
"CONFIG": "Konfiguration",
"STATE": "Status",
diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json
index 6ff14a28e8..a30577cb16 100644
--- a/console/src/assets/i18n/en.json
+++ b/console/src/assets/i18n/en.json
@@ -1635,6 +1635,10 @@
"TITLE": "Google Provider",
"DESCRIPTION": "Enter the credentials for your Google Identity Provider"
},
+ "GITHUBES": {
+ "TITLE": "GitHub Enterprise Server Provider",
+ "DESCRIPTION": "Enter the credentials for your GitHub Enterprise Server Identity Provider"
+ },
"GITHUB": {
"TITLE": "Github Provider",
"DESCRIPTION": "Enter the credentials for your Github Identity Provider"
diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json
index bc4a21ffe2..1be1c6b7a8 100644
--- a/console/src/assets/i18n/fr.json
+++ b/console/src/assets/i18n/fr.json
@@ -1634,6 +1634,10 @@
"TITLE": "Fournisseur Google",
"DESCRIPTION": "Saisissez les informations d'identification de votre fournisseur d'identité Google"
},
+ "GITHUBES": {
+ "TITLE": "Fournisseur GitHub Enterprise Server",
+ "DESCRIPTION": "Saisissez les informations d'identification de votre fournisseur d'identité GitHub Enterprise Server"
+ },
"GITHUB": {
"TITLE": "Fournisseur Github",
"DESCRIPTION": "Saisissez les informations d'identification de votre fournisseur d'identité Github"
diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json
index ae148e99fd..0ab2621b5c 100644
--- a/console/src/assets/i18n/it.json
+++ b/console/src/assets/i18n/it.json
@@ -1635,6 +1635,10 @@
"TITLE": "Google Provider",
"DESCRIPTION": "Inserisci i dati necessari per il tuo Google provider."
},
+ "GITHUBES": {
+ "TITLE": "GitHub Enterprise Server Provider",
+ "DESCRIPTION": "Inserisci i dati necessari per il tuo GitHub Enterprise Server provider."
+ },
"GITHUB": {
"TITLE": "Github Provider",
"DESCRIPTION": "Inserisci i dati necessari per il tuo Github provider."
diff --git a/console/src/assets/i18n/pl.json b/console/src/assets/i18n/pl.json
index 9ada33c7f2..dca5fefd41 100644
--- a/console/src/assets/i18n/pl.json
+++ b/console/src/assets/i18n/pl.json
@@ -1634,6 +1634,10 @@
"TITLE": "Google Provider",
"DESCRIPTION": "Wprowadź dane dla swojego dostawcy tożsamości Google"
},
+ "GITHUBES": {
+ "TITLE": "GitHub Enterprise Server Provider",
+ "DESCRIPTION": "Wprowadź dane dla swojego dostawcy tożsamości GitHub Enterprise Server"
+ },
"GITHUB": {
"TITLE": "Github Provider",
"DESCRIPTION": "Wprowadź dane dla swojego dostawcy tożsamości Github"
diff --git a/console/src/assets/i18n/zh.json b/console/src/assets/i18n/zh.json
index cbf27fd6c1..05e484cf88 100644
--- a/console/src/assets/i18n/zh.json
+++ b/console/src/assets/i18n/zh.json
@@ -1633,6 +1633,10 @@
"TITLE": "Google 身份提供者",
"DESCRIPTION": "输入您的 Google 身份提供商的凭据"
},
+ "GITHUBES": {
+ "TITLE": "Github Enterprise Server 身份提供者",
+ "DESCRIPTION": "输入您的GitHubEnterpriseServer身份提供者的凭据"
+ },
"GITHUB": {
"TITLE": "Github 身份提供者",
"DESCRIPTION": "输入您的 Github 身份提供商的凭据"
diff --git a/console/src/component-themes.scss b/console/src/component-themes.scss
index eab89c7343..c278dca29c 100644
--- a/console/src/component-themes.scss
+++ b/console/src/component-themes.scss
@@ -14,6 +14,7 @@
@import 'src/app/modules/nav/nav.component';
@import 'src/app/modules/nav-toggle/nav-toggle.component';
@import './styles/toast.scss';
+@import 'src/app/modules/providers/provider-github-es/provider-github-es.component';
@import 'src/app/modules/table-actions/table-actions.component';
@import 'src/app/modules/org-context/org-context.component.scss';
@import 'src/app/modules/action-keys/action-keys.component.scss';
@@ -89,6 +90,7 @@
@include footer-theme($theme);
@include table-theme($theme);
@include detail-layout-theme($theme);
+ @include provider-github-es-theme($theme);
@include app-card-theme($theme);
@include provider-github-theme($theme);
@include login-policy-mfas-theme($theme);