def notify_sentry_deploy(duration_mins): from settingshelper import get_release_name headers = {'Authorization': 'Bearer {}'.format(settings.SENTRY_API_KEY), } payload = { 'environment': settings.SERVER_ENVIRONMENT, } if duration_mins: utcnow = datetime.utcnow() payload.update({ 'dateStarted': json_format_datetime(utcnow - timedelta(minutes=duration_mins)), 'dateFinished': json_format_datetime(utcnow), }) version = get_release_name(settings.BASE_DIR, settings.SERVER_ENVIRONMENT) releases_url = 'https://sentry.io/api/0/organizations/dimagi/releases/{}/deploys/'.format(version) requests.post(releases_url, headers=headers, json=payload)
def create_update_sentry_release(): from settingshelper import get_release_name, get_git_commit release = get_release_name(settings.BASE_DIR, settings.SERVER_ENVIRONMENT) headers = {'Authorization': 'Bearer {}'.format(settings.SENTRY_API_KEY), } payload = { 'version': release, 'refs': [{ 'repository': settings.SENTRY_REPOSITORY, 'commit': get_git_commit(settings.BASE_DIR) }], 'projects': [settings.SENTRY_PROJECT_SLUG] } releases_url = f'https://sentry.io/api/0/organizations/{settings.SENTRY_ORGANIZATION_SLUG}/releases/' response = requests.post(releases_url, headers=headers, json=payload) if response.status_code == 208: # already created so update payload.pop('version') requests.put('{}{}/'.format(releases_url, release), headers=headers, json=payload)
def create_update_sentry_release(): from settingshelper import get_release_name from raven import fetch_git_sha release = get_release_name(settings.BASE_DIR, settings.SERVER_ENVIRONMENT) headers = {'Authorization': 'Bearer {}'.format(settings.SENTRY_API_KEY), } payload = { 'version': release, 'refs': [{ 'repository': 'dimagi/commcare-hq', 'commit': fetch_git_sha(settings.BASE_DIR) }], 'projects': ['commcarehq'] } releases_url = 'https://sentry.io/api/0/organizations/dimagi/releases/' response = requests.post(releases_url, headers=headers, json=payload) if response.status_code == 208: # already created so update payload.pop('version') requests.put('{}{}/'.format(releases_url, release), headers=headers, json=payload)