From: markus schnalke Date: Wed, 13 Feb 2019 12:25:00 +0000 (+0100) Subject: fixes X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=ec691e6d72c4d518ff2c1c9f5d0bda377746a00a;p=mantis2gitlab fixes --- diff --git a/m2gl.js b/m2gl.js index 5211b8f..53d9b5b 100644 --- a/m2gl.js +++ b/m2gl.js @@ -26,8 +26,8 @@ var argv = require('optimist') .describe('f', 'The first issue # to import (Example: 123)') .argv; -var inputFile = __dirname + '/' + argv.input; -var configFile = __dirname + '/' + argv.config; +var inputFile = argv.input; +var configFile = argv.config; var fromIssueId = Number(argv.from||0); var gitlabAPIURLBase = argv.gitlaburl + '/api/v4'; var gitlabProjectName = argv.project; @@ -58,9 +58,10 @@ promise.then(function() { */ function getConfig() { log_progress("Reading configuration..."); - return FS.read(configFile, {encoding: 'utf8'}) + return FS.read(configFile) .then(function(data) { var config = JSON.parse(data); + config.users = _.extend({ "": { name: "Unknown", @@ -117,8 +118,11 @@ function getGitLabProject() { var url = gitlabAPIURLBase + '/projects'; var data = { per_page: 100, private_token: gitlabAdminPrivateToken, sudo: gitlabSudo }; - return rest.get(url, {data: data}).then(function(result) { - + return rest.get(url, {data: data}) + .fail(function(err) { + console.log(err); + }) + .then(function(result) { gitLab.project = _.find(result, { path_with_namespace : gitlabProjectName }) || null; if (!gitLab.project) { @@ -153,7 +157,7 @@ function mapGitLabUserIds() { var users = config.users, gitlabUsers = gitLab.gitlabUsers; _.forEach(users, function(user) { - user.gl_id = (_.find(gitlabUsers, { id: user.gl_username }) || {}).id; + user.gl_id = (_.find(gitlabUsers, { username: user.gl_username }) || {}).id; }); } @@ -228,13 +232,15 @@ function importIssue(mantisIssue) { return getIssue(gitLab.project.id, issueId) .then(function(gitLabIssue) { if (gitLabIssue) { - return updateIssue(gitLab.project.id, issueId, _.extend({ + return updateIssue(gitLab.project.id, gitLabIssue.iid, _.extend({ state_event: isClosed(mantisIssue) ? 'close' : 'reopen' }, data)) .then(function() { - console.log(("#" + issueId + ": Updated successfully.").green); + console.log(("#" + gitLabIssue.iid + ": Updated successfully.").green); }); } else { + console.log(data.title); + //return true; // FIXME return insertSkippedIssues(issueId-1) .then(function() { return insertAndCloseIssue(issueId, data, isClosed(mantisIssue)); @@ -248,7 +254,8 @@ function insertSkippedIssues(issueId) { return Q(); } - console.warn(("Skipping Missing Mantis Issue (<= #" + issueId + ") ...").yellow); + //FIXME console.warn(("Skipping Missing Mantis Issue (<= #" + issueId + ") ...").yellow); + console.log(("Adding" + issueId + ") ...").blue); var data = { title: "--Platzhalter--", @@ -318,13 +325,18 @@ function getRemainingGitLabProjectIssues(page, per_page) { log_progress("Fetching Project Issues from GitLab [" + (from + 1) + "-" + (from + per_page) + "]..."); var url = gitlabAPIURLBase + '/projects/' + gitLab.project.id + "/issues"; var data = { + page: page, + per_page: per_page, // FIXME: schnalke - //page: page, - //per_page: per_page, //order_by: 'id', private_token: gitlabAdminPrivateToken, sudo: gitlabSudo }; - return rest.get(url, {data: data}).then(function(issues) { + return rest.get(url, {data: data}) + return rest.get(url, {data: data}) + .fail(function(err) { + console.log(err); + }) + .then(function(issues) { if(issues.length < per_page) { return issues; } @@ -444,8 +456,8 @@ function insertIssue(projectId, data) { }); } -function updateIssue(projectId, issueId, data) { - var url = gitlabAPIURLBase + '/projects/' + projectId + '/issues/' + issueId; +function updateIssue(projectId, issueIId, data) { + var url = gitlabAPIURLBase + '/projects/' + projectId + '/issues/' + issueIId; return rest.put(url, {data: data}) .then(null, function(error) { @@ -454,7 +466,7 @@ function updateIssue(projectId, issueId, data) { } function closeIssue(issue, custom) { - var url = gitlabAPIURLBase + '/projects/' + issue.project_id + '/issues/' + issue.id; + var url = gitlabAPIURLBase + '/projects/' + issue.project_id + '/issues/' + issue.iid; var data = _.extend({ state_event: 'close', private_token: gitlabAdminPrivateToken,