{"id":13615478,"url":"https://github.com/rust-lang/simpleinfra","last_synced_at":"2025-04-12T16:36:12.294Z","repository":{"id":37077679,"uuid":"97986310","full_name":"rust-lang/simpleinfra","owner":"rust-lang","description":"Rust Infrastructure automation","archived":false,"fork":false,"pushed_at":"2025-04-01T14:20:10.000Z","size":3308,"stargazers_count":153,"open_issues_count":45,"forks_count":80,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-03T17:11:17.283Z","etag":null,"topics":["rust-infra"],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-07-21T21:02:17.000Z","updated_at":"2025-04-01T14:20:14.000Z","dependencies_parsed_at":"2023-09-26T18:37:43.686Z","dependency_job_id":"78a5a18a-f6ca-4838-a0e0-fce14de0fe66","html_url":"https://github.com/rust-lang/simpleinfra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fsimpleinfra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fsimpleinfra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fsimpleinfra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fsimpleinfra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/simpleinfra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248597241,"owners_count":21130840,"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":["rust-infra"],"created_at":"2024-08-01T20:01:14.241Z","updated_at":"2025-04-12T16:36:12.243Z","avatar_url":"https://github.com/rust-lang.png","language":"HCL","readme":"# Simpleinfra\n\nThis repository containing the tools and automation written by the [Rust\ninfrastructure team][team] to manage our services. Using some of the tools in\nthis repo require privileges only infra team members have.\n\n* [**ansible**](ansible/README.md): Ansible playbooks to deploy our servers\n* [**aws-creds**][aws-2fa]: log into AWS with two factor authentication\n* [**github-actions**](github-actions/README.md): shared actions for GitHub\n  Actions\n* [**setup-deploy-keys**](#setup-deploy-keys): automation for GitHub deploy keys\n* [**terraform**](terraform/shared/README.md): Terraform configuration to deploy our\n  cloud resources\n* [**with-rust-key**](#with-rust-key): execute commands using the Rust release\n  signing key\n\nThe contents of this repository are released under the MIT license.\n\n[aws-2fa]: https://forge.rust-lang.org/infra/docs/aws-access.html#2-factor-authentication\n[team]: https://github.com/rust-lang/infra-team\n\n## setup-deploy-keys\n\nUsing Personal Access Tokens to upload to GitHub pages from CI is not great\nfrom a security point of view, as it's not possible to scope those access\ntokens to just that repository. Deploy keys are properly scoped, but it can be\nan hassle to generate and configure them.\n\nThe `setup-deploy-keys` tool automates most of that process. You need to setup\nyour GitHub token in the `GITHUB_TOKEN` environment variable, and then run:\n\n```\ncargo run --bin setup-deploy-keys org-name/repo-name\n```\n\nThe tool will generate a key, upload it to GitHub and then print an environment\nvariable `GITHUB_DEPLOY_KEY` containing an encoded representation of the\nprivate key.\n\nTo use the key the easiest way is to cd into the directory you want to deploy,\n[download this rust program][setup-deploy-keys-deploy], compile and run it\n(with the `GITHUB_DEPLOY_KEY` variable set).\n\nBy default the tool generates ed25519 keys, but some libraries (like `git2`)\ndon't support them yet. In those cases you can generate RSA keys by passing the\n`--rsa` flag:\n\n```\ncargo run --bin setup-deploy-keys org-name/repo-name --rsa\n```\n\n[setup-deploy-keys-deploy]: https://raw.githubusercontent.com/rust-lang/simpleinfra/master/setup-deploy-keys/src/deploy.rs\n\n## with-rust-key\n\nThe `with-rust-key.sh` script executes a command inside a gpg environment\nconfigured to use the Rust release signing key, without actually storing the\nkey on disk. The key is fetched at runtime from the 1password sensitive vault,\nand you need to have `jq` and [the 1password CLI][1password-cli] installed.\n\nFor example, to create a git tag for the Rust 2.0.0 release you can use:\n\n```\n./with-rust-key.sh gpg tag -u FA1BE5FE 2.0.0 stable\n```\n\nThe script is designed to leave no traces of the key on the host system after\nit finishes, but a program with your user's privileges can still interact with\nthe key as long as the script is running.\n\n[1password-cli]: https://support.1password.com/command-line-getting-started/\n","funding_links":[],"categories":["Rust Tools","Rust Tools and Frameworks","Rust Tools, Libraries, and Frameworks","Tools","HCL"],"sub_categories":["In-memory data grids","Interfaces","E-Books","VS Code Extensions for Developer Productivity","Mesh networks","JavaScript Libraries for Machine Learning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fsimpleinfra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Fsimpleinfra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fsimpleinfra/lists"}