crowdin: Don't require username

* We can get it automatically from git

Change-Id: I256a25f4383235a5748558dddccdc5403e2855cb
diff --git a/crowdin_sync.py b/crowdin_sync.py
index 3a4a69a..95cae40 100755
--- a/crowdin_sync.py
+++ b/crowdin_sync.py
@@ -32,6 +32,7 @@
 import time
 import threading
 
+from distutils.util import strtobool
 from lxml import etree
 from signal import signal, SIGINT
 
@@ -372,6 +373,38 @@
                 yield os.path.join(dp, f)
 
 
+def get_username(args):
+    username = args.username
+    if (args.submit or args.download) and username is None:
+        # try getting the username from git
+        msg, code = run_subprocess(
+            ["git", "config", "--get", "review.review.lineageos.org.username"],
+            silent=True,
+        )
+        has_username = False
+        if code == 0:
+            username = msg[0].strip("\n")
+            if username != "":
+                has_username = user_prompt(
+                    f"Argument -u/--username was not specified but found '{username}', "
+                    f"continue?"
+                )
+            else:
+                print("Argument -u/--username is required!")
+        if not has_username:
+            sys.exit(1)
+    return username
+
+
+def user_prompt(question):
+    while True:
+        user_input = input(question + " [y/n]: ")
+        try:
+            return bool(strtobool(user_input))
+        except ValueError:
+            print("Please use y/n or yes/no.\n")
+
+
 # ############################################################################ #
 
 
@@ -646,11 +679,9 @@
     args = parse_args()
     default_branch = args.branch
 
+    username = get_username(args)
     if args.submit:
-        if args.username is None:
-            print("Argument -u/--username is required for submitting!")
-            sys.exit(1)
-        submit_gerrit(default_branch, args.username, args.owner)
+        submit_gerrit(default_branch, username, args.owner)
         sys.exit(0)
 
     base_path = get_base_path(default_branch)
@@ -659,10 +690,6 @@
     if args.path_to_crowdin == "crowdin" and not check_dependencies():
         sys.exit(1)
 
-    if args.download and args.username is None:
-        print("Argument -u/--username is required for translations download")
-        sys.exit(1)
-
     if args.upload_sources:
         upload_sources_crowdin(default_branch, config_dict, args.path_to_crowdin)
     elif args.upload_translations:
@@ -673,7 +700,7 @@
             base_path,
             default_branch,
             xml_files,
-            args.username,
+            username,
             config_dict,
             args.path_to_crowdin,
         )