Remove GitlabIssueTrackerService

I'm working on cleaning up the services table (&3366 (closed)). There are 998778 records with type GitlabIssueTrackerService on staging and it is likely that the number on production and self managed instances is also high.

It looks like GitlabIssueTrackerService is not used anymore. Project returns it as the default_issue_tracker when a project doesn't have an external issue tracker. But in all references, there is another condition that makes sure it is an external issue so GitlabIssueTrackerService is never actually used.

Iterations

We can split this up into several iterations:

  1. Tweak IssuesHelper to not use project.issues_tracker for internal issues anymore (!32330 (merged))
  2. Tweak the cross_reference method to not crash in case we use an external issue but there is no issue tracker !33263 (merged)
  3. Change this to .. || build_gitlab_issue_tracker_service and do GitlabIssueTrackerService.delete_all in a migration (might be dangorouse to remove the GitlabIssueTrackerService class when there are still DB records)
  4. Remove GitlabIssueTrackerService class, see #218526 (comment 380963641) below
  5. Remove default column and scope (#217581 (closed))
Edited by Arturo Herrero