Add tags to scan command

"scan" command will now also update all tags in a repository.

Change-Id: Ib13fc5a908183aac7e8df275855615839c9389d7
diff --git a/src/main/java/com/googlesource/gerrit/plugins/repositoryuse/ScanTaskImpl.java b/src/main/java/com/googlesource/gerrit/plugins/repositoryuse/ScanTaskImpl.java
index 9904996..969c7e9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/repositoryuse/ScanTaskImpl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/repositoryuse/ScanTaskImpl.java
@@ -16,6 +16,7 @@
 
 import com.google.gerrit.extensions.api.projects.BranchInfo;
 import com.google.gerrit.extensions.api.projects.Projects;
+import com.google.gerrit.extensions.api.projects.TagInfo;
 import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.inject.assistedinject.Assisted;
 import com.google.inject.assistedinject.AssistedInject;
@@ -71,27 +72,45 @@
 
   @Override
   public void run() {
-    List<BranchInfo> branches = null;
     try {
-      branches = projects.name(project).branches().get();
+      List<BranchInfo> branches = projects.name(project).branches().get();
+
+      if (branch != null && !branch.startsWith(Constants.R_HEADS)) {
+        branch = Constants.R_HEADS + branch;
+      }
+
+      for (BranchInfo currentBranch : branches) {
+        // Create with a "new" base commit to rescan entire branch
+        if (branch == null || branch == currentBranch.ref) {
+          RefUpdate rescan = new RefUpdate(project, currentBranch.ref,
+              ObjectId.zeroId().getName(), currentBranch.revision);
+          try {
+            refUpdateHandlerFactory.create(rescan).run();
+          } catch (Exception e) {
+            log.error(String.format("Error updating %s branch %s: %s", project,
+                currentBranch.ref, e.getMessage()), e);
+          }
+        }
+      }
     } catch (RestApiException e) {
       log.error(e.getMessage(), e);
     }
-    if (branch != null && !branch.startsWith(Constants.R_HEADS)) {
-      branch = Constants.R_HEADS + branch;
-    }
-    for (BranchInfo currentBranch : branches) {
-      // Create with a "new" base commit to rescan entire branch
-      if (branch == null || branch == currentBranch.ref) {
-        RefUpdate rescan = new RefUpdate(project, currentBranch.ref,
-            ObjectId.zeroId().getName(), currentBranch.revision);
+
+    try {
+      List<TagInfo> tags = projects.name(project).tags().get();
+
+      for (TagInfo currentTag : tags) {
+        RefUpdate rescan = new RefUpdate(project, currentTag.ref,
+            ObjectId.zeroId().getName(), currentTag.revision);
         try {
           refUpdateHandlerFactory.create(rescan).run();
         } catch (Exception e) {
-          log.error(String.format("Error updating %s branch %s: %s", project,
-              branch, e.getMessage()), e);
+          log.error(String.format("Error updating %s tag %s: %s", project,
+              currentTag.ref, e.getMessage()), e);
         }
       }
+    } catch (RestApiException e) {
+      log.error(e.getMessage(), e);
     }
   }