       # Clear the local cache
       # -------
       @clearCache = clearCache = () -> _cachedETags = {}
+
+      ## Get the local cache
+      # -------
+      @getCache = getCache = () -> _cachedETags
+
+      ## Set the local cache
+      # -------
+      @setCache = setCache = (cachedETags) ->
+        _cachedETags = _.extend {}, _cachedETags, cachedETags
 
       # Add a listener that fires when the `rateLimitRemaining` changes as a result of
       # communicating with github.

            if clientOptions.useETags and _cachedETags[path]
              eTagResponse = _cachedETags[path]

              promise.resolve(eTagResponse.data, eTagResponse.textStatus, eTagResponse.jqXHR)
            else
              promise.resolve(jqXHR.responseText, textStatus, jqXHR)



      # To support ETag caching cache the responses.
      class ETagResponse
        constructor: (@eTag, @data, @textStatus) ->

      # Cached responses are stored in this object keyed by `path`
      _cachedETags = {}
