docs: def github_repos(organization, github_url, github_token):
      """Return all github repositories in an organization."""
      # Get github repos
      headers = {"Authorization": "token {}".format(github_token)}
      next_cursor = None
  
      while next_cursor is not False:
          params = {'query': query, 'variables': {
              'organization': organization, 'cursor': next_cursor}}
          response = requests.post(github_url, headers=headers, json=params)
          result = response.json()
          if response.status_code != 200 or 'errors' in result:
              raise ValueError("Github api error %s" % (
                  response.content.decode('utf8'),))
  
          repos = jmespath.search(
              'data.organization.repositories.edges[].node', result)
          for r in repos:
              yield r
          page_info = jmespath.search(
              'data.organization.repositories.pageInfo', result)
          if page_info:
              next_cursor = (page_info['hasNextPage'] and
                             page_info['endCursor'] or False)
          else:
              next_cursor = False