@@ -906,44 +906,35 @@ def cancel_merge_when_pipeline_succeeds(self, **kwargs):
906906 self ._update_attrs (server_data )
907907
908908 def closes_issues (self , ** kwargs ):
909- """List issues closed by the MR.
909+ """List issues that will close on merge."
910910
911911 Returns:
912- list (ProjectIssue): List of closed issues
913-
914- Raises:
915- GitlabConnectionError: If the server cannot be reached.
916- GitlabGetError: If the server fails to perform the request.
912+ list (ProjectIssue): List of issues
917913 """
918- # FIXME(gpocentek)
919- url = ('/projects/%s/merge_requests/%s/closes_issues' %
920- (self .project_id , self .iid ))
921- return self .gitlab ._raw_list (url , ProjectIssue , ** kwargs )
914+ path = '%s/%s/closes_issues' % (self .manager .path , self .get_id ())
915+ data_list = self .manager .gitlab .http_list (path , ** kwargs )
916+ manager = ProjectIssueManager (self .manager .gitlab ,
917+ parent = self .manager ._parent )
918+ return RESTObjectList (manager , ProjectIssue , data_list )
922919
923920 def commits (self , ** kwargs ):
924921 """List the merge request commits.
925922
926923 Returns:
927924 list (ProjectCommit): List of commits
928-
929- Raises:
930- GitlabConnectionError: If the server cannot be reached.
931- GitlabListError: If the server fails to perform the request.
932925 """
933- # FIXME(gpocentek)
934- url = ('/projects/%s/merge_requests/%s/commits' %
935- (self .project_id , self .iid ))
936- return self .gitlab ._raw_list (url , ProjectCommit , ** kwargs )
926+
927+ path = '%s/%s/commits' % (self .manager .path , self .get_id ())
928+ data_list = self .manager .gitlab .http_list (path , ** kwargs )
929+ manager = ProjectCommitManager (self .manager .gitlab ,
930+ parent = self .manager ._parent )
931+ return RESTObjectList (manager , ProjectCommit , data_list )
937932
938933 def changes (self , ** kwargs ):
939934 """List the merge request changes.
940935
941936 Returns:
942937 list (dict): List of changes
943-
944- Raises:
945- GitlabConnectionError: If the server cannot be reached.
946- GitlabListError: If the server fails to perform the request.
947938 """
948939 path = '%s/%s/changes' % (self .manager .path , self .get_id ())
949940 return self .manager .gitlab .http_get (path , ** kwargs )
@@ -960,14 +951,6 @@ def merge(self, merge_commit_message=None,
960951 branch
961952 merged_when_build_succeeds (bool): Wait for the build to succeed,
962953 then merge
963-
964- Returns:
965- ProjectMergeRequest: The updated MR
966- Raises:
967- GitlabConnectionError: If the server cannot be reached.
968- GitlabMRForbiddenError: If the user doesn't have permission to
969- close thr MR
970- GitlabMRClosedError: If the MR is already closed
971954 """
972955 path = '%s/%s/merge' % (self .manager .path , self .get_id ())
973956 data = {}
@@ -1002,23 +985,31 @@ class ProjectMilestone(SaveMixin, RESTObject):
1002985 _short_print_attr = 'title'
1003986
1004987 def issues (self , ** kwargs ):
1005- url = '/projects/%s/milestones/%s/issues' % (self .project_id , self .id )
1006- return self .gitlab ._raw_list (url , ProjectIssue , ** kwargs )
988+ """List issues related to this milestone
989+
990+ Returns:
991+ list (ProjectIssue): The list of issues
992+ """
993+
994+ path = '%s/%s/issues' % (self .manager .path , self .get_id ())
995+ data_list = self .manager .gitlab .http_list (path , ** kwargs )
996+ manager = ProjectCommitManager (self .manager .gitlab ,
997+ parent = self .manager ._parent )
998+ # FIXME(gpocentek): the computed manager path is not correct
999+ return RESTObjectList (manager , ProjectIssue , data_list )
10071000
10081001 def merge_requests (self , ** kwargs ):
10091002 """List the merge requests related to this milestone
10101003
10111004 Returns:
10121005 list (ProjectMergeRequest): List of merge requests
1013-
1014- Raises:
1015- GitlabConnectionError: If the server cannot be reached.
1016- GitlabListError: If the server fails to perform the request.
10171006 """
1018- # FIXME(gpocentek)
1019- url = ('/projects/%s/milestones/%s/merge_requests' %
1020- (self .project_id , self .id ))
1021- return self .gitlab ._raw_list (url , ProjectMergeRequest , ** kwargs )
1007+ path = '%s/%s/merge_requests' % (self .manager .path , self .get_id ())
1008+ data_list = self .manager .gitlab .http_list (path , ** kwargs )
1009+ manager = ProjectCommitManager (self .manager .gitlab ,
1010+ parent = self .manager ._parent )
1011+ # FIXME(gpocentek): the computed manager path is not correct
1012+ return RESTObjectList (manager , ProjectMergeRequest , data_list )
10221013
10231014
10241015class ProjectMilestoneManager (RetrieveMixin , CreateMixin , DeleteMixin ,
@@ -1425,20 +1416,29 @@ def repository_tree(self, path='', ref='', **kwargs):
14251416
14261417 Returns:
14271418 str: The json representation of the tree.
1428-
1429- Raises:
1430- GitlabConnectionError: If the server cannot be reached.
1431- GitlabGetError: If the server fails to perform the request.
14321419 """
1433- path = '/projects/%s/repository/tree' % self .get_id ()
1420+ gl_path = '/projects/%s/repository/tree' % self .get_id ()
14341421 query_data = {}
14351422 if path :
14361423 query_data ['path' ] = path
14371424 if ref :
14381425 query_data ['ref' ] = ref
1439- return self .manager .gitlab .http_get (path , query_data = query_data ,
1426+ return self .manager .gitlab .http_get (gl_path , query_data = query_data ,
14401427 ** kwargs )
14411428
1429+ def repository_blob (self , sha , ** kwargs ):
1430+ """Returns a blob by blob SHA.
1431+
1432+ Args:
1433+ sha(str): ID of the blob
1434+
1435+ Returns:
1436+ str: The blob as json
1437+ """
1438+
1439+ path = '/projects/%s/repository/blobs/%s' % (self .get_id (), sha )
1440+ return self .manager .gitlab .http_get (path , ** kwargs )
1441+
14421442 def repository_raw_blob (self , sha , streamed = False , action = None ,
14431443 chunk_size = 1024 , ** kwargs ):
14441444 """Returns the raw file contents for a blob by blob SHA.
@@ -1454,13 +1454,9 @@ def repository_raw_blob(self, sha, streamed=False, action=None,
14541454
14551455 Returns:
14561456 str: The blob content
1457-
1458- Raises:
1459- GitlabConnectionError: If the server cannot be reached.
1460- GitlabGetError: If the server fails to perform the request.
14611457 """
1462- path = '/projects/%s/repository/raw_blobs /%s' % (self .get_id (), sha )
1463- result = self .gitlab ._raw_get (path , streamed = streamed , ** kwargs )
1458+ path = '/projects/%s/repository/blobs /%s/raw ' % (self .get_id (), sha )
1459+ result = self .manager . gitlab .http_get (path , streamed = streamed , ** kwargs )
14641460 return utils .response_content (result , streamed , action , chunk_size )
14651461
14661462 def repository_compare (self , from_ , to , ** kwargs ):
@@ -1472,10 +1468,6 @@ def repository_compare(self, from_, to, **kwargs):
14721468
14731469 Returns:
14741470 str: The diff
1475-
1476- Raises:
1477- GitlabConnectionError: If the server cannot be reached.
1478- GitlabGetError: If the server fails to perform the request.
14791471 """
14801472 path = '/projects/%s/repository/compare' % self .get_id ()
14811473 query_data = {'from' : from_ , 'to' : to }
@@ -1486,11 +1478,7 @@ def repository_contributors(self, **kwargs):
14861478 """Returns a list of contributors for the project.
14871479
14881480 Returns:
1489- list: The contibutors
1490-
1491- Raises:
1492- GitlabConnectionError: If the server cannot be reached.
1493- GitlabGetError: If the server fails to perform the request.
1481+ list: The contributors
14941482 """
14951483 path = '/projects/%s/repository/contributors' % self .get_id ()
14961484 return self .manager .gitlab .http_get (path , ** kwargs )
@@ -1510,38 +1498,26 @@ def repository_archive(self, sha=None, streamed=False, action=None,
15101498
15111499 Returns:
15121500 str: The binary data of the archive.
1513-
1514- Raises:
1515- GitlabConnectionError: If the server cannot be reached.
1516- GitlabGetError: If the server fails to perform the request.
15171501 """
15181502 path = '/projects/%s/repository/archive' % self .get_id ()
15191503 query_data = {}
15201504 if sha :
15211505 query_data ['sha' ] = sha
1522- result = self .gitlab ._raw_get (path , query_data = query_data ,
1523- streamed = streamed , ** kwargs )
1506+ result = self .manager . gitlab .http_get (path , query_data = query_data ,
1507+ streamed = streamed , ** kwargs )
15241508 return utils .response_content (result , streamed , action , chunk_size )
15251509
15261510 def create_fork_relation (self , forked_from_id , ** kwargs ):
15271511 """Create a forked from/to relation between existing projects.
15281512
15291513 Args:
15301514 forked_from_id (int): The ID of the project that was forked from
1531-
1532- Raises:
1533- GitlabConnectionError: If the server cannot be reached.
1534- GitlabCreateError: If the server fails to perform the request.
15351515 """
15361516 path = '/projects/%s/fork/%s' % (self .get_id (), forked_from_id )
15371517 self .manager .gitlab .http_post (path , ** kwargs )
15381518
15391519 def delete_fork_relation (self , ** kwargs ):
15401520 """Delete a forked relation between existing projects.
1541-
1542- Raises:
1543- GitlabConnectionError: If the server cannot be reached.
1544- GitlabDeleteError: If the server fails to perform the request.
15451521 """
15461522 path = '/projects/%s/fork' % self .get_id ()
15471523 self .manager .gitlab .http_delete (path , ** kwargs )
@@ -1551,10 +1527,6 @@ def star(self, **kwargs):
15511527
15521528 Returns:
15531529 Project: the updated Project
1554-
1555- Raises:
1556- GitlabCreateError: If the action cannot be done
1557- GitlabConnectionError: If the server cannot be reached.
15581530 """
15591531 path = '/projects/%s/star' % self .get_id ()
15601532 server_data = self .manager .gitlab .http_post (path , ** kwargs )
@@ -1565,10 +1537,6 @@ def unstar(self, **kwargs):
15651537
15661538 Returns:
15671539 Project: the updated Project
1568-
1569- Raises:
1570- GitlabDeleteError: If the action cannot be done
1571- GitlabConnectionError: If the server cannot be reached.
15721540 """
15731541 path = '/projects/%s/unstar' % self .get_id ()
15741542 server_data = self .manager .gitlab .http_post (path , ** kwargs )
@@ -1579,10 +1547,6 @@ def archive(self, **kwargs):
15791547
15801548 Returns:
15811549 Project: the updated Project
1582-
1583- Raises:
1584- GitlabCreateError: If the action cannot be done
1585- GitlabConnectionError: If the server cannot be reached.
15861550 """
15871551 path = '/projects/%s/archive' % self .get_id ()
15881552 server_data = self .manager .gitlab .http_post (path , ** kwargs )
@@ -1593,10 +1557,6 @@ def unarchive(self, **kwargs):
15931557
15941558 Returns:
15951559 Project: the updated Project
1596-
1597- Raises:
1598- GitlabDeleteError: If the action cannot be done
1599- GitlabConnectionError: If the server cannot be reached.
16001560 """
16011561 path = '/projects/%s/unarchive' % self .get_id ()
16021562 server_data = self .manager .gitlab .http_post (path , ** kwargs )
@@ -1608,10 +1568,6 @@ def share(self, group_id, group_access, expires_at=None, **kwargs):
16081568 Args:
16091569 group_id (int): ID of the group.
16101570 group_access (int): Access level for the group.
1611-
1612- Raises:
1613- GitlabConnectionError: If the server cannot be reached.
1614- GitlabCreateError: If the server fails to perform the request.
16151571 """
16161572 path = '/projects/%s/share' % self .get_id ()
16171573 data = {'group_id' : group_id ,
@@ -1628,10 +1584,6 @@ def trigger_pipeline(self, ref, token, variables={}, **kwargs):
16281584 ref (str): Commit to build; can be a commit SHA, a branch name, ...
16291585 token (str): The trigger token
16301586 variables (dict): Variables passed to the build script
1631-
1632- Raises:
1633- GitlabConnectionError: If the server cannot be reached.
1634- GitlabCreateError: If the server fails to perform the request.
16351587 """
16361588 path = '/projects/%s/trigger/pipeline' % self .get_id ()
16371589 form = {r'variables[%s]' % k : v for k , v in six .iteritems (variables )}
0 commit comments