Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrated fellows to use People chain and PAPI #131

Merged
merged 9 commits into from
Jul 29, 2024
Merged

Conversation

Bullrich
Copy link
Contributor

@Bullrich Bullrich self-assigned this Jul 26, 2024
@Bullrich Bullrich requested a review from a team as a code owner July 26, 2024 11:19
@paritytech-review-bot paritytech-review-bot bot requested a review from a team July 29, 2024 08:20
Comment on lines 42 to 77
const getGhHandle = async (address: SS58String): Promise<string | undefined> => {
logger.debug(`Fetching identity of '${address}'`);
const identityOf = await peopleApi.query.Identity.IdentityOf.getValue(address);

if (identityOf) {
const [identity] = identityOf;
const github = identity.info.github.value;

if (!github) {
logger.debug(`'${address}' does not have an additional field named 'github'`);
return;
}

const handle = github.asText().replace("@", "") as string;

if (handle) {
logger.info(`Found github handle for '${address}': '${handle}'`);
} else {
this.logger.debug("No super identity found. Skipping");
logger.debug(`'${address}' does not have a GitHub handle`);
return;
}
continue;
return handle;
}

const [fellowData] = identityQuery.toHuman() as [Record<string, unknown>, unknown];
logger.debug(`Identity of '${address}' is null. Checking for super identity`);

// @ts-ignore
const additional = fellowData.info?.additional as [{ Raw: string }, { Raw: string }][] | undefined;
const superIdentityAddress = (await peopleApi.query.Identity.SuperOf.getValue(address))?.[0];

// If it does not have additional data (GitHub handle goes here) we ignore it
if (!additional || additional.length < 1) {
this.logger.debug("Additional data is null. Skipping");
continue;
if (superIdentityAddress) {
logger.debug(`'${address}' has a super identity: '${superIdentityAddress}'. Fetching that identity`);
return await getGhHandle(superIdentityAddress);
} else {
logger.debug(`No superidentity for ${address} found.`);
return undefined;
}

for (const additionalData of additional) {
const [key, value] = additionalData;
// We verify that they have an additional data of the key "github"
// If it has a handle defined, we push it into the array
if (key?.Raw && key?.Raw === "github" && value?.Raw && value?.Raw.length > 0) {
this.logger.debug(`Found handles: '${value.Raw}'`);
// We add it to the array and remove the @ if they add it to the handle
users.set(value.Raw.replace("@", ""), fellow.rank);
}
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move this function outside please? It got too nested so I didn't get where the function ends at first 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update CI for Polkadot People Chain Update to use People Chain
2 participants