class GitHubClient extends OAuth20Client {

    /** Constant <code>DEFAULT_SCOPE="user"</code> */
    public static final String DEFAULT_SCOPE = "user";

    /**
     * <p>Constructor for GitHubClient.</p>
     */
    public GitHubClient() {
        setScope(DEFAULT_SCOPE);
    }

    /**
     * <p>Constructor for GitHubClient.</p>
     *
     * @param key a {@link String} object
     * @param secret a {@link String} object
     */
    public GitHubClient(final String key, final String secret) {
        setScope(DEFAULT_SCOPE);
        setKey(key);
        setSecret(secret);
    }

    /** {@inheritDoc} */
    @Override
    protected void internalInit(final boolean forceReinit) {<FILL_FUNCTION_BODY>}

    /**
     * <p>getScope.</p>
     *
     * @return a {@link String} object
     */
    public String getScope() {
        return getConfiguration().getScope();
    }

    /**
     * <p>setScope.</p>
     *
     * @param scope a {@link String} object
     */
    public void setScope(final String scope) {
        getConfiguration().setScope(scope);
    }
}

        configuration.setApi(GitHubApi.instance());
        configuration.setProfileDefinition(new GitHubProfileDefinition());
        configuration.setTokenAsHeader(true);
        setLogoutActionBuilderIfUndefined((ctx, profile, targetUrl) ->
            Optional.of(HttpActionHelper.buildRedirectUrlAction(ctx.webContext(), "https://github.com/logout")));

        super.internalInit(forceReinit);
    
<methods>public non-sealed void <init>() ,public java.lang.String getKey() ,public java.lang.String getSecret() ,public void setKey(java.lang.String) ,public void setSecret(java.lang.String) <variables>protected org.pac4j.oauth.config.OAuth20Configuration configuration