class_docstr: Class for interacting with a GitHub repository.
  
  .. note::
  
      To interact with private GitHub repositories that you have access to,
      provide your GitHub personal access token by setting the
      ``GITHUB_TOKEN`` environment variable.
  
  Args:
      repo: the GitHub repository or identifier, which can be:
  
          -   a GitHub URL like ``https://github.com/<user>/<repo>``
          -   a GitHub ref like
              ``https://github.com/<user>/<repo>/tree/<branch>`` or
              ``https://github.com/<user>/<repo>/commit/<commit>``
          -   a GitHub ref string like ``<user>/<repo>[/<ref>]``
code: def __init__(self, repo):
      if etaw.is_url(repo):
          params = self.parse_url(repo)
      else:
          params = self.parse_identifier(repo)
  
      self._user = params.get("user")
      self._repo = params.get("repo")
      self._ref = params.get("ref", None)
      self._session = None
  
imports: import logging
  import os
  import re
  import requests
  import eta.core.utils
  import eta.core.web
label_desc: Use image node_id 1 to create a new GitHubRepository object from inherited base classes: object with example: obj = GitHubRepository(repo)