[auth] Be able to generate id_token

Make auth be able to generate id_token. Some services on Cloud Run will
need it (e.g. luci-config v2).

Bug: 1487020
Change-Id: Icfe95002f93ee552b99ab2694c7b777e2322484b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4899437
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Yuanjun Huang <yuanjunh@google.com>
2 files changed
tree: 6f36ac7d41e2919d0e1ea0a27a7dfb31c953c394
  1. bootstrap/
  2. fetch_configs/
  3. git-templates/
  4. hooks/
  5. infra/
  6. man/
  7. metadata/
  8. python-bin/
  9. python2-bin/
  10. recipes/
  11. testing_support/
  12. tests/
  13. third_party/
  14. win_toolchain/
  15. zsh-goodies/
  16. .cipd_impl.ps1
  17. .gitattributes
  18. .gitignore
  19. .isort.cfg
  20. .style.yapf
  21. .vpython
  22. .vpython3
  23. auth.py
  24. autoninja
  25. autoninja.bat
  26. autoninja.py
  27. autosiso
  28. autosiso.bat
  29. autosiso.py
  30. bazel.py
  31. bb
  32. bb.bat
  33. black
  34. bootstrap_python3
  35. breakpad.py
  36. BUILD_OWNERS
  37. cipd
  38. cipd.bat
  39. cipd_bin_setup.bat
  40. cipd_bin_setup.sh
  41. cipd_client_version
  42. cipd_client_version.digests
  43. cipd_manifest.txt
  44. cipd_manifest.versions
  45. cipd_manifest_cros_python2.txt
  46. cipd_manifest_cros_python2.versions
  47. clang-format
  48. clang-format.bat
  49. clang_format.py
  50. codereview.settings
  51. compile_single_file
  52. compile_single_file.bat
  53. compile_single_file.py
  54. cpplint.bat
  55. cpplint.py
  56. cpplint_chromium.py
  57. cros
  58. CROS_OWNERS
  59. cros_python2.vpython
  60. crosjobs
  61. detect_host_arch.py
  62. DIR_METADATA
  63. dirmd
  64. dirmd.bat
  65. download_from_google_storage
  66. download_from_google_storage.bat
  67. download_from_google_storage.py
  68. ensure_bootstrap
  69. fetch
  70. fetch.bat
  71. fetch.py
  72. fix_encoding.py
  73. gclient
  74. gclient-new-workdir.py
  75. gclient.bat
  76. gclient.py
  77. gclient_completion.sh
  78. gclient_eval.py
  79. gclient_paths.py
  80. gclient_scm.py
  81. gclient_utils.py
  82. gerrit_client.py
  83. gerrit_util.py
  84. git-cache
  85. git-cl
  86. git-crrev-parse
  87. git-drover
  88. git-find-releases
  89. git-footers
  90. git-freeze
  91. git-gs
  92. git-hyper-blame
  93. git-map
  94. git-map-branches
  95. git-mark-merge-base
  96. git-migrate-default-branch
  97. git-nav-downstream
  98. git-nav-upstream
  99. git-new-branch
  100. git-number
  101. git-rebase-update
  102. git-rename-branch
  103. git-reparent-branch
  104. git-retry
  105. git-runhooks
  106. git-squash-branch
  107. git-thaw
  108. git-upstream-diff
  109. git_cache.py
  110. git_cl.py
  111. git_cl_completion.sh
  112. git_common.py
  113. git_completion.sh
  114. git_dates.py
  115. git_drover.py
  116. git_find_releases.py
  117. git_footers.py
  118. git_freezer.py
  119. git_hyper_blame.py
  120. git_map.py
  121. git_map_branches.py
  122. git_mark_merge_base.py
  123. git_migrate_default_branch.py
  124. git_nav_downstream.py
  125. git_new_branch.py
  126. git_number.py
  127. git_rebase_update.py
  128. git_rename_branch.py
  129. git_reparent_branch.py
  130. git_retry.py
  131. git_squash_branch.py
  132. git_upstream_diff.py
  133. gn
  134. gn.bat
  135. gn.py
  136. goma_auth
  137. goma_auth.bat
  138. goma_ctl
  139. goma_ctl.bat
  140. gsutil.py
  141. gsutil.py.bat
  142. gsutil.vpython3
  143. infra_to_superproject
  144. infra_to_superproject.bat
  145. infra_to_superproject.py
  146. isort
  147. led
  148. led.bat
  149. LICENSE
  150. lockfile.py
  151. luci-auth
  152. luci-auth.bat
  153. LUCI_OWNERS
  154. lucicfg
  155. lucicfg.bat
  156. mac_toolchain
  157. metrics.py
  158. metrics.README.md
  159. metrics_utils.py
  160. my_activity.py
  161. ninja
  162. ninja.bat
  163. ninja.py
  164. ninja_reclient.py
  165. ninjalog.README.md
  166. ninjalog_uploader.py
  167. ninjalog_uploader_wrapper.py
  168. OWNERS
  169. owners_client.py
  170. owners_finder.py
  171. pinpoint
  172. pinpoint.bat
  173. post_build_ninja_summary.py
  174. PRESUBMIT.py
  175. presubmit_canned_checks.py
  176. presubmit_support.py
  177. profile.xml
  178. prpc
  179. prpc.bat
  180. pylint-2.6
  181. pylint-2.6.bat
  182. pylint-2.7
  183. pylint-2.7.bat
  184. pylint_main.py
  185. pylintrc
  186. python_runner.sh
  187. rdb
  188. rdb.bat
  189. rdb_wrapper.py
  190. README.gclient.md
  191. README.git-cl.md
  192. README.md
  193. reclient_helper.py
  194. reclient_metrics
  195. reclient_metrics.bat
  196. reclient_metrics.py
  197. reclient_metrics.README.md
  198. RECLIENT_OWNERS
  199. reclientreport
  200. reclientreport.bat
  201. reclientreport.py
  202. repo
  203. repo_launcher
  204. roll-dep
  205. roll-dep.bat
  206. roll_dep.py
  207. rustfmt.py
  208. scm.py
  209. setup_color.py
  210. siso
  211. siso.bat
  212. siso.py
  213. split_cl.py
  214. subcommand.py
  215. subprocess2.py
  216. swift-format
  217. swift_format.py
  218. update_depot_tools
  219. update_depot_tools.bat
  220. update_depot_tools_toggle.py
  221. upload_metrics.py
  222. upload_to_google_storage.py
  223. utils.py
  224. vpython
  225. vpython.bat
  226. vpython3
  227. vpython3.bat
  228. WATCHLISTS
  229. watchlists.py
  230. weekly
  231. whitespace.txt
  232. win32imports.py
  233. wtf
  234. yapf
  235. yapf.bat
