{"id":19985549,"url":"https://github.com/kode/depot_tools","last_synced_at":"2025-06-26T09:33:07.257Z","repository":{"id":166938458,"uuid":"642492101","full_name":"Kode/depot_tools","owner":"Kode","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-18T17:57:38.000Z","size":41029,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-12T11:29:08.821Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kode.png","metadata":{"files":{"readme":"README.gclient.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":"2023-05-18T17:33:18.000Z","updated_at":"2023-05-18T17:41:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a8c5f4f-dd37-47c0-bdc1-947b98c986ba","html_url":"https://github.com/Kode/depot_tools","commit_stats":null,"previous_names":["kode/depot_tools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fdepot_tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fdepot_tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fdepot_tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kode%2Fdepot_tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kode","download_url":"https://codeload.github.com/Kode/depot_tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241419551,"owners_count":19959927,"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":[],"created_at":"2024-11-13T04:25:23.604Z","updated_at":"2025-03-01T20:25:32.701Z","avatar_url":"https://github.com/Kode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gclient\n\ngclient is a tool for managing a modular checkout of source code from multiple\nsource code repositories. It wraps underlying source code management commands\nto provide support for distributing tree updates, status commands, and diffs\nacross multiple checked-out working directories.\n\nThe gclient script is controlled by a `.gclient` file at the top of a directory\ntree which will contain source code from multiple locations. A `.gclient` file\nis a Python script that defines a list of `solutions` with the following format:\n\n    solutions = [\n      { \"name\"        : \"src\",\n        \"url\"         : \"https://chromium.googlesource.com/chromium/src.git\",\n        \"custom_deps\" : {\n          # To use the trunk of a component instead of what's in DEPS:\n          #\"component\": \"https://github.com/luci/luci-go\",\n          # To exclude a component from your working copy:\n          #\"data/really_large_component\": None,\n        }\n      },\n    ]\n\nA `solution` is a collection of component pieces of software that will be\nchecked out in a specific directory layout for building together.\n\nEach entry in the `solutions` list is defined by a Python dictionary that\ncontains the following items:\n\n- `name`: The name of the directory in which the solution will be checked out.\n- `url`: The URL from which this solution will be checked out. gclient expects\n  that the checked-out solution will contain a file named `DEPS` that in turn\n  defines the specific pieces that must be checked out to create the working\n  directory layout for building and developing the solution's software.\n- `deps_file`: A string containing just the filename (not a path) of the file in\n  the solution dir to use as the list of dependencies. This tag is optional, and\n  defaults to `DEPS`.\n- `custom_deps`: A dictionary containing optional custom overrides for entries\n  in the solution's `DEPS` file.  This can be used to have the local working\n  directory *not* check out and update specific components, or to sync the local\n  working-directory copy of a given component to a different specific revision,\n  or a branch, or the head of a tree. It can also be used to append new entries\n  that do not exist in the `DEPS` file.\n\nWithin each checked-out solution, gclient expects to find a file typically named\n`DEPS` (it actually uses the value of the `deps_file` key above) which defines\nthe different component pieces of software that must be checked out for the\nsolution. The `DEPS` file is a Python script that defines a dictionary named\n`deps`:\n\n    deps = {\n      \"src/outside\": \"https://outside-server/one/repo.git@12345677890123456778901234567789012345677890\",\n      \"src/component\": \"https://dont-use-github.com/its/unreliable.git@0000000000000000000000000000000000000000\",\n      \"src/relative\": \"/another/repo.git@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n    }\n\nEach item in the `deps` dictionary consists of a key-value pair. The key is the\ndirectory into which the component will be checked out, relative to the\ndirectory containing the `.gclient` file. The value is the URL from which that\ndirectory will be checked out. If there is no address scheme (that is, no\n`http:` prefix), then the value must begin with a slash and is treated\nrelative to the root of the solution's repository.\n\nThe URL typically contains a specific revision or change number (as appropriate\nfor the underlying SCM system) to `freeze` the external software at a specific,\nknown state. Alternatively, if there is no revision or change number, the URL\nwill track the latest changes on the specific trunk or branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkode%2Fdepot_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkode%2Fdepot_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkode%2Fdepot_tools/lists"}