Compare commits
	
		
			9 Commits
		
	
	
		
			5b2559885a
			...
			t-dedah/ca
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					3010f3bd47 | ||
| 
						 | 
					abb58eaf29 | ||
| 
						 | 
					67408f6dab | ||
| 
						 | 
					82f0974fd6 | ||
| 
						 | 
					36aa59375f | ||
| 
						 | 
					53812f9a6a | ||
| 
						 | 
					a90fbffdad | ||
| 
						 | 
					b65f98495c | ||
| 
						 | 
					e1165c0dec | 
							
								
								
									
										21
									
								
								.github/auto_assign.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.github/auto_assign.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
# Set to true to add reviewers to pull requests
 | 
			
		||||
addReviewers: true
 | 
			
		||||
 | 
			
		||||
# Set to true to add assignees to pull requests
 | 
			
		||||
addAssignees: false
 | 
			
		||||
 | 
			
		||||
# A list of reviewers to be added to pull requests (GitHub user name)
 | 
			
		||||
reviewers:
 | 
			
		||||
  - anuragc617
 | 
			
		||||
  - pallavx
 | 
			
		||||
  - pdotl
 | 
			
		||||
  - phantsure
 | 
			
		||||
  - kotewar
 | 
			
		||||
  - aparna-ravindra
 | 
			
		||||
  - tiwarishub
 | 
			
		||||
  - vsvipul
 | 
			
		||||
  - bishal-pdmsft
 | 
			
		||||
 | 
			
		||||
# A number of reviewers added to the pull request
 | 
			
		||||
# Set 0 to add all the reviewers (default: 0)
 | 
			
		||||
numberOfReviewers: 1
 | 
			
		||||
							
								
								
									
										20
									
								
								.github/workflows/add-reviewer-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/add-reviewer-pr.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,20 +0,0 @@
 | 
			
		||||
name: Add Reviewer PR
 | 
			
		||||
on:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types: [opened]
 | 
			
		||||
jobs:
 | 
			
		||||
  run-action:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Get current oncall
 | 
			
		||||
      id: oncall
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "CURRENT=$(curl --request GET 'https://api.pagerduty.com/oncalls?include[]=users&schedule_ids[]=P5VG2BX&earliest=true' --header 'Authorization: Token token=${{ secrets.PAGERDUTY_TOKEN }}' --header 'Accept: application/vnd.pagerduty+json;version=2' --header 'Content-Type: application/json' | jq -r '.oncalls[].user.name')" >> $GITHUB_OUTPUT
 | 
			
		||||
    
 | 
			
		||||
    - name: Request Review
 | 
			
		||||
      run: |
 | 
			
		||||
        curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN}}" https://api.github.com/repos/${{github.repository}}/pulls/${{ github.event.pull_request.number}}/requested_reviewers -d '{"reviewers":["${{steps.oncall.outputs.CURRENT}}"]}'
 | 
			
		||||
        
 | 
			
		||||
    - name: Add Assignee
 | 
			
		||||
      run: |
 | 
			
		||||
        curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN}}" https://api.github.com/repos/${{github.repository}}/issues/${{ github.event.pull_request.number}}/assignees -d '{"assignees":["${{steps.oncall.outputs.CURRENT}}"]}'    
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/workflows/assign-issue.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/assign-issue.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,16 +0,0 @@
 | 
			
		||||
name: Assign issue
 | 
			
		||||
on:
 | 
			
		||||
  issues:
 | 
			
		||||
    types: [opened]
 | 
			
		||||
jobs:
 | 
			
		||||
  run-action:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Get current oncall
 | 
			
		||||
      id: oncall
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "CURRENT=$(curl --request GET 'https://api.pagerduty.com/oncalls?include[]=users&schedule_ids[]=P5VG2BX&earliest=true' --header 'Authorization: Token token=${{ secrets.PAGERDUTY_TOKEN }}' --header 'Accept: application/vnd.pagerduty+json;version=2' --header 'Content-Type: application/json' | jq -r '.oncalls[].user.name')" >> $GITHUB_OUTPUT
 | 
			
		||||
    
 | 
			
		||||
    - name: add_assignees
 | 
			
		||||
      run: |
 | 
			
		||||
        curl -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN}}" https://api.github.com/repos/${{github.repository}}/issues/${{ github.event.issue.number}}/assignees -d '{"assignees":["${{steps.oncall.outputs.CURRENT}}"]}'
 | 
			
		||||
							
								
								
									
										15
									
								
								.github/workflows/auto-assign-issues.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/auto-assign-issues.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
name: Issue assignment
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
    issues:
 | 
			
		||||
        types: [opened]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
    auto-assign:
 | 
			
		||||
        runs-on: ubuntu-latest
 | 
			
		||||
        steps:
 | 
			
		||||
            - name: 'Auto-assign issue'
 | 
			
		||||
              uses: pozil/auto-assign-issue@v1.4.0
 | 
			
		||||
              with:
 | 
			
		||||
                  assignees: anuragc617,pallavx,pdotl,phantsure,kotewar,tiwarishub,aparna-ravindra,vsvipul,bishal-pdmsft
 | 
			
		||||
                  numOfAssignee: 1
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/auto-assign.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/auto-assign.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
name: 'Auto Assign'
 | 
			
		||||
