fix: properly resolve remote entrypoints when including Taskfiles by twelvelabs · Pull Request #2438 · go-task/task
This MR fixes the ResolveEntrypoint methods for each of the Node types so that they consistently handle remote URI values.
Notes:
-
Not touching
HTTPNode, becauseResolveReferencealready does the right thing:If ref is an absolute URL, then ResolveReference ignores base and returns a copy of ref.
Fixes: #2437
Before
TASK_X_REMOTE_TASKFILES=1 task --list --verbose --taskfile git@gist.github.com:b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml
checking cache for "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml" in ".task/remote/git.gist.github.com.Taskfile.yml.a63a8af6fbeb2e855727b010c68f11213d87b1405a2c7cba3898e974d7cc3925.yaml"
cache expired at 2025-09-22T06:23:02Z
downloading remote file: ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml
found remote file at "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml"
caching "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml" to ".task/remote/git.gist.github.com.Taskfile.yml.a63a8af6fbeb2e855727b010c68f11213d87b1405a2c7cba3898e974d7cc3925.yaml"
checking cache for "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//git@gist.github.com:84af5ee983564bb42f1cc327a54e3139.git/Taskfile.yml" in ".task/remote/git.gist.github.com.git@gist.github.com:84af5ee983564bb42f1cc327a54e3139.git.Taskfile.yml.98e064eb9cd820ed9758fbdba39532701f95ab2638d4d89bdcfb49a9b33f1ba1.yaml"
no cache found
downloading remote file: ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//git@gist.github.com:84af5ee983564bb42f1cc327a54e3139.git/Taskfile.yml
file does not exist
After
TASK_X_REMOTE_TASKFILES=1 /Users/sbaney/go/bin/task --list --verbose --taskfile git@gist.github.com:b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml
checking cache for "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml" in ".task/remote/git.gist.github.com.Taskfile.yml.a63a8af6fbeb2e855727b010c68f11213d87b1405a2c7cba3898e974d7cc3925.yaml"
cache expired at 2025-09-22T06:34:34Z
downloading remote file: ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml
found remote file at "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml"
caching "ssh://git@gist.github.com/b703b1d39811a14dd405d33b023075dd.git//Taskfile.yml" to ".task/remote/git.gist.github.com.Taskfile.yml.a63a8af6fbeb2e855727b010c68f11213d87b1405a2c7cba3898e974d7cc3925.yaml"
checking cache for "ssh://git@gist.github.com/84af5ee983564bb42f1cc327a54e3139.git//Taskfile.yml" in ".task/remote/git.gist.github.com.Taskfile.yml.503af95376af030f1a9e899a5c704622c387198e6624d789d62d47b476b631ba.yaml"
cache expired at 2025-09-22T06:21:33Z
downloading remote file: ssh://git@gist.github.com/84af5ee983564bb42f1cc327a54e3139.git//Taskfile.yml
found remote file at "ssh://git@gist.github.com/84af5ee983564bb42f1cc327a54e3139.git//Taskfile.yml"
caching "ssh://git@gist.github.com/84af5ee983564bb42f1cc327a54e3139.git//Taskfile.yml" to ".task/remote/git.gist.github.com.Taskfile.yml.503af95376af030f1a9e899a5c704622c387198e6624d789d62d47b476b631ba.yaml"
checking cache for "ssh://git@github.com/go-task/examples.git//go-web-app/Taskfile.yml?ref=main" in ".task/remote/git.github.com.go-web-app.Taskfile.yml.f457482754778e7b9002a49aa34aaa1ce24b74d9b969109e6016bae1814d1446.yaml"
cache expired at 2025-09-22T06:21:36Z
downloading remote file: ssh://git@github.com/go-task/examples.git//go-web-app/Taskfile.yml?ref=main
checking cache for "ssh://git@github.com/go-task/task.git//website/Taskfile.yml?ref=main" in ".task/remote/git.github.com.website.Taskfile.yml.b9ca263cca8ded24b43a7000102e2b2ca5be8aed88d048802baf5b368d124cb8.yaml"
cache expired at 2025-09-22T06:21:36Z
downloading remote file: ssh://git@github.com/go-task/task.git//website/Taskfile.yml?ref=main
found remote file at "ssh://git@github.com/go-task/examples.git//go-web-app/Taskfile.yml?ref=main"
caching "ssh://git@github.com/go-task/examples.git//go-web-app/Taskfile.yml?ref=main" to ".task/remote/git.github.com.go-web-app.Taskfile.yml.f457482754778e7b9002a49aa34aaa1ce24b74d9b969109e6016bae1814d1446.yaml"
found remote file at "ssh://git@github.com/go-task/task.git//website/Taskfile.yml?ref=main"
caching "ssh://git@github.com/go-task/task.git//website/Taskfile.yml?ref=main" to ".task/remote/git.github.com.website.Taskfile.yml.b9ca263cca8ded24b43a7000102e2b2ca5be8aed88d048802baf5b368d124cb8.yaml"
task: Available tasks for this project:
* app:go:build: Build the web app
* app:go:clean: Clean every generated file
* app:go:css: Bundle CSS using esbuild
* app:go:default: Build and run the web app (aliases: app:go:run, app:go)
* app:go:js: Bundle JS using esbuild
* app:website:build: Build website
* app:website:clean: Clean temp directories
* app:website:default: Start website (aliases: app:website:s, app:website:start, app:website)
* app:website:deploy:next: Build and deploy next.taskfile.dev
* app:website:deploy:prod: Build and deploy taskfile.dev
* app:website:install: Setup VitePress locally
* app:website:lint: Lint website
* app:website:preview: Preview Website (aliases: app:website:serve)