username='******', password=1234) # BR anahtarina sahip statusu To Do olan issuelari ceker issues = jira.search_issues(jql_str="project = BR AND status = 'To Do'") # BR anahtarina sahip bir proje Bitbucket da varsa bu kismi yapar if not bbucket.project(key="BR").get("errors"): # Her issue icin Bitbucketda repo olusturup Jirada da bu issueya ait statusu Done yapar for issue in issues: bbucket.create_repo(project_key="BR", repository=issue.fields.customfield_10001) jira.transition_issue(issue=issue, transition="DONE") # BR anahtarina sahip bir proje Bitbucketda yoksa bu kismi yapar else: # To Do statusuna ait tüm issuelar icin yapar for issue in issues: # BR anahtarina sahip bir sonraki issue icin Bitbucketda aynı projeyi tekrar oluşturmamak adina bu kontrolu yapar # BR anahtarina sahip bir proje Bitbucketda yoksa bu kısmı yapar if bbucket.project(key="BR").get("errors"): bbucket.create_project(key="BR", name=issue.fields.customfield_10000) bbucket.create_repo(project_key="BR", repository=issue.fields.customfield_10001) jira.transition_issue(issue=issue, transition="DONE") # BR anahtarına sahip bir proje Bitbucket da varsa bu kısmı yapar else: bbucket.create_repo(project_key="BR", repository=issue.fields.customfield_10001) jira.transition_issue(issue=issue, transition="DONE") except Exception as e: print(e)
def main(): parser = create_parser() parser_namespace = parser.parse_args(sys.argv[1:]) bitbucket_url = parser_namespace.bitbucket bitbucket_user = parser_namespace.user bitbucket_pass = parser_namespace.passwd project_model_path = parser_namespace.file project_key = ntpath.basename(project_model_path).replace('_meta.yaml', '') project_map = yaml_read(project_model_path) if project_map['READY']: project_map = yaml_read(project_model_path) if project_map['RESOURCES'] and project_map['RESOURCES']['bitbucket']: project_model_bitbucket = project_map['RESOURCES']['bitbucket'] project_name = project_model_bitbucket['name'] project_description = project_model_bitbucket['description'] bitbucket = Bitbucket(url=bitbucket_url, username=bitbucket_user, password=bitbucket_pass) bb_projects = bitbucket.project_list(limit=9999) if next( (i for i in bb_projects if i['key'] == project_key.upper()), None): print(f'INFO: BitBucket project {project_key} already exists') else: bitbucket.create_project(project_key, project_name, description=project_description) print(f'INFO: BitBucket project {project_key} created') for group in project_model_bitbucket['privileges']: if 'delete' in project_model_bitbucket['privileges'][group]: bitbucket.project_grant_group_permissions( project_key, f'rb-{project_key}-{group}', 'PROJECT_ADMIN') print( f'INFO: rb-{project_key}-{group} PROJECT_ADMIN granted' ) elif 'write' in project_model_bitbucket['privileges'][group]: bitbucket.project_grant_group_permissions( project_key, f'rb-{project_key}-{group}', 'PROJECT_WRITE') print( f'INFO: rb-{project_key}-{group} PROJECT_WRITE granted' ) elif 'read' in project_model_bitbucket['privileges'][group]: bitbucket.project_grant_group_permissions( project_key, f'rb-{project_key}-{group}', 'PROJECT_READ') print( f'INFO: rb-{project_key}-{group} PROJECT_READ granted') else: print('MAP NOT READY')