{"id":19417202,"url":"https://github.com/effector/effector-gatekeeper-dev","last_synced_at":"2026-07-15T10:30:15.991Z","repository":{"id":103703503,"uuid":"252869366","full_name":"effector/effector-gatekeeper-dev","owner":"effector","description":"☄️","archived":false,"fork":false,"pushed_at":"2020-04-04T00:11:04.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-17T02:05:44.910Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://effector-gatekeeper-dev.now.sh","language":"TypeScript","has_issues":false,"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/effector.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}},"created_at":"2020-04-03T23:59:39.000Z","updated_at":"2021-10-12T14:40:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf7b847c-d347-4c85-8587-557096f52fe6","html_url":"https://github.com/effector/effector-gatekeeper-dev","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"1d9c12050cf639690d06ebc3563ea3d5a5976cad"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effector%2Feffector-gatekeeper-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effector%2Feffector-gatekeeper-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effector%2Feffector-gatekeeper-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effector%2Feffector-gatekeeper-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/effector","download_url":"https://codeload.github.com/effector/effector-gatekeeper-dev/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239727281,"owners_count":19687144,"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":[],"created_at":"2024-11-10T13:07:53.864Z","updated_at":"2026-07-15T10:30:15.960Z","avatar_url":"https://github.com/effector.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"OAuth GitHub Gatekeeper\n=======================\n\n## API\n\n1. Exchage temporary code for a token\n\n    ```\n    GET /api/auth?code=\u003cCODE\u003e\n    ```\n\n## OAuth Steps\n\nAlso see the [documentation on Github](http://developer.github.com/v3/oauth/).\n\n1. Redirect users to request GitHub access.\n\n   ```\n   GET https://github.com/login/oauth/authorize\n   ```\n\n2. GitHub redirects back to your site including a temporary code you need for the next step.\n\n   You can grab it like so:\n\n   ```js\n   const params = new URLSearchParams(location.search)\n   const code = params.get('code')\n   ```\n\n3. Request the actual token using your instance of Gatekeeper, which knows your `OAUTH_CLIENT_SECRET`.\n\n   ```js\n   const GITHUB_GATEKEEPER_URL = process.env.NODE_ENV === 'development'\n     ? 'http://localhost:3000/api/auth'\n     : 'https://gatekeeper.YOUNAME.now.sh/api/auth'\n\n   const url = new URL(GITHUB_GATEKEEPER_URL)\n   url.searchParams.set('code', code)\n   try {\n     const res = await fetch(url)\n     if (res.ok) {\n       const {token} = await res.json()\n       console.log(token)\n     }\n   } catch (e) {\n     // bad code\n   }\n   ```\n\n## Setup your Gatekeeper\n\n1. Clone it\n\n    ```\n    git clone git@github.com:kobzarvs/github-gatekeeper.git\n    ```\n\n2. Install Dependencies\n\n    ```\n    cd gatekeeper \u0026\u0026 yarn\n    ```\n   \n3. Run local dev environment\n\n    First of all you must create `.env` file:\n    \n    ```\n    OAUTH_CLIENT_SECRET=\u003cOAUTH_CLIENT_SECRET\u003e\n    OAUTH_CLIENT_ID=\u003cOAUTH_CLIENT_ID\u003e\n    ```\n\n    ```\n    now dev\n    ```\n\n## Deploy on now.sh\n\n1. Add secrets env variables\n\n    ```\n    now secrets add OAUTH_CLIENT_SECRET \u003cOAUTH_CLIENT_SECRET\u003e \n    now secrets add OAUTH_CLIENT_ID \u003cOAUTH_CLIENT_ID\u003e\n    ``` \n\n2. Deploy service\n\n    ```\n    now\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feffector%2Feffector-gatekeeper-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feffector%2Feffector-gatekeeper-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feffector%2Feffector-gatekeeper-dev/lists"}