{"id":13621320,"url":"https://github.com/stormcat24/protodep","last_synced_at":"2025-04-04T15:10:02.964Z","repository":{"id":21678177,"uuid":"88635018","full_name":"stormcat24/protodep","owner":"stormcat24","description":"Collect necessary .proto files (Protocol Buffers IDL) and manage dependencies","archived":false,"fork":false,"pushed_at":"2024-01-26T12:26:52.000Z","size":381,"stargazers_count":310,"open_issues_count":16,"forks_count":58,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-28T14:07:47.735Z","etag":null,"topics":["cli","dependencies","dependency-manager","grpc","idl","microservices","protocol-buffers","toml","tool","vendoring"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stormcat24.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-18T14:32:08.000Z","updated_at":"2025-03-09T18:08:28.000Z","dependencies_parsed_at":"2024-01-14T06:03:56.885Z","dependency_job_id":"8dbe2e94-f89e-42f6-a39a-409ada57da67","html_url":"https://github.com/stormcat24/protodep","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormcat24%2Fprotodep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormcat24%2Fprotodep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormcat24%2Fprotodep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stormcat24%2Fprotodep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stormcat24","download_url":"https://codeload.github.com/stormcat24/protodep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198463,"owners_count":20900080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","dependencies","dependency-manager","grpc","idl","microservices","protocol-buffers","toml","tool","vendoring"],"created_at":"2024-08-01T21:01:04.702Z","updated_at":"2025-04-04T15:10:02.945Z","avatar_url":"https://github.com/stormcat24.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"protodep\n=======\n\n![logo](./logo/web.png)\n\n\n![GitHub Actions](https://github.com/stormcat24/protodep/actions/workflows/go.yml/badge.svg)\n[![Language](https://img.shields.io/badge/language-go-brightgreen.svg?style=flat)](https://golang.org/)\n[![issues](https://img.shields.io/github/issues/stormcat24/protodep.svg?style=flat)](https://github.com/stormcat24/protodep/issues?state=open)\n[![License: Apache License 2.0](https://img.shields.io/badge/license-Apache2-orange.svg)](LICENSE)\n[![GoDoc](https://godoc.org/github.com/stormcat24/protodep?status.png)](https://godoc.org/github.com/stormcat24/protodep)\n[![go.mod](https://img.shields.io/github/go-mod/go-version/stormcat24/protodep)](go.mod)\n\nDependency tool for Protocol Buffers IDL file (.proto) vendoring tool.\n\n\n## Motivation\n\nIn building Microservices architecture, gRPC with Protocol Buffers is effective. When using gRPC, your application will depend on many remote services.\n\nIf you manage proto files in a git repository, what will you do? Most remote services are managed by git and they will be versioned. We need to control which dependency service version that application uses.\n\n\n## Install\n\n### go install\n\n```bash\n$ go install -v github.com/stormcat24/protodep@v0.1.7\n```\n\n### from binary\n\nSupport as follows:\n\n* protodep_darwin_amd64.tar.gz\n* protodep_darwin_arm64.tar.gz\n* protodep_linux_386.tar.gz\n* protodep_linux_amd64.tar.gz\n* protodep_linux_arm.tar.gz\n* protodep_linux_arm64.tar.gz\n\n```bash\n$ wget https://github.com/stormcat24/protodep/releases/download/0.1.4/protodep_darwin_amd64.tar.gz\n$ tar -xf protodep_darwin_amd64.tar.gz\n$ mv protodep /usr/local/bin/\n```\n\n## Usage\n\n### protodep.toml\n\nProto dependency management is defined in `protodep.toml`.\n\n```Ruby\nproto_outdir = \"./proto\"\n\n[[dependencies]]\n  target = \"github.com/stormcat24/protodep/protobuf\"\n  branch = \"master\"\n\n[[dependencies]]\n  target = \"github.com/grpc-ecosystem/grpc-gateway/examples/examplepb\"\n  revision = \"v1.2.2\"\n  path = \"grpc-gateway/examplepb\"\n\n# blacklist by \"ignores\" attribute\n[[dependencies]]\n  target = \"github.com/kubernetes/helm/_proto/hapi\"\n  branch = \"master\"\n  path = \"helm/hapi\"\n  ignores = [\"./release\", \"./rudder\", \"./services\", \"./version\"]\n  \n# whitelist by \"includes\" attribute\n[[dependencies]]\n  target = \"github.com/protodep/catalog/hierarchy\"\n  branch = \"main\"\n  includes = [\n    \"/protodep/hierarchy/service.proto\",\n    \"**/fuga/**\",\n  ]\n  protocol = \"https\"\n```\n\n### protodep up\n\nIn same directory, execute this command.\n\n```bash\n$ protodep up\n```\n\nIf succeeded, `protodep.lock` is generated.\n\n### protodep up -f (force update)\n\nEven if protodep.lock exists, you can force update dependenies.\n\n```bash\n$ protodep up -f\n```\n\n### [Attention] Changes from 0.1.0\n\nFrom protodep 0.1.0 supports ssh-agent, and this is the default.\nIn other words, in order to operate protodep without options as before, it is necessary to set with ssh-add.\n\nAs the follows:\n\n```bash\n$ ssh-add ~/.ssh/id_rsa\n$ protodep up\n```\n\n### Getting via HTTPS\n\nIf you want to get it via HTTPS, do as follows.\n\n```bash\n$ protodep up --use-https\n```\n\nAnd also, if Basic authentication is required, do as follows.\nIf you have 2FA enabled, specify the Personal Access Token as the password. \n\n```bash\n$ protodep up --use-https \\\n    --basic-auth-username=your-github-username \\\n    --basic-auth-password=your-github-password\n```\n\n### License\n\nApache License 2.0, see [LICENSE](https://github.com/stormcat24/protodep/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstormcat24%2Fprotodep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstormcat24%2Fprotodep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstormcat24%2Fprotodep/lists"}