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

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

Open
mdgarden opened this issue Oct 3, 2024 · 0 comments
Labels
bug Something isn't working ✨ view

Comments

@mdgarden
Copy link
Contributor

mdgarden commented Oct 3, 2024

내용

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

상세 내용

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

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

@mdgarden mdgarden added bug Something isn't working ✨ view labels Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ✨ view
Projects
None yet
Development

No branches or pull requests

1 participant