mirror of
				https://github.com/actions/setup-dotnet.git
				synced 2025-11-04 10:03:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = octokitRestNormalizeGitReferenceResponses
 | 
						|
 | 
						|
const { RequestError } = require('@octokit/request-error')
 | 
						|
 | 
						|
function octokitRestNormalizeGitReferenceResponses (octokit) {
 | 
						|
  octokit.hook.wrap('request', (request, options) => {
 | 
						|
    const isGetOrListRefRequest = /\/repos\/:?\w+\/:?\w+\/git\/refs\/:?\w+/.test(options.url)
 | 
						|
 | 
						|
    if (!isGetOrListRefRequest) {
 | 
						|
      return request(options)
 | 
						|
    }
 | 
						|
 | 
						|
    const isGetRefRequest = 'ref' in options
 | 
						|
 | 
						|
    return request(options)
 | 
						|
      .then(response => {
 | 
						|
        // request single reference
 | 
						|
        if (isGetRefRequest) {
 | 
						|
          if (Array.isArray(response.data)) {
 | 
						|
            throw new RequestError(`More than one reference found for "${options.ref}"`, 404, {
 | 
						|
              request: options
 | 
						|
            })
 | 
						|
          }
 | 
						|
 | 
						|
          // ✅ received single reference
 | 
						|
          return response
 | 
						|
        }
 | 
						|
 | 
						|
        // request list of references
 | 
						|
        if (!Array.isArray(response.data)) {
 | 
						|
          response.data = [response.data]
 | 
						|
        }
 | 
						|
 | 
						|
        return response
 | 
						|
      })
 | 
						|
 | 
						|
      .catch(error => {
 | 
						|
        if (isGetRefRequest) {
 | 
						|
          throw error
 | 
						|
        }
 | 
						|
 | 
						|
        if (error.status === 404) {
 | 
						|
          return {
 | 
						|
            status: 200,
 | 
						|
            headers: error.headers,
 | 
						|
            data: []
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        throw error
 | 
						|
      })
 | 
						|
  })
 | 
						|
}
 |