{"id":17105667,"url":"https://github.com/domchen/depsync","last_synced_at":"2025-06-21T23:05:23.698Z","repository":{"id":19067665,"uuid":"86024592","full_name":"domchen/depsync","owner":"domchen","description":"Automatically synchronize the dependencies of a project by the DEPS configuration file","archived":false,"fork":false,"pushed_at":"2025-04-08T11:18:21.000Z","size":141,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T20:49:17.077Z","etag":null,"topics":["dependency","synchronization"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/domchen.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,"zenodo":null}},"created_at":"2017-03-24T03:48:00.000Z","updated_at":"2025-04-28T08:40:57.000Z","dependencies_parsed_at":"2025-01-14T14:34:47.293Z","dependency_job_id":"01f9b4d7-d9d5-471d-b3cb-1d846927c0f0","html_url":"https://github.com/domchen/depsync","commit_stats":{"total_commits":115,"total_committers":3,"mean_commits":"38.333333333333336","dds":"0.060869565217391286","last_synced_commit":"7e4e5504a89dbd35bc313868ce7e4a94917836d5"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/domchen/depsync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domchen%2Fdepsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domchen%2Fdepsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domchen%2Fdepsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domchen%2Fdepsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/domchen","download_url":"https://codeload.github.com/domchen/depsync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domchen%2Fdepsync/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259942785,"owners_count":22935327,"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":["dependency","synchronization"],"created_at":"2024-10-14T15:42:39.797Z","updated_at":"2025-06-21T23:05:18.686Z","avatar_url":"https://github.com/domchen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/depsync\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/depsync.svg\" alt=\"Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/domchen/depsync/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/depsync.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Introduction\n\nA command line tool for automatically synchronizing the dependencies of a project by the DEPS configuration file.\n\n# Advantages\n\nThe depsync tool provides a convenient way to download git repositories and files from the Internet, offering several key advantages over similar capabilities like git-submodules and git-lfs:\n\n- Repositories are always checked out with a depth of 1 without any extra command arguments, ensuring that the main project maintains a relatively compact size at all times.\n- Automatically download git-submodules and git-lfs files for your main project and third-party repositories without the need to run commands on each one individually.\n- During downloading process, git-lfs files that already exist in the local cache can be skipped. This approach works even for the shallow cloned repositories.\n- Enable the execution of custom actions after synchronization. For instance, you can include commands in the DEPS file to facilitate cleaning tasks and other operations.\n- Repositories and files can be configured separately for each platform to avoid downloading unnecessary dependencies and only acquire platform-specific ones.\n\nWith all the advantages described above, all it takes is one straightforward command `depsync`. Execute it in the root of your main project, and you're good to go!\n\n# Installation\n\n`npm install depsync -g`\n\n\n## Usage\n\nRun the following command in the directory with a DEPS file:\n```\ndepsync [platform]\n```\nFor example, if you want to synchronize the mac platform, run:\n\n```\ndepsync mac\n```\n\nIf you don't pass any platform parameter, it will automatically choose the host platform as the target platform. So the result of running `depsync` in macOS is the same to running `depsync mac`.\n\nThe available platform names are defined in the DEPS file, you can also define any other platform names as you want, such as `ios`, `android`... but only the `mac`, `win` and `linux` can be automatically chosen.\n\nHere is an example of DEPS file:\n\n```json\n{\n  \"version\": \"1.4.2\",\n  \"vars\": {\n    \"GIT_DOMAIN\": \"github.com\",\n    \"SKIA_ROOT\": \"https://github.com/domchen/depsync/releases/download/1.0.1\",\n    \"V8_ROOT\": \"https://github.com/domchen/depsync/releases/download/1.0.2\"\n  },\n  \"repos\": {\n    \"common\": [\n      {\n        \"url\": \"https://${GIT_DOMAIN}/webmproject/libwebp.git\",\n        \"commit\": \"1fe3162541ab2f5ce69aca2e2b593fab60520d34\",\n        \"dir\": \"third_party/libwebp\"\n      },\n      {\n        \"url\": \"https://${GIT_DOMAIN}/libjpeg-turbo/libjpeg-turbo.git\",\n        \"commit\": \"129f0cb76346ceede8f4d8d87dea8acb0809056c\",\n        \"dir\": \"third_party/libjpeg-turbo\"\n      },\n      {\n        \"url\": \"https://${GIT_DOMAIN}/Tencent/tgfx.git\",\n        \"commit\": \"5948d72a0a5320a1ea055f23bc8312b07ab6d72c\",\n        \"dir\": \"third_party/tgfx\"\n      }\n    ]\n  },\n  \"files\": {\n    \"common\": [\n      {\n        \"url\": \"${SKIA_ROOT}/include.zip\",\n        \"dir\": \"third_party/skia\",\n        \"unzip\": true\n      },\n      {\n        \"url\": \"${V8_ROOT}/include.zip\",\n        \"dir\": \"third_party/v8\",\n        \"unzip\": \"true\"\n      }\n    ],\n    \"mac\": [\n      {\n        \"url\": \"${SKIA_ROOT}/darwin-x64.zip\",\n        \"dir\": \"third_party/skia\",\n        \"unzip\": true\n      },\n      {\n        \"url\": \"${V8_ROOT}/darwin-x64.zip\",\n        \"multipart\": [\n          \".001\",\n          \".002\",\n          \".003\"\n        ],\n        \"dir\": \"third_party/v8\",\n        \"unzip\": true\n      }\n    ],\n    \"win\": [\n      {\n        \"url\": \"${SKIA_ROOT}/win-ia32.zip\",\n        \"dir\": \"third_party/skia\",\n        \"unzip\": true\n      },\n      {\n        \"url\": \"${V8_ROOT}/win-ia32.zip\",\n        \"dir\": \"third_party/v8\",\n        \"unzip\": true\n      }\n    ]\n  },\n  \"actions\": {\n    \"common\": [\n      {\n        \"command\": \"depsync --clean\",\n        \"dir\": \"third_party\"\n      }\n    ]\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomchen%2Fdepsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdomchen%2Fdepsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomchen%2Fdepsync/lists"}