code: import os
  
  from llama_index import download_loader
  from llama_index.node_parser import SimpleNodeParser
  from llama_index import GPTVectorStoreIndex
  
  download_loader("GithubRepositoryReader")
  
  from llama_index.readers.llamahub_modules.github_repo import (
      GithubRepositoryReader,
      GithubClient,
  )
  
  # Initialize the GithubRepositoryReader
  github_client = GithubClient(os.getenv("GITHUB_TOKEN"))
  loader = GithubRepositoryReader(
      github_client,
      owner="jerryjliu",
      repo="llama_index",
      filter_directories=(
          ["llama_index", "docs"],
          GithubRepositoryReader.FilterType.INCLUDE,
      ),
      filter_file_extensions=([".py"], GithubRepositoryReader.FilterType.INCLUDE),
      verbose=True,
      concurrent_requests=10,
  )
  
  # 1. Load the documents
  docs = loader.load_data(branch="main")
  
  # 2. Parse the docs into nodes
  parser = SimpleNodeParser()
  nodes = parser.get_nodes_from_documents(docs)
  
  # 3. Build an index
  # You can customize the LLM. By default it uses `text-davinci-003`
  index = GPTVectorStoreIndex(nodes)
  
  # 4. Persist the index
  index.storage_context.persist(persist_dir="index")
  
apis: llama_index.readers.llamahub_modules.github_repo.GithubRepositoryReader llama_index.node_parser.SimpleNodeParser llama_index.GPTVectorStoreIndex llama_index.download_loader
extract_api: [((149, 190), 'llama_index.download_loader', 'download_loader', (['"""GithubRepositoryReader"""'], {}), "('GithubRepositoryReader')\n", (164, 190), False, 'from llama_index import download_loader\n'), ((409, 706), 'llama_index.readers.llamahub_modules.github_repo.GithubRepositoryReader', 'GithubRepositoryReader', (['github_client'], {'owner': '"""jerryjliu"""', 'repo': '"""llama_index"""', 'filter_directories': "(['llama_index', 'docs'], GithubRepositoryReader.FilterType.INCLUDE)", 'filter_file_extensions': "(['.py'], GithubRepositoryReader.FilterType.INCLUDE)", 'verbose': '(True)', 'concurrent_requests': '(10)'}), "(github_client, owner='jerryjliu', repo='llama_index',\n    filter_directories=(['llama_index', 'docs'], GithubRepositoryReader.\n    FilterType.INCLUDE), filter_file_extensions=(['.py'],\n    GithubRepositoryReader.FilterType.INCLUDE), verbose=True,\n    concurrent_requests=10)\n", (431, 706), False, 'from llama_index.readers.llamahub_modules.github_repo import GithubRepositoryReader, GithubClient\n'), ((849, 867), 'llama_index.node_parser.SimpleNodeParser', 'SimpleNodeParser', ([], {}), '()\n', (865, 867), False, 'from llama_index.node_parser import SimpleNodeParser\n'), ((1010, 1036), 'llama_index.GPTVectorStoreIndex', 'GPTVectorStoreIndex', (['nodes'], {}), '(nodes)\n', (1029, 1036), False, 'from llama_index import GPTVectorStoreIndex\n'), ((373, 398), 'os.getenv', 'os.getenv', (['"""GITHUB_TOKEN"""'], {}), "('GITHUB_TOKEN')\n", (382, 398), False, 'import os\n')]