{"id":38633799,"url":"https://github.com/brensch/battleword-cloud-engine","last_synced_at":"2026-01-17T09:01:45.071Z","repository":{"id":43089672,"uuid":"466977774","full_name":"brensch/battleword-cloud-engine","owner":"brensch","description":"A version of the engine designed to run in the cloud. This is what the UI talks to. Matches are saved into firestore objects.","archived":false,"fork":false,"pushed_at":"2022-03-19T04:38:07.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-21T13:07:07.614Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/brensch.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}},"created_at":"2022-03-07T06:55:07.000Z","updated_at":"2022-03-09T07:15:46.000Z","dependencies_parsed_at":"2022-09-22T05:26:06.397Z","dependency_job_id":null,"html_url":"https://github.com/brensch/battleword-cloud-engine","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/brensch/battleword-cloud-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brensch%2Fbattleword-cloud-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brensch%2Fbattleword-cloud-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brensch%2Fbattleword-cloud-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brensch%2Fbattleword-cloud-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brensch","download_url":"https://codeload.github.com/brensch/battleword-cloud-engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brensch%2Fbattleword-cloud-engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: 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":"2026-01-17T09:01:44.265Z","updated_at":"2026-01-17T09:01:45.018Z","avatar_url":"https://github.com/brensch.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# battleword-cloud-engine\nA version of the engine designed to run in the cloud. This is what the UI talks to. Matches are saved into firestore objects. Wanted to keep firestore shenanigans out of main repo and make it mainly things that users may want to import themselves or that are necessary for demonstration purposes.\n\nThis repo will eventually contain things like the ladder etc.\n\n## Deploying\n\nBy making a commit to `api/dev` or `api/prod` this project wil automatically deploy.\n\n## Identity Federation\n\nTo allow a github project to use gcloud resources:\n\nSetup pool:\n```bash\ngcloud iam workload-identity-pools create \"github-pool\" \\\n  --project=\"battleword\" \\\n  --location=\"global\" \\\n  --display-name=\"github-pool\"\n```\n\nSetup workload:\n```bash\ngcloud iam workload-identity-pools providers create-oidc \"github-provider\" \\\n  --project=\"battleword\" \\\n  --location=\"global\" \\\n  --workload-identity-pool=\"github-pool\" \\\n  --display-name=\"github-provider\" \\\n  --attribute-mapping=\"google.subject=assertion.sub,attribute.actor=assertion.actor,attribute.aud=assertion.aud,attribute.repository=assertion.repository\" \\\n  --issuer-uri=\"https://token.actions.githubusercontent.com\"\n```\n\nAllow the identity provider to impersonate the service account:\n\n```bash\ngcloud iam service-accounts add-iam-policy-binding \"github@battleword.iam.gserviceaccount.com\" \\\n  --project=\"battleword\" \\\n  --role=\"roles/iam.workloadIdentityUser\" \\\n  --member=\"principalSet://iam.googleapis.com/projects/339690027814/locations/global/workloadIdentityPools/github-pool/attribute.repository/brensch/battleword-cloud-engine\"\n```\nThis is kind of magic and tbh I don't understand it well yet. Once it's set up Github is able to use the GCP resources you specify on the service account without any key in our environment.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrensch%2Fbattleword-cloud-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrensch%2Fbattleword-cloud-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrensch%2Fbattleword-cloud-engine/lists"}