コード例 #1
0
    def deploy(self, environment):
        if self.can_build():
            callback = os.environ['API_BASE_URL'] + \
                reverse('webhook:builder', args=[str(self.uuid), ])

            url = os.environ['BUILDER_URL'] + '/build'
            headers = {'content-type': 'application/json'}
            body = {
                "deploy_key": self.site.deploy_key_secret,
                "branch": self.branch,
                "git_hash": self.git_hash,
                "repo_owner": self.site.owner.name,
                "path": self.path,
                "repo_name": self.site.name,
                "environment": environment.name.lower(),
                'callback': callback
            }
            try:
                make_rest_post_call(url, headers, body)
            except:
                logger.warn('Builder down?')
                msg = 'Service temporarily unavailable: franklin-build'
                raise ServiceUnavailable(detail=msg)
            self.status = self.BUILDING
            self.save()
        else:
            logger.error("Build being/been built by builder...")
コード例 #2
0
ファイル: api.py プロジェクト: istrategylabs/franklin-api
def create_repo_deploy_key(site, user):
    # TODO - check for existing and update if needed (or skip)
    url = build_repos_url(site.owner.name, site.name, 'keys')
    headers = get_auth_header(user)
    body = {
        'title': 'franklin',
        'key': site.deploy_key,
        'read_only': True
    }
    return make_rest_post_call(url, headers, body)
コード例 #3
0
ファイル: api.py プロジェクト: JulianGindi/franklin-api
def create_repo_webhook(site, user):
    # TODO - check for existing webhook and update if needed (or skip)
    url = build_repos_url(site.owner.name, site.name, 'hooks')
    headers = get_auth_header(user)
    body = {
        'name': 'web',
        'events': ['push'],
        'active': True,
        'config': {
            'url': os.environ['API_BASE_URL'] + reverse('webhook:github'),
            'content_type': 'json',
            'secret': os.environ['GITHUB_SECRET']
        }
    }
    return make_rest_post_call(url, headers, body)
コード例 #4
0
ファイル: api.py プロジェクト: istrategylabs/franklin-api
def create_repo_webhook(site, user):
    # TODO - check for existing webhook and update if needed (or skip)
    url = build_repos_url(site.owner.name, site.name, 'hooks')
    headers = get_auth_header(user)
    body = {
        'name': 'web',
        'events': ['push'],
        'active': True,
        'config': {
            'url': os.environ['API_BASE_URL'] + reverse('webhook:github'),
            'content_type': 'json',
            'secret': os.environ['GITHUB_SECRET']
        }
    }
    return make_rest_post_call(url, headers, body)
コード例 #5
0
ファイル: api.py プロジェクト: JulianGindi/franklin-api
def get_access_token(request):
    """
    Converts a temporary auth token for an OAuth access token from Github
    """
    url = 'https://github.com/login/oauth/access_token'
    headers = {
        'content-type': 'application/json',
        'accept': 'application/json'
    }
    params = {
        "code": request.data.get('code'),
        "client_id": request.data.get('clientId'),
        "redirect_uri": request.data.get('redirectUri'),
        "client_secret": os.environ['SOCIAL_AUTH_GITHUB_SECRET']
    }
    return make_rest_post_call(url, headers, params)
コード例 #6
0
ファイル: api.py プロジェクト: istrategylabs/franklin-api
def get_access_token(request):
    """
    Converts a temporary auth token for an OAuth access token from Github
    """
    url = 'https://github.com/login/oauth/access_token'
    headers = {
        'content-type': 'application/json',
        'accept': 'application/json'
    }
    params = {
        "code": request.data.get('code'),
        "client_id": request.data.get('clientId'),
        "redirect_uri": request.data.get('redirectUri'),
        "client_secret": os.environ['SOCIAL_AUTH_GITHUB_SECRET']
    }
    return make_rest_post_call(url, headers, params)
コード例 #7
0
ファイル: api.py プロジェクト: JulianGindi/franklin-api
def create_repo_deploy_key(site, user):
    # TODO - check for existing and update if needed (or skip)
    url = build_repos_url(site.owner.name, site.name, 'keys')
    headers = get_auth_header(user)
    body = {'title': 'franklin', 'key': site.deploy_key, 'read_only': True}
    return make_rest_post_call(url, headers, body)