def METHOD_NAME(args=None):
    parser = argparse.ArgumentParser(
        prog="git_repo_scanner",
        description="Scan public or private git repositories of organizations or groups",
    )
    parser.add_argument(
        "--git-type",
        help="Repository type can be github or GitLab",
        choices=["github", "gitlab"],
        required=True,
    )
    parser.add_argument(
        "--file-output", help="The path of the output file", required=True
    ),
    parser.add_argument(
        "--url", help="The GitLab url or a GitHub enterprise api url.", required=False
    )
    parser.add_argument(
        "--access-token", help="An access token for authentication", required=False
    )
    parser.add_argument(
        "--organization",
        help="The name of the GitHub organization to scan",
        required=False,
    )
    parser.add_argument(
        "--group", help="The id of the GitLab group to scan", type=int, required=False
    )
    parser.add_argument(
        "--ignore-repos",
        help="A list of repo ids to ignore",
        action="extend",
        nargs="+",
        type=int,
        default=[],
        required=False,
    )
    parser.add_argument(
        "--ignore-groups",
        help="A list of GitLab group ids to ignore",
        action="extend",
        nargs="+",
        type=int,
        default=[],
        required=False,
    )
    parser.add_argument(
        "--obey-rate-limit",
        help="True to obey the rate limit of the GitLab or GitHub server (default), otherwise False",
        type=bool,
        default=True,
        required=False,
    )
    parser.add_argument(
        "--annotate-latest-commit-id",
        help="Annotate the results with the latest commit hash of the main branch of the repository. "
        "Will result in up to two extra API hits per repository",
        type=bool,
        default=False,
        required=False,
    )
    parser.add_argument(
        "--activity-since-duration",
        help="Return git repo findings with repo activity (e.g. commits) more recent than a specific "
        "date expressed by a duration (now - duration)",
        type=parse_duration_as_datetime,
        required=False,
    )
    parser.add_argument(
        "--activity-until-duration",
        help="Return git repo findings with repo activity (e.g. commits) older than a specific date "
        "expressed by a duration (now - duration)",
        type=parse_duration_as_datetime,
        required=False,
    )
    return parser.parse_args(args)