https://github.com/broadinstitute/thelma

https://github.com/broadinstitute/thelma

Science Score: 13.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
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: broadinstitute
  • License: bsd-3-clause
  • Language: Go
  • Default Branch: main
  • Size: 1.98 MB
Statistics
  • Stars: 0
  • Watchers: 26
  • Forks: 1
  • Open Issues: 10
  • Releases: 0
Created over 4 years ago · Last pushed 10 months ago
Metadata Files
Readme License Codeowners Security

README.md

thelma

codecov Go Report Card

thelma (short for Terra Helm Automator) is DSP-Devops' self service CLI tool for interacting with DSP infrastructure.

Thelma includes sub commands for a variety of different common use cases

The most common ones are 1. Rendering kubernetes manifests for helm charts in the terra-helmfile repo 2. Packaging and publishing helm charts 3. Lifecycle management for BEEs (Branch Engineering Environment) 4. Connect securely to Cloudsql instances

And more ... thelma --help for more info

Local Development

The Makefile has targets for facilitating local development, including:

make help    # Print out all Makefile targets w/ brief description
make build   # Compile thelma binary into output
make release # Assemble a thelma release
make test    # Run unit tests
make smoke   # Run unit and smoke tests
make cover   # View code coverage report for tests in browser

The build and release targets accept useful parameters:

# Run a cross-platform build if desired
make build OS=linux ARCH=amd64

# Assemble a cross-platform build into a release archive
make release OS=linux ARCH=arm64

Environment Setup

  1. Ensure you have the go 1.19 toolchain installed on your local machine brew install go@1.21
  2. Running thelma requires a local copy of the terra-helmfile repo. clone terra-helmfile
  3. Set the THELMA_HOME environment variable as the path to your local clone of terra-helmfile

Testing

The provided Makefile has utilities to easily run Thelma's test suites. From root of this repo make test will run all of thelma's test suites. Note to future Thelma developers Go's testing too chain runs all tests in parallel by default, be wary of this if writing any tests that rely on shared state.

make smoke will run just the smoke tests.

Both will automatically build a new thelma binary incorporating your latest changes before running the tests

Building Thelma Locally

make build will build a thelma binary incorporating the latest changes in your branch. The resulting build artifact will be output to ./output/bin/thelma, this will not interfere with other installs of thelma on your system. From there you can test new functionality by running thelma commands directly on your machine via $ ./output/bin/thelma [COMMAND] Since thelma is compiled there is no hot building. After each change you make it is necessary to rerun make build.

Common Use Cases

  1. I want to try creating a BEE using my branch of thelma: make build && ./output/bin/thelma bee create --name <UNIQUE_BEE_NAME>

  2. I want to render terra-helmfile k8s manifests for my application in my bee make build && ./output/bin/thelma render -e [BEE_NAME] -a [MY_APP]

Owner

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

Broad Institute of MIT and Harvard

GitHub Events

Total
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 5
  • Pull request review event: 3
  • Pull request event: 4
  • Create event: 4
