Extend tag_versions script to tag all agp versions

Change-Id: I6aeb88e0d043dc8e10de857abb2d3a9fd65f48e2
diff --git a/tools/tag_versions.py b/tools/tag_versions.py
index ebf14ba..28a1cae 100755
--- a/tools/tag_versions.py
+++ b/tools/tag_versions.py
@@ -44,7 +44,10 @@
   if args.branch:
     tag_r8_branch(args.branch, args)
   elif args.agp:
-    tag_agp_version(args.agp, args)
+    if (args.agp == 'all'):
+      tag_all_agp_versions(args)
+    else:
+      tag_agp_version(args.agp, args)
   else:
     print("Should use a top-level option, such as --branch or --agp.")
     return 1
@@ -71,6 +74,26 @@
     return None
   return output
 
+def tag_all_agp_versions(args):
+  with utils.TempDir() as temp:
+    url = "%s/maven-metadata.xml" % AGP_MAVEN
+    metadata = os.path.join(temp, "maven-metadata.xml")
+    try:
+      urllib.request.urlretrieve(url, metadata)
+    except urllib.error.HTTPError as e:
+      print('Could not find maven-metadata.xml for agp')
+      print(e)
+      return 1
+    with open(metadata, 'r') as file:
+      data = file.read()
+      pattern = r'<version>(.+)</version>'
+      matches = re.findall(pattern, data)
+      matches.reverse()
+      for version in matches:
+        print('Tagging agp version ' + version)
+        tag_agp_version(version, args)
+
+
 def tag_agp_version(agp, args):
   tag = 'agp-%s' % agp
   result = get_tag_info_on_origin(tag)