Browse Source

Setting issues closed when closed.

Herbert Vojčík 7 years ago
parent
commit
a215699f19
1 changed files with 25 additions and 3 deletions
  1. 25 3
      gh2gogs.js

+ 25 - 3
gh2gogs.js

@@ -6,7 +6,8 @@ const fs = require('fs'),
 const sourceDir = process.argv[2],
     sourceRepo = process.argv[3],
     destUrl = process.argv[4],
-    destRepo = process.argv[5];
+    destRepo = process.argv[5],
+    actions = process.argv[6];
 
 process.chdir(sourceDir);
 
@@ -41,7 +42,7 @@ function createIssue (issue) {
             body: {
                 title: issue.title,
                 body: `Originally at ${issue.created_at} by ${username}${issue.closed_at ? ` closed at ${issue.closed_at}` : ""}${issue.type === "pull_request" ? " (pull request)" : ""}\r\n\r\n${issue.body}`,
-                closed: !!issue.closed_at,
+                // closed: !!issue.closed_at,
                 labels: [] //issue.labels.map(each => each.split('/').pop())
             }
         })
@@ -54,12 +55,33 @@ function createIssue (issue) {
         });
 }
 
+function setCloseIssue (issue) {
+    const index = issue.url.split('/').pop();
+
+    if (issue.closed_at) return rp
+        .patch(`${destUrl}/api/v1/repos/${destRepo}/issues/${index}`, {
+            json: true,
+            resolveWithFullResponse: true,
+            body: {
+                state: "closed"
+            }
+        })
+        .catch(err => {
+            console.error(err);
+        })
+        .then(res => {
+            console.log(issue.title);
+            if (res) console.log(res.statusCode);
+        });
+}
+
 function processIssue (issues) {
     const issue = issues.shift();
     if (!issue) return Promise.resolve();
 
     return Promise.resolve()
-        .then(() => createIssue(issue))
+        .then(() => /\bcreate\b/.test(actions) && createIssue(issue))
+        .then(() => /\bsetclose\b/.test(actions) && setCloseIssue(issue))
         .then(() => processIssue(issues));
 }