mirror of
				https://github.com/actions/setup-dotnet.git
				synced 2025-11-04 15:53:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { Deprecation } from "deprecation";
 | 
						|
import once from "once";
 | 
						|
const logOnce = once((deprecation) => console.warn(deprecation));
 | 
						|
/**
 | 
						|
 * Error with extra properties to help with debugging
 | 
						|
 */
 | 
						|
export class RequestError extends Error {
 | 
						|
    constructor(message, statusCode, options) {
 | 
						|
        super(message);
 | 
						|
        // Maintains proper stack trace (only available on V8)
 | 
						|
        /* istanbul ignore next */
 | 
						|
        if (Error.captureStackTrace) {
 | 
						|
            Error.captureStackTrace(this, this.constructor);
 | 
						|
        }
 | 
						|
        this.name = "HttpError";
 | 
						|
        this.status = statusCode;
 | 
						|
        Object.defineProperty(this, "code", {
 | 
						|
            get() {
 | 
						|
                logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));
 | 
						|
                return statusCode;
 | 
						|
            }
 | 
						|
        });
 | 
						|
        this.headers = options.headers;
 | 
						|
        // redact request credentials without mutating original request options
 | 
						|
        const requestCopy = Object.assign({}, options.request);
 | 
						|
        if (options.request.headers.authorization) {
 | 
						|
            requestCopy.headers = Object.assign({}, options.request.headers, {
 | 
						|
                authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]")
 | 
						|
            });
 | 
						|
        }
 | 
						|
        requestCopy.url = requestCopy.url
 | 
						|
            // client_id & client_secret can be passed as URL query parameters to increase rate limit
 | 
						|
            // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications
 | 
						|
            .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]")
 | 
						|
            // OAuth tokens can be passed as URL query parameters, although it is not recommended
 | 
						|
            // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header
 | 
						|
            .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
 | 
						|
        this.request = requestCopy;
 | 
						|
    }
 | 
						|
}
 |