Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def post_slack_message(data, safe=False):
"""Push data to Slack, if slack is integrated with jovian account"""
url = _u('/slack/notify')
res = post(url, json=data, headers=_h())
if res.status_code == 200:
return res.json()
elif safe:
return {'data': {'messageSent': False}}
else:
raise ApiError('Slack trigger failed: ' + pretty(res))
def upload_file(gist_slug, file, folder=None, version=None, artifact=False, version_title=None):
"""Upload an additional file to a gist"""
data = {'artifact': 'true'} if artifact else {}
if folder:
data['folder'] = folder
if version_title:
data['version_title'] = version_title
res = post(url=_u('/gist/' + gist_slug + '/upload' + _v(version)),
files={'files': file}, data=data, headers=_h())
if res.status_code == 200:
return res.json()['data']
raise ApiError('File upload failed: ' + pretty(res))
def post_blocks(blocks, version=None):
url = _u('/data/record' + _v(version))
res = post(url, json=blocks, headers=_h())
if res.status_code == 200:
return res.json()['data']
else:
raise ApiError('Data logging failed: ' + pretty(res))
def post_records(gist_slug, tracking_slugs, version=None):
"""Associated tracked records with a commit"""
url = _u('/data/' + gist_slug + '/commit' + _v(version))
res = post(url, json=tracking_slugs, headers=_h())
if res.status_code == 200:
return res.json()['data']
else:
raise ApiError('Data logging failed: ' + pretty(res))
def add_slack():
"""prints instructions for connecting Slack, if Slack connection is not already present.
if Slack is already connected, prints details about the workspace and the channel"""
url = _u('/slack/integration_details')
res = get(url, headers=_h())
if res.status_code == 200:
res = res.json()
if not res.get('errors'):
slack_account = res.get('data').get('slackAccount')
log('Slack already connected. \nWorkspace: {}\nConnected Channel: {}'
.format(slack_account.get('workspace'), slack_account.get('channel')))
else:
log(str(res.get('errors')[0].get('message')))
else:
raise ApiError('Slack trigger failed: ' + pretty(res))
def get_api_key():
"""Retrieve and validate the API Key (from memory, config or user input)"""
creds = read_creds()
if API_TOKEN_KEY not in creds:
key, _ = read_or_request_api_key()
if not validate_api_key(key):
log('The current API key is invalid or expired.', error=True)
key, _ = request_api_key(), 'request'
if not validate_api_key(key):
raise ApiError('The API key provided is invalid or expired.')
write_api_key(key)
return key
return creds[API_TOKEN_KEY]