MCPcopy
hub / github.com/werf/werf

github.com/werf/werf @v2.73.2 sqlite

repository ↗ · DeepWiki ↗ · release v2.73.2 ↗
5,587 symbols 18,230 edges 778 files 780 documented · 14%
README

GH Discussions Twitter Telegram chat

GoDoc Code Coverage Contributor Covenant Artifact Hub

werf is a CNCF Sandbox CLI tool to implement full-cycle CI/CD to Kubernetes easily. werf integrates into your CI system and leverages familiar and reliable technologies, such as Git, Dockerfile, Helm, and Buildah.

What makes werf special:

  • Complete application lifecycle management: build and publish container images, test, deploy an application to Kubernetes, distribute release artifacts and clean up the container registry.
  • Ease of use: use Dockerfiles and Helm chart for configuration and let werf handle all the rest.
  • Advanced features: automatic build caching and content-based tagging, enhanced resource tracking and extra capabilities in Helm, a unique container registry cleanup approach, and more.
  • Gluing common technologies: Git, Buildah, Helm, Kubernetes, and your CI system of choice.
  • Production-ready: werf has been used in production since 2017; thousands of projects rely on it to build & deploy various apps.

Installation

The Getting Started guide helps set up and use werf both locally and in your CI system.

Documentation

Detailed usage and reference for werf are available in documentation in multiple languages.

Developers can get all the necessary knowledge about application delivery in Kubernetes (including basic understanding of K8s primitives) in the werf guides. They provide ready-to-use examples for popular frameworks, including Node.js (JavaScript), Spring Boot (Java), Django (Python), Rails (Ruby), and Laravel (PHP).

Community & support

Please feel free to reach developers/maintainers and users via GitHub Discussions for any questions regarding werf. You're also welcome on Stack Overflow: when you tag a question with werf, our team is notified and comes to help you.

Your issues are processed carefully if posted to issues at GitHub.

For questions that may require a more detailed and prompt discussion, you can use:

  • #werf channel in the CNCF’s Slack workspace;
  • werf_io Telegram chat. (There is a Russian-speaking Telegram chat werf_ru as well.)

Follow @werf_io to stay informed about all important project's news, new articles, etc.

Contributing

This contributing guide outlines the process to help get your contribution accepted.

License

Apache License 2.0, see LICENSE.

Extension points exported contracts — how you extend this code

PathMatcher (Interface)
go:generate mockgen -source interface.go -package mock -destination ../../test/mock/path_matcher.go [9 implementers]
pkg/path_matcher/interface.go
Event (Interface)
(no doc) [7 implementers]
pkg/telemetry/event.go
Storage (Interface)
(no doc) [7 implementers]
pkg/image/spec_config.go
Archive (Interface)
(no doc) [7 implementers]
pkg/git_repo/git_repo.go
InstructionDataInterface (Interface)
(no doc) [8 implementers]
pkg/dockerfile/instruction.go
BackendLoaderStorer (Interface)
(no doc) [8 implementers]
pkg/container_backend/mutation.go
ArchiveOpener (Interface)
(no doc) [3 implementers]
pkg/docker_registry/interface.go
Synchronization (Interface)
(no doc) [3 implementers]
cmd/werf/common/synchronization.go

Core symbols most depended-on inside this repo

RunSucceedCommand
called by 176
test/pkg/utils/command.go
Error
called by 174
pkg/config/errors.go
String
called by 102
pkg/git_repo/git_repo.go
GetProjectWorktree
called by 101
test/pkg/suite_init/tmp_dir_data.go
Name
called by 93
pkg/dockerfile/instruction.go
Info
called by 88
pkg/buildah/common.go
Namespace
called by 88
test/pkg/werf/project.go
newDetailedConfigError
called by 85
pkg/config/errors.go

Shape

Method 2,669
Function 2,087
Struct 652
TypeAlias 90
Interface 76
FuncType 13

Languages

Go100%
TypeScript1%
Python1%

Modules by API surface

cmd/werf/common/common.go174 symbols
test/mock/git_repo.go172 symbols
test/mock/legacy_interface.go112 symbols
cmd/werf/docs/replacers/kubectl/kubectl_docs.go109 symbols
pkg/storage/manager/storage_manager.go90 symbols
pkg/storage/repo_stages_storage.go77 symbols
test/mock/container_backend.go62 symbols
pkg/container_backend/buildah_backend.go59 symbols
pkg/buildah/common.go58 symbols
pkg/storage/stages_storage.go56 symbols
pkg/git_repo/git_repo.go55 symbols
pkg/git_repo/base.go54 symbols

Dependencies from manifests, versioned

dario.cat/mergov1.0.0 · 1×
github.com/AdaLogics/go-fuzz-headersv0.0.0-2023081113042 · 1×
github.com/AdamKorcz/go-118-fuzz-buildv0.0.0-2023110517493 · 1×
github.com/Azure/go-ansitermv0.0.0-2023012417243 · 1×
github.com/Ladicle/tabwriterv1.0.0 · 1×
github.com/MakeNowJust/heredocv1.0.0 · 1×
github.com/Masterminds/goutilsv1.1.1 · 1×
github.com/Masterminds/semverv1.5.0 · 1×
github.com/Masterminds/semver/v3v3.3.1 · 1×

For agents

$ claude mcp add werf \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact