Commit Graph

605 Commits

Author SHA1 Message Date
Valentin Maerten
bff4f97d7e refactor(remote): template header values instead of expanding ${VAR}
Aligns the syntax with the rest of Task, and lets functions compose: a
Basic credential no longer needs its base64 computed by hand. The strict
expansion this replaces was already gone, so nothing is lost by the
switch.

Only functions resolve — the configuration file is read before any
Taskfile, so {{.VAR}} has nothing to read and produces an empty header.
That is documented next to the option.
2026-08-23 12:35:55 +02:00
Valentin Maerten
a41df4a127 fix(remote): report a 401 instead of a missing Taskfile
RemoteExists treated every non-200 as an absent file, so a server
refusing the credentials ended up as "No Taskfile found", sending the
user to check the URL rather than the token. A 401 now stops the search
and reports the status code; the default names need the same credentials,
so trying them would only add rejected requests. A 403 is left alone: it
is also what a server without directory listing answers for a readable
directory.

That message being correct, the expansion no longer needs to refuse an
undefined variable: os.ExpandEnv is inlined and expandEnv is gone. The
`$$` escape goes with it, so a literal value can no longer hold a `$`
followed by a name; a secret carried in an environment variable is
unaffected, as os.Expand never rescans what it substituted.

Header names are validated with httpguts.ValidHeaderFieldName, the table
net/http itself uses, rather than a denylist that let X-Foo(bar) through.
golang.org/x/net was already in the module graph, so tidy only moves it
to the direct block.

Finally, node_http_auth.go becomes http_auth.go: the node_ prefix is for
files defining a Node type, and this one holds the auth concern of
HTTPNode plus hostMatches, which reader.go uses for trusted hosts.
2026-08-23 12:11:55 +02:00
Valentin Maerten
8a93190060 feat(remote): add remote.auth to send HTTP headers when downloading Taskfiles
Authenticating a remote Taskfile so far meant putting the credential in the
include URL, where it leaks into error messages and the confirmation prompt.
`remote.auth` configures free-form headers per host instead, so the URL stays
safe to commit. Values may reference environment variables with ${VAR}.

