Cómo usar OAuth2 con GitHub

Para todas esas personas que tienen problemas para hacer funcionar oauth2 con GitHub, aquí va una solución.

Problema: El plugin oauth2 de Discourse genera un error 500 cuando está habilitado con Github y los campos en la configuración no están correctamente establecidos. Como la documentación es escasa sobre qué y cómo configurar, aquí están los campos importantes (y algunos opcionales):

OAuth2 client ID ID del cliente de GitHub
OAuth2 client secret Secreto del cliente de GitHub
OAuth2 authorize URL https[:]//github[.]com/login/oauth/authorize
OAuth2 token URL https[:]//github[.]com/login/oauth/access_token
OAuth2 token URL method POST
OAuth2 user JSON URL https[:]//api.github[.]com/user
OAuth2 user JSON URL method GET
OAuth2 JSON user ID path id
OAuth2 JSON username path login
OAuth2 JSON name path name
OAuth2 JSON email path mail
OAuth2 JSON avatar path avatar_url
OAuth2 send auth header x
OAuth2 send auth body x
OAuth2 allow association change x

para depuración (sólo):
OAuth2 debug auth x

En el lado de GitHub, en caso de que también te falte esta información, esto es lo que necesitas:
Ir a https[:]//github[.]com/settings/developers, hacer clic en “New OAuth App”.
Ingresar el nombre de la aplicación (por ejemplo, Discourse),
URL de la página principal
y
URL de callback de autorización (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
y no olvides hacer clic en Actualizar aplicación.

Eso es todo.
¡Espero que ayude!

¿Puedo pedir a los desarrolladores que por favor revisen la respuesta (inválida por estar vacía) cuando no se establece la “OAuth2 user JSON URL” obligatoria? Genera este error y lanza un 500.

ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR: valor nulo en la columna “provider_uid” de la relación “user_associated_accounts” viola la restricción de no nulos

Disculpa por el ocultamiento en las URLs, me han dicho que los nuevos usuarios sólo pueden tener 2 enlaces por publicación.