Skip to main content
이 노트북은 주어진 저장소의 GitHub에서 이슈 및 풀 리퀘스트(PR)를 로드하는 방법을 보여줍니다. 또한 주어진 저장소의 GitHub에서 github 파일을 로드하는 방법도 보여줍니다. 예제로 LangChain Python 저장소를 사용합니다.

액세스 토큰 설정

GitHub API에 액세스하려면 개인 액세스 토큰이 필요합니다 - 여기에서 설정할 수 있습니다: github.com/settings/tokens?type=beta. 이 토큰을 환경 변수 GITHUB_PERSONAL_ACCESS_TOKEN으로 설정하면 자동으로 가져옵니다. 또는 초기화 시 access_token 명명된 파라미터로 직접 전달할 수 있습니다.
# 액세스 토큰을 환경 변수로 설정하지 않은 경우 여기에 전달하세요.
from getpass import getpass

ACCESS_TOKEN = getpass()

이슈 및 PR 로드

from langchain_community.document_loaders import GitHubIssuesLoader
loader = GitHubIssuesLoader(
    repo="langchain-ai/langchain",
    access_token=ACCESS_TOKEN,  # 액세스 토큰을 환경 변수로 설정한 경우 이 인수를 삭제/주석 처리하세요.
    creator="UmerHA",
)
“UmerHA”가 생성한 모든 이슈 및 PR을 로드해 보겠습니다. 사용할 수 있는 모든 필터 목록은 다음과 같습니다:
  • include_prs
  • milestone
  • state
  • assignee
  • creator
  • mentioned
  • labels
  • sort
  • direction
  • since
자세한 내용은 docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues를 참조하세요.
docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

이슈만 로드

기본적으로 GitHub API는 풀 리퀘스트도 이슈로 간주합니다. ‘순수한’ 이슈(즉, 풀 리퀘스트 제외)만 가져오려면 include_prs=False를 사용하세요
loader = GitHubIssuesLoader(
    repo="langchain-ai/langchain",
    access_token=ACCESS_TOKEN,  # 액세스 토큰을 환경 변수로 설정한 경우 이 인수를 삭제/주석 처리하세요.
    creator="UmerHA",
    include_prs=False,
)
docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

Github 파일 콘텐츠 로드

아래 코드는 저장소 langchain-ai/langchain의 모든 markdown 파일을 로드합니다
from langchain_community.document_loaders import GithubFileLoader
loader = GithubFileLoader(
    repo="langchain-ai/langchain",  # 저장소 이름
    branch="master",  # 브랜치 이름
    access_token=ACCESS_TOKEN,
    github_api_url="https://api.github.com",
    file_filter=lambda file_path: file_path.endswith(
        ".md"
    ),  # 모든 markdown 파일을 로드합니다.
)
documents = loader.load()
문서 중 하나의 예제 출력:
document.metadata:
    {
      "path": "README.md",
      "sha": "82f1c4ea88ecf8d2dfsfx06a700e84be4",
      "source": "https://github.com/langchain-ai/langchain/blob/master/README.md"
    }
document.content:
    mock content

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I