List module dependencies of fetch_artifact.

Bug: 121042212
Test: go build -o out/fetch_artifact fetch_artifact.go
Change-Id: I260b67295b94fd99662e4f47c93d7026355b2a83
2 files changed
tree: dfb1633b68a40033e7478334b4ff7e714368041b
  1. .gitignore
  2. build.sh
  3. fetch_artifact.go
  4. go.mod
  5. go.sum
  6. OWNERS
  7. README.md
README.md

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