<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/spec/requests/lfs_http_spec.rb, branch docs/edit-rules-docs</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Cleanup usages of `JSON.parse` in specs</title>
<updated>2019-07-16T08:03:49+00:00</updated>
<author>
<name>Peter Leitzen</name>
<email>pleitzen@gitlab.com</email>
</author>
<published>2019-07-16T08:03:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=7b87ed14991737930eb8f353feec9e6c8af6c1ac'/>
<id>7b87ed14991737930eb8f353feec9e6c8af6c1ac</id>
<content type='text'>
Prefer `json_response` where applicable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prefer `json_response` where applicable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Verify that LFS upload requests are genuine</title>
<updated>2019-01-31T15:52:48+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2019-01-08T17:57:58+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=5b075413d95606949a305c0c65154a81e7b8a85d'/>
<id>5b075413d95606949a305c0c65154a81e7b8a85d</id>
<content type='text'>
LFS uploads are handled in concert by workhorse and rails. In normal
use, workhorse:

* Authorizes the request with rails (upload_authorize)
* Handles the upload of the file to a tempfile - disk or object storage
* Validates the file size and contents
* Hands off to rails to complete the upload (upload_finalize)

In `upload_finalize`, the LFS object is linked to the project. As LFS
objects are deduplicated across all projects, it may already exist. If
not, the temporary file is copied to the correct place, and will be
used by all future LFS objects with the same OID.

Workhorse uses the Content-Type of the request to decide to follow this
routine, as the URLs are ambiguous. If the Content-Type is anything but
"application/octet-stream", the request is proxied directly to rails,
on the assumption that this is a normal file edit request. If it's an
actual LFS request with a different content-type, however, it is routed
to the Rails `upload_finalize` action, which treats it as an LFS upload
just as it would a workhorse-modified request.

The outcome is that users can upload LFS objects that don't match the
declared size or OID. They can also create links to LFS objects they
don't really own, allowing them to read the contents of files if they
know just the size or OID.

We can close this hole by requiring requests to `upload_finalize` to be
sourced from Workhorse. The mechanism to do this already exists.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LFS uploads are handled in concert by workhorse and rails. In normal
use, workhorse:

* Authorizes the request with rails (upload_authorize)
* Handles the upload of the file to a tempfile - disk or object storage
* Validates the file size and contents
* Hands off to rails to complete the upload (upload_finalize)

In `upload_finalize`, the LFS object is linked to the project. As LFS
objects are deduplicated across all projects, it may already exist. If
not, the temporary file is copied to the correct place, and will be
used by all future LFS objects with the same OID.

Workhorse uses the Content-Type of the request to decide to follow this
routine, as the URLs are ambiguous. If the Content-Type is anything but
"application/octet-stream", the request is proxied directly to rails,
on the assumption that this is a normal file edit request. If it's an
actual LFS request with a different content-type, however, it is routed
to the Rails `upload_finalize` action, which treats it as an LFS upload
just as it would a workhorse-modified request.

The outcome is that users can upload LFS objects that don't match the
declared size or OID. They can also create links to LFS objects they
don't really own, allowing them to read the contents of files if they
know just the size or OID.

We can close this hole by requiring requests to `upload_finalize` to be
sourced from Workhorse. The mechanism to do this already exists.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid extra storage bucket perm and query</title>
<updated>2018-12-21T18:34:05+00:00</updated>
<author>
<name>Michael Kozono</name>
<email>mkozono@gmail.com</email>
</author>
<published>2018-12-21T17:56:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d2d85c31fea920b0e62fb600fc6de874762a71ad'/>
<id>d2d85c31fea920b0e62fb600fc6de874762a71ad</id>
<content type='text'>
Specifically, the `ListAllMyBuckets` permission.

This works if you know the directory exists.

See more:

* https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23981
* https://stackoverflow.com/a/12288581/1992201
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically, the `ListAllMyBuckets` permission.

