Commit 7feb4c10d5b32cbadfd7ba46b78cf41ebbe7ed29

Authored by Rodrigo Siqueira de Melo
Committed by Sergio Oliveira
1 parent 22c3e745

Implemented fetch issues.

colab/proxy/gitlab/data_api.py
@@ -57,38 +57,77 @@ class GitlabDataAPI(ProxyDataAPI): @@ -57,38 +57,77 @@ class GitlabDataAPI(ProxyDataAPI):
57 57
58 return projects 58 return projects
59 59
60 - def fetch_merge_request(self, projects): 60 +# def fetch_merge_request(self, projects):
  61 +# page = 1
  62 +# all_merge_request = []
  63 +#
  64 +# # Iterate under all projects
  65 +# for project in projects:
  66 +# # Iterate under all MR inside project
  67 +# while(True):
  68 +# merge_request_url = \
  69 +# '/api/v3/projects/{}/merge_requests'.format(project.id)
  70 +# url = self.get_request_url(merge_request_url,
  71 +# per_page=1000,
  72 +# page=page)
  73 +#
  74 +# data = urllib2.urlopen(url)
  75 +# json_data_mr = json.load(data)
  76 +#
  77 +# if len(json_data_mr) == 0:
  78 +# break
  79 +#
  80 +# page = page + 1
  81 +# for element in json_data_mr:
  82 +# single_merge_request = GitlabMergeRequest()
  83 +#
  84 +# for field in GitlabMergeRequest._meta.fields:
  85 +# if field.name == "user":
  86 +# single_merge_request.update_user(
  87 +# element["author"]["username"])
  88 +# continue
  89 +# if field.name == "project":
  90 +# single_merge_request.project_id = \
  91 +# element["project_id"]
  92 +# continue
  93 +#
  94 +# if isinstance(field, DateTimeField):
  95 +# value = parse(element[field.name])
  96 +# else:
  97 +# value = element[field.name]
  98 +#
  99 +# setattr(single_merge_request, field.name, value)
  100 +#
  101 +# all_merge_request.append(single_merge_request)
  102 +#
  103 +# return all_merge_request
  104 +
  105 + def fetch_issue(self, projects):
61 page = 1 106 page = 1
62 - all_merge_request = [] 107 + all_issues = []
63 108
64 # Iterate under all projects 109 # Iterate under all projects
65 for project in projects: 110 for project in projects:
66 - # Iterate under all MR inside project 111 + # Iterate under all Issues inside project
67 while(True): 112 while(True):
68 - merge_request_url = \  
69 - '/api/v3/projects/{}/merge_requests'.format(project.id)  
70 - url = self.get_request_url(merge_request_url,  
71 - per_page=1000, 113 + issue_url = \
  114 + '/api/v3/projects/{}/issues'.format(project.id)
  115 + url = self.get_request_url(issue_url, per_page=1000,
72 page=page) 116 page=page)
73 117
74 data = urllib2.urlopen(url) 118 data = urllib2.urlopen(url)
75 - json_data_mr = json.load(data) 119 + json_data_issue = json.load(data)
76 120
77 - if len(json_data_mr) == 0: 121 + if len(json_data_issue) == 0:
78 break 122 break
79 123
80 page = page + 1 124 page = page + 1
81 - for element in json_data_mr:  
82 - single_merge_request = GitlabMergeRequest() 125 + for element in json_data_issue:
  126 + single_issue = GitlabIssue()
83 127
84 - for field in GitlabMergeRequest._meta.fields:  
85 - if field.name == "user":  
86 - single_merge_request.update_user(  
87 - element["author"]["username"])  
88 - continue 128 + for field in GitlabIssue._meta.fields:
89 if field.name == "project": 129 if field.name == "project":
90 - single_merge_request.project_id = \  
91 - element["project_id"] 130 + single_issue.project_id = element["project_id"]
92 continue 131 continue
93 132
94 if isinstance(field, DateTimeField): 133 if isinstance(field, DateTimeField):
@@ -96,20 +135,22 @@ class GitlabDataAPI(ProxyDataAPI): @@ -96,20 +135,22 @@ class GitlabDataAPI(ProxyDataAPI):
96 else: 135 else:
97 value = element[field.name] 136 value = element[field.name]
98 137
99 - setattr(single_merge_request, field.name, value) 138 + setattr(single_issue, field.name, value)
100 139
101 - all_merge_request.append(single_merge_request) 140 + all_issues.append(single_issue)
102 141
103 - return all_merge_request 142 + return all_issues
104 143
105 def fetch_data(self): 144 def fetch_data(self):
106 data = self.fetch_projects() 145 data = self.fetch_projects()
107 - merge_request_list = self.fetch_merge_request(data) 146 + #merge_request_list = self.fetch_merge_request(data)
  147 + issue_list = self.fetch_issue(data)
108 148
109 for datum in data: 149 for datum in data:
110 datum.save() 150 datum.save()
111 - for datum in merge_request_list:  
112 - print datum.__dict__ 151 +# for datum in merge_request_list:
  152 +# datum.save()
  153 + for datum in issue_list:
113 datum.save() 154 datum.save()
114 155
115 @property 156 @property
colab/proxy/gitlab/models.py
@@ -37,7 +37,7 @@ class GitlabMergeRequest(Collaboration): @@ -37,7 +37,7 @@ class GitlabMergeRequest(Collaboration):
37 class GitlabIssue(Collaboration): 37 class GitlabIssue(Collaboration):
38 38
39 id = models.IntegerField(primary_key=True) 39 id = models.IntegerField(primary_key=True)
40 - project_id = models.ForeignKey(GitlabProject, null=True, 40 + project = models.ForeignKey(GitlabProject, null=True,
41 on_delete=models.SET_NULL) 41 on_delete=models.SET_NULL)
42 title = models.TextField() 42 title = models.TextField()
43 description = models.TextField() 43 description = models.TextField()