diff --git a/config.json b/config.json new file mode 100644 index 0000000000000000000000000000000000000000..75a4921800daa073138569902111c83012eb18be --- /dev/null +++ b/config.json @@ -0,0 +1,3 @@ +{ + "gitlab-access-token": "se7cRwBAyySpFnzWmk7a" +} diff --git a/migrate.php b/migrate.php index 78449d54e092bc2a1cd5b24fcbf6d3e2187c0842..8d2aecb9a61ae000dae0110e87a4501882b02c95 100755 --- a/migrate.php +++ b/migrate.php @@ -24,6 +24,7 @@ $getopt = new Getopt(array( array('v', 'version', Getopt::NO_ARGUMENT, 'Just shows the version') )); +$issue_mapping = []; try { $getopt->parse(); @@ -55,11 +56,11 @@ try { $migration = new Migration($getopt->getOption('gitlab'), $getopt->getOption('token'), $getopt->getOption('admin'), $getopt->getOption('trac'), $getopt->getOption('link'), $userMapping); // If we have a component, migrate it if (!is_null($getopt->getOption('component'))) { - $migration->migrateComponent($getopt->getOption('component'), $getopt->getOption('project')); + $issue_mapping = $migration->migrateComponent($getopt->getOption('component'), $getopt->getOption('project')); } // If we have a custom query, migrate it if (!is_null($getopt->getOption('query'))) { - $migration->migrateQuery($getopt->getOption('query'), $getopt->getOption('project')); + $issue_mapping = $migration->migrateQuery($getopt->getOption('query'), $getopt->getOption('project')); } } catch (UnexpectedValueException $e) { echo "Error: ".$e->getMessage()."\n"; diff --git a/src/Migration.php b/src/Migration.php index 6659e5d3543b1fd7f482072c3294c258d04cb51b..c716f30a99c90984eb9680a3b24a5fbe917778bf 100644 --- a/src/Migration.php +++ b/src/Migration.php @@ -43,7 +43,7 @@ class Migration */ public function migrateComponent($tracComponentName, $gitLabProject) { $openTickets = $this->trac->listOpenTicketsForComponent($tracComponentName); - $this->migrate($openTickets, $gitLabProject); + return $this->migrate($openTickets, $gitLabProject); } /** @@ -54,7 +54,7 @@ class Migration */ public function migrateQuery($tracQuery, $gitLabProject) { $openTickets = $this->trac->listTicketsForQuery($tracQuery); - $this->migrate($openTickets, $gitLabProject); + return $this->migrate($openTickets, $gitLabProject); } /** @@ -93,6 +93,7 @@ class Migration * @param string $gitLabProject GitLab project in which the issues should be created */ private function migrate($openTickets, $gitLabProject) { + $mapping = []; foreach($openTickets as $ticket) { $originalTicketId = $ticket[0]; $title = $ticket[3]['summary']; @@ -115,6 +116,8 @@ class Migration echo 'Created a GitLab issue #' . $issue['iid'] . ' for Trac ticket #' . $originalTicketId . ' : ' . $this->gitLab->getUrl() . '/' . $gitLabProject . '/issues/' . $issue['iid'] . "\n"; + $mapping[$originalTicketId] = $issue['iid']; + // If there are comments on the ticket, create notes on the issue /*if (is_array($ticket[4]) && count($ticket[4])) { foreach($ticket[4] as $comment) { @@ -126,6 +129,7 @@ class Migration echo "\tAlso created " . count($ticket[4]) . " note(s)\n"; }*/ } + return $mapping; } /**