This works if you know the directory exists.

See more:

* https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23981
* https://stackoverflow.com/a/12288581/1992201
</pre>
</div>
</content>
</entry>
<entry>
<title>Update specs to rails5 format</title>
<updated>2018-12-18T23:04:31+00:00</updated>
<author>
<name>blackst0ne</name>
<email>blackst0ne.ru@gmail.com</email>
</author>
<published>2018-12-17T22:52:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=b44a2c801a64fb282cea794871fcfcf81e4ec539'/>
<id>b44a2c801a64fb282cea794871fcfcf81e4ec539</id>
<content type='text'>
Updates specs to use new rails5 format.

The old format:
`get :show, { some: params }, { some: headers }`

The new format:
`get :show, params: { some: params }, headers: { some: headers }`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updates specs to use new rails5 format.

The old format:
`get :show, { some: params }, { some: headers }`

The new format:
`get :show, params: { some: params }, headers: { some: headers }`
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix LFS uploads not working with git-lfs 2.5.0</title>
<updated>2018-07-31T13:15:14+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2018-07-31T13:13:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=c5645a673955d5711bf589ad60ee6607220fdc9d'/>
<id>c5645a673955d5711bf589ad60ee6607220fdc9d</id>
<content type='text'>
git-lfs 2.5.0 now sets the Content-Type header instead of hard-coding it to
application/octet-stream: https://github.com/git-lfs/git-lfs/pull/3137

To avoid this issue, we explicitly tell the client to use
application/octet-stream.

Closes #49752
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-lfs 2.5.0 now sets the Content-Type header instead of hard-coding it to
application/octet-stream: https://github.com/git-lfs/git-lfs/pull/3137

To avoid this issue, we explicitly tell the client to use
application/octet-stream.

Closes #49752
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolve "Deploy Tokens failed to clone LFS repository"</title>
<updated>2018-07-23T09:23:08+00:00</updated>
<author>
<name>Mayra Cabrera</name>
<email>mcabrera@gitlab.com</email>
</author>
<published>2018-07-23T09:23:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=f2c46672cae763bb213e8aa14253e5eea48c1064'/>
<id>f2c46672cae763bb213e8aa14253e5eea48c1064</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolve "Rename the `Master` role to `Maintainer`" Backend</title>
<updated>2018-07-11T14:36:08+00:00</updated>
<author>
<name>Mark Chao</name>
<email>mchao@gitlab.com</email>
</author>
<published>2018-07-11T14:36:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=a63bce1a4b55bc6cbafb9dec12d33028521489e9'/>
<id>a63bce1a4b55bc6cbafb9dec12d33028521489e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support presigned multipart uploads</title>
<updated>2018-06-04T11:04:29+00:00</updated>
<author>
<name>Kamil Trzciński</name>
<email>ayufan@ayufan.eu</email>
</author>
<published>2018-05-09T15:27:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=b8370c9f55843351b49073dafe84a2e9858c8c8a'/>
<id>b8370c9f55843351b49073dafe84a2e9858c8c8a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix spec</title>
<updated>2018-05-28T01:44:26+00:00</updated>
<author>
<name>Shinya Maeda</name>
<email>shinya@gitlab.com</email>
</author>
<published>2018-05-28T01:44:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=cb2802dbbcacd867336c9d1da214a1c7a9047089'/>
<id>cb2802dbbcacd867336c9d1da214a1c7a9047089</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `direct_upload` setting for artifacts</title>
<updated>2018-04-05T13:01:14+00:00</updated>
<author>
<name>Kamil Trzciński</name>
<email>ayufan@ayufan.eu</email>
</author>
<published>2018-04-03T16:47:33+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/gitlab/gitlab-ce.git/commit/?id=678620cce67cc283b19b75137f747f9415aaf942'/>
<id>678620cce67cc283b19b75137f747f9415aaf942</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
