def process()

in processors/github.py [0:0]


    def process(self, output_var='github'):
        if 'githubToken' not in self.config:
            raise NotConfiguredException('No GitHub token configured!')
        if 'mode' not in self.config:
            raise NotConfiguredException('No GitHub mode configured!')
        if 'repository' not in self.config:
            raise NotConfiguredException('No GitHub repository configured!')

        mode = self._jinja_expand_string(self.config['mode'], 'mode')

        github_token = self._jinja_expand_string(self.config['githubToken'],
                                                 'token')

        if 'baseUrl' in self.config:
            g = Github(self._jinja_expand_string(self.config['baseUrl'],
                                                 'base_url'),
                       login_or_token=github_token)
        else:
            g = Github(github_token)

        repository_name = self._jinja_expand_string(self.config['repository'],
                                                    'repository')

        repository = g.get_repo(repository_name)
        if not repository:
            self.logger.error('Failed to get repository %s!' %
                              (repository_name),
                              extra={'repository': repository_name})
            return

        github_output = None
        item_id = None
        if mode == 'issues.list':
            issue_state = 'open'
            if 'state' in self.config:
                issue_state = self._jinja_expand_string(self.config['state'],
                                                        'state')

            issues = repository.get_issues(state=issue_state)
            github_output = []
            for issue in issues:
                github_output.append(issue.raw_data)

        if mode == 'issues.get':
            item_id = self._jinja_expand_int(self.config['issueId'], 'id')
            issue = repository.get_issue(number=item_id)
            github_output = issue.raw_data

        if mode == 'issues.create':
            if 'issue' not in self.config:
                raise NotConfiguredException('No GitHub issue configured!')

            issue = self._jinja_expand_dict_all(self.config['issue'])
            created_issue = repository.create_issue(**issue)
            github_output = created_issue.raw_data

        if mode == 'comments.list':
            item_id = self._jinja_expand_int(self.config['issueId'], 'id')
            issue = repository.get_issue(number=item_id)
            comments = issue.get_comments()
            github_output = []
            for comment in comments:
                github_output.append(comment.raw_data)

        if mode == 'comments.get':
            item_id = self._jinja_expand_int(self.config['issueId'], 'id')
            comment_id = self._jinja_expand_int(self.config['commentId'], 'id')
            issue = repository.get_issue(number=item_id)
            comment = issue.get_comment(comment_id)
            github_output = comment.raw_data

        if mode == 'comments.create':
            item_id = self._jinja_expand_int(self.config['issueId'], 'id')
            issue = repository.get_issue(number=item_id)
            comment_body = self._jinja_expand_string(self.config['comment'],
                                                     'comment')
            comment = issue.create_comment(comment_body)
            github_output = comment.raw_data

        return {
            output_var: github_output,
        }