Add support for tags in AndroidStudioInfoAspect.

--
MOS_MIGRATED_REVID=104331163
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
index c47d969..b6badb5 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
@@ -219,6 +219,8 @@
     outputBuilder.addAllTransitiveDependencies(
         transform(provider.getTransitiveDependencies(), LABEL_TO_STRING));
 
+    outputBuilder.addAllTags(base.getTarget().getAssociatedRule().getRuleTags());
+
     final RuleIdeInfo ruleIdeInfo = outputBuilder.build();
     ruleContext.registerAction(
         makeProtoWriteAction(ruleContext.getActionOwner(), ruleIdeInfo, ideBuildFile));
diff --git a/src/main/protobuf/android_studio_ide_info.proto b/src/main/protobuf/android_studio_ide_info.proto
index ee0d327..70f8761 100644
--- a/src/main/protobuf/android_studio_ide_info.proto
+++ b/src/main/protobuf/android_studio_ide_info.proto
@@ -81,4 +81,6 @@
   // kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
   JavaRuleIdeInfo java_rule_ide_info = 7;
   AndroidRuleIdeInfo android_rule_ide_info = 8;
+
+  repeated string tags = 9;
 }
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
index 7c78707..8f68ead 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
@@ -631,6 +631,21 @@
         .isEqualTo("bad.package.google.example");
   }
 
+  public void testTags() throws Exception {
+    scratch.file(
+        "com/google/example/BUILD",
+        "java_library(",
+        "    name = 'lib',",
+        "    srcs = ['Test.java'],",
+        "    tags = ['d', 'b', 'c', 'a'],",
+        ")");
+    String target = "//com/google/example:lib";
+    Map<String, RuleIdeInfo> ruleIdeInfos = buildRuleIdeInfo(target);
+    RuleIdeInfo ruleIdeInfo = getRuleInfoAndVerifyLabel(target, ruleIdeInfos);
+    assertThat(ruleIdeInfo.getTagsList())
+        .containsExactly("a", "b", "c", "d");
+  }
+
   private Map<String, RuleIdeInfo> buildRuleIdeInfo(String target) throws Exception {
     AnalysisResult analysisResult =
         update(