{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"8a1ba383b6e1f815ccb2ff75adde054dddac70ed28a13c266b66791a3931e004","entry":{"id":"gitlab/application","name":"GitLab OAuth application","vendor":"GitLab","summary":"Register a user-owned or group-owned OAuth application on GitLab.com (or an instance-wide one on Self-Managed) to get an application ID and secret for OAuth 2.0 sign-in or API access.","category":"devtools","group":"C","homepage":"https://docs.gitlab.com/integration/oauth_provider/","docs":["https://docs.gitlab.com/integration/oauth_provider/","https://docs.gitlab.com/api/oauth2/"],"status":"researched","last_verified":null,"last_researched":"2026-10-25","sources":[{"id":"oauth_provider","url":"https://docs.gitlab.com/integration/oauth_provider/","title":"Configure GitLab as an OAuth 2.0 authentication identity provider","accessed":"2026-10-25","supports":"User-owned apps via Edit profile > Access > Applications; group-owned via group Settings > Applications; instance-wide via Admin (Self-Managed, can be trusted); fields Name, Redirect URI, Scopes; secret stored hashed and only available right after creation; Renew secret breaks the app until updated; access tokens expire after 2 hours by default.","kind":"official"},{"id":"oauth_api","url":"https://docs.gitlab.com/api/oauth2/","title":"OAuth 2.0 identity provider API","accessed":"2026-10-25","supports":"Authorization code with PKCE is most secure and needs no client secret for public clients; refresh invalidates old access and refresh tokens; expires_in 7200 in examples.","kind":"official"}],"allowed_domains":["gitlab.com"],"account_model":{"summary":"An OAuth application belongs to a GitLab user or group (or the instance on Self-Managed).","accounts":[{"name":"GitLab user or group","kind":"developer","required":true,"note":"Prefer a group-owned application for team projects."}]},"steps":[{"id":"create_app","title":"Add a new application","summary":"Avatar > Edit profile > Access > Applications > Add new application (or group Settings > Applications). Enter a name, redirect URI and the minimum scopes (e.g. read_user, openid), then Save.","route":"copilot","depends_on":[],"gate":"human_submit","url":"https://gitlab.com/-/user_settings/applications","sources":["oauth_provider"]},{"id":"copy_secret","title":"Copy the Application ID and Secret","summary":"Copy the Application ID and the Secret now; the secret is stored hashed and is only shown immediately after creation.","route":"copilot","depends_on":["create_app"],"gate":"none","url":"https://gitlab.com/-/user_settings/applications","recovery":[{"hiccup":"Lost the secret","fix":"Use Renew secret, then update your app at once; the old secret stops working.","source":"oauth_provider"}],"capture":{"env":"GITLAB_OAUTH_CLIENT_SECRET","kind":"secret"},"sources":["oauth_provider"]}],"outputs":[{"name":"GITLAB_OAUTH_CLIENT_ID","description":"Application ID","secret":false,"example_format":"opaque id string","from_step":"copy_secret"},{"name":"GITLAB_OAUTH_CLIENT_SECRET","description":"Application secret","secret":true,"example_format":"opaque secret string","from_step":"copy_secret"}],"terms_notes":[{"kind":"rules_say","severity":"yellow","text":"Access tokens last 2 hours by default; using a refresh token invalidates the previous access and refresh tokens.","source":"oauth_api"}],"pricing_notes":{"notes":"No fee stated for registering OAuth applications on the pages reviewed [to verify].","source":"oauth_provider"},"stripe_projects":false,"api_provisioning":{"available":"partial","notes":"Instance-wide applications can be managed via the Applications API by administrators on Self-Managed [to verify]; user/group apps are created in the UI."}}}