https://github.com/broadinstitute/sherlock

DSP DevOps's deployment source-of-truth service

https://github.com/broadinstitute/sherlock

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.9%) to scientific vocabulary

Keywords

golang gorm postgres
Last synced: 5 months ago · JSON representation

Repository

DSP DevOps's deployment source-of-truth service

Basic Info
Statistics
  • Stars: 1
  • Watchers: 43
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
golang gorm postgres
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Codeowners Security

README.md

Sherlock

codecov Go Report Card latest build Quality Gate Status

DSP DevOps's Source-of-Truth Service

Sherlock stores information about our Kubernetes-based deployments, including Helm Chart versions and application versions. Sherlock doesn't do the deploying itself--it offers an API that other tools can use to understand our infrastructure.

The primary clients are Beehive, a UI for changing the information stored in Sherlock, and Thelma, a CLI that combines Sherlock's knowledge with Helm, ArgoCD, and Kubernetes APIs to directly manage infrastructure.

Project Structure

Sherlock is a Golang server relying on a Postgres database.

An overview of interactions:

| Sherlock | | |---------------------------|----------------------------------------------------------------------------------------------------------------| | API Endpoint | :8080/api | | Swagger Endpoint | :8080/swagger/index.html | | Prometheus Endpoint | :8080/metrics | | Go Client Library | ./sherlock-go-client | | TypeScript Client Library | ./sherlock-typescript-client | | CLI | Via Thelma | | GitHub Actions | Via Thelma and ./.github/workflows/client-* | | UI | Via Beehive |

Sherlock is meant to be deployed behind Google Cloud's Identity-Aware Proxy. It connects to Google Workspace's Admin API to evaluate permissions of the calling users.

Developing Locally

GoLand should be able to understand the monorepo structure and should download dependencies appropriately.

