Search for issues in Github.
        For JSON data returned by Github refer:
        https://developer.github.com/v3/search/#search-issues

        :param q: query string for search
        :param state: the states of the issue
        :param labels: labels of the issue
        :returns: dictionary of JSON data returned by Github
        :rtype: `dict`

def search(self, q, state, labels):
        """Search for issues in Github.
        For JSON data returned by Github refer:
        https://developer.github.com/v3/search/#search-issues

        :param q: query string for search
        :param state: the states of the issue
        :param labels: labels of the issue
        :returns: dictionary of JSON data returned by Github
        :rtype: `dict`

        """
        # TODO: add support for search with labels
        labels = ['"{}"'.format(label) for label in labels]
        q = "'{}'+state:{}+label:{}".format(
            q, '+state:'.join(state.split(',')), ','.join(labels))
        sort = "updated"

        url = "https://api.github.com/search/"\
              "issues?q={}+repo:{}/{}&sort={}".format(
                  q, self.user, self.repo, sort)

        response = self.session.get(url)
        assert response.status_code == 200
        return json.loads(response.content)