{"id":45083463,"url":"https://github.com/pebble-dev/rebble-auth-py","last_synced_at":"2026-02-19T15:07:25.046Z","repository":{"id":29268895,"uuid":"120727310","full_name":"pebble-dev/rebble-auth-py","owner":"pebble-dev","description":"auth.rebble.io","archived":false,"fork":false,"pushed_at":"2025-03-24T00:17:53.000Z","size":195,"stargazers_count":11,"open_issues_count":13,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-24T01:25:22.067Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/pebble-dev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-02-08T07:34:56.000Z","updated_at":"2025-03-24T00:17:57.000Z","dependencies_parsed_at":"2025-03-24T01:32:13.605Z","dependency_job_id":null,"html_url":"https://github.com/pebble-dev/rebble-auth-py","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pebble-dev/rebble-auth-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pebble-dev%2Frebble-auth-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pebble-dev%2Frebble-auth-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pebble-dev%2Frebble-auth-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pebble-dev%2Frebble-auth-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pebble-dev","download_url":"https://codeload.github.com/pebble-dev/rebble-auth-py/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pebble-dev%2Frebble-auth-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29619287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"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":"2026-02-19T15:07:24.267Z","updated_at":"2026-02-19T15:07:25.036Z","avatar_url":"https://github.com/pebble-dev.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"rebble-auth\n===========\n\nrebble-auth is a hybrid auth server: it acts enough like auth.getpebble.com\nto be understood by clients that expect to be talking to that, while\nalso acting like a completely standard OAuth2 service for new clients.\n\nrebble-auth only accepts authentication via other OAuth providers. It\nallows you to connect a single account to multiple identity providers\nand log in with any one of them.\n\nrebble-auth can respond to two types of token request, which it\ndifferentiates by the requested `scope`. If the scope includes\n`pebble_token`, it will return a valid pebble token that it has\nacquired from auth.getpebble.com, which it will also consider valid.\nAll such requests from all clients will be given the same token for\nany given user (because we only have one). If the scope does _not_\ninclude `pebble_token`, a random token will be generated and returned.\nThese tokens will be unique on each request. Refresh tokens are\nsupported for these clients, but all tokens are scheduled to expire in\nten years, so this is not a pressing concern.\n\nThe design and behaviour of this service is based on\n[this document](https://docs.google.com/document/d/14cunTaDJ_C7Fz5DlS1NDWIhZosBMvnLrRfxDivE-inQ/edit#heading=h.cgvcuoyv8gjq).\nThe currently implemented behaviour is \"stage 1\", with parts of stage 2\nwhere they do not conflict.\n\nSetup\n-----\n\n### Configuration\n\nThe server expects to find its configuration in a proliferation of\nenvironment variables (primarily for deployment reasons):\n\n- `SECRET_KEY` should be some securely random string\n- `SERVER_NAME` should be the address at which the server is accessed\n  (but is optional)\n- `DATABASE_URL` is a URL pointing at the database server. The model\n  currently assumes that this is a postgres database because it uses\n  vendor-specific ARRAY types.\n- `GOOGLE_CONSUMER_KEY` and `GOOGLE_CONSUMER_SECRET` are used for\n  Google auth.\n- `TWITTER_CONSUMER_KEY` and `TWITTER_CONSUMER_SECRET` are used for\n  Twitter auth.\n- `GITHUB_CONSUMER_KEY` and `GITHUB_CONSUMER_SECRET` are used for\n  Github auth.\n- `FLASK_APP` isn't used by the app, but is needed if you want `flask`\n  commands to work. Set it to `auth/__init__.py`.\n\nUnfortunately, the server will currently not start without most of\nthese keys set.\n\n### Database\n\nrebble-auth uses [alembic](https://bitbucket.org/zzzeek/alembic) via\n[flask-migrate](https://flask-migrate.readthedocs.io/en/latest/) for\nmigrations. To create or update the database state, run this command:\n\n```\nflask db upgrade\n```\n\n### Running the server\n\nYou can run the server in debug mode:\n\n```\npython serve_debug.py\n```\n\nThis will bring up the server in single-threaded, synchronous mode\nwith debugging enabled. In production, `serve_gevent` is used instead,\nwhich runs the server in asynchronous mode with debugging disabled.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpebble-dev%2Frebble-auth-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpebble-dev%2Frebble-auth-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpebble-dev%2Frebble-auth-py/lists"}