{"id":19325292,"url":"https://github.com/duplocloud/actions-setup","last_synced_at":"2026-03-01T01:35:19.184Z","repository":{"id":248175082,"uuid":"827509863","full_name":"duplocloud/actions-setup","owner":"duplocloud","description":"Duploc actions setup action. ","archived":false,"fork":false,"pushed_at":"2024-07-12T19:59:09.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-05T02:01:53.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duplocloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-11T19:43:09.000Z","updated_at":"2024-07-12T19:54:14.000Z","dependencies_parsed_at":"2024-07-12T22:05:01.719Z","dependency_job_id":null,"html_url":"https://github.com/duplocloud/actions-setup","commit_stats":null,"previous_names":["duplocloud/actions-setup"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/duplocloud/actions-setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Factions-setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Factions-setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Factions-setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Factions-setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duplocloud","download_url":"https://codeload.github.com/duplocloud/actions-setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duplocloud%2Factions-setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29957404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-10T02:09:35.017Z","updated_at":"2026-03-01T01:35:19.147Z","avatar_url":"https://github.com/duplocloud.png","language":null,"readme":" # Duplo AWS Setup Action\n\nAn Action to set up duplocloud cli and the underlying cloud. During this process, duplo discovers the underlying cloud which is either aws, gcp, or azure. Once the cloud is known, the corresponding cli is installed. Finally the action will authenticate with the cloud provider.\nIt provides the following features:\n\n- Setting up Python.\n- Installing `duploctl`.\n- when AWS\n  - Installing AWS CLI.\n  - Running Duplo JIT (Just-In-Time) for AWS.\n  - Configuring AWS IAM Credentials.\n- when GCP\n  - Installing GCP CLI.\n  - Configuring GCP SA Credentials.\n- when Azure\n  - Installing Azure CLI.\n  - Configuring Azure SCP Credentials.\n\n## Inputs\n\nThe following input variables can be configured:\n\n| Name              | Description                                                                 | Required | Default Value |\n|-------------------|-----------------------------------------------------------------------------|----------|---------------|\n| `mask-account-id` | Mask AWS Account ID in logs                                                 | `false`  | `yes`         |\n| `region`          | Overide the cloud region from the default. For gcp this is required.        | `false`  |               |\n| `account-id`      | Overide the cloud account id from the default. Required when on gcp/azure where this would be the project name or directory name. | `false`  |               |\n| `credentials`     | Cloud credentials for Azure or GCP.                                         | `false`  |               |\n| `version`        | Duplo version to install.                                                    | `false`  | `latest`      |\n\n\n\n## Usage\n\n**AWS Example:**  \n```yaml\nname: Simple AWS Setup\non: \n- push\njobs:\n  build:\n    runs-on: ubuntu-latest\n    env:\n      DUPLO_TOKEN: ${{ secrets.DUPLO_TOKEN }}\n      DUPLO_HOST: ${{ vars.DUPLO_HOST  }}\n      DUPLO_TENANT: ${{ vars.DUPLO_TENANT }}\n    steps:\n    - name: Duplo Setup\n      uses: duplocloud/actions/setup@main\n```\n\n**GCP or Azure Example:**  \nThe only difference is there is no JIT for GCP or Azure. This means the job needs to have some pre-configured credentials to use for authentication. The name of the account is required for GCP and Azure as well. \n```yaml\nsteps:\n- name: Duplo Setup\n  uses: duplocloud/actions/setup@main\n  with:\n    account-id: ${{ vars.CLOUD_ACCOUNT }}\n    credentials: ${{ secrets.CLOUD_CREDENTIALS }}\n```\n\n## Authentication  \n\nEach underlying cloud has their own unique way of authenticating. \n\n### AWS  \n\nUsing the JIT functionality built into the portal, the action uses retreives an sts session from the duplo portal and uses these credentials to authenticate with the AWS CLI. Magical. \n\n### Azure  \n\nThe action uses the `azure/login` action to authenticate with Azure. To keep things consistent this action will use the `CLOUD_CREDENTIALS` secret to authenticate which expects the following format:  \n```json\n{\n  \"clientId\": \"\u003cclient-id\u003e\",\n  \"clientSecret\": \"\u003cclient-secret\u003e\",\n  \"subscriptionId\": \"\u003csubscription-id\u003e\",\n  \"tenantId\": \"\u003ctenant-id\u003e\"\n}\n```\n\n### GCP\n\nThe action uses the `google-github-actions/setup-gcloud` action to authenticate with GCP. To keep things consistent this action will use the `CLOUD_CREDENTIALS` secret to authenticate which expects the following format:  \n```json\n{\n  \"type\": \"service_account\",\n  \"project_id\": \"\u003cproject-id\u003e\",\n  \"private_key_id\": \"\u003cprivate-key-id\u003e\",\n  \"private_key\": \"\u003cprivate-key\u003e\",\n  \"client_email\": \"\u003cclient-email\u003e\",\n  \"client_id\": \"\u003cclient-id\u003e\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://accounts.google.com/o/oauth2/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"\u003cclient-x509-cert-url\u003e\"\n}\n```\n\n## License\n\nThe scripts and documentation in this project are released under the [MIT License](LICENSE).\n\n## References \n\n - Third Party Actions: \n   - [aws-actions/configure-aws-credentials@v3](https://github.com/aws-actions/configure-aws-credentials)\n   - [unfor19/install-aws-cli-action@v1](https://github.com/unfor19/install-aws-cli-action)\n   - [actions/setup-python@v5](https://github.com/actions/setup-python)\n   - [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud)\n   - [google-github-actions/auth](https://github.com/google-github-actions/auth)\n   - [azure/login](https://github.com/marketplace/actions/azure-login)\n   - [azure/CLI](https://github.com/marketplace/actions/azure-cli-action)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduplocloud%2Factions-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduplocloud%2Factions-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduplocloud%2Factions-setup/lists"}