Small fixes from review
Signed-off-by: Scott Guymer <scott.guymer@philips.com>
This commit is contained in:
@@ -138,6 +138,8 @@ export class GithubMultiOrgReaderProcessor implements CatalogProcessor {
|
||||
logger: Logger;
|
||||
orgs: GithubMultiOrgConfig;
|
||||
githubCredentialsProvider?: GithubCredentialsProvider;
|
||||
userTransformer?: UserTransformer;
|
||||
teamTransformer?: TeamTransformer;
|
||||
});
|
||||
// (undocumented)
|
||||
static fromConfig(
|
||||
@@ -145,6 +147,8 @@ export class GithubMultiOrgReaderProcessor implements CatalogProcessor {
|
||||
options: {
|
||||
logger: Logger;
|
||||
githubCredentialsProvider?: GithubCredentialsProvider;
|
||||
userTransformer?: UserTransformer;
|
||||
teamTransformer?: TeamTransformer;
|
||||
},
|
||||
): GithubMultiOrgReaderProcessor;
|
||||
// (undocumented)
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
|
||||
import {
|
||||
DEFAULT_NAMESPACE,
|
||||
GroupEntity,
|
||||
UserEntity,
|
||||
} from '@backstage/catalog-model';
|
||||
|
||||
export function buildOrgHierarchy(groups: GroupEntity[]) {
|
||||
const groupsByName = new Map(groups.map(g => [g.metadata.name, g]));
|
||||
@@ -56,9 +60,11 @@ export function assignGroupsToUsers(
|
||||
) {
|
||||
const groupMemberUsers = new Map(
|
||||
groups.map(group => {
|
||||
const groupKey = group.metadata.namespace
|
||||
? `${group.metadata.namespace}/${group.metadata.name}`
|
||||
: group.metadata.name;
|
||||
const groupKey =
|
||||
group.metadata.namespace &&
|
||||
group.metadata.namespace !== DEFAULT_NAMESPACE
|
||||
? `${group.metadata.namespace}/${group.metadata.name}`
|
||||
: group.metadata.name;
|
||||
return [groupKey, group.spec.members || []];
|
||||
}),
|
||||
);
|
||||
|
||||
+18
-7
@@ -40,6 +40,8 @@ import {
|
||||
getOrganizationUsers,
|
||||
GithubMultiOrgConfig,
|
||||
readGithubMultiOrgConfig,
|
||||
TeamTransformer,
|
||||
UserTransformer,
|
||||
} from '../lib';
|
||||
|
||||
/**
|
||||
@@ -60,6 +62,8 @@ export class GithubMultiOrgReaderProcessor implements CatalogProcessor {
|
||||
options: {
|
||||
logger: Logger;
|
||||
githubCredentialsProvider?: GithubCredentialsProvider;
|
||||
userTransformer?: UserTransformer;
|
||||
teamTransformer?: TeamTransformer;
|
||||
},
|
||||
) {
|
||||
const c = config.getOptionalConfig('catalog.processors.githubMultiOrg');
|
||||
@@ -72,12 +76,16 @@ export class GithubMultiOrgReaderProcessor implements CatalogProcessor {
|
||||
});
|
||||
}
|
||||
|
||||
constructor(options: {
|
||||
integrations: ScmIntegrationRegistry;
|
||||
logger: Logger;
|
||||
orgs: GithubMultiOrgConfig;
|
||||
githubCredentialsProvider?: GithubCredentialsProvider;
|
||||
}) {
|
||||
constructor(
|
||||
private options: {
|
||||
integrations: ScmIntegrationRegistry;
|
||||
logger: Logger;
|
||||
orgs: GithubMultiOrgConfig;
|
||||
githubCredentialsProvider?: GithubCredentialsProvider;
|
||||
userTransformer?: UserTransformer;
|
||||
teamTransformer?: TeamTransformer;
|
||||
},
|
||||
) {
|
||||
this.integrations = options.integrations;
|
||||
this.logger = options.logger;
|
||||
this.orgs = options.orgs;
|
||||
@@ -133,12 +141,15 @@ export class GithubMultiOrgReaderProcessor implements CatalogProcessor {
|
||||
client,
|
||||
orgConfig.name,
|
||||
tokenType,
|
||||
this.options.userTransformer,
|
||||
);
|
||||
const { groups } = await getOrganizationTeams(
|
||||
client,
|
||||
orgConfig.name,
|
||||
async (team, ctx): Promise<GroupEntity | undefined> => {
|
||||
const result = await defaultOrganizationTeamTransformer(team, ctx);
|
||||
const result = this.options.teamTransformer
|
||||
? await this.options.teamTransformer(team, ctx)
|
||||
: await defaultOrganizationTeamTransformer(team, ctx);
|
||||
|
||||
if (result) {
|
||||
result.metadata.namespace = orgConfig.groupNamespace;
|
||||
|
||||
Reference in New Issue
Block a user