{"id":17640640,"url":"https://github.com/joel-valentine/cogo","last_synced_at":"2026-01-18T18:03:38.951Z","repository":{"id":85620257,"uuid":"254764774","full_name":"Joel-Valentine/cogo","owner":"Joel-Valentine","description":"CLI tool to interact with different cloud providers","archived":false,"fork":false,"pushed_at":"2020-07-19T11:23:41.000Z","size":73,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-27T06:46:37.409Z","etag":null,"topics":["cli","digitalocean","droplets","golang","servers","wizard"],"latest_commit_sha":null,"homepage":"https://cogoapp.dev","language":"Go","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/Joel-Valentine.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","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":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-11T00:43:49.000Z","updated_at":"2022-02-10T15:24:50.000Z","dependencies_parsed_at":"2023-03-07T11:15:58.821Z","dependency_job_id":null,"html_url":"https://github.com/Joel-Valentine/cogo","commit_stats":null,"previous_names":["midnight-conqueror/cogo"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/Joel-Valentine/cogo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-Valentine%2Fcogo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-Valentine%2Fcogo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-Valentine%2Fcogo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-Valentine%2Fcogo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joel-Valentine","download_url":"https://codeload.github.com/Joel-Valentine/cogo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-Valentine%2Fcogo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28547004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"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":["cli","digitalocean","droplets","golang","servers","wizard"],"created_at":"2024-10-23T06:04:29.171Z","updated_at":"2026-01-18T18:03:38.945Z","avatar_url":"https://github.com/Joel-Valentine.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cogo\n\nInteractive cloud provider tool. Currently allows you to create a droplet on DigitalOcean, delete a droplet and list your droplets.\n\nI built this as a way to learn Go and have a quick way to make a server without having to go to digitalocean.com\n\n[Contribution Guidelines](./.github/CONTRIBUTING.md)\n\n[![CI](https://github.com/Joel-Valentine/cogo/actions/workflows/ci.yml/badge.svg)](https://github.com/Joel-Valentine/cogo/actions/workflows/ci.yml)\n[![GitHub release](https://img.shields.io/github/v/tag/Joel-Valentine/cogo.svg?label=latest)](https://github.com/Joel-Valentine/cogo/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/Joel-Valentine/cogo)](https://goreportcard.com/report/github.com/Joel-Valentine/cogo)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n![Cogo example gif](https://imgur.com/oLMYjhL.gif)\n\n## Supported providers\n\n- DigitalOcean\n\n## Installing\n\n### From Brew\n\n```bash\nbrew install Joel-Valentine/tap/cogo\n```\n\n### From binary\n\nFind the latest release in releases for your machines architecture, download and run either from within the directory `./cogo` or by moving it into the `/usr/local/bin` to be accessed from anywhere.\n\n### Configuration\n\nCogo uses a modern, secure credential management system with multiple storage options.\n\n#### 🔐 Secure Storage (Recommended)\n\nStore your DigitalOcean API token securely in your OS keychain:\n\n```bash\ncogo config set-token\n```\n\nYour token will be stored in:\n- **macOS**: Keychain\n- **Windows**: Credential Manager\n- **Linux**: Secret Service (GNOME Keyring, KWallet, etc.)\n\n#### 🌍 Environment Variables\n\nFor CI/CD or automation, use environment variables:\n\n```bash\nexport DIGITALOCEAN_TOKEN=dop_v1_xxx\ncogo create\n```\n\nSupported environment variables (in priority order):\n- `DIGITALOCEAN_TOKEN` (standard DigitalOcean env var)\n- `COGO_DIGITALOCEAN_TOKEN` (cogo-specific)\n\n#### 📁 Legacy File Configuration (Deprecated)\n\nCogo still supports the legacy `.cogo` JSON file for backward compatibility:\n\nLocations checked (in order):\n1. `$HOME/.cogo`\n2. `$HOME/.config/.cogo`\n3. `./.cogo`\n\n**⚠️ Warning**: File storage is insecure (plain text). Migrate to keychain:\n\n```bash\ncogo config migrate\n```\n\n#### Priority Order\n\nCogo checks for credentials in this order:\n1. Command-line flag: `--token`\n2. Environment variable: `DIGITALOCEAN_TOKEN`\n3. Environment variable: `COGO_DIGITALOCEAN_TOKEN`\n4. OS Keychain (secure)\n5. Config file (legacy)\n6. Interactive prompt\n\n#### Configuration Commands\n\n```bash\n# Set token (stores in keychain)\ncogo config set-token\n\n# View current token (masked)\ncogo config get-token\n\n# Check configuration status\ncogo config status\n\n# Migrate from file to keychain\ncogo config migrate\n\n# Delete stored token\ncogo config delete-token\n```\n\n## Usage\n\n### create\n\nCreate will run you through creating a droplet on your given cloud provider. Currently the process is:\n\n1. Chose your provider\n1. Enter a name\n1. Chose an image\n1. Chose a region\n1. Chose a size\n1. Chose an ssh key\n1. Are you sure (y/n)\n\nFinally you will be told the droplet has been created. You can then list your servers from that provider once you think its been created / assigned an IP.\n\n```bash\ncogo create\n```\n\n### list\n\nlist will list servers created on that provider printing the name and IP\n\n```bash\ncogo list\n\n\nYour droplets:\n\n0  Name: blog\n   IP: xxx.xxx.xxx.xxx\n\n1  Name: backend\n   IP: xxx.xxx.xxx.xxx\n\n2  Name: frontend\n   IP: xxx.xxx.xxx.xxx\n```\n\n### destroy\n\nDestroy will allow you to delete one of your servers **Safely** there will be a total of three checks to make sure you understand what you are deleting.\n\n1. Chose the provider you wish to delete from\n1. There will be an 'are you sure (y/n)' question\n1. You will need to enter the name of the server you are deleting\n1. You will then have to answer another 'are you really really sure (y\\n)' question with details of the server you are about to delete\n\n```bash\ncogo destroy\n```\n\n## Installing from source\n\nThis project requires Go to be installed.\n\nRunning it then should be as simple as cloning the repository then:\n\n```console\n$ make build\n$ ./bin/cogo\n```\n\n### Testing\n\n`make test`\n\n## Contributing\n\nIf you've read this far you're probably the right person to add to this project\n\nPlease read the [contributing](.github/CONTRIBUTING.md) guide on how to get started\n\nI am still learning Go at the moment so don't feel like you need to be a wizard to contribute\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-valentine%2Fcogo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoel-valentine%2Fcogo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoel-valentine%2Fcogo/lists"}