Open
Description
내용
깃허브에는 아이디, 이름이 있는데 이름과 아이디가 일치하지 않거나 드물게 아이디와 이름이 일치하는 경우 다른 사람의 프로필 사진과 링크가 생성됩니다.
상세 내용
A유저
아이디: AAAA
닉네임: BBBB
B유저
아이디: BBBB
닉네임: AAAA
일 경우, B유저의 커밋은 A유저의 프로필 사진과 깃허브 프로필로 링크되게 됩니다.
//packages/view/src/utils/author.ts
import md5 from "md5";
import type { AuthorInfo } from "types";
import { GITHUB_URL, GRAVATA_URL } from "../constants/constants";
export function getAuthorProfileImgSrc(authorName: string): Promise<AuthorInfo> {
return new Promise((resolve) => {
const img = new Image();
img.onload = () => {
const { src } = img;
const srcInfo: AuthorInfo = {
name: authorName,
src,
};
resolve(srcInfo);
};
img.onerror = () => {
img.src = `${GRAVATA_URL}/${md5(authorName)}}?d=identicon&f=y`;
};
img.src = `${GITHUB_URL}/${authorName}.png?size=30`;
});
}
깃허브의 프로필 주소는 {깃허브링크}/{아이디}
지만 현재 위 과정에서 취득하고 있는 것은 {깃허브링크}/{이름}
이어서 발생하는 문제로 보입니다.
추가
얼핏 봤을 때, 깃허브 API상으로는 커밋한 사람의 ID까지는 취득할 수 없는 것으로 보입니다. 이메일과 닉네임을 조합하여 ID를 찾을 수 있는 방법이 있는지 확인해보면 좋을 것 같습니다.
깊게 보지는 않아서 틀린 내용이 있을 수 있습니다...! 작업하시게 되는 분이 한번 더 확인해주시면 감사하겠습니다!