Mercurial > hg
view tests/test-propertycache.py.out @ 37766:925707ac2855
lfs: add the 'Authorization' property to the Batch API response, if present
The client copies all of these properties under 'header' to the HTTP Headers of
the subsequent GET or PUT request that it performs. That allows the Basic HTTP
authentication used to authorize the Batch API request to also authorize the
upload/download action.
There's likely further work to do here. There's an 'authenticated' boolean key
in the Batch API response that can be set, and there is an 'LFS-Authenticate'
header that is used instead of 'WWW-Authenticate'[1]. (We likely need to
support both, since some hosting solutions are likely to only respond with the
latter.) In any event, this works with SCM Manager, so there is real world
benefit.
I'm limiting the headers returned to 'Basic', because that's all the lfs spec
calls out. In practice, I've seen gitbucket emit custom header content[2].
[1] https://github.com/git-lfs/git-lfs/blob/master/docs/api/batch.md#response-errors
[2] https://github.com/gitbucket/gitbucket/blob/35655f33c7713f08515ed640ece0948acd6d6168/src/main/scala/gitbucket/core/servlet/GitRepositoryServlet.scala#L119
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 06 Apr 2018 11:13:47 -0400 |
parents | 9789670992d6 |
children |
line wrap: on
line source
=== property cache === calllog: [] cached value (unfiltered): NOCACHE = first access on unfiltered, should do a call access: 0 calllog: [0] cached value (unfiltered): 0 = second access on unfiltered, should not do call access 0 calllog: [0] cached value (unfiltered): 0 = first access on "visible" view, should do a call cached value ("visible" view): NOCACHE access: 7 calllog: [0, 7] cached value (unfiltered): 0 cached value ("visible" view): 7 = second access on "visible view", should not do call access: 7 calllog: [0, 7] cached value (unfiltered): 0 cached value ("visible" view): 7 = no effect on other view cached value ("immutable" view): NOCACHE access: 9 calllog: [0, 7, 9] cached value (unfiltered): 0 cached value ("visible" view): 7 cached value ("immutable" view): 9 === unfiltered property cache === unficalllog: [] cached value (unfiltered): NOCACHE cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE = first access on unfiltered, should do a call access (unfiltered): 100 unficalllog: [100] cached value (unfiltered): 100 = second access on unfiltered, should not do call access (unfiltered): 100 unficalllog: [100] cached value (unfiltered): 100 = access on view should use the unfiltered cache access (unfiltered): 100 access ("visible" view): 100 access ("immutable" view): 100 unficalllog: [100] cached value (unfiltered): 100 cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE = even if we clear the unfiltered cache cached value (unfiltered): NOCACHE cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE unficalllog: [100] access ("visible" view): 100 unficalllog: [100, 100] cached value (unfiltered): 100 cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE access ("immutable" view): 100 unficalllog: [100, 100] cached value (unfiltered): 100 cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE access (unfiltered): 100 unficalllog: [100, 100] cached value (unfiltered): 100 cached value ("visible" view): NOCACHE cached value ("immutable" view): NOCACHE