mirror of
				https://github.com/actions/setup-dotnet.git
				synced 2025-11-04 04:03:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = authenticationBeforeRequest
 | 
						|
 | 
						|
const btoa = require('btoa-lite')
 | 
						|
const uniq = require('lodash.uniq')
 | 
						|
 | 
						|
function authenticationBeforeRequest (state, options) {
 | 
						|
  if (!state.auth.type) {
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  if (state.auth.type === 'basic') {
 | 
						|
    const hash = btoa(`${state.auth.username}:${state.auth.password}`)
 | 
						|
    options.headers.authorization = `Basic ${hash}`
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  if (state.auth.type === 'token') {
 | 
						|
    options.headers.authorization = `token ${state.auth.token}`
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  if (state.auth.type === 'app') {
 | 
						|
    options.headers.authorization = `Bearer ${state.auth.token}`
 | 
						|
    const acceptHeaders = options.headers.accept.split(',')
 | 
						|
      .concat('application/vnd.github.machine-man-preview+json')
 | 
						|
    options.headers.accept = uniq(acceptHeaders).filter(Boolean).join(',')
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  options.url += options.url.indexOf('?') === -1 ? '?' : '&'
 | 
						|
 | 
						|
  if (state.auth.token) {
 | 
						|
    options.url += `access_token=${encodeURIComponent(state.auth.token)}`
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  const key = encodeURIComponent(state.auth.key)
 | 
						|
  const secret = encodeURIComponent(state.auth.secret)
 | 
						|
  options.url += `client_id=${key}&client_secret=${secret}`
 | 
						|
}
 |