def METHOD_NAME(name, visibility = None, **kwargs):
    actual_name = "%s_actual" % name
    native.alias(
        name = name,
        actual = select({
            "@io_bazel_rules_go//go/private:nogo_active": actual_name,
            "//conditions:default": Label("//:default_nogo"),
        }),
        visibility = visibility,
    )
    # With --use_top_level_targets_for_symlinks, which is enabled by default in
    # Bazel 6.0.0, self-transitioning top-level targets prevent the bazel-bin
    # convenience symlink from being created. Since nogo targets are of this
    # type, their presence would trigger this behavior. Work around this by
    # excluding them from wildcards - they are still transitively built as a
    # tool dependency of every Go target.
    kwargs.setdefault("tags", [])
    if "manual" not in kwargs["tags"]:
        kwargs["tags"].append("manual")
    _nogo(
        name = actual_name,
        visibility = visibility,
        **kwargs
    )