forgejo-aneksajo/services
Nick 7a876f65b7 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-23 13:31:13 +02:00
..
actions Fix pull request check list is limited (#26179) (#26245) 2023-08-21 07:22:15 +02:00
agit Use the type RefName for all the needed places and fix pull mirror sync bugs (#24634) 2023-05-26 01:04:48 +00:00
asymkey Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
attachment Preserve file size when creating attachments (#23406) 2023-03-12 03:48:07 -04:00
auth git-annex: support downloading over HTTP (#6) 2024-04-23 13:31:13 +02:00
automerge Improve queue and logger context (#24924) 2023-05-26 07:31:55 +00:00
context Replace interface{} with any (#25686) (#25687) 2023-07-04 23:41:32 -04:00
convert Fix package webhook (#27839) (#27854) 2023-11-14 13:17:12 +01:00
cron [GITEA] Show manual cron run's last time 2023-07-31 18:34:14 +00:00
externalaccount Replace interface{} with any (#25686) (#25687) 2023-07-04 23:41:32 -04:00
forgejo [UPGRADE] add sanity checks for [storage*] 2023-08-21 07:22:19 +02:00
forms check blocklist for emails when adding them to account (#26812) (#26831) 2023-09-08 08:09:18 +02:00
gitdiff Fix successful return value for SyncAndGetUserSpecificDiff (#27152) (#27156) 2023-10-03 14:48:08 +02:00
issue Avoid run change title process when the title is same (#27467) (#27557) 2023-11-14 13:17:11 +01:00
lfs Replace interface{} with any (#25686) (#25687) 2023-07-04 23:41:32 -04:00
mailer [BRANDING] add X-Forgejo-* headers 2023-07-17 00:25:55 +02:00
markup Decouple the different contexts from each other (#24786) 2023-05-21 09:50:53 +08:00
migrations Fix DownloadFunc when migrating releases (#27887) (#27889) 2023-11-14 13:17:12 +01:00
mirror Replace interface{} with any (#25686) (#25687) 2023-07-04 23:41:32 -04:00
org Refactor rename user and rename organization (#24052) 2023-05-21 23:13:47 +08:00
packages Prevent newline errors with Debian packages (#26332) (#26342) 2023-08-21 07:22:16 +02:00
pull Fix poster is not loaded in get default merge message (#27657) (#27665) 2023-11-14 13:17:11 +01:00
release Use the type RefName for all the needed places and fix pull mirror sync bugs (#24634) 2023-05-26 01:04:48 +00:00
repository Sync tags when adopting repos (#26816) (#26834) 2023-09-08 08:09:18 +02:00
task Replace interface{} with any (#25686) (#25687) 2023-07-04 23:41:32 -04:00
user [MODERATION] organization blocking a user (#802) 2023-07-17 00:26:42 +02:00
webhook Fix package webhook (#27839) (#27854) 2023-11-14 13:17:12 +01:00
wiki services/wiki: Close() after error handling (#27129) (#27137) 2023-09-20 12:50:46 +02:00