Bug: 174603491

Clone this repo:
  1. 60f7c64 List module dependencies of fetch_artifact. by Dennis Song · 4 months ago androidx-autofill-release androidx-exifinterface-release main master
  2. 1869784 Handle errors returned by `ListenAndServe()` by chyijia · 5 months ago androidx-constraintlayout-release androidx-wear-wear-remote-interactions-release
  3. 406e79e Fix the way that getLatestGoodBuild uses query strings by chyijia · 5 months ago
  4. efefb70 Add user project overrides feature. by chyijia · 6 months ago
  5. 57258e2 Add OAuth flow to fetch_artifact by chyijia · 7 months ago

Fetch Artifact

Fetch artifact is a tool for downloading artifacts from Android's continuous integration service.

Options

  • target: Required - The target you would like to download the artifact from.
  • artifact: Required - The artifact to download.
  • Required: either build_id or branch, but not both
    • When only build_id is provided, the script would download the artifact from that build_id.
    • When only branch is provided, the script would download the artifact from the last known good build of that branch.
  • output: Optional - If you would like the contents of the file to be written to a specific file.
  • client_id: Optional - If authorization is required to download the artifact, please set this parameter as your OAuth2.0 Client ID.
  • secret: Optional - If authorization is required to download the artifact, please set this parameter as your OAuth2.0 Client secret.
  • port: Optional - If you would like to specify the OAuth callback port to listen on. Default: 10502
  • project_id: Optional - The project id being used to access the fetch APIs.
  • -: Optional - If you would like the contents of the file to be written to stdout (must be the last arg)

Example usage

fetch_artifact -target=aosp_arm64-userdebug -build_id=7000390 -artifact=COPIED

Streaming contents to stdout

fetch_artifact -target=aosp_arm64-userdebug -build_id=7000390 -artifact=COPIED -

Get the latest successful build's artifact without specifying a build_id

fetch_artifact -target=aosp_arm64-trunk_staging-userdebug -branch=aosp-main -artifact=COPIED

Using OAuth to fetch restricted artifacts

In this case, you might need to create an OAuth 2.0 Client ID for a web application and set the redirect URI to http://localhost:<port>(default port: 10502).

fetch_artifact -target=<restricted_target> -build_id=<id> -artifact=COPIED -client_id=<OAuth_client_id> -secret=<OAuth_client_secret>

If you are accessing the fetch APIs from a different project than your OAuth client, you will need to specify the -project_id flag:

fetch_artifact -target=<restricted_target> -build_id=<id> -artifact=COPIED -client_id=<OAuth_client_id> -secret=<OAuth_client_secret> -project_id=<project_id>

Development

Building

OUT_DIR=out ./build