docs: def get_dir_contents(self, path, ref=github.GithubObject.NotSet):
          """
          :calls: `GET /repos/:owner/:repo/contents/:path <http://developer.github.com/v3/repos/contents>`_
          :param path: string
          :param ref: string
          :rtype: list of :class:`github.ContentFile.ContentFile`
          """
          assert isinstance(path, (str, unicode)), path
          assert ref is github.GithubObject.NotSet or isinstance(ref, (str, unicode)), ref
          url_parameters = dict()
          if ref is not github.GithubObject.NotSet:
              url_parameters["ref"] = ref
          headers, data = self._requester.requestJsonAndCheck(
              "GET",
              self.url + "/contents/" + urllib.quote(path),
              parameters=url_parameters
          )
  
          # Handle 302 redirect response
          if headers.get('status') == '302 Found' and headers.get('location'):
              headers, data = self._requester.requestJsonAndCheck(
                  "GET",
                  headers['location'],
                  parameters=url_parameters
              )
  
          return [
              github.ContentFile.ContentFile(self._requester, headers, attributes, completed=(attributes["type"] != "file"))  # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130
              for attributes in data
          ]