forgejo-aneksajo/services/auth
Nick 742d6d73f9 git-annex: support downloading over HTTP (#6)
This makes HTTP symmetric with SSH clone URLs.

This gives us the fancy feature of _anonymous_ downloads,
so people can access datasets without having to set up an
account or manage ssh keys.

Previously, to access "open access" data shared this way,
users would need to:

  1. Create an account on gitea.example.com
  2. Create ssh keys
  3. Upload ssh keys (and make sure to find and upload the correct file)
  4. `git clone git@gitea.example.com:user/dataset.git`
  5. `cd dataset`
  6. `git annex get`

This cuts that down to just the last three steps:

  1. `git clone https://gitea.example.com/user/dataset.git`
  2. `cd dataset`
  3. `git annex get`

This is significantly simpler for downstream users, especially for those
unfamiliar with the command line.

Unfortunately there's no uploading. While git-annex supports uploading
over HTTP to S3 and some other special remotes, it seems to fail on a
_plain_ HTTP remote. See https://github.com/neuropoly/gitea/issues/7
and https://git-annex.branchable.com/forum/HTTP_uploads/#comment-ce28adc128fdefe4c4c49628174d9b92.

This is not a major loss since no one wants uploading to be anonymous anyway.

To support private repos, I had to hunt down and patch a secret extra security
corner that Gitea only applies to HTTP for some reason (services/auth/basic.go).

This was guided by https://git-annex.branchable.com/tips/setup_a_public_repository_on_a_web_site/

Fixes https://github.com/neuropoly/gitea/issues/3

Co-authored-by: Mathieu Guay-Paquet <mathieu.guaypaquet@polymtl.ca>
2024-04-26 10:28:22 +02:00
..
source Revert "[TESTS] oauth2: make it possible to use an alternate http.Client" 2023-12-19 16:38:35 +01:00
auth.go git-annex: support downloading over HTTP (#6) 2024-04-26 10:28:22 +02:00
auth_test.go Fix attachment download bug (#27486) (#27571) 2023-10-11 04:39:12 +02:00
basic.go git-annex: support downloading over HTTP (#6) 2024-04-26 10:28:22 +02:00
group.go Remove Named interface (#26913) 2023-09-05 15:58:30 +00:00
httpsign.go Remove Named interface (#26913) 2023-09-05 15:58:30 +00:00
interface.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
oauth2.go Revert "Deprecate query string auth tokens (#28390) (#28430)" 2023-12-12 17:04:38 +01:00
reverseproxy.go Fix attachment download bug (#27486) (#27571) 2023-10-11 04:39:12 +02:00
session.go Remove Named interface (#26913) 2023-09-05 15:58:30 +00:00
signin.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
source.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sspi.go Make SSPI auth mockable (#27036) 2023-09-17 23:32:56 +00:00
sspiauth_posix.go Make SSPI auth mockable (#27036) 2023-09-17 23:32:56 +00:00
sspiauth_windows.go Make SSPI auth mockable (#27036) 2023-09-17 23:32:56 +00:00
sync.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00