diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2021-11-08 12:17:12 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2021-11-08 12:17:12 -0300 |
commit | 9ff512e35455939f02eaec2318e3acc77782fdeb (patch) | |
tree | 1dded2480f9095975caa10041f9456b2f4ee5541 | |
parent | 11ddae641f9f23a01291443bf2569104edb855e1 (diff) | |
download | luarocks-9ff512e35455939f02eaec2318e3acc77782fdeb.tar.gz luarocks-9ff512e35455939f02eaec2318e3acc77782fdeb.tar.bz2 luarocks-9ff512e35455939f02eaec2318e3acc77782fdeb.zip |
Auto-convert github.com source URLs to use https
This avoids having to fix every rockspec that uses github.com.
See https://github.blog/2021-09-01-improving-git-protocol-security-github/
For more context, see:
https://github.com/teal-language/tl/pull/494/
-rw-r--r-- | src/luarocks/fetch.lua | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/luarocks/fetch.lua b/src/luarocks/fetch.lua index c7f2d549..90e7c79e 100644 --- a/src/luarocks/fetch.lua +++ b/src/luarocks/fetch.lua | |||
@@ -502,6 +502,14 @@ function fetch.fetch_sources(rockspec, extract, dest_dir) | |||
502 | assert(type(extract) == "boolean") | 502 | assert(type(extract) == "boolean") |
503 | assert(type(dest_dir) == "string" or not dest_dir) | 503 | assert(type(dest_dir) == "string" or not dest_dir) |
504 | 504 | ||
505 | -- auto-convert git://github.com URLs to use git+https | ||
506 | -- see https://github.blog/2021-09-01-improving-git-protocol-security-github/ | ||
507 | if rockspec.source.url:match("^git://github%.com/") | ||
508 | or rockspec.source.url:match("^git://www%.github%.com/") then | ||
509 | rockspec.source.url = rockspec.source.url:gsub("^git://", "git+https://") | ||
510 | rockspec.source.protocol = "git+https" | ||
511 | end | ||
512 | |||
505 | local protocol = rockspec.source.protocol | 513 | local protocol = rockspec.source.protocol |
506 | local ok, proto | 514 | local ok, proto |
507 | if dir.is_basic_protocol(protocol) then | 515 | if dir.is_basic_protocol(protocol) then |
@@ -522,6 +530,7 @@ function fetch.fetch_sources(rockspec, extract, dest_dir) | |||
522 | return nil, "Can't download "..rockspec.source.url.." -- only downloading from "..cfg.only_sources_from | 530 | return nil, "Can't download "..rockspec.source.url.." -- only downloading from "..cfg.only_sources_from |
523 | end | 531 | end |
524 | end | 532 | end |
533 | |||
525 | return proto.get_sources(rockspec, extract, dest_dir) | 534 | return proto.get_sources(rockspec, extract, dest_dir) |
526 | end | 535 | end |
527 | 536 | ||