Exemple #1
0
 def _delete_all_issues(self):
     """Delete all issues in a Gitlab project"""
     data = self._get("/issues")
     if not data:
         log.info("No issues found!")
         return
     for item in data:
         resp = self._delete(self._base + "/issues/{}".format(item['iid']))
         if resp.status_code == 204:
             log.resp("204: Deleted issue " + item['title'])
         else:
             log.resp("{}: {}".format(resp.status_code, resp.text))
Exemple #2
0
 def _delete_all_labels(self):
     """Delete all labels"""
     data = self._get("/labels")
     if not data:
         log.info("No labels found!")
         return
     for item in data:
         resp = self._delete(self._base + "/labels/{}".format(item['name']))
         if resp.status_code == 204:
             log.resp("204: Deleted label " + item['name'])
         else:
             log.resp("{}: {}".format(resp.status_code, resp.text))
Exemple #3
0
 def _delete_all_labels(self):
     """Delete all labels in a Github project"""
     data = self._get("/labels")
     if not data:
         log.info("No labels found!")
         return
     for item in data:
         info = {"name": item['name']}
         resp = self._delete(self._base + "/labels",
                             data=self._format_data(info))
         if resp.status_code == 204:
             log.resp("204: Deleted label " + item['name'])
         else:
             log.resp("{}: {}".format(resp.status_code, resp.text))
Exemple #4
0
 def __init__(self, user, proj):
     """Initialize a Gitlab session"""
     auth_hdr = {"Private-Token": input("Enter PA token: ")}
     self._session = requests.Session()
     self._session.headers.update(auth_hdr)
     # Get project ID
     projects = self._get("/users/{}/projects".format(user),
                          base=self.API_ROOT)
     for item in projects:
         if item['name'] == proj:
             proj_id = item['id']
             log.info("Found project {}, id is {}".format(proj, proj_id))
             break
     else:
         log.error("Couldn't find project: " + proj)
     self._base = self.API_ROOT + "/projects/{}".format(proj_id)
Exemple #5
0
 def _delete_all_issues(self):
     """Delete all issues (including comments)"""
     log.info(
         "Github API does not currently support deleting issues. Sorry!")
     return
     data = self._get("/issues")
     if not data:
         log.info("No issues found!")
         return
     for item in data:
         resp = self._delete(self._base +
                             "/issues/{}".format(item['number']))
         if resp.status_code == 204:
             log.resp("204: Deleted issue " + item['title'])
         else:
             log.resp("{}: {}".format(resp.status_code, resp.text))
Exemple #6
0
    def apply_json(self, filename, only=None):
        """Apply json data to web repo"""
        with open(filename, "r") as fin:
            data = json.load(fin)

        if only is None or only == "labels":
            # Apply labels
            labels = Label.json_to_labels(data["labels"])
            for i, label in enumerate(labels):
                log.info('Posting label ({}/{}) "{}"...'.format(
                    i + 1, len(labels), label.title),
                         end='')
                self._apply_label(label)
                print("done!")

        if only is None or only == "issues":
            # Apply issues
            issues = Issue.json_to_issues(data["issues"])
            for i, issue in enumerate(issues):
                log.info('Posting issue ({}/{}) "{}"...'.format(
                    i + 1, len(issues), issue._title),
                         end='')
                iid = self._apply_issue(issue)
                print("done!")

                # Apply comments
                for j, comment in enumerate(issue._comments):
                    log.info(
                        '  Posting comment ({}/{}) to issue #{}...'.format(
                            j + 1, len(issue._comments), iid),
                        end='')
                    self._apply_comment(iid, comment)
                    print("done!")
Exemple #7
0
 def get_rate_limit(self):
     """Get the rate limit"""
     resp = self._session.get(self.API_ROOT + "/rate_limit")
     log.info(resp.text)