on:
 | 
			
		||||
  pull_request_target:
 | 
			
		||||
    types: [opened, ready_for_review]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  add-reviews:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: kentaro-m/auto-assign-action@v1.2.1
 | 
			
		||||
							
								
								
									
										1
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/check-dist.yml
									
									
									
									
										vendored
									
									
								
							@@ -27,7 +27,6 @@ jobs:
 | 
			
		||||
        uses: actions/setup-node@v3
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: 16.x
 | 
			
		||||
          cache: npm
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        run: npm ci
 | 
			
		||||
      - name: Rebuild the dist/ directory
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							@@ -25,7 +25,17 @@ jobs:
 | 
			
		||||
      uses: actions/setup-node@v3
 | 
			
		||||
      with:
 | 
			
		||||
        node-version: 16.x
 | 
			
		||||
        cache: npm
 | 
			
		||||
    - name: Determine npm cache directory
 | 
			
		||||
      id: npm-cache
 | 
			
		||||
      run: |
 | 
			
		||||
        echo "::set-output name=dir::$(npm config get cache)"
 | 
			
		||||
    - name: Restore npm cache
 | 
			
		||||
      uses: actions/cache@v3
 | 
			
		||||
      with:
 | 
			
		||||
        path: ${{ steps.npm-cache.outputs.dir }}
 | 
			
		||||
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ${{ runner.os }}-node-
 | 
			
		||||
    - run: npm ci
 | 
			
		||||
    - name: Prettier Format Check
 | 
			
		||||
      run: npm run format-check
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										177
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										177
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							@@ -1892,10 +1892,10 @@ function serial(list, iterator, callback)
 | 
			
		||||
module.exports = minimatch
 | 
			
		||||
minimatch.Minimatch = Minimatch
 | 
			
		||||
 | 
			
		||||
var path = (function () { try { return __webpack_require__(622) } catch (e) {}}()) || {
 | 
			
		||||
  sep: '/'
 | 
			
		||||
}
 | 
			
		||||
minimatch.sep = path.sep
 | 
			
		||||
var path = { sep: '/' }
 | 
			
		||||
try {
 | 
			
		||||
  path = __webpack_require__(622)
 | 
			
		||||
} catch (er) {}
 | 
			
		||||
 | 
			
		||||
var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
 | 
			
		||||
var expand = __webpack_require__(306)
 | 
			
		||||
