{"id":14070613,"url":"https://github.com/google-github-actions/deploy-cloudrun","last_synced_at":"2025-05-14T22:09:25.935Z","repository":{"id":37468789,"uuid":"308778047","full_name":"google-github-actions/deploy-cloudrun","owner":"google-github-actions","description":"A GitHub Action for deploying services to Google Cloud Run.","archived":false,"fork":false,"pushed_at":"2025-02-01T14:15:23.000Z","size":4550,"stargazers_count":513,"open_issues_count":7,"forks_count":120,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-13T07:41:09.941Z","etag":null,"topics":["actions","cloud-run","cloudrun","gcp","github-actions","google-cloud","google-cloud-platform","google-cloud-run"],"latest_commit_sha":null,"homepage":"https://cloud.google.com/run","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google-github-actions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-10-31T01:09:29.000Z","updated_at":"2025-05-01T06:08:01.000Z","dependencies_parsed_at":"2023-01-04T12:15:04.718Z","dependency_job_id":"7db7b80c-72c9-42e9-81a0-d91b0481525e","html_url":"https://github.com/google-github-actions/deploy-cloudrun","commit_stats":{"total_commits":297,"total_committers":16,"mean_commits":18.5625,"dds":0.595959595959596,"last_synced_commit":"1ec29da1351112c7904fb60454a55e3e1021a51c"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-github-actions%2Fdeploy-cloudrun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-github-actions%2Fdeploy-cloudrun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-github-actions%2Fdeploy-cloudrun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-github-actions%2Fdeploy-cloudrun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google-github-actions","download_url":"https://codeload.github.com/google-github-actions/deploy-cloudrun/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235701,"owners_count":22036964,"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":["actions","cloud-run","cloudrun","gcp","github-actions","google-cloud","google-cloud-platform","google-cloud-run"],"created_at":"2024-08-13T07:07:56.359Z","updated_at":"2025-05-14T22:09:20.923Z","avatar_url":"https://github.com/google-github-actions.png","language":"TypeScript","readme":"# deploy-cloudrun\n\nThe `deploy-cloudrun` GitHub Action deploys to Google [Cloud Run][cloud-run]. It\ncan deploy a container image or from source, and the resulting service URL is\navailable as a GitHub Actions output for use in future steps.\n\n**This is not an officially supported Google product, and it is not covered by a\nGoogle Cloud support contract. To report bugs or request features in a Google\nCloud product, please contact [Google Cloud\nsupport](https://cloud.google.com/support).**\n\n\n## Prerequisites\n\n-   This action requires Google Cloud credentials that are authorized to access\n    the secrets being requested. See [Authorization](#authorization) for more\n    information.\n\n-   This action runs using Node 20. If you are using self-hosted GitHub Actions\n    runners, you must use a [runner\n    version](https://github.com/actions/virtual-environments) that supports this\n    version or newer.\n\n\n## Usage\n\n```yaml\njobs:\n  job_id:\n    # ...\n\n    permissions:\n      contents: 'read'\n      id-token: 'write'\n\n    steps:\n    - uses: 'actions/checkout@v4'\n\n    - uses: 'google-github-actions/auth@v2'\n      with:\n        workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'\n        service_account: 'my-service-account@my-project.iam.gserviceaccount.com'\n\n    - id: 'deploy'\n      uses: 'google-github-actions/deploy-cloudrun@v2'\n      with:\n        service: 'hello-cloud-run'\n        image: 'gcr.io/cloudrun/hello'\n\n    - name: 'Use output'\n      run: 'curl \"${{ steps.deploy.outputs.url }}\"'\n```\n\n## Inputs\n\n\u003c!-- BEGIN_AUTOGEN_INPUTS --\u003e\n\n-   \u003ca name=\"service\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-service\"\u003e\u003ccode\u003eservice\u003c/code\u003e\u003c/a\u003e: _(Optional)_ ID of the service or fully-qualified identifier of the service. This is\n    required unless providing `metadata` or `job`.\n\n-   \u003ca name=\"job\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-job\"\u003e\u003ccode\u003ejob\u003c/code\u003e\u003c/a\u003e: _(Optional)_ ID of the job or fully-qualified identifier of the job. This is required\n    unless providing `metadata` or `service`.\n\n-   \u003ca name=\"metadata\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-metadata\"\u003e\u003ccode\u003emetadata\u003c/code\u003e\u003c/a\u003e: _(Optional)_ YAML service description for the Cloud Run service. This is required\n    unless providing `service` or `job`.\n\n-   \u003ca name=\"image\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-image\"\u003e\u003ccode\u003eimage\u003c/code\u003e\u003c/a\u003e: _(Optional)_ (Required, unless providing `metadata` or `source`) Fully-qualified name\n    of the container image to deploy. For example:\n\n        gcr.io/cloudrun/hello:latest\n\n    or\n\n        us-docker.pkg.dev/my-project/my-container/image:1.2.3\n\n-   \u003ca name=\"source\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-source\"\u003e\u003ccode\u003esource\u003c/code\u003e\u003c/a\u003e: _(Optional)_ (Required, unless providing `metadata`, `image`, or `job`) Path to source\n    to deploy. If specified, this will deploy the Cloud Run service from the\n    code specified at the given source directory.\n\n    Learn more about the required permissions in [Deploying from source\n    code](https://cloud.google.com/run/docs/deploying-source-code).\n\n-   \u003ca name=\"suffix\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-suffix\"\u003e\u003ccode\u003esuffix\u003c/code\u003e\u003c/a\u003e: _(Optional)_ String suffix to append to the revision name. Revision names always start\n    with the service name automatically. For example, specifying `v1` for a\n    service named `helloworld`, would lead to a revision named\n    `helloworld-v1`. This option only applies to services.\n\n-   \u003ca name=\"env_vars\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-env_vars\"\u003e\u003ccode\u003eenv_vars\u003c/code\u003e\u003c/a\u003e: _(Optional)_ List of environment variables that should be set in the environment.\n    These are comma-separated or newline-separated `KEY=VALUE`. Keys or values\n    that contain separators must be escaped with a backslash (e.g. `\\,` or\n    `\\\\n`) unless quoted. Any leading or trailing whitespace is trimmed unless\n    values are quoted.\n\n        env_vars: |-\n          FRUIT=apple\n          SENTENCE=\" this will retain leading and trailing spaces \"\n\n    This value will only be set if the input is a non-empty value. If a\n    non-empty value is given, the field values will be overwritten (not\n    merged). To remove all values, set the value to the literal string `{}`.\n\n    If both `env_vars` and `env_vars_file` are specified, the keys in\n    `env_vars` will take precedence over the keys in `env_vars_file`.\n\n-   \u003ca name=\"env_vars_file\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-env_vars_file\"\u003e\u003ccode\u003eenv_vars_file\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Path to a file on disk, relative to the workspace, that defines\n    environment variables. The file can be newline-separated KEY=VALUE pairs,\n    JSON, or YAML format. If both `env_vars` and `env_vars_file` are\n    specified, the keys in env_vars will take precedence over the keys in\n    env_vars_file.\n\n        NAME=person\n        EMAILS=foo@bar.com\\,zip@zap.com\n\n    When specified as KEY=VALUE pairs, the same escaping rules apply as\n    described in `env_vars`. You do not have to escape YAML or JSON.\n\n    If both `env_vars` and `env_vars_file` are specified, the keys in\n    `env_vars` will take precedence over the keys in `env_vars_file`.\n\n    **⚠️ DEPRECATION NOTICE:** This input is deprecated and will be removed in\n    the next major version release.\n\n-   \u003ca name=\"env_vars_update_strategy\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-env_vars_update_strategy\"\u003e\u003ccode\u003eenv_vars_update_strategy\u003c/code\u003e\u003c/a\u003e: _(Required, default: `merge`)_ Controls how the environment variables are set on the Cloud Run service.\n    If set to \"merge\", then the environment variables are _merged_ with any\n    upstream values. If set to \"overwrite\", then all environment variables on\n    the Cloud Run service will be replaced with exactly the values given by\n    the GitHub Action (making it authoritative).\n\n-   \u003ca name=\"secrets\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-secrets\"\u003e\u003ccode\u003esecrets\u003c/code\u003e\u003c/a\u003e: _(Optional)_ List of KEY=VALUE pairs to use as secrets. These are comma-separated or\n    newline-separated `KEY=VALUE`. Keys or values that contain separators must\n    be escaped with a backslash (e.g. `\\,` or `\\\\n`) unless quoted. Any\n    leading or trailing whitespace is trimmed unless values are quoted.\n\n    These can either be injected as environment variables or mounted as\n    volumes. Keys starting with a forward slash '/' are mount paths. All other\n    keys correspond to environment variables:\n\n        with:\n          secrets: |-\n            # As an environment variable:\n            KEY1=secret-key-1:latest\n\n            # As a volume mount:\n            /secrets/api/key=secret-key-2:latest\n\n    This value will only be set if the input is a non-empty value. If a\n    non-empty value is given, the field values will be overwritten (not\n    merged). To remove all values, set the value to the literal string `{}`.\n\n-   \u003ca name=\"secrets_update_strategy\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-secrets_update_strategy\"\u003e\u003ccode\u003esecrets_update_strategy\u003c/code\u003e\u003c/a\u003e: _(Required, default: `merge`)_ Controls how the secrets are set on the Cloud Run service. If set to\n    `merge`, then the secrets are merged with any upstream values. If set to\n    `overwrite`, then all secrets on the Cloud Run service will be replaced\n    with exactly the values given by the GitHub Action (making it\n    authoritative).\n\n-   \u003ca name=\"labels\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-labels\"\u003e\u003ccode\u003elabels\u003c/code\u003e\u003c/a\u003e: _(Optional)_ List of labels that should be set on the function. These are\n    comma-separated or newline-separated `KEY=VALUE`. Keys or values that\n    contain separators must be escaped with a backslash (e.g. `\\,` or `\\\\n`)\n    unless quoted. Any leading or trailing whitespace is trimmed unless values\n    are quoted.\n\n        labels: |-\n          labela=my-label\n          labelb=my-other-label\n\n    This value will only be set if the input is a non-empty value. If a\n    non-empty value is given, the field values will be overwritten (not\n    merged). To remove all values, set the value to the literal string `{}`.\n\n    Google Cloud restricts the allowed values and length for labels. Please\n    see the Google Cloud documentation for labels for more information.\n\n-   \u003ca name=\"skip_default_labels\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-skip_default_labels\"\u003e\u003ccode\u003eskip_default_labels\u003c/code\u003e\u003c/a\u003e: _(Optional, default: `false`)_ Skip applying the special annotation labels that indicate the deployment\n    came from GitHub Actions. The GitHub Action will automatically apply the\n    following labels which Cloud Run uses to enhance the user experience:\n\n        managed-by: github-actions\n        commit-sha: \u003csha\u003e\n\n    Setting this to `true` will skip adding these special labels.\n\n-   \u003ca name=\"tag\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-tag\"\u003e\u003ccode\u003etag\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Traffic tag to assign to the newly-created revision. This option only\n    applies to services.\n\n-   \u003ca name=\"timeout\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-timeout\"\u003e\u003ccode\u003etimeout\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Maximum request execution time, specified as a duration like \"10m5s\" for\n    ten minutes and 5 seconds.\n\n-   \u003ca name=\"flags\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-flags\"\u003e\u003ccode\u003eflags\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Space separate list of additional Cloud Run flags to pass to the deploy\n    command. This can be used to apply advanced features that are not exposed\n    via this GitHub Action. For Cloud Run services, this command will be\n    `gcloud run deploy`. For Cloud Run jobs, this command will be `gcloud jobs\n    deploy`.\n\n        with:\n          flags: '--add-cloudsql-instances=...'\n\n    Flags that include other flags must quote the _entire_ outer flag value. For\n    example, to pass `--args=-X=123`:\n\n        with:\n          flags: '--add-cloudsql-instances=... \"--args=-X=123\"'\n\n    See the [complete list of\n    flags](https://cloud.google.com/sdk/gcloud/reference/run/deploy#FLAGS) for\n    more information.\n\n    Please note, this GitHub Action does not parse or validate the flags. You\n    are responsible for making sure the flags are available on the gcloud\n    version and subcommand.\n\n-   \u003ca name=\"no_traffic\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-no_traffic\"\u003e\u003ccode\u003eno_traffic\u003c/code\u003e\u003c/a\u003e: _(Optional, default: `false`)_ If true, the newly deployed revision will not receive traffic. This option\n    only applies to services.\n\n-   \u003ca name=\"revision_traffic\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-revision_traffic\"\u003e\u003ccode\u003erevision_traffic\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Comma-separated list of revision traffic assignments.\n\n        with:\n          revision_traffic: 'my-revision=10' # percentage\n\n    To update traffic to the latest revision, use the special tag \"LATEST\":\n\n        with:\n          revision_traffic: 'LATEST=100'\n\n    This is mutually-exclusive with `tag_traffic`. This option only applies\n    to services.\n\n-   \u003ca name=\"tag_traffic\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-tag_traffic\"\u003e\u003ccode\u003etag_traffic\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Comma-separated list of tag traffic assignments.\n\n        with:\n          tag_traffic: 'my-tag=10' # percentage\n\n    This is mutually-exclusive with `revision_traffic`. This option only\n    applies to services.\n\n-   \u003ca name=\"update_traffic_flags\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-update_traffic_flags\"\u003e\u003ccode\u003eupdate_traffic_flags\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Space separate list of additional Cloud Run flags to pass to the `gcloud\n    run services update-traffic` command. This can be used to apply advanced\n    features that are not exposed via this GitHub Action. This flag only\n    applies when `revision_traffic` or `tag_traffic` is set.\n\n        with:\n          traffic_flags: '--set-tags=...'\n\n    Flags that include other flags must quote the _entire_ outer flag value. For\n    example, to pass `--args=-X=123`:\n\n        with:\n          flags: '--set-tags=... \"--args=-X=123\"'\n\n    See the [complete list of\n    flags](https://cloud.google.com/sdk/gcloud/reference/run/services/update#FLAGS)\n    for more information.\n\n    Please note, this GitHub Action does not parse or validate the flags. You\n    are responsible for making sure the flags are available on the gcloud\n    version and subcommand.\n\n-   \u003ca name=\"project_id\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-project_id\"\u003e\u003ccode\u003eproject_id\u003c/code\u003e\u003c/a\u003e: _(Optional)_ ID of the Google Cloud project in which to deploy the service.\n\n-   \u003ca name=\"region\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-region\"\u003e\u003ccode\u003eregion\u003c/code\u003e\u003c/a\u003e: _(Optional, default: `us-central1`)_ Region in which the Cloud Run services are deployed.\n\n-   \u003ca name=\"gcloud_version\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-gcloud_version\"\u003e\u003ccode\u003egcloud_version\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Version of the Cloud SDK to install. If unspecified or set to \"latest\",\n    the latest available gcloud SDK version for the target platform will be\n    installed. Example: \"290.0.1\".\n\n-   \u003ca name=\"gcloud_component\"\u003e\u003c/a\u003e\u003ca href=\"#user-content-gcloud_component\"\u003e\u003ccode\u003egcloud_component\u003c/code\u003e\u003c/a\u003e: _(Optional)_ Version of the Cloud SDK components to install and use.\n\n\n\u003c!-- END_AUTOGEN_INPUTS --\u003e\n\n### Custom metadata YAML\n\nFor advanced use cases, you can define a custom Cloud Run metadata file. This is\na YAML description of the Cloud Run service or job. This allows you to customize your\nservice configuration, such as [memory\nlimits](https://cloud.google.com/run/docs/configuring/memory-limits), [CPU\nallocation](https://cloud.google.com/run/docs/configuring/cpu), [max\ninstances](https://cloud.google.com/run/docs/configuring/max-instances), and\n[more](https://cloud.google.com/sdk/gcloud/reference/run/deploy#OPTIONAL-FLAGS).\n\n**⚠️ When using a custom metadata YAML file, all other inputs are ignored!**\n\n-   `metadata`: (Optional) The path to a Cloud Run service or job metadata file.\n\nTo [deploying a new service](https://cloud.google.com/run/docs/deploying#yaml)\nto create a new YAML service definition:\n\n```yaml\napiVersion: serving.knative.dev/v1\nkind: Service\nmetadata:\n  name: SERVICE\nspec:\n  template:\n    spec:\n      containers:\n      - image: IMAGE\n```\n\nTo update a revision or to [deploy a new revision of an existing service](https://cloud.google.com/run/docs/deploying#yaml_1), download and modify the YAML service definition:\n\n```shell\ngcloud run services describe SERVICE --format yaml \u003e service.yaml\n```\n\n## Allowing unauthenticated requests\n\nA Cloud Run product recommendation is that CI/CD systems not set or change\nsettings for allowing unauthenticated invocations. New deployments are\nautomatically private services, while deploying a revision of a public\n(unauthenticated) service will preserve the IAM setting of public\n(unauthenticated). For more information, see [Controlling access on an individual service](https://cloud.google.com/run/docs/securing/managing-access).\n\n## Outputs\n\n\u003c!-- BEGIN_AUTOGEN_OUTPUTS --\u003e\n\n-   `url`: The URL of the Cloud Run service.\n\n\n\u003c!-- END_AUTOGEN_OUTPUTS --\u003e\n\n\n## Authorization\n\nThere are a few ways to authenticate this action. The caller must have\npermissions to access the secrets being requested.\n\nYou will need to authenticate to Google Cloud as a service account with the\nfollowing roles:\n\n-   Cloud Run Admin (`roles/run.admin`):\n    -   Can create, update, and delete services.\n    -   Can get and set IAM policies.\n\nThis service account needs to be a member of the `Compute Engine default service account`,\n`(PROJECT_NUMBER-compute@developer.gserviceaccount.com)`, with role\n`Service Account User`. To grant a user permissions for a service account, use\none of the methods found in [Configuring Ownership and access to a service account](https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_user_for_a_service_account).\n\n\n### Via google-github-actions/auth\n\nUse [google-github-actions/auth](https://github.com/google-github-actions/auth)\nto authenticate the action. You can use [Workload Identity Federation][wif] or\ntraditional [Service Account Key JSON][sa] authentication.\n\n```yaml\njobs:\n  job_id:\n    permissions:\n      contents: 'read'\n      id-token: 'write'\n\n    steps:\n\n    # ...\n\n    - uses: 'google-github-actions/auth@v2'\n      with:\n        workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'\n        service_account: 'my-service-account@my-project.iam.gserviceaccount.com'\n\n    - uses: 'google-github-actions/deploy-cloudrun@v2'\n      with:\n        image: 'gcr.io/cloudrun/hello'\n        service: 'hello-cloud-run'\n```\n\n### Via Application Default Credentials\n\nIf you are hosting your own runners, **and** those runners are on Google Cloud,\nyou can leverage the Application Default Credentials of the instance. This will\nauthenticate requests as the service account attached to the instance. **This\nonly works using a custom runner hosted on GCP.**\n\n```yaml\njobs:\n  job_id:\n    steps:\n    # ...\n\n    - uses: 'google-github-actions/deploy-cloudrun@v2'\n      with:\n        image: 'gcr.io/cloudrun/hello'\n        service: 'hello-cloud-run'\n```\n\nThe action will automatically detect and use the Application Default\nCredentials.\n\n## Example Workflows\n\n* [Deploy from source](https://github.com/google-github-actions/example-workflows/blob/main/workflows/deploy-cloudrun/cloudrun-source.yml)\n\n* [Build and deploy a container](https://github.com/google-github-actions/example-workflows/blob/main/workflows/deploy-cloudrun/cloudrun-docker.yml)\n\n\n[cloud-run]: https://cloud.google.com/run\n[sa]: https://cloud.google.com/iam/docs/creating-managing-service-accounts\n[wif]: https://cloud.google.com/iam/docs/workload-identity-federation\n[create-key]: https://cloud.google.com/iam/docs/creating-managing-service-account-keys\n[gh-runners]: https://help.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[gh-secret]: https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets\n[setup-gcloud]: ./setup-gcloud\n[artifact-api]: https://console.cloud.google.com/flows/enableapi?apiid=artifactregistry.googleapis.com\n[repo]: https://cloud.google.com/artifact-registry/docs/manage-repos\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle-github-actions%2Fdeploy-cloudrun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle-github-actions%2Fdeploy-cloudrun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle-github-actions%2Fdeploy-cloudrun/lists"}