<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(args, shell=False, exit=True):
 """ Run the command ``args``. Automatically hides the secret GitHub token from the output. If shell=False (recommended for most commands), args should be a list of strings. If shell=True, args should be a string of the command to run. If exit=True, it exits on nonzero returncode. Otherwise it returns the returncode. """

    if "GH_TOKEN" in os.environ:
        token = get_token()
    else:
        token = b''

    if not shell:
        command = ' '.join(map(shlex.quote, args))
    else:
        command = args
    command = command.replace(token.decode('utf-8'), '~'*len(token))
    print(blue(command))
    sys.stdout.flush()

    returncode = run_command_hiding_token(args, token, shell=shell)

    if exit and returncode != 0:
        sys.exit(red("%s failed: %s" % (command, returncode)))
    return returncode