Skip to content

[view] 커밋한 유저의 깃허브 프로필 사진이 다른 사람의 사진으로 표시됨 #748

Open
@mdgarden

Description

@mdgarden

내용

깃허브에는 아이디, 이름이 있는데 이름과 아이디가 일치하지 않거나 드물게 아이디와 이름이 일치하는 경우 다른 사람의 프로필 사진과 링크가 생성됩니다.

상세 내용

예시
image

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를 찾을 수 있는 방법이 있는지 확인해보면 좋을 것 같습니다.

깊게 보지는 않아서 틀린 내용이 있을 수 있습니다...! 작업하시게 되는 분이 한번 더 확인해주시면 감사하겠습니다!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working✨ view

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions