{"id":19637840,"url":"https://github.com/n-r-w/protodep","last_synced_at":"2025-02-26T22:17:10.231Z","repository":{"id":253132164,"uuid":"842188071","full_name":"n-r-w/protodep","owner":"n-r-w","description":"Protocol Buffers Dependency Management Tool. Evolution of github.com/stormcat24/protodep","archived":false,"fork":false,"pushed_at":"2025-01-28T12:35:04.000Z","size":463,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-28T13:45:01.641Z","etag":null,"topics":["git","github","gitlab","protobuf"],"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/n-r-w.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":"2024-08-13T21:15:48.000Z","updated_at":"2025-01-28T12:40:42.000Z","dependencies_parsed_at":"2024-11-01T11:21:49.709Z","dependency_job_id":"2b624742-f723-46a8-b5eb-45f4909c80cf","html_url":"https://github.com/n-r-w/protodep","commit_stats":null,"previous_names":["n-r-w/protodep"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-r-w%2Fprotodep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-r-w%2Fprotodep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-r-w%2Fprotodep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n-r-w%2Fprotodep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n-r-w","download_url":"https://codeload.github.com/n-r-w/protodep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240941516,"owners_count":19882063,"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":["git","github","gitlab","protobuf"],"created_at":"2024-11-11T12:36:23.032Z","updated_at":"2025-02-26T22:17:10.224Z","avatar_url":"https://github.com/n-r-w.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# protodep - Protocol Buffers Dependency Management Tool\n\nA powerful dependency management tool for Protocol Buffers IDL files (.proto), forked from [stormcat24/protodep](https://github.com/stormcat24/protodep) with significant enhancements.\n\n## Project Overview\n\nprotodep helps you manage Protocol Buffer dependencies in microservice architectures by:\n\n- Vendoring .proto files from Git repositories\n- Supporting multiple version control strategies (branch, revision)\n- Managing complex dependency structures with flexible configuration\n- Supporting both local and remote proto files\n\n## Key Features\n\n- **Multiple Authentication Methods**:\n  - Git credential helpers support (taken from \u003chttps://github.com/torqio/protodep\u003e)\n  - .netrc file authentication\n  - SSH key authentication  \n  - HTTPS with basic auth\n  - Environment variable-based authentication\n- **Flexible Dependency Management**:\n  - Local proto files import\n  - GitLab subgroups support\n  - Selective file inclusion/exclusion\n  - Branch or revision-based versioning\n  - Protocol-specific configuration\n\n## Installation\n\n```bash\ngo install -v github.com/n-r-w/protodep@latest\n```\n\n## Usage\n\n### Configuration (protodep.toml)\n\nCreate a `protodep.toml` file in your project root:\n\n```toml\n# Base output directory for vendored proto files\nproto_outdir = \"./proto\"\n\n# Remote repository dependency\n[[dependencies]]\n  target = \"github.com/org/repo/protos\" # Remote repository\n  branch = \"master\"             # Use branch or revision\n  path = \"path/to/protos\"       # Target local subdirectory containing proto files\n  ignores = [\"./ignored-dir\"]   # Optional: Directories to ignore\n  includes = [\"some.proto\"]     # Optional: Files to include\n  protocol = \"ssh\"              # Optional: Protocol to use (ssh/https)\n\n# GitLab with subgroups\n[[dependencies]]\n  target = \"gitlab.company.org/group/subgroup/repo/protos\"\n  subgroup = \"subgroup\"\n  path = \"path/to/protos\"\n  revision = \"v1.0.0\"\n\n# Local directory dependency\n[[dependencies]]\n  local_folder = \"./api/broker\"\n  path = \"proto/broker\"\n\n# Environment variable authentication\n[[dependencies]]\n  target = \"github.com/org/private-repo\"\n  path = \"protos\"\n  username_env = \"GITHUB_USERNAME\"  # Username from environment variable\n  password_env = \"GITHUB_TOKEN\"     # Token from environment variable  \n```\n\n### Authentication Options\n\n1. **HTTPS with Basic Auth**:\n\n```bash\nprotodep up --use-https \\\n  --basic-auth-username=your-username \\\n  --basic-auth-password=your-token\n```\n\n2. **SSH Key Authentication**:\n\n```bash\nprotodep up -i ~/.ssh/id_rsa -p \"ssh-key-password\"\n```\n\n3. **.netrc File** (Create in home directory):\n\n```plaintext\nmachine github.com\nlogin your-username\npassword your-token\n```\n\n4. **Environment Variables** (In protodep.toml):\n\n```toml\n[[dependencies]]\n  target = \"github.com/org/repo\"\n  username_env = \"GITHUB_USERNAME\"    # Environment variable for username\n  password_env = \"GITHUB_TOKEN\"       # Environment variable for token/password  \n```\n\n### Command Line Options\n\n```bash\nprotodep up [flags]\n\nFlags:\n  -i, --identity-file string      SSH identity file path\n  -p, --password string           SSH key password\n  -c, --cleanup                   Cleanup cache before execution\n  -u, --use-https                 Use HTTPS instead of SSH\n  -n, --use-netrc                 Use .netrc file for authentication (default: true)\n  -m, --use-git-credentials      Use git credentials helper (default: true)\n      --basic-auth-username      HTTPS basic auth username\n      --basic-auth-password      HTTPS basic auth password/token\n```\n\nNote: Both `use-netrc` (-n) and `use-git-credentials` (-m) are enabled by default with `use-git-credentials` priority. Use the respective flags to disable them if needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-r-w%2Fprotodep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn-r-w%2Fprotodep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn-r-w%2Fprotodep/lists"}