#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
:platform: Unix
:synopsis: Useful functions to use with this module.
"""
import requests
from custom_exceptions import *
[docs]def gh_request_content(url, auth=None):
"""
Gets the GitHub content of a file or a directory.
:param str url: The GitHub url to request
:param *requests.auth.HTTPBasicAuth* auth: The authenticator object
:returns: The GitHub request content
:rtype: *requests.models.Response*
:raises Error: If user not authorized to read GitHub repository
:raises Error: If user exceed the GitHub API rate limit
:raises Error: If the queried content does not exist
:raises Error: If the GitHub request fails for other reasons
"""
GitHubException.URI = url
r = requests.get(url, auth=auth)
if r.status_code == 200:
return r
elif r.status_code == 401:
raise GitHubUnauthorized()
elif r.status_code == 403:
raise GitHubAPIRateLimit()
elif r.status_code == 404:
raise GitHubFileNotFound()
else:
raise GitHubConnectionError()