load("//bazel/go:go_test.bzl", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_library")

go_library(
    name = "watcher",
    srcs = [
        "initial.go",
        "watcher.go",
    ],
    importpath = "go.skia.org/infra/gitsync/go/watcher",
    visibility = ["//visibility:public"],
    deps = [
        "//go/cleanup",
        "//go/common",
        "//go/gcs",
        "//go/gcs/gcsclient",
        "//go/git",
        "//go/git/repograph",
        "//go/gitiles",
        "//go/gitstore",
        "//go/gitstore/bt_gitstore",
        "//go/gitstore/pubsub",
        "//go/httputils",
        "//go/metrics2",
        "//go/skerr",
        "//go/sklog",
        "//go/timer",
        "//go/util",
        "//go/vcsinfo",
        "@com_github_google_uuid//:uuid",
        "@com_google_cloud_go_storage//:storage",
        "@org_golang_x_oauth2//:oauth2",
        "@org_golang_x_sync//errgroup",
    ],
)

go_test(
    name = "watcher_test",
    srcs = [
        "initial_test.go",
        "watcher_test.go",
    ],
    embed = [":watcher"],
    deps = [
        "//go/deepequal/assertdeep",
        "//go/gcs/mem_gcsclient",
        "//go/git",
        "//go/git/repograph",
        "//go/git/repograph/shared_tests",
        "//go/git/testutils",
        "//go/gitiles",
        "//go/gitiles/testutils",
        "//go/gitstore",
        "//go/gitstore/bt_gitstore/testutils",
        "//go/gitstore/mocks",
        "//go/mockhttpclient",
        "//go/sklog",
        "//go/testutils",
        "//go/testutils/unittest",
        "//go/util",
        "//go/vcsinfo",
        "@com_github_google_uuid//:uuid",
        "@com_github_stretchr_testify//require",
    ],
)