The headers are injected by a RoundTripper rather than set on the request:
that covers the HEAD probe RemoteExists issues before the GET, and keeps a
cross-host redirect from carrying the credentials. They are resolved when the
request is about to be made, so a cached or offline run does not require a
token it will never send.
2026-08-23 12:11:08 +02:00
Valentin Maerten
dd4463ec60 chore: bump minimum Go to 1.26 and adopt 1.26 features (#2920) 2026-08-20 12:24:04 +02:00
Valentin Maerten
6170794c9f chore: re-write changelog for 3.53.1 2026-08-18 18:08:21 +02:00
Valentin Maerten
1530114bca v3.53.0 2026-08-18 17:14:13 +02:00
Pete Davison
c1a804e0bc chore: changelog for #2981 2026-08-16 11:32:28 +00:00
Valentin Maerten
1868ad2969 fix(remote): verify the pinned checksum on remote cache hits (#2980) 2026-08-14 19:46:08 +02:00
Valentin Maerten
813bc8a11d chore: drop the breaking-change marker from the #2898 changelog entry 2026-08-13 16:01:18 +02:00
Pete Davison
9491f1683c chore: add changelog for #2906 2026-08-13 13:51:02 +00:00
Valentin Maerten
37898d9102 feat: command timeouts (#2898) 2026-08-11 22:09:25 +02:00
Valentin Maerten
993508c782 feat(completion): add Nushell completions (#2966) 2026-08-11 20:12:17 +02:00
Valentin Maerten
e8404ea6e0 chore: changelog for #2942 2026-08-11 08:48:45 +02:00
Valentin Maerten
bc37f113f1 chore: changelog for #2240 2026-08-10 22:51:54 +02:00
Valentin Maerten
8e89cf879c chore: changelog for #2967 2026-08-10 20:30:33 +02:00
Valentin Maerten
2ea5d7dee2 chore: changelog for #2044 2026-08-10 20:30:32 +02:00
Valentin Maerten
2cdadb4c99 chore: changelog for #2956 2026-08-10 19:50:50 +02:00
Valentin Maerten
678bd6ba62 chore: changelog for #2959 2026-08-10 16:27:19 +02:00
Valentin Maerten
fc49c72647 refactor: centralize fingerprint method resolution in a Fingerprinter (#2924) 2026-08-10 16:12:18 +02:00
Valentin Maerten
651aa44f50 perf: reuse buffer when hashing source files for checksums (#2925) 2026-08-03 20:30:20 +00:00
Valentin Maerten
2e5106bf24 feat: support enum.ref in interactive prompts (#2927) 2026-08-03 22:20:10 +02:00
Valentin Maerten
81c4291803 chore: changelog for #2915 2026-07-14 22:40:12 +02:00
Andrey Nering
75b227ee13 docs(changelog): add entries for #2853, #2883 and #2884 2026-07-13 18:03:48 -03:00
Pete Davison
b4710d29b4 chore: changelog for #2184 2026-07-03 13:19:03 +00:00
Valentin Maerten
536f490187 v3.52.0 2026-07-02 20:37:51 +02:00
Valentin Maerten
2b387c125e chore: changelog for #2892 2026-07-02 20:34:26 +02:00
Pete Davison
b5f671e098 feat: changelog for #2905 2026-07-01 14:46:48 +00:00
Valentin Maerten
11010d0d81 chore: changelog for #2904 2026-07-01 14:40:32 +02:00
Pete Davison
a61f8ade36 feat: update changelog for #2847 2026-06-29 18:27:59 +00:00
Valentin Maerten
7fa9d657cd feat(completion): complete task aliases in zsh (#2865) 2026-06-29 14:21:47 +00:00
kjasn
1c743de2b7 feat: Add temp dir option (#2891)
Co-authored-by: Valentin Maerten <maerten.valentin@gmail.com>
2026-06-29 14:13:37 +00:00
Valentin Maerten
f9e52fab40 chore: changelog for #2873 2026-06-29 15:50:50 +02:00
Valentin Maerten
d4dc3dc448 chore: changelog for #2773 2026-06-29 15:42:22 +02:00
Valentin Maerten
a03aa7ba69 chore: changelog for #2514 2026-06-29 14:53:00 +02:00
Valentin Maerten
1d9b3cb7db chore: changelog for #2894 2026-06-28 22:03:20 +02:00
Valentin Maerten
3dcaa7db89 chore: changelog for #2886 2026-06-21 16:25:14 +02:00
Valentin Maerten
24a3ccdf42 chore: changelog for #2871 2026-06-07 16:39:02 +02:00
Valentin Maerten
dd810d42e1 chore: changelog for #2852 2026-05-31 11:08:42 +02:00
Valentin Maerten
7766e8add5 chore: changelog for #2859 2026-05-31 11:03:32 +02:00
Andrey Nering
bd79c29a39 v3.51.1 2026-05-16 17:51:05 -03:00
Andrey Nering
136e0dae89 ci: fix goreleaser 2026-05-16 17:50:34 -03:00
Andrey Nering
41a2137044 v3.51.0 2026-05-16 17:27:25 -03:00
Timothy Rule
9e3ff27ba1 fix: avoid panic after calling WordsSeq (#2810) 2026-05-09 21:42:00 +00:00
Andrey Nering
6e154f2b71 docs(changelog): add entry for #2832 2026-05-09 18:28:46 -03:00
Andrey Nering
43dbeb4260 docs(changelog): add entry for #2406 #2408 2026-05-09 11:25:49 -03:00
Andrey Nering
3441bf522e docs(changelog): add entry for #2820 2026-05-01 10:03:53 -03:00
Valentin Maerten
1eb5720e7e chore: changelog for #2788 2026-04-20 21:53:50 +02:00
Andrey Nering
d61d92dfdf v3.50.0 2026-04-13 17:54:26 -03:00
Andrey Nering
07fbd9887e docs(changelog): add entry for #2716 2026-04-11 21:45:48 -03:00
Valentin Maerten
a12cc6e843 chore: changelog for #2764 2026-04-09 08:16:03 +02:00