+ //console.warn(("Skipping Missing Mantis Issue (<= #" + issueId + ") ...").yellow);
+ console.log(("Adding placeholder ...").yellow);
+
+ var data = {
+ title: "-- Platzhalter --",
+ description: "Diese Bugnummer war in Mantis einem anderen Projekt zugeordnet. Dieser Platzhalter sorgt dafuer, dass die Bugnummern in Mantis mit denen in Gitlab uebereinstimmen.",
+ sudo: gitlabSudo,
+ private_token: gitlabAdminPrivateToken
+ };
+
+ return insertAndCloseIssue(issueId, data, true)
+ .then(function() {
+ return insertSkippedIssues(issueId);
+ });
+}
+
+function insertAndCloseIssue(issueId, data, close, custom) {
+
+ return insertIssue(gitLab.project.id, data).then(function(issue) {
+ gitLab.gitlabIssues[issue.iid] = issue;
+ if (close) {
+ return closeIssue(issue, custom && custom(issue)).then(
+ function() {
+ console.log((issue.iid + ': Inserted and closed successfully. #' + issue.iid).green);
+ }, function(error) {
+ console.warn((issue.iid + ': Inserted successfully but failed to close. #' + issue.iid).yellow);
+ });
+ }
+
+ console.log((issue.iid + ': Inserted successfully. #' + issue.iid).green);
+ }, function(error) {
+ console.error((issue.iid + ': Failed to insert.').red, error);
+ });
+}
+
+/**
+ * Fetch all existing project issues from GitLab - assigns gitLab.gitlabIssues
+ */
+function getGitLabProjectIssues() {
+ return getRemainingGitLabProjectIssues(0, 100)
+ .then(function(result) {
+ log_progress("Fetched " + result.length + " GitLab issues.");
+ var issues = _.indexBy(result, 'iid');
+ return gitLab.gitlabIssues = issues;
+ });