Last Year
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 5
  • Pull request review event: 3
  • Pull request event: 4
  • Create event: 4

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 101
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 days
  • Total issue authors: 0
  • Total pull request authors: 7
  • Average comments per issue: 0
  • Average comments per pull request: 4.19
  • Merged pull requests: 85
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pshapiro4broad (1)
Pull Request Authors
  • choover-broad (81)
  • dependabot[bot] (51)
  • jack-r-warren (50)
  • mflinn-broad (20)
  • davidangb (1)
  • rtitle (1)
  • katiewelch (1)
  • knapii-developments (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (50) go (44) github_actions (5)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 249
proxy.golang.org: github.com/broadinstitute/thelma
  • Versions: 249
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Forks count: 7.0%
Average: 8.6%
Dependent repos count: 9.3%
Stargazers count: 10.9%
Last synced: 10 months ago

Dependencies

.github/actions/make/action.yaml actions
  • actions/setup-go v3 composite
.github/actions/setup-gcloud/action.yaml actions
  • google-github-actions/setup-gcloud v0.3.0 composite
.github/workflows/build.yaml actions
  • ./.github/actions/make * composite
  • ./.github/actions/setup-gcloud * composite
  • actions/cache v3 composite
  • actions/checkout v2 composite
  • actions/github-script 0.3.0 composite
  • broadinstitute/dsp-appsec-trivy-action v1 composite
  • databiosphere/github-actions/actions/bumper bumper-0.0.6 composite
.github/workflows/lint.yaml actions
  • actions/checkout v2 composite
  • golangci/golangci-lint-action v2 composite
.github/workflows/test.yaml actions
  • ./.github/actions/make * composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
Dockerfile docker
  • alpine ${ALPINE_IMAGE_VERSION} build
go.mod go
  • cloud.google.com/go v0.105.0
  • cloud.google.com/go/compute v1.13.0
  • cloud.google.com/go/compute/metadata v0.2.2
  • cloud.google.com/go/container v1.7.0
  • cloud.google.com/go/iam v0.7.0
  • cloud.google.com/go/pubsub v1.28.0
  • cloud.google.com/go/storage v1.27.0
  • github.com/alecthomas/chroma v0.10.0
  • github.com/armon/go-metrics v0.3.9
  • github.com/armon/go-radix v1.0.0
  • github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d
  • github.com/avast/retry-go v3.0.0+incompatible
  • github.com/beorn7/perks v1.0.1
  • github.com/broadinstitute/sherlock v0.1.6-0.20230206171243-9a3edaf79a5a
  • github.com/cenkalti/backoff/v3 v3.0.0
  • github.com/cespare/xxhash/v2 v2.1.2
  • github.com/davecgh/go-spew v1.1.1
  • github.com/dlclark/regexp2 v1.4.0
  • github.com/emicklei/go-restful v2.16.0+incompatible
  • github.com/fatih/color v1.9.0
  • github.com/fsnotify/fsnotify v1.6.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.3
  • 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.25.0
  • github.com/go-openapi/spec v0.20.7
  • github.com/go-openapi/strfmt v0.21.3
  • github.com/go-openapi/swag v0.22.3
  • github.com/go-openapi/validate v0.22.0
  • github.com/go-playground/locales v0.14.0
  • github.com/go-playground/universal-translator v0.18.0
  • github.com/go-playground/validator/v10 v10.11.1
  • github.com/gofrs/flock v0.8.1
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
  • github.com/golang/protobuf v1.5.2
  • github.com/golang/snappy v0.0.4
  • github.com/google/gnostic v0.5.7-v3refs
  • github.com/google/go-cmp v0.5.9
  • github.com/google/gofuzz v1.1.0
  • github.com/google/uuid v1.3.0
  • github.com/googleapis/enterprise-certificate-proxy v0.2.0
  • github.com/googleapis/gax-go/v2 v2.7.0
  • github.com/gorilla/websocket v1.4.2
  • github.com/hashicorp/errwrap v1.1.0
  • github.com/hashicorp/go-cleanhttp v0.5.2
  • github.com/hashicorp/go-hclog v0.16.2
  • github.com/hashicorp/go-immutable-radix v1.3.1
  • github.com/hashicorp/go-multierror v1.1.1
  • github.com/hashicorp/go-plugin v1.4.3
  • github.com/hashicorp/go-retryablehttp v0.6.6
  • github.com/hashicorp/go-rootcerts v1.0.2
  • github.com/hashicorp/go-secure-stdlib/mlock v0.1.1
  • github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6
  • github.com/hashicorp/go-secure-stdlib/strutil v0.1.2
  • github.com/hashicorp/go-sockaddr v1.0.2
  • github.com/hashicorp/go-uuid v1.0.2
  • github.com/hashicorp/go-version v1.2.0
  • github.com/hashicorp/golang-lru v0.5.4
  • github.com/hashicorp/hcl v1.0.0
  • github.com/hashicorp/vault/api v1.7.2
  • github.com/hashicorp/vault/sdk v0.5.1
  • github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d
  • github.com/imdario/mergo v0.3.5
  • github.com/inconshreveable/mousetrap v1.1.0
  • github.com/jackc/chunkreader/v2 v2.0.1
  • github.com/jackc/pgconn v1.13.0
  • github.com/jackc/pgio v1.0.0
  • github.com/jackc/pgpassfile v1.0.0
  • github.com/jackc/pgproto3/v2 v2.3.1
  • github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b
  • github.com/jackc/pgtype v1.13.0
  • github.com/jackc/pgx/v4 v4.17.2
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.12
  • github.com/knadh/koanf v1.4.4
  • github.com/leodido/go-urn v1.2.1
  • github.com/lucasb-eyer/go-colorful v1.2.0
  • github.com/mailru/easyjson v0.7.7
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.16
  • github.com/mattn/go-runewidth v0.0.13
  • github.com/matttproud/golang_protobuf_extensions v1.0.4
  • github.com/mcuadros/go-defaults v1.2.0
  • github.com/mitchellh/copystructure v1.2.0
  • github.com/mitchellh/go-homedir v1.1.0
  • github.com/mitchellh/go-testing-interface v1.0.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/muesli/termenv v0.11.0
  • github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
  • github.com/oklog/run v1.0.0
  • github.com/oklog/ulid v1.3.1
  • github.com/opentracing/opentracing-go v1.2.0
  • github.com/pelletier/go-toml v1.9.4
  • github.com/pierrec/lz4 v2.5.2+incompatible
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.0
  • 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/rivo/uniseg v0.2.0
  • github.com/rs/zerolog v1.28.0
  • github.com/ryanuber/go-glob v1.0.0
  • github.com/slack-go/slack v0.11.4
  • github.com/spf13/cobra v1.6.1
  • github.com/spf13/pflag v1.0.5
  • github.com/stretchr/objx v0.5.0
  • github.com/stretchr/testify v1.8.1
  • go.mongodb.org/mongo-driver v1.11.0
  • go.opencensus.io v0.24.0
  • go.opentelemetry.io/otel v1.11.1
  • go.opentelemetry.io/otel/trace v1.11.1
  • go.uber.org/atomic v1.10.0
  • golang.org/x/crypto v0.3.0
  • golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
  • golang.org/x/net v0.2.0
  • golang.org/x/oauth2 v0.2.0
  • golang.org/x/sync v0.1.0
  • golang.org/x/sys v0.2.0
  • golang.org/x/term v0.2.0
  • golang.org/x/text v0.4.0
  • golang.org/x/time v0.1.0
  • golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
  • google.golang.org/api v0.103.0
  • google.golang.org/appengine v1.6.7
  • google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd
  • google.golang.org/grpc v1.51.0
  • google.golang.org/protobuf v1.28.1
  • gopkg.in/inf.v0 v0.9.1
  • gopkg.in/natefinch/lumberjack.v2 v2.0.0
  • gopkg.in/square/go-jose.v2 v2.5.1
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
  • k8s.io/api v0.24.0
  • k8s.io/apimachinery v0.24.0
  • k8s.io/client-go v0.24.0
  • k8s.io/klog/v2 v2.60.1
  • k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42
  • k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9
  • sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2
  • sigs.k8s.io/structured-merge-diff/v4 v4.2.1
  • sigs.k8s.io/yaml v1.2.0
go.sum go
  • 1107 dependencies
.github/workflows/dependency-review.yaml actions
  • actions/checkout v3 composite
  • actions/dependency-review-action v3 composite