anchor.diff:      return uri.contains("?") ? uri.substring(0, uri.indexOf("?")) : uri;
     }
     
  +  /**
  +   * Generates an Authorization URL
  +   * 
  +   * This should be displayed to the user.
  +   */
     String createAuthorizeUrl() {
       return baseUrl + "/authorize" + buildQueryString({
         "client_id": clientId,
  
positive.code: part of github.client;
  
  class OAuth2Flow {
    final String clientId;
    final List<String> scopes;
    final String redirectUri;
    final String state;
    final String clientSecret;
    final String baseUrl;
    
    OAuth2Flow(this.clientId, this.clientSecret, {String redirectUri, this.scopes: const [], this.state, this.baseUrl: "https://github.com/login/oauth"})
  
negative.code:   }
  }
  
  /**
   * Represents a response for exchanging a code for a token.
   */
  class ExchangeResponse {
    final String token;
    final List<String> scopes;
  