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...")
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)
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)
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)
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)