{"id":42697988,"url":"https://github.com/umirode/prot","last_synced_at":"2026-01-29T14:03:31.564Z","repository":{"id":37681727,"uuid":"245125254","full_name":"umirode/prot","owner":"umirode","description":"Protobuf files manager","archived":false,"fork":false,"pushed_at":"2020-07-02T19:03:23.000Z","size":88,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-15T10:43:15.726Z","etag":null,"topics":["dart","git","golang","protobuf"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umirode.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}},"created_at":"2020-03-05T09:51:36.000Z","updated_at":"2022-06-22T03:59:31.000Z","dependencies_parsed_at":"2022-09-15T21:51:18.225Z","dependency_job_id":null,"html_url":"https://github.com/umirode/prot","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/umirode/prot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umirode%2Fprot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umirode%2Fprot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umirode%2Fprot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umirode%2Fprot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umirode","download_url":"https://codeload.github.com/umirode/prot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umirode%2Fprot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28879012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dart","git","golang","protobuf"],"created_at":"2026-01-29T14:03:16.049Z","updated_at":"2026-01-29T14:03:31.543Z","avatar_url":"https://github.com/umirode.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prot - protobuf files manager.\n\nIt application can help your manage protobuf files and generate code based on him.\n\n!!! Before use Prot you must install your lang dependencies (section Config/Lang).\n\n## How to use\n\n1. Create repository for service protobuf files.\n2. Run `prot init` command in your server application.\n3. Add your repository with protobuf files into prot.yml and run `prot install` command.\n4. Write code for server.\n5. Run `prot init` command in your client application.\n6. Add your repository with protobuf files into prot.yml and run `prot install` command.\n7. Use generated grpc client in your client application.\n8. Now after update protobuf files you can update generated code for grpc server and client by one command - `prot install`.\n\n## Install\n\n`go get -u github.com/umirode/prot`\n\n## Commands\n\n`prot help` - Shows a list of commands or help for one command\n\n```\n❯ prot help\nNAME:\n   prot - protobuf files manager\n\nUSAGE:\n   prot [global options] command [command options] [arguments...]\n\nVERSION:\n   1.0.0\n\nCOMMANDS:\n   install  Install dependencies from config file\n   init     Generate config for Prot application\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --help, -h     show help (default: false)\n   --version, -v  print the version (default: false)\n```\n\n------\n\n`prot init` - Generate config for Prot application\nOptions:\n* `--output` Output path for config (default: current directory)\n\n```\n❯ prot init --help\nNAME:\n   prot init - Generate config for Prot application\n\nUSAGE:\n   prot init [command options] [arguments...]\n\nOPTIONS:\n   --output value, -o value  Output path for config (default: current directory)\n   --help, -h                show help (default: false)\n```\n\n------\n\n`prot install` - Install dependencies from prot.yml config\nOptions:\n* `--config` Path to configuration file (default: prot.yaml)\n* `--output` Output path (default: current directory)\n\n```\n❯ prot install --help                                                                                                          \nNAME:\n   prot install - Install dependencies from config file\n\nUSAGE:\n   prot install [command options] [arguments...]\n\nOPTIONS:\n   --config value, -c value  Path to configuration file (default: prot.yaml)\n   --output value, -o value  Output path (default: current directory)\n   --help, -h                show help (default: false)\n```\n\n## Configuration\n`Lang` If yor want more - welcome to the issue! :)\n\n|  Lang  | Info |\n| ------ | ---- |\n| go     | Follow https://grpc.io/docs/quickstart/go/ section Protocol Buffers      |\n| dart   | Follow https://grpc.io/docs/quickstart/dart/ section Protocol Buffers v3 |\n\n`ModuleName` or `ModuleNameWithAuth` - name for module.\n\n`Repository` - link for your repository (ssh or https, depends on the type of authorization).\n\n`Auth` - optional parameter, if your want auth for git.\n\n```\nLang: go\nModules:\n  ModuleName:\n    Repository: https://github.com/umirode/prot.git\n  ModuleNameWithAuth:\n    Repository: git@github.com:umirode/prot.git\n    Auth:\n      Type: PublicKeys\n      Config:\n        PemFile: id_rsa.pem\n        IgnoreHostKey: true\n\n```\n\n## Auth Configuration\n\n`PublicKeys` - represent ssh auth via public keys (type ssh).\n```\nAuth:\n    Type: PublicKeys\n    Config:\n      PemFile: id_rsa.pem\n      User: umirode # OPTIONAL DEFAULTS git\n      PemFilePassword: password # OPTIONAL\n      IgnoreHostKey: true # OPTIONAL DEFAULTS false\n```\n\n------\n\n`Password` - represent ssh auth via password (type ssh).\n```\nAuth:\n    Type: Password\n    Config:\n      User: user\n      Password: pass\n```\n\n------\n\n`BasicAuth` - represent a HTTP basic auth (type https).\n```\nAuth:\n    Type: BasicAuth\n    Config:\n      Username: user\n      Password: pass\n```\n\n------\n\n`Token` - represent authenticate with HTTP token authentication (also known as bearer authentication) (type https).\n\nIMPORTANT: If you are looking to use OAuth tokens with popular servers (e.g.\nGitHub, Bitbucket, GitLab) you should use BasicAuth instead. These servers\nuse basic HTTP authentication, with the OAuth token as user or password.\nCheck the documentation of your git server for details.\n\n```\nAuth:\n    Type: Token\n    Config:\n      Token: token\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumirode%2Fprot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumirode%2Fprot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumirode%2Fprot/lists"}