def lambda_handler(event, context): teams = Teams() try: domain = os.environ.get('BACKLOG_DOMAIN', '') milestone = int(os.environ.get('QA_MILESTONE', '0')) for record in event['Records']: message_body = json.loads(record['body']) message = json.loads(message_body['Message']) project = get_value(message, 'project') content = get_value(message, 'content') createdUser = get_value(message, 'createdUser') milestone_array = get_value(content, 'milestone') if len(milestone_array) > 0: milestone_id = get_value(milestone_array[0], 'id') else: return if milestone_id != milestone: return projectKey = get_value(project, 'projectKey') key_id = get_value(content, 'key_id') description = get_value(content, 'description') comment = get_value(get_value(content, 'comment'), 'content') user = get_value(createdUser, 'name') url = 'https://{domain}/view/{projectKey}-{key_id}'.format( domain=domain, projectKey=projectKey, key_id=key_id ) url_tag = '<a href="{url}">{url}</a>'.format( url=url ) teams.send_message( '回答', '**質問**:{description}<br><br>**{user}の回答**:{comment}<br><br>{url}'.format( description=description, user=user, comment=comment, url=url_tag ) ) except: logger.error(traceback.format_exc()) raise Exception(traceback.format_exc())
def lambda_handler(event, context): teams = Teams() try: domain = os.environ.get('BACKLOG_DOMAIN', '') for record in event['Records']: message_body = json.loads(record['body']) message = json.loads(message_body['Message']) logger.info(message) project = get_value(message, 'project') content = get_value(message, 'content') createdUser = get_value(message, 'createdUser') project_name = get_value(project, 'name') projectKey = get_value(project, 'projectKey') key_id = get_value(content, 'key_id') summary = get_value(content, 'summary') milestone_array = get_value(content, 'milestone') if len(milestone_array) > 0: milestone = get_value(milestone_array[0], 'name') else: milestone = '' estimatedHours = round(get_value(content, 'estimatedHours'), 2) actualHours = round(get_value(content, 'actualHours'), 2) comment = get_value(get_value(content, 'comment'), 'content') status = get_value(get_value(content, 'status'), 'name') user = get_value(createdUser, 'name') assignee = get_value(get_value(content, 'assignee'), 'name') changes = get_value(content, 'changes') url = 'https://{domain}/view/{projectKey}-{key_id}'.format( domain=domain, projectKey=projectKey, key_id=key_id) url_tag = '<a href="{url}">{url}</a>'.format(url=url) response = teams.send_message( '{summary} ({milestone})'.format(summary=summary, milestone=milestone), '<b>対応状況:</b> {status}<br><b>担当:</b> {assignee}<br><b>実績時間:</b> {actualHours}<br><b>予定時間:</b> {estimatedHours}<br>{url}<br><b>更新者:</b> {user}<br>{comment}{changes}' .format(status=status, user=user, comment=get_comment(comment), actualHours=actualHours, estimatedHours=estimatedHours, url=url_tag, assignee=assignee, changes=get_changes(changes))) logger.info(response) logger.info(response.text) except: logger.error(traceback.format_exc()) raise Exception(traceback.format_exc())
def lambda_handler(event, context): teams = Teams() try: s3 = boto3.resource('s3') bucket_name = os.environ.get('BUCKET_NAME', None) for record in event['Records']: message_body = json.loads(record['body']) message = json.loads(message_body['Message']) project = get_value(message, 'project') content = get_value(message, 'content') projectKey = get_value(project, 'projectKey') key_id = get_value(content, 'key_id') object_key = '{projectKey}-{key_id}.json'.format( projectKey=projectKey, key_id=key_id ) obj = s3.Object( bucket_name, object_key ) milestone_array = get_value(content, 'milestone') if len(milestone_array) > 0: milestone = get_value(milestone_array[0], 'name') else: milestone = '' estimatedHours = get_value(content, 'estimatedHours') actualHours = get_value(content, 'actualHours') status = get_value(get_value(content, 'status'), 'name') assignee = get_value(get_value(content, 'assignee'), 'name') issueType = get_value(get_value(content, 'issueType'), 'name') startDate = get_value(content, 'startDate') dueDate = get_value(content, 'dueDate') summary = get_value(content, 'summary') ticket_json = { 'milestone': milestone, 'estimatedHours': estimatedHours, 'actualHours': actualHours, 'status': status, 'assignee': assignee, 'issueType': issueType, 'startDate': startDate, 'dueDate': dueDate, 'summary': summary } response = obj.put( Body=json.dumps(ticket_json) ) logger.info(response) except: logger.error(traceback.format_exc()) teams.send_message( 'Error', traceback.format_exc() ) raise Exception(traceback.format_exc())
def lambda_handler(event, context): teams = Teams() try: s3 = boto3.resource('s3') bucket_name = os.environ.get('BUCKET_NAME', None) api_url = os.environ.get('API_URL', None) api_key = os.environ.get('API_KEY', None) project_id = os.environ.get('PROJECT_ID', None) offset = 0 backlog_url = '{api_url}?apiKey={api_key}&projectId[]={project_id}&statusId[]=4&count=100&sort=keyId&order=asc&offset='.format( api_url=api_url, api_key=api_key, project_id=project_id) issues = requests.get(backlog_url + str(offset)) while len(issues) > 0: for record in issues: message_body = json.loads(record['body']) message = json.loads(message_body['Message']) project = get_value(message, 'project') content = get_value(message, 'content') projectKey = get_value(project, 'projectKey') key_id = get_value(content, 'key_id') offset = key_id object_key = '{projectKey}-{key_id}.json'.format( projectKey=projectKey, key_id=key_id) obj = s3.Object(bucket_name, object_key) milestone_array = get_value(content, 'milestone') if len(milestone_array) > 0: milestone = get_value(milestone_array[0], 'name') else: milestone = '' estimatedHours = get_value(content, 'estimatedHours') actualHours = get_value(content, 'actualHours') status = get_value(get_value(content, 'status'), 'name') assignee = get_value(get_value(content, 'assignee'), 'name') issueType = get_value(get_value(content, 'issueType'), 'name') startDate = get_value(content, 'startDate') dueDate = get_value(content, 'dueDate') summary = get_value(content, 'summary') ticket_json = { 'milestone': milestone, 'estimatedHours': estimatedHours, 'actualHours': actualHours, 'status': status, 'assignee': assignee, 'issueType': issueType, 'startDate': startDate, 'dueDate': dueDate, 'summary': summary } response = obj.put(Body=json.dumps(ticket_json)) logger.info(response) issues = requests.get(backlog_url + str(offset)) teams.send_message(str(offset)) except: logger.error(traceback.format_exc()) teams.send_message('Error', traceback.format_exc()) raise Exception(traceback.format_exc())