@@ -1947,64 +1947,43 @@ function filter (pattern, options) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function ext (a, b) {
 | 
			
		||||
  a = a || {}
 | 
			
		||||
  b = b || {}
 | 
			
		||||
  var t = {}
 | 
			
		||||
  Object.keys(a).forEach(function (k) {
 | 
			
		||||
    t[k] = a[k]
 | 
			
		||||
  })
 | 
			
		||||
  Object.keys(b).forEach(function (k) {
 | 
			
		||||
    t[k] = b[k]
 | 
			
		||||
  })
 | 
			
		||||
  Object.keys(a).forEach(function (k) {
 | 
			
		||||
    t[k] = a[k]
 | 
			
		||||
  })
 | 
			
		||||
  return t
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
minimatch.defaults = function (def) {
 | 
			
		||||
  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
 | 
			
		||||
    return minimatch
 | 
			
		||||
  }
 | 
			
		||||
  if (!def || !Object.keys(def).length) return minimatch
 | 
			
		||||
 | 
			
		||||
  var orig = minimatch
 | 
			
		||||
 | 
			
		||||
  var m = function minimatch (p, pattern, options) {
 | 
			
		||||
    return orig(p, pattern, ext(def, options))
 | 
			
		||||
    return orig.minimatch(p, pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.Minimatch = function Minimatch (pattern, options) {
 | 
			
		||||
    return new orig.Minimatch(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
  m.Minimatch.defaults = function defaults (options) {
 | 
			
		||||
    return orig.defaults(ext(def, options)).Minimatch
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.filter = function filter (pattern, options) {
 | 
			
		||||
    return orig.filter(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.defaults = function defaults (options) {
 | 
			
		||||
    return orig.defaults(ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.makeRe = function makeRe (pattern, options) {
 | 
			
		||||
    return orig.makeRe(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.braceExpand = function braceExpand (pattern, options) {
 | 
			
		||||
    return orig.braceExpand(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.match = function (list, pattern, options) {
 | 
			
		||||
    return orig.match(list, pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return m
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Minimatch.defaults = function (def) {
 | 
			
		||||
  if (!def || !Object.keys(def).length) return Minimatch
 | 
			
		||||
  return minimatch.defaults(def).Minimatch
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function minimatch (p, pattern, options) {
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('glob pattern string required')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!options) options = {}
 | 
			
		||||
 | 
			
		||||
@@ -2013,6 +1992,9 @@ function minimatch (p, pattern, options) {
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // "" only matches ""
 | 
			
		||||
  if (pattern.trim() === '') return p === ''
 | 
			
		||||
 | 
			
		||||
  return new Minimatch(pattern, options).match(p)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -2021,14 +2003,15 @@ function Minimatch (pattern, options) {
 | 
			
		||||
    return new Minimatch(pattern, options)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('glob pattern string required')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!options) options = {}
 | 
			
		||||
 | 
			
		||||
  pattern = pattern.trim()
 | 
			
		||||
 | 
			
		||||
  // windows support: need to use /, not \
 | 
			
		||||
  if (!options.allowWindowsEscape && path.sep !== '/') {
 | 
			
		||||
  if (path.sep !== '/') {
 | 
			
		||||
    pattern = pattern.split(path.sep).join('/')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -2039,7 +2022,6 @@ function Minimatch (pattern, options) {
 | 
			
		||||
  this.negate = false
 | 
			
		||||
  this.comment = false
 | 
			
		||||
  this.empty = false
 | 
			
		||||
  this.partial = !!options.partial
 | 
			
		||||
 | 
			
		||||
  // make the set of regexps etc.
 | 
			
		||||
  this.make()
 | 
			
		||||
@@ -2049,6 +2031,9 @@ Minimatch.prototype.debug = function () {}
 | 
			
		||||
 | 
			
		||||
Minimatch.prototype.make = make
 | 
			
		||||
function make () {
 | 
			
		||||
  // don't do it more than once.
 | 
			
		||||
  if (this._made) return
 | 
			
		||||
 | 
			
		||||
  var pattern = this.pattern
 | 
			
		||||
  var options = this.options
 | 
			
		||||
 | 
			
		||||
@@ -2068,7 +2053,7 @@ function make () {
 | 
			
		||||
  // step 2: expand braces
 | 
			
		||||
  var set = this.globSet = this.braceExpand()
 | 
			
		||||
 | 
			
		||||
  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }
 | 
			
		||||
  if (options.debug) this.debug = console.error
 | 
			
		||||
 | 
			
		||||
  this.debug(this.pattern, set)
 | 
			
		||||
 | 
			
		||||
@@ -2148,11 +2133,12 @@ function braceExpand (pattern, options) {
 | 
			
		||||
  pattern = typeof pattern === 'undefined'
 | 
			
		||||
    ? this.pattern : pattern
 | 
			
		||||
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern === 'undefined') {
 | 
			
		||||
    throw new TypeError('undefined pattern')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Thanks to Yeting Li <https://github.com/yetingli> for
 | 
			
		||||
  // improving this regexp to avoid a ReDOS vulnerability.
 | 
			
		||||
  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
 | 
			
		||||
  if (options.nobrace ||
 | 
			
		||||
    !pattern.match(/\{.*\}/)) {
 | 
			
		||||
    // shortcut. no need to expand.
 | 
			
		||||
    return [pattern]
 | 
			
		||||
  }
 | 
			
		||||
@@ -2160,17 +2146,6 @@ function braceExpand (pattern, options) {
 | 
			
		||||
  return expand(pattern)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var MAX_PATTERN_LENGTH = 1024 * 64
 | 
			
		||||
var assertValidPattern = function (pattern) {
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('invalid pattern')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (pattern.length > MAX_PATTERN_LENGTH) {
 | 
			
		||||
    throw new TypeError('pattern is too long')
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// parse a component of the expanded set.
 | 
			
		||||
// At this point, no pattern may contain "/" in it
 | 
			
		||||
// so we're going to return a 2d array, where each entry is the full
 | 
			
		||||
@@ -2185,17 +2160,14 @@ var assertValidPattern = function (pattern) {
 | 
			
		||||
Minimatch.prototype.parse = parse
 | 
			
		||||
var SUBPARSE = {}
 | 
			
		||||
function parse (pattern, isSub) {
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (pattern.length > 1024 * 64) {
 | 
			
		||||
    throw new TypeError('pattern is too long')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var options = this.options
 | 
			
		||||
 | 
			
		||||
  // shortcuts
 | 
			
		||||
  if (pattern === '**') {
 | 
			
		||||
    if (!options.noglobstar)
 | 
			
		||||
      return GLOBSTAR
 | 
			
		||||
    else
 | 
			
		||||
      pattern = '*'
 | 
			
		||||
  }
 | 
			
		||||
  if (!options.noglobstar && pattern === '**') return GLOBSTAR
 | 
			
		||||
  if (pattern === '') return ''
 | 
			
		||||
 | 
			
		||||
  var re = ''
 | 
			
		||||
@@ -2251,12 +2223,10 @@ function parse (pattern, isSub) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    switch (c) {
 | 
			
		||||
      /* istanbul ignore next */
 | 
			
		||||
      case '/': {
 | 
			
		||||
      case '/':
 | 
			
		||||
        // completely not allowed, even escaped.
 | 
			
		||||
        // Should already be path-split by now.
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      case '\\':
 | 
			
		||||
        clearStateChar()
 | 
			
		||||
@@ -2375,23 +2345,25 @@ function parse (pattern, isSub) {
 | 
			
		||||
 | 
			
		||||
        // handle the case where we left a class open.
 | 
			
		||||
        // "[z-a]" is valid, equivalent to "\[z-a\]"
 | 
			
		||||
        // split where the last [ was, make sure we don't have
 | 
			
		||||
        // an invalid re. if so, re-walk the contents of the
 | 
			
		||||
        // would-be class to re-translate any characters that
 | 
			
		||||
        // were passed through as-is
 | 
			
		||||
        // TODO: It would probably be faster to determine this
 | 
			
		||||
        // without a try/catch and a new RegExp, but it's tricky
 | 
			
		||||
        // to do safely.  For now, this is safe and works.
 | 
			
		||||
        var cs = pattern.substring(classStart + 1, i)
 | 
			
		||||
        try {
 | 
			
		||||
          RegExp('[' + cs + ']')
 | 
			
		||||
        } catch (er) {
 | 
			
		||||
          // not a valid class!
 | 
			
		||||
          var sp = this.parse(cs, SUBPARSE)
 | 
			
		||||
          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
 | 
			
		||||
          hasMagic = hasMagic || sp[1]
 | 
			
		||||
          inClass = false
 | 
			
		||||
          continue
 | 
			
		||||
        if (inClass) {
 | 
			
		||||
          // split where the last [ was, make sure we don't have
 | 
			
		||||
          // an invalid re. if so, re-walk the contents of the
 | 
			
		||||
          // would-be class to re-translate any characters that
 | 
			
		||||
          // were passed through as-is
 | 
			
		||||
          // TODO: It would probably be faster to determine this
 | 
			
		||||
          // without a try/catch and a new RegExp, but it's tricky
 | 
			
		||||
          // to do safely.  For now, this is safe and works.
 | 
			
		||||
          var cs = pattern.substring(classStart + 1, i)
 | 
			
		||||
          try {
 | 
			
		||||
            RegExp('[' + cs + ']')
 | 
			
		||||
          } catch (er) {
 | 
			
		||||
            // not a valid class!
 | 
			
		||||
            var sp = this.parse(cs, SUBPARSE)
 | 
			
		||||
            re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
 | 
			
		||||
            hasMagic = hasMagic || sp[1]
 | 
			
		||||
            inClass = false
 | 
			
		||||
            continue
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // finish up the class.
 | 
			
		||||
@@ -2475,7 +2447,9 @@ function parse (pattern, isSub) {
 | 
			
		||||
  // something that could conceivably capture a dot
 | 
			
		||||
  var addPatternStart = false
 | 
			
		||||
  switch (re.charAt(0)) {
 | 
			
		||||
    case '[': case '.': case '(': addPatternStart = true
 | 
			
		||||
    case '.':
 | 
			
		||||
    case '[':
 | 
			
		||||
    case '(': addPatternStart = true
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Hack to work around lack of negative lookbehind in JS
 | 
			
		||||
@@ -2537,7 +2511,7 @@ function parse (pattern, isSub) {
 | 
			
		||||
  var flags = options.nocase ? 'i' : ''
 | 
			
		||||
  try {
 | 
			
		||||
    var regExp = new RegExp('^' + re + '$', flags)
 | 
			
		||||
  } catch (er) /* istanbul ignore next - should be impossible */ {
 | 
			
		||||
  } catch (er) {
 | 
			
		||||
    // If it was an invalid regular expression, then it can't match
 | 
			
		||||
    // anything.  This trick looks for a character after the end of
 | 
			
		||||
    // the string, which is of course impossible, except in multi-line
 | 
			
		||||
@@ -2595,7 +2569,7 @@ function makeRe () {
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    this.regexp = new RegExp(re, flags)
 | 
			
		||||
  } catch (ex) /* istanbul ignore next - should be impossible */ {
 | 
			
		||||
  } catch (ex) {
 | 
			
		||||
    this.regexp = false
 | 
			
		||||
  }
 | 
			
		||||
  return this.regexp
 | 
			
		||||
@@ -2613,8 +2587,8 @@ minimatch.match = function (list, pattern, options) {
 | 
			
		||||
  return list
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Minimatch.prototype.match = function match (f, partial) {
 | 
			
		||||
  if (typeof partial === 'undefined') partial = this.partial
 | 
			
		||||
Minimatch.prototype.match = match
 | 
			
		||||
function match (f, partial) {
 | 
			
		||||
  this.debug('match', f, this.pattern)
 | 
			
		||||
  // short-circuit in the case of busted things.
 | 
			
		||||
  // comments, etc.
 | 
			
		||||
@@ -2696,7 +2670,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
 | 
			
		||||
    // should be impossible.
 | 
			
		||||
    // some invalid regexp stuff in the set.
 | 
			
		||||
    /* istanbul ignore if */
 | 
			
		||||
    if (p === false) return false
 | 
			
		||||
 | 
			
		||||
    if (p === GLOBSTAR) {
 | 
			
		||||
@@ -2770,7 +2743,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
      // no match was found.
 | 
			
		||||
      // However, in partial mode, we can't say this is necessarily over.
 | 
			
		||||
      // If there's more *pattern* left, then
 | 
			
		||||
      /* istanbul ignore if */
 | 
			
		||||
      if (partial) {
 | 
			
		||||
        // ran out of file
 | 
			
		||||
        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
 | 
			
		||||
@@ -2784,7 +2756,11 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
    // patterns with magic have been turned into regexps.
 | 
			
		||||
    var hit
 | 
			
		||||
    if (typeof p === 'string') {
 | 
			
		||||
      hit = f === p
 | 
			
		||||
      if (options.nocase) {
 | 
			
		||||
        hit = f.toLowerCase() === p.toLowerCase()
 | 
			
		||||
      } else {
 | 
			
		||||
        hit = f === p
 | 
			
		||||
      }
 | 
			
		||||
      this.debug('string match', p, f, hit)
 | 
			
		||||
    } else {
 | 
			
		||||
      hit = f.match(p)
 | 
			
		||||
@@ -2815,16 +2791,16 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
    // this is ok if we're doing the match as part of
 | 
			
		||||
    // a glob fs traversal.
 | 
			
		||||
    return partial
 | 
			
		||||
  } else /* istanbul ignore else */ if (pi === pl) {
 | 
			
		||||
  } else if (pi === pl) {
 | 
			
		||||
    // ran out of pattern, still have file left.
 | 
			
		||||
    // this is only acceptable if we're on the very last
 | 
			
		||||
    // empty segment of a file with a trailing slash.
 | 
			
		||||
    // a/* should match a/b/
 | 
			
		||||
    return (fi === fl - 1) && (file[fi] === '')
 | 
			
		||||
    var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
 | 
			
		||||
    return emptyFileEnd
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // should be unreachable.
 | 
			
		||||
  /* istanbul ignore next */
 | 
			
		||||
  throw new Error('wtf?')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -38489,16 +38465,17 @@ function getInputAsInt(name, options) {
 | 
			
		||||
}
 | 
			
		||||
exports.getInputAsInt = getInputAsInt;
 | 
			
		||||
function isCacheFeatureAvailable() {
 | 
			
		||||
    if (cache.isFeatureAvailable()) {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    if (isGhes()) {
 | 
			
		||||
        logWarning(`Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
    if (!cache.isFeatureAvailable()) {
 | 
			
		||||
        if (isGhes()) {
 | 
			
		||||
            logWarning(`Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
Otherwise please upgrade to GHES version >= 3.5 and If you are also using Github Connect, please unretire the actions/cache namespace before upgrade (see https://docs.github.com/en/enterprise-server@3.5/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)`);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions.");
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions.");
 | 
			
		||||
    return false;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										177
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										177
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							@@ -1892,10 +1892,10 @@ function serial(list, iterator, callback)
 | 
			
		||||
module.exports = minimatch
 | 
			
		||||
minimatch.Minimatch = Minimatch
 | 
			
		||||
 | 
			
		||||
var path = (function () { try { return __webpack_require__(622) } catch (e) {}}()) || {
 | 
			
		||||
  sep: '/'
 | 
			
		||||
}
 | 
			
		||||
minimatch.sep = path.sep
 | 
			
		||||
var path = { sep: '/' }
 | 
			
		||||
try {
 | 
			
		||||
  path = __webpack_require__(622)
 | 
			
		||||
} catch (er) {}
 | 
			
		||||
 | 
			
		||||
var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
 | 
			
		||||
var expand = __webpack_require__(306)
 | 
			
		||||
@@ -1947,64 +1947,43 @@ function filter (pattern, options) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function ext (a, b) {
 | 
			
		||||
  a = a || {}
 | 
			
		||||
  b = b || {}
 | 
			
		||||
  var t = {}
 | 
			
		||||
  Object.keys(a).forEach(function (k) {
 | 
			
		||||
    t[k] = a[k]
 | 
			
		||||
  })
 | 
			
		||||
  Object.keys(b).forEach(function (k) {
 | 
			
		||||
    t[k] = b[k]
 | 
			
		||||
  })
 | 
			
		||||
  Object.keys(a).forEach(function (k) {
 | 
			
		||||
    t[k] = a[k]
 | 
			
		||||
  })
 | 
			
		||||
  return t
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
minimatch.defaults = function (def) {
 | 
			
		||||
  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
 | 
			
		||||
    return minimatch
 | 
			
		||||
  }
 | 
			
		||||
  if (!def || !Object.keys(def).length) return minimatch
 | 
			
		||||
 | 
			
		||||
  var orig = minimatch
 | 
			
		||||
 | 
			
		||||
  var m = function minimatch (p, pattern, options) {
 | 
			
		||||
    return orig(p, pattern, ext(def, options))
 | 
			
		||||
    return orig.minimatch(p, pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.Minimatch = function Minimatch (pattern, options) {
 | 
			
		||||
    return new orig.Minimatch(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
  m.Minimatch.defaults = function defaults (options) {
 | 
			
		||||
    return orig.defaults(ext(def, options)).Minimatch
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.filter = function filter (pattern, options) {
 | 
			
		||||
    return orig.filter(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.defaults = function defaults (options) {
 | 
			
		||||
    return orig.defaults(ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.makeRe = function makeRe (pattern, options) {
 | 
			
		||||
    return orig.makeRe(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.braceExpand = function braceExpand (pattern, options) {
 | 
			
		||||
    return orig.braceExpand(pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  m.match = function (list, pattern, options) {
 | 
			
		||||
    return orig.match(list, pattern, ext(def, options))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return m
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Minimatch.defaults = function (def) {
 | 
			
		||||
  if (!def || !Object.keys(def).length) return Minimatch
 | 
			
		||||
  return minimatch.defaults(def).Minimatch
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function minimatch (p, pattern, options) {
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('glob pattern string required')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!options) options = {}
 | 
			
		||||
 | 
			
		||||
@@ -2013,6 +1992,9 @@ function minimatch (p, pattern, options) {
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // "" only matches ""
 | 
			
		||||
  if (pattern.trim() === '') return p === ''
 | 
			
		||||
 | 
			
		||||
  return new Minimatch(pattern, options).match(p)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -2021,14 +2003,15 @@ function Minimatch (pattern, options) {
 | 
			
		||||
    return new Minimatch(pattern, options)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('glob pattern string required')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!options) options = {}
 | 
			
		||||
 | 
			
		||||
  pattern = pattern.trim()
 | 
			
		||||
 | 
			
		||||
  // windows support: need to use /, not \
 | 
			
		||||
  if (!options.allowWindowsEscape && path.sep !== '/') {
 | 
			
		||||
  if (path.sep !== '/') {
 | 
			
		||||
    pattern = pattern.split(path.sep).join('/')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -2039,7 +2022,6 @@ function Minimatch (pattern, options) {
 | 
			
		||||
  this.negate = false
 | 
			
		||||
  this.comment = false
 | 
			
		||||
  this.empty = false
 | 
			
		||||
  this.partial = !!options.partial
 | 
			
		||||
 | 
			
		||||
  // make the set of regexps etc.
 | 
			
		||||
  this.make()
 | 
			
		||||
@@ -2049,6 +2031,9 @@ Minimatch.prototype.debug = function () {}
 | 
			
		||||
 | 
			
		||||
Minimatch.prototype.make = make
 | 
			
		||||
function make () {
 | 
			
		||||
  // don't do it more than once.
 | 
			
		||||
  if (this._made) return
 | 
			
		||||
 | 
			
		||||
  var pattern = this.pattern
 | 
			
		||||
  var options = this.options
 | 
			
		||||
 | 
			
		||||
@@ -2068,7 +2053,7 @@ function make () {
 | 
			
		||||
  // step 2: expand braces
 | 
			
		||||
  var set = this.globSet = this.braceExpand()
 | 
			
		||||
 | 
			
		||||
  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }
 | 
			
		||||
  if (options.debug) this.debug = console.error
 | 
			
		||||
 | 
			
		||||
  this.debug(this.pattern, set)
 | 
			
		||||
 | 
			
		||||
@@ -2148,11 +2133,12 @@ function braceExpand (pattern, options) {
 | 
			
		||||
  pattern = typeof pattern === 'undefined'
 | 
			
		||||
    ? this.pattern : pattern
 | 
			
		||||
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (typeof pattern === 'undefined') {
 | 
			
		||||
    throw new TypeError('undefined pattern')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Thanks to Yeting Li <https://github.com/yetingli> for
 | 
			
		||||
  // improving this regexp to avoid a ReDOS vulnerability.
 | 
			
		||||
  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
 | 
			
		||||
  if (options.nobrace ||
 | 
			
		||||
    !pattern.match(/\{.*\}/)) {
 | 
			
		||||
    // shortcut. no need to expand.
 | 
			
		||||
    return [pattern]
 | 
			
		||||
  }
 | 
			
		||||
@@ -2160,17 +2146,6 @@ function braceExpand (pattern, options) {
 | 
			
		||||
  return expand(pattern)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var MAX_PATTERN_LENGTH = 1024 * 64
 | 
			
		||||
var assertValidPattern = function (pattern) {
 | 
			
		||||
  if (typeof pattern !== 'string') {
 | 
			
		||||
    throw new TypeError('invalid pattern')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (pattern.length > MAX_PATTERN_LENGTH) {
 | 
			
		||||
    throw new TypeError('pattern is too long')
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// parse a component of the expanded set.
 | 
			
		||||
// At this point, no pattern may contain "/" in it
 | 
			
		||||
// so we're going to return a 2d array, where each entry is the full
 | 
			
		||||
@@ -2185,17 +2160,14 @@ var assertValidPattern = function (pattern) {
 | 
			
		||||
Minimatch.prototype.parse = parse
 | 
			
		||||
var SUBPARSE = {}
 | 
			
		||||
function parse (pattern, isSub) {
 | 
			
		||||
  assertValidPattern(pattern)
 | 
			
		||||
  if (pattern.length > 1024 * 64) {
 | 
			
		||||
    throw new TypeError('pattern is too long')
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  var options = this.options
 | 
			
		||||
 | 
			
		||||
  // shortcuts
 | 
			
		||||
  if (pattern === '**') {
 | 
			
		||||
    if (!options.noglobstar)
 | 
			
		||||
      return GLOBSTAR
 | 
			
		||||
    else
 | 
			
		||||
      pattern = '*'
 | 
			
		||||
  }
 | 
			
		||||
  if (!options.noglobstar && pattern === '**') return GLOBSTAR
 | 
			
		||||
  if (pattern === '') return ''
 | 
			
		||||
 | 
			
		||||
  var re = ''
 | 
			
		||||
@@ -2251,12 +2223,10 @@ function parse (pattern, isSub) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    switch (c) {
 | 
			
		||||
      /* istanbul ignore next */
 | 
			
		||||
      case '/': {
 | 
			
		||||
      case '/':
 | 
			
		||||
        // completely not allowed, even escaped.
 | 
			
		||||
        // Should already be path-split by now.
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      case '\\':
 | 
			
		||||
        clearStateChar()
 | 
			
		||||
@@ -2375,23 +2345,25 @@ function parse (pattern, isSub) {
 | 
			
		||||
 | 
			
		||||
        // handle the case where we left a class open.
 | 
			
		||||
        // "[z-a]" is valid, equivalent to "\[z-a\]"
 | 
			
		||||
        // split where the last [ was, make sure we don't have
 | 
			
		||||
        // an invalid re. if so, re-walk the contents of the
 | 
			
		||||
        // would-be class to re-translate any characters that
 | 
			
		||||
        // were passed through as-is
 | 
			
		||||
        // TODO: It would probably be faster to determine this
 | 
			
		||||
        // without a try/catch and a new RegExp, but it's tricky
 | 
			
		||||
        // to do safely.  For now, this is safe and works.
 | 
			
		||||
        var cs = pattern.substring(classStart + 1, i)
 | 
			
		||||
        try {
 | 
			
		||||
          RegExp('[' + cs + ']')
 | 
			
		||||
        } catch (er) {
 | 
			
		||||
          // not a valid class!
 | 
			
		||||
          var sp = this.parse(cs, SUBPARSE)
 | 
			
		||||
          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
 | 
			
		||||
          hasMagic = hasMagic || sp[1]
 | 
			
		||||
          inClass = false
 | 
			
		||||
          continue
 | 
			
		||||
        if (inClass) {
 | 
			
		||||
          // split where the last [ was, make sure we don't have
 | 
			
		||||
          // an invalid re. if so, re-walk the contents of the
 | 
			
		||||
          // would-be class to re-translate any characters that
 | 
			
		||||
          // were passed through as-is
 | 
			
		||||
          // TODO: It would probably be faster to determine this
 | 
			
		||||
          // without a try/catch and a new RegExp, but it's tricky
 | 
			
		||||
          // to do safely.  For now, this is safe and works.
 | 
			
		||||
          var cs = pattern.substring(classStart + 1, i)
 | 
			
		||||
          try {
 | 
			
		||||
            RegExp('[' + cs + ']')
 | 
			
		||||
          } catch (er) {
 | 
			
		||||
            // not a valid class!
 | 
			
		||||
            var sp = this.parse(cs, SUBPARSE)
 | 
			
		||||
            re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
 | 
			
		||||
            hasMagic = hasMagic || sp[1]
 | 
			
		||||
            inClass = false
 | 
			
		||||
            continue
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // finish up the class.
 | 
			
		||||
@@ -2475,7 +2447,9 @@ function parse (pattern, isSub) {
 | 
			
		||||
  // something that could conceivably capture a dot
 | 
			
		||||
  var addPatternStart = false
 | 
			
		||||
  switch (re.charAt(0)) {
 | 
			
		||||
    case '[': case '.': case '(': addPatternStart = true
 | 
			
		||||
    case '.':
 | 
			
		||||
    case '[':
 | 
			
		||||
    case '(': addPatternStart = true
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Hack to work around lack of negative lookbehind in JS
 | 
			
		||||
@@ -2537,7 +2511,7 @@ function parse (pattern, isSub) {
 | 
			
		||||
  var flags = options.nocase ? 'i' : ''
 | 
			
		||||
  try {
 | 
			
		||||
    var regExp = new RegExp('^' + re + '$', flags)
 | 
			
		||||
  } catch (er) /* istanbul ignore next - should be impossible */ {
 | 
			
		||||
  } catch (er) {
 | 
			
		||||
    // If it was an invalid regular expression, then it can't match
 | 
			
		||||
    // anything.  This trick looks for a character after the end of
 | 
			
		||||
    // the string, which is of course impossible, except in multi-line
 | 
			
		||||
@@ -2595,7 +2569,7 @@ function makeRe () {
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    this.regexp = new RegExp(re, flags)
 | 
			
		||||
  } catch (ex) /* istanbul ignore next - should be impossible */ {
 | 
			
		||||
  } catch (ex) {
 | 
			
		||||
    this.regexp = false
 | 
			
		||||
  }
 | 
			
		||||
  return this.regexp
 | 
			
		||||
@@ -2613,8 +2587,8 @@ minimatch.match = function (list, pattern, options) {
 | 
			
		||||
  return list
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Minimatch.prototype.match = function match (f, partial) {
 | 
			
		||||
  if (typeof partial === 'undefined') partial = this.partial
 | 
			
		||||
Minimatch.prototype.match = match
 | 
			
		||||
function match (f, partial) {
 | 
			
		||||
  this.debug('match', f, this.pattern)
 | 
			
		||||
  // short-circuit in the case of busted things.
 | 
			
		||||
  // comments, etc.
 | 
			
		||||
@@ -2696,7 +2670,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
 | 
			
		||||
    // should be impossible.
 | 
			
		||||
    // some invalid regexp stuff in the set.
 | 
			
		||||
    /* istanbul ignore if */
 | 
			
		||||
    if (p === false) return false
 | 
			
		||||
 | 
			
		||||
    if (p === GLOBSTAR) {
 | 
			
		||||
@@ -2770,7 +2743,6 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
      // no match was found.
 | 
			
		||||
      // However, in partial mode, we can't say this is necessarily over.
 | 
			
		||||
      // If there's more *pattern* left, then
 | 
			
		||||
      /* istanbul ignore if */
 | 
			
		||||
      if (partial) {
 | 
			
		||||
        // ran out of file
 | 
			
		||||
        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
 | 
			
		||||
@@ -2784,7 +2756,11 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
    // patterns with magic have been turned into regexps.
 | 
			
		||||
    var hit
 | 
			
		||||
    if (typeof p === 'string') {
 | 
			
		||||
      hit = f === p
 | 
			
		||||
      if (options.nocase) {
 | 
			
		||||
        hit = f.toLowerCase() === p.toLowerCase()
 | 
			
		||||
      } else {
 | 
			
		||||
        hit = f === p
 | 
			
		||||
      }
 | 
			
		||||
      this.debug('string match', p, f, hit)
 | 
			
		||||
    } else {
 | 
			
		||||
      hit = f.match(p)
 | 
			
		||||
@@ -2815,16 +2791,16 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) {
 | 
			
		||||
    // this is ok if we're doing the match as part of
 | 
			
		||||
    // a glob fs traversal.
 | 
			
		||||
    return partial
 | 
			
		||||
  } else /* istanbul ignore else */ if (pi === pl) {
 | 
			
		||||
  } else if (pi === pl) {
 | 
			
		||||
    // ran out of pattern, still have file left.
 | 
			
		||||
    // this is only acceptable if we're on the very last
 | 
			
		||||
    // empty segment of a file with a trailing slash.
 | 
			
		||||
    // a/* should match a/b/
 | 
			
		||||
    return (fi === fl - 1) && (file[fi] === '')
 | 
			
		||||
    var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
 | 
			
		||||
    return emptyFileEnd
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // should be unreachable.
 | 
			
		||||
  /* istanbul ignore next */
 | 
			
		||||
  throw new Error('wtf?')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -38489,16 +38465,17 @@ function getInputAsInt(name, options) {
 | 
			
		||||
}
 | 
			
		||||
exports.getInputAsInt = getInputAsInt;
 | 
			
		||||
function isCacheFeatureAvailable() {
 | 
			
		||||
    if (cache.isFeatureAvailable()) {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    if (isGhes()) {
 | 
			
		||||
        logWarning(`Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
    if (!cache.isFeatureAvailable()) {
 | 
			
		||||
        if (isGhes()) {
 | 
			
		||||
            logWarning(`Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
Otherwise please upgrade to GHES version >= 3.5 and If you are also using Github Connect, please unretire the actions/cache namespace before upgrade (see https://docs.github.com/en/enterprise-server@3.5/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)`);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions.");
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions.");
 | 
			
		||||
    return false;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								examples.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								examples.md
									
									
									
									
									
								
							@@ -309,29 +309,14 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 | 
			
		||||
For npm, cache files are stored in `~/.npm` on Posix, or `~\AppData\npm-cache` on Windows, but it's possible to use `npm config get cache` to find the path on any platform. See [the npm docs](https://docs.npmjs.com/cli/cache#cache) for more details.
 | 
			
		||||
 | 
			
		||||
If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct.
 | 
			
		||||
After [deprecation](https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/) of save-state and set-output commands, the correct way to set output is using `${GITHUB_OUTPUT}`. For linux, we can use `${GITHUB_OUTPUT}` whereas for windows we need to use `${env:GITHUB_OUTPUT}` due to two different default shells in these two different OS ie `bash` and `pwsh` respectively.
 | 
			
		||||
 | 
			
		||||
>Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci`
 | 
			
		||||
 | 
			
		||||
### **Get npm cache directory using same shell**
 | 
			
		||||
### Bash shell
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Get npm cache directory
 | 
			
		||||
  id: npm-cache
 | 
			
		||||
  shell: bash
 | 
			
		||||
  run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### PWSH shell
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Get npm cache directory
 | 
			
		||||
  id: npm-cache
 | 
			
		||||
  shell: pwsh
 | 
			
		||||
  run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT}
 | 
			
		||||
```
 | 
			
		||||
`Get npm cache directory` step can then be used with `actions/cache` as shown below
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
  id: npm-cache-dir
 | 
			
		||||
  run: |
 | 
			
		||||
    echo "::set-output name=dir::$(npm config get cache)"
 | 
			
		||||
- uses: actions/cache@v3
 | 
			
		||||
  id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true'
 | 
			
		||||
  with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6492
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6492
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										24
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								package.json
									
									
									
									
									
								
							@@ -29,23 +29,23 @@
 | 
			
		||||
    "@actions/io": "^1.1.2"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/jest": "^27.5.2",
 | 
			
		||||
    "@types/jest": "^27.5.0",
 | 
			
		||||
    "@types/nock": "^11.1.0",
 | 
			
		||||
    "@types/node": "^16.18.3",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.45.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.45.0",
 | 
			
		||||
    "@types/node": "^16.11.33",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.22.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.22.0",
 | 
			
		||||
    "@zeit/ncc": "^0.20.5",
 | 
			
		||||
    "eslint": "^8.28.0",
 | 
			
		||||
    "eslint": "^8.14.0",
 | 
			
		||||
    "eslint-config-prettier": "^8.5.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.26.0",
 | 
			
		||||
    "eslint-plugin-jest": "^26.9.0",
 | 
			
		||||
    "eslint-plugin-prettier": "^4.2.1",
 | 
			
		||||
    "eslint-plugin-jest": "^26.1.5",
 | 
			
		||||
    "eslint-plugin-prettier": "^4.0.0",
 | 
			
		||||
    "eslint-plugin-simple-import-sort": "^7.0.0",
 | 
			
		||||
    "jest": "^28.1.3",
 | 
			
		||||
    "jest": "^28.0.3",
 | 
			
		||||
    "jest-circus": "^27.5.1",
 | 
			
		||||
    "nock": "^13.2.9",
 | 
			
		||||
    "prettier": "^2.8.0",
 | 
			
		||||
    "ts-jest": "^28.0.8",
 | 
			
		||||
    "typescript": "^4.9.3"
 | 
			
		||||
    "nock": "^13.2.4",
 | 
			
		||||
    "prettier": "^2.6.2",
 | 
			
		||||
    "ts-jest": "^28.0.2",
 | 
			
		||||
    "typescript": "^4.6.4"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -77,20 +77,19 @@ export function getInputAsInt(
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function isCacheFeatureAvailable(): boolean {
 | 
			
		||||
    if (cache.isFeatureAvailable()) {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (isGhes()) {
 | 
			
		||||
        logWarning(
 | 
			
		||||
            `Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
    if (!cache.isFeatureAvailable()) {
 | 
			
		||||
        if (isGhes()) {
 | 
			
		||||
            logWarning(
 | 
			
		||||
                `Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.
 | 
			
		||||
Otherwise please upgrade to GHES version >= 3.5 and If you are also using Github Connect, please unretire the actions/cache namespace before upgrade (see https://docs.github.com/en/enterprise-server@3.5/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)`
 | 
			
		||||
        );
 | 
			
		||||
            );
 | 
			
		||||
        } else {
 | 
			
		||||
            logWarning(
 | 
			
		||||
                "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions."
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    logWarning(
 | 
			
		||||
        "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions."
 | 
			
		||||
    );
 | 
			
		||||
    return false;
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user