README.md

depot_tools

Tools for working with Chromium development. It requires python 3.8.

Tools

The most important tools are:

  • fetch: A gclient wrapper to checkout a project. Use fetch --help for more details.
  • gclient: A meta-checkout tool. Think repo or git submodules, except that it support OS-specific rules, e.g. do not checkout Windows only dependencies when checking out for Android. Use gclient help for more details and README.gclient.md.
  • git cl: A code review tool to interact with Rietveld or Gerrit. Use git cl help for more details and README.git-cl.md.
  • roll-dep: A gclient dependency management tool to submit a dep roll, updating a dependency to a newer revision.

There are a lot of git utilities included.

Updating

depot_tools updates itself automatically when running gclient tool. To disable auto update, set the environment variable DEPOT_TOOLS_UPDATE=0 or run ./update_depot_tools_toggle.py --disable.

To update package manually, run update_depot_tools.bat on Windows, or ./update_depot_tools on Linux or Mac.

On Windows only, running gclient will install git and python.

Contributing

To contribute change for review:

git new-branch <somename>
# Hack
git add .
git commit -a -m "Fixes goat teleporting"
# find reviewers
git cl owners
git log -- <yourfiles>

# Request a review.
git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail

# Edit change description if needed.
git cl desc

# If change is approved, flag it to be committed.
git cl set-commit

# If change needs more work.
git rebase-update
...
git cl upload -t "Fixes goat teleporter destination to be Australia"

See also open bugs, open reviews, forum or report problems.

cpplint.py

Until 2018, our cpplint.py was a copy of the upstream version at https://github.com/google/styleguide/tree/gh-pages/cpplint. Unfortunately, that repository is not maintained any more. If you want to update cpplint.py in depot_tools, just upload a patch to do so. We will figure out a long-term strategy via issue https://crbug.com/916550.

Note that the cpplint.py here is also used by the Tricium analyzer, so if the cpplint.py here changes, we should also update the copy used there.