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 57  
58 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 106 page = 1
62   - all_merge_request = []
  107 + all_issues = []
63 108  
64 109 # Iterate under all projects
65 110 for project in projects:
66   - # Iterate under all MR inside project
  111 + # Iterate under all Issues inside project
67 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 116 page=page)
73 117  
74 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 122 break
79 123  
80 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 129 if field.name == "project":
90   - single_merge_request.project_id = \
91   - element["project_id"]
  130 + single_issue.project_id = element["project_id"]
92 131 continue
93 132  
94 133 if isinstance(field, DateTimeField):
... ... @@ -96,20 +135,22 @@ class GitlabDataAPI(ProxyDataAPI):
96 135 else:
97 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 144 def fetch_data(self):
106 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 149 for datum in data:
110 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 154 datum.save()
114 155  
115 156 @property
... ...
colab/proxy/gitlab/models.py
... ... @@ -37,7 +37,7 @@ class GitlabMergeRequest(Collaboration):
37 37 class GitlabIssue(Collaboration):
38 38  
39 39 id = models.IntegerField(primary_key=True)
40   - project_id = models.ForeignKey(GitlabProject, null=True,
  40 + project = models.ForeignKey(GitlabProject, null=True,
41 41 on_delete=models.SET_NULL)
42 42 title = models.TextField()
43 43 description = models.TextField()
... ...