diff --git a/colab/proxy/gitlab/data_api.py b/colab/proxy/gitlab/data_api.py index adaee8d..ac88184 100644 --- a/colab/proxy/gitlab/data_api.py +++ b/colab/proxy/gitlab/data_api.py @@ -57,38 +57,77 @@ class GitlabDataAPI(ProxyDataAPI): return projects - def fetch_merge_request(self, projects): +# def fetch_merge_request(self, projects): +# page = 1 +# all_merge_request = [] +# +# # Iterate under all projects +# for project in projects: +# # Iterate under all MR inside project +# while(True): +# merge_request_url = \ +# '/api/v3/projects/{}/merge_requests'.format(project.id) +# url = self.get_request_url(merge_request_url, +# per_page=1000, +# page=page) +# +# data = urllib2.urlopen(url) +# json_data_mr = json.load(data) +# +# if len(json_data_mr) == 0: +# break +# +# page = page + 1 +# for element in json_data_mr: +# single_merge_request = GitlabMergeRequest() +# +# for field in GitlabMergeRequest._meta.fields: +# if field.name == "user": +# single_merge_request.update_user( +# element["author"]["username"]) +# continue +# if field.name == "project": +# single_merge_request.project_id = \ +# element["project_id"] +# continue +# +# if isinstance(field, DateTimeField): +# value = parse(element[field.name]) +# else: +# value = element[field.name] +# +# setattr(single_merge_request, field.name, value) +# +# all_merge_request.append(single_merge_request) +# +# return all_merge_request + + def fetch_issue(self, projects): page = 1 - all_merge_request = [] + all_issues = [] # Iterate under all projects for project in projects: - # Iterate under all MR inside project + # Iterate under all Issues inside project while(True): - merge_request_url = \ - '/api/v3/projects/{}/merge_requests'.format(project.id) - url = self.get_request_url(merge_request_url, - per_page=1000, + issue_url = \ + '/api/v3/projects/{}/issues'.format(project.id) + url = self.get_request_url(issue_url, per_page=1000, page=page) data = urllib2.urlopen(url) - json_data_mr = json.load(data) + json_data_issue = json.load(data) - if len(json_data_mr) == 0: + if len(json_data_issue) == 0: break page = page + 1 - for element in json_data_mr: - single_merge_request = GitlabMergeRequest() + for element in json_data_issue: + single_issue = GitlabIssue() - for field in GitlabMergeRequest._meta.fields: - if field.name == "user": - single_merge_request.update_user( - element["author"]["username"]) - continue + for field in GitlabIssue._meta.fields: if field.name == "project": - single_merge_request.project_id = \ - element["project_id"] + single_issue.project_id = element["project_id"] continue if isinstance(field, DateTimeField): @@ -96,20 +135,22 @@ class GitlabDataAPI(ProxyDataAPI): else: value = element[field.name] - setattr(single_merge_request, field.name, value) + setattr(single_issue, field.name, value) - all_merge_request.append(single_merge_request) + all_issues.append(single_issue) - return all_merge_request + return all_issues def fetch_data(self): data = self.fetch_projects() - merge_request_list = self.fetch_merge_request(data) + #merge_request_list = self.fetch_merge_request(data) + issue_list = self.fetch_issue(data) for datum in data: datum.save() - for datum in merge_request_list: - print datum.__dict__ +# for datum in merge_request_list: +# datum.save() + for datum in issue_list: datum.save() @property diff --git a/colab/proxy/gitlab/models.py b/colab/proxy/gitlab/models.py index 1c8e1c7..5e9beca 100644 --- a/colab/proxy/gitlab/models.py +++ b/colab/proxy/gitlab/models.py @@ -37,7 +37,7 @@ class GitlabMergeRequest(Collaboration): class GitlabIssue(Collaboration): id = models.IntegerField(primary_key=True) - project_id = models.ForeignKey(GitlabProject, null=True, + project = models.ForeignKey(GitlabProject, null=True, on_delete=models.SET_NULL) title = models.TextField() description = models.TextField() -- libgit2 0.21.2