Some key makefile commands:

  • make install-pact will ask for sudo credentials to install the Pact FFI library necessary for running those tests
  • make pg-up will run a blank local database so that GoLand can run tests for you
    • make pg-down will tear it down if it gets in a bad state
  • make local-up will run Sherlock locally (different database from make pg-up's, so you can add state there)
    • make local-stop will shut down Sherlock so you can rebuild it without wiping your database state
    • make local-down will wipe your database state

There's more in the makefile.

Owner

  • Name: Broad Institute
  • Login: broadinstitute
  • Kind: organization
  • Location: Cambridge, MA

Broad Institute of MIT and Harvard

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 3
  • Total pull requests: 933
  • Average time to close issues: about 6 hours
  • Average time to close pull requests: 6 days
  • Total issue authors: 2
  • Total pull request authors: 12
  • Average comments per issue: 2.0
  • Average comments per pull request: 2.18
  • Merged pull requests: 694
  • Bot issues: 2
  • Bot pull requests: 549
Past Year
  • Issues: 1
  • Pull requests: 373
  • Average time to close issues: 9 minutes
  • Average time to close pull requests: 5 days
  • Issue authors: 1
  • Pull request authors: 6
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.94
  • Merged pull requests: 253
  • Bot issues: 1
  • Bot pull requests: 333
Top Authors
Issue Authors
  • dependabot[bot] (2)
  • jack-r-warren (1)
Pull Request Authors
  • dependabot[bot] (549)
  • jack-r-warren (319)
  • katiewelch (15)
  • mflinn-broad (14)
  • choover-broad (10)
  • John-Scira (7)
  • em-may (6)
  • ungwudik (4)
  • jyang-broad (4)
  • knapii-developments (3)
  • ichengchang (1)
  • dmohs (1)
Top Labels
Issue Labels
dependencies (2) go (2)
Pull Request Labels
dependencies (549) go (520) github_actions (29)

Dependencies

.github/workflows/client-get-chart-release.yaml actions
  • google-github-actions/auth v0 composite
.github/workflows/client-get-environment.yaml actions
  • google-github-actions/auth v0 composite
.github/workflows/client-refresh-environment.yaml actions
  • aurelien-baudet/workflow-dispatch v2 composite
  • google-github-actions/auth v0 composite
.github/workflows/client-report-app-version.yaml actions
  • actions/checkout v3 composite
  • google-github-actions/auth v0 composite
.github/workflows/client-set-environment-app-version.yaml actions
  • aurelien-baudet/workflow-dispatch v2 composite
  • google-github-actions/auth v0 composite
.github/workflows/sherlock-build.yaml actions
  • ./.github/actions/push-with-retry * composite
  • actions/checkout v2 composite
  • actions/setup-go v3 composite
  • actions/setup-node v3 composite
  • broadinstitute/dsp-appsec-trivy-action v1 composite
  • databiosphere/github-actions/actions/bumper bumper-0.0.6 composite
  • google-github-actions/auth v0 composite
  • google-github-actions/setup-gcloud v0 composite
.github/workflows/sherlock-lint.yaml actions
  • actions/checkout v2 composite
  • golangci/golangci-lint-action v2 composite
.github/workflows/sherlock-test.yaml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
  • codecov/codecov-action v1 composite
.github/workflows/client-report-chart-version.yaml actions
  • actions/checkout v4 composite
  • actions/github-script v6 composite
  • google-github-actions/auth v1 composite
.github/workflows/client-report-workflow.yaml actions
  • actions/github-script v6 composite
  • google-github-actions/auth v1 composite
.github/workflows/client-set-environment-chart-version.yaml actions
  • actions/github-script v6 composite
  • broadinstitute/workflow-dispatch v3 composite
  • google-github-actions/auth v1 composite
.github/workflows/sherlock-api-diff.yaml actions
  • actions/checkout v4 composite
  • actions/setup-go v4 composite
  • char0n/swagger-editor-validate v1 composite
  • marocchino/sticky-pull-request-comment v2 composite
.github/workflows/sherlock-dependency-review.yaml actions
  • actions/checkout v4 composite
  • actions/dependency-review-action v3 composite
.github/workflows/sherlock-webhook-proxy-deploy.yaml actions
  • actions/checkout v4 composite
  • actions/setup-go v4 composite
  • google-github-actions/auth v1 composite
  • google-github-actions/setup-gcloud v1 composite
.github/workflows/test-auth-transparency.yaml actions
  • actions/github-script v6 composite
  • google-github-actions/auth v1 composite
sherlock/Dockerfile docker
  • gcr.io/distroless/static nonroot build
  • golang ${GO_VERSION}-alpine${ALPINE_VERSION} build
go-shared/go.mod go
  • github.com/google/go-cmp v0.5.9
go-shared/go.sum go
  • github.com/google/go-cmp v0.5.9
sherlock/go.mod go
  • cloud.google.com/go/compute v1.23.0
  • cloud.google.com/go/compute/metadata v0.2.3
  • contrib.go.opencensus.io/exporter/prometheus v0.4.2
  • github.com/KyleBanks/depth v1.2.1
  • github.com/PagerDuty/go-pagerduty v1.7.0
  • github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8
  • github.com/beorn7/perks v1.0.1
  • github.com/broadinstitute/sherlock/go-shared v0.0.0
  • github.com/bytedance/sonic v1.9.1
  • github.com/cespare/xxhash/v2 v2.2.0
  • github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311
  • github.com/cloudflare/circl v1.3.3
  • github.com/coreos/go-oidc v2.2.1+incompatible
  • github.com/creasty/defaults v1.7.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/dustinkirkland/golang-petname v0.0.0-20230626224747-e794b9370d49
  • github.com/fsnotify/fsnotify v1.6.0
  • github.com/gabriel-vasile/mimetype v1.4.2
  • github.com/gin-contrib/sse v0.1.0
  • github.com/gin-gonic/gin v1.9.1
  • github.com/go-kit/log v0.2.1
  • github.com/go-logfmt/logfmt v0.5.1
  • github.com/go-openapi/jsonpointer v0.19.6
  • github.com/go-openapi/jsonreference v0.20.2
  • github.com/go-openapi/spec v0.20.9
  • github.com/go-openapi/swag v0.22.3
  • github.com/go-playground/locales v0.14.1
  • github.com/go-playground/universal-translator v0.18.1
  • github.com/go-playground/validator/v10 v10.14.1
  • github.com/go-sql-driver/mysql v1.7.0
  • github.com/goccy/go-json v0.10.2
  • github.com/golang-migrate/migrate/v4 v4.16.2
  • github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
  • github.com/golang/protobuf v1.5.3
  • github.com/google/go-cmp v0.5.9
  • github.com/google/go-github/v50 v50.2.0
  • github.com/google/go-querystring v1.1.0
  • github.com/google/s2a-go v0.1.7
  • github.com/google/uuid v1.3.1
  • github.com/googleapis/enterprise-certificate-proxy v0.2.5
  • github.com/googleapis/gax-go/v2 v2.12.0
  • github.com/gorilla/websocket v1.4.2
  • github.com/hashicorp/errwrap v1.1.0
  • github.com/hashicorp/go-multierror v1.1.1
  • github.com/jackc/pgerrcode v0.0.0-20220416144525-469b46aa5efa
  • github.com/jackc/pgpassfile v1.0.0
  • github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
  • github.com/jackc/pgx/v5 v5.4.3
  • github.com/jinzhu/inflection v1.0.0
  • github.com/jinzhu/now v1.1.5
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.12
  • github.com/klauspost/cpuid/v2 v2.2.4
  • github.com/knadh/koanf v1.5.0
  • github.com/kr/pretty v0.3.1
  • github.com/leodido/go-urn v1.2.4
  • github.com/lib/pq v1.10.7
  • github.com/mailru/easyjson v0.7.7
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.19
  • github.com/matttproud/golang_protobuf_extensions v1.0.4
  • github.com/mitchellh/copystructure v1.2.0
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/mitchellh/reflectwalk v1.0.2
  • github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
  • github.com/modern-go/reflect2 v1.0.2
  • github.com/pelletier/go-toml/v2 v2.0.9
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021
  • github.com/prometheus/client_golang v1.14.0
  • github.com/prometheus/client_model v0.3.0
  • github.com/prometheus/common v0.37.0
  • github.com/prometheus/procfs v0.8.0
  • github.com/prometheus/statsd_exporter v0.22.8
  • github.com/rogpeppe/go-internal v1.10.0
  • github.com/rs/zerolog v1.30.0
  • github.com/slack-go/slack v0.12.3
  • github.com/stretchr/objx v0.5.0
  • github.com/stretchr/testify v1.8.4
  • github.com/swaggo/files v1.0.1
  • github.com/swaggo/gin-swagger v1.6.0
  • github.com/swaggo/swag v1.16.2
  • github.com/twitchyliquid64/golang-asm v0.15.1
  • github.com/ugorji/go/codec v1.2.11
  • go.opencensus.io v0.24.0
  • go.uber.org/atomic v1.10.0
  • golang.org/x/arch v0.3.0
  • golang.org/x/crypto v0.13.0
  • golang.org/x/net v0.15.0
  • golang.org/x/oauth2 v0.12.0
  • golang.org/x/sys v0.12.0
  • golang.org/x/text v0.13.0
  • golang.org/x/tools v0.12.0
  • google.golang.org/api v0.140.0
  • google.golang.org/appengine v1.6.7
  • google.golang.org/genproto/googleapis/rpc v0.0.0-20230911183012-2d3300fd4832
  • google.golang.org/grpc v1.57.0
  • google.golang.org/protobuf v1.31.0
  • gopkg.in/square/go-jose.v2 v2.5.1
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
  • gorm.io/datatypes v1.2.0
  • gorm.io/driver/mysql v1.4.7
  • gorm.io/driver/postgres v1.5.2
  • gorm.io/gorm v1.25.4
sherlock/go.sum go
  • 818 dependencies
sherlock-go-client/go.mod go
  • github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
  • github.com/go-logr/logr v1.2.3
  • github.com/go-logr/stdr v1.2.2
  • github.com/go-openapi/analysis v0.21.4
  • github.com/go-openapi/errors v0.20.4
  • github.com/go-openapi/jsonpointer v0.19.5
  • github.com/go-openapi/jsonreference v0.20.0
  • github.com/go-openapi/loads v0.21.2
  • github.com/go-openapi/runtime v0.26.0
  • github.com/go-openapi/spec v0.20.8
  • github.com/go-openapi/strfmt v0.21.7
  • github.com/go-openapi/swag v0.22.4
  • github.com/go-openapi/validate v0.22.1
  • github.com/josharian/intern v1.0.0
  • github.com/mailru/easyjson v0.7.7
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/oklog/ulid v1.3.1
  • github.com/opentracing/opentracing-go v1.2.0
  • go.mongodb.org/mongo-driver v1.11.3
  • go.opentelemetry.io/otel v1.14.0
  • go.opentelemetry.io/otel/trace v1.14.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
sherlock-go-client/go.sum go
  • 178 dependencies
sherlock-webhook-proxy/go.mod go
  • cloud.google.com/go/functions v1.13.0
  • github.com/GoogleCloudPlatform/functions-framework-go v1.7.4
  • github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
  • github.com/broadinstitute/sherlock/go-shared v0.0.0
  • github.com/broadinstitute/sherlock/sherlock-go-client v0.0.0
  • github.com/cloudevents/sdk-go/v2 v2.14.0
  • github.com/go-logr/logr v1.2.3
  • github.com/go-logr/stdr v1.2.2
  • github.com/go-openapi/analysis v0.21.4
  • github.com/go-openapi/errors v0.20.4
  • github.com/go-openapi/jsonpointer v0.19.5
  • github.com/go-openapi/jsonreference v0.20.0
  • github.com/go-openapi/loads v0.21.2
  • github.com/go-openapi/runtime v0.26.0
  • github.com/go-openapi/spec v0.20.8
  • github.com/go-openapi/strfmt v0.21.7
  • github.com/go-openapi/swag v0.22.4
  • github.com/go-openapi/validate v0.22.1
  • github.com/go-playground/webhooks/v6 v6.3.0
  • github.com/google/uuid v1.3.0
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.10
  • github.com/mailru/easyjson v0.7.7
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
  • github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742
  • github.com/oklog/ulid v1.3.1
  • github.com/opentracing/opentracing-go v1.2.0
  • go.mongodb.org/mongo-driver v1.11.3
  • go.opentelemetry.io/otel v1.14.0
  • go.opentelemetry.io/otel/trace v1.14.0
  • go.uber.org/atomic v1.4.0
  • go.uber.org/multierr v1.1.0
  • go.uber.org/zap v1.10.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
sherlock-webhook-proxy/go.sum go
  • 1621 dependencies
sherlock-typescript-client/package-lock.json npm
  • typescript 4.8.3 development
sherlock-typescript-client/package.json npm
  • typescript ^4.0 development