{"id":28578148,"url":"https://github.com/digitalocean/omniauth-digitalocean","last_synced_at":"2025-07-29T00:36:47.426Z","repository":{"id":15936844,"uuid":"18678939","full_name":"digitalocean/omniauth-digitalocean","owner":"digitalocean","description":"DigitalOcean OAuth2 Strategy for OmniAuth","archived":false,"fork":false,"pushed_at":"2023-07-06T19:55:24.000Z","size":43,"stargazers_count":29,"open_issues_count":1,"forks_count":17,"subscribers_count":164,"default_branch":"main","last_synced_at":"2025-07-13T06:30:15.701Z","etag":null,"topics":["digitalocean","oauth","omniauth","ruby"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/omniauth-digitalocean","language":"Ruby","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/digitalocean.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2014-04-11T15:30:24.000Z","updated_at":"2025-05-01T09:36:02.000Z","dependencies_parsed_at":"2025-06-11T01:19:02.955Z","dependency_job_id":null,"html_url":"https://github.com/digitalocean/omniauth-digitalocean","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/digitalocean/omniauth-digitalocean","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fomniauth-digitalocean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fomniauth-digitalocean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fomniauth-digitalocean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fomniauth-digitalocean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalocean","download_url":"https://codeload.github.com/digitalocean/omniauth-digitalocean/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fomniauth-digitalocean/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267472061,"owners_count":24092812,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["digitalocean","oauth","omniauth","ruby"],"created_at":"2025-06-11T01:08:57.038Z","updated_at":"2025-07-29T00:36:47.380Z","avatar_url":"https://github.com/digitalocean.png","language":"Ruby","readme":"# DigitalOcean's Omniauth strategy\n\nThis is the official Ruby OmniAuth strategy for authenticating to [DigitalOcean](https://www.digitalocean.com).\n\nBefore you can start developing your API client for DigitalOcean, you need to create an application on your account and copy the application id and secret.\n\n## Installation\n\nAdd the strategy to your `Gemfile`:\n\n```ruby\ngem 'omniauth-digitalocean'\n```\n\nAnd bundle.\n\n## Usage\n\nYou can integrate the strategy into your middleware in a `config.ru`:\n\n```ruby\nuse OmniAuth::Builder do\n  provider :digitalocean, SETTINGS['CLIENT_ID'], SETTINGS['CLIENT_SECRET'], scope: \"read write\"\nend\n```\n\nIf you're using Rails, you'll want to add to the middleware stack:\n\n```ruby\nRails.application.config.middleware.use OmniAuth::Builder do\n  provider :digitalocean, SETTINGS['CLIENT_ID'], SETTINGS['CLIENT_SECRET'], scope: \"read write\"\nend\n```\n\n- The scope needs to be separated by space and not comma: \"read write\" instead of \"read,write\" !\n\nFor additional information, refer to the [OmniAuth wiki](https://github.com/intridea/omniauth/wiki).\n\nSee the [example](https://github.com/digitaloceancloud/omniauth-digitalocean/blob/master/examples/sinatra/config.ru) Sinatra app for full examples\n\n## Auth Hash Schema\n\nThe following information is provided in the auth hash accessible to the callback at `request.env[\"omniauth.auth\"]`:\n\n* `provider` - The OmniAuth provider, i.e. `digitalocean`\n* `uid` - The UUID of the authenticating user\n* `info` - A hash containing information about the user\n  * `uuid` - The UUID of the authenticating user\n  * `name` - The user's display name\n  * `email` - The e-mail of the authenticating user\n  * `team_uuid` - The UUID of the team when authenticated in a team context\n  * `team_name` - The team's display name when authenticated in a team context\n* `credentials` - A hash containing authentication information\n  * `token` - The DigitalOcean OAuth access token\n  * `refresh_token` - A refresh token that can be exchanged for a new OAuth access token\n  * `expires` - Boolean indicating whether the access token has an expiry date\n  * `expires_at` - Timestamp of the expiry time\n* `extra` - Contains extra information returned from the `/v2/account` endpoint of the DigitalOcean API.\n  * `droplet_limit` - The total number of Droplets current user or team may have active at one time\n  * `floating_ip_limit`  - The total number of Floating IPs the current user or team may have\n  * `email` - The email address for the current user\n  * `uuid` - The UUID for the current user.\n  * `email_verified` - If true, the user has verified their account via email\n  * `status` - This value is one of `active`, `warning`, or `locked`\n  * `status_message` - A human-readable message giving more details about the status of the account\n\n## License\n\nomniauth-digitalocean is released under the MIT License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fomniauth-digitalocean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalocean%2Fomniauth-digitalocean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fomniauth-digitalocean/lists"}