mirror of
https://github.com/go-task/task.git
synced 2026-07-09 20:09:14 +02:00
feat: add configuration values for remote taskfiles
This commit is contained in:
@@ -128,7 +128,8 @@ Disable fuzzy matching for task names. When enabled, Task will not suggest
|
||||
similar task names when you mistype a task name.
|
||||
|
||||
- **Config equivalent**: [`disable-fuzzy`](./config.md#disable-fuzzy)
|
||||
- **Environment variable**: [`TASK_DISABLE_FUZZY`](./environment.md#task-disable-fuzzy)
|
||||
- **Environment variable**:
|
||||
[`TASK_DISABLE_FUZZY`](./environment.md#task-disable-fuzzy)
|
||||
|
||||
```bash
|
||||
task buidl --disable-fuzzy
|
||||
@@ -180,7 +181,8 @@ task test lint --parallel
|
||||
Limit the number of concurrent tasks. Zero means unlimited.
|
||||
|
||||
- **Config equivalent**: [`concurrency`](./config.md#concurrency)
|
||||
- **Environment variable**: [`TASK_CONCURRENCY`](./environment.md#task-concurrency)
|
||||
- **Environment variable**:
|
||||
[`TASK_CONCURRENCY`](./environment.md#task-concurrency)
|
||||
|
||||
```bash
|
||||
task test --concurrency 4
|
||||
@@ -248,7 +250,8 @@ task test --output group
|
||||
|
||||
Message template to print before grouped output.
|
||||
|
||||
- **Environment variable**: [`TASK_OUTPUT_GROUP_BEGIN`](./environment.md#task-output-group-begin)
|
||||
- **Environment variable**:
|
||||
[`TASK_OUTPUT_GROUP_BEGIN`](./environment.md#task-output-group-begin)
|
||||
|
||||
```bash
|
||||
task test --output group --output-group-begin "::group::{{.TASK}}"
|
||||
@@ -258,7 +261,8 @@ task test --output group --output-group-begin "::group::{{.TASK}}"
|
||||
|
||||
Message template to print after grouped output.
|
||||
|
||||
- **Environment variable**: [`TASK_OUTPUT_GROUP_END`](./environment.md#task-output-group-end)
|
||||
- **Environment variable**:
|
||||
[`TASK_OUTPUT_GROUP_END`](./environment.md#task-output-group-end)
|
||||
|
||||
```bash
|
||||
task test --output group --output-group-end "::endgroup::"
|
||||
@@ -268,7 +272,8 @@ task test --output group --output-group-end "::endgroup::"
|
||||
|
||||
Only show command output on non-zero exit codes.
|
||||
|
||||
- **Environment variable**: [`TASK_OUTPUT_GROUP_ERROR_ONLY`](./environment.md#task-output-group-error-only)
|
||||
- **Environment variable**:
|
||||
[`TASK_OUTPUT_GROUP_ERROR_ONLY`](./environment.md#task-output-group-error-only)
|
||||
|
||||
```bash
|
||||
task test --output group --output-group-error-only
|
||||
@@ -351,7 +356,8 @@ task build --watch --interval 1s
|
||||
|
||||
Automatically answer "yes" to all prompts.
|
||||
|
||||
- **Environment variable**: [`TASK_ASSUME_YES`](./environment.md#task-assume-yes)
|
||||
- **Environment variable**:
|
||||
[`TASK_ASSUME_YES`](./environment.md#task-assume-yes)
|
||||
|
||||
```bash
|
||||
task deploy --yes
|
||||
@@ -366,12 +372,69 @@ Task automatically detects non-TTY environments (like CI pipelines) and skips
|
||||
prompts. This flag can also be set in `.taskrc.yml` to enable prompts by
|
||||
default.
|
||||
|
||||
- **Environment variable**: [`TASK_INTERACTIVE`](./environment.md#task-interactive)
|
||||
- **Environment variable**:
|
||||
[`TASK_INTERACTIVE`](./environment.md#task-interactive)
|
||||
|
||||
```bash
|
||||
task deploy --interactive
|
||||
```
|
||||
|
||||
### Remote
|
||||
|
||||
The following flags are used to control the behavior of
|
||||
[remote Taskfiles](../remote-taskfiles.md).
|
||||
|
||||
#### `--insecure`
|
||||
|
||||
Allow insecure connections when fetching remote Taskfiles.
|
||||
|
||||
#### `--offline`
|
||||
|
||||
Work in offline mode, preventing remote Taskfile fetching.
|
||||
|
||||
#### `--download`
|
||||
|
||||
Forces task to download remote Taskfiles and ignore any cached versions.
|
||||
|
||||
#### `--timeout`
|
||||
|
||||
Timeout duration for remote operations (e.g., '30s', '5m').
|
||||
|
||||
#### `--clear-cache`
|
||||
|
||||
Wipe the cache of remote Taskfiles and checksums.
|
||||
|
||||
#### `--expiry`
|
||||
|
||||
Cache expiry duration for remote Taskfiles (e.g., '1h', '24h').
|
||||
|
||||
#### `--remote-cache-dir`
|
||||
|
||||
Directory where remote Taskfiles are cached. Can be an absolute path (e.g.,
|
||||
`/var/cache/task`) or relative to the Taskfile directory.
|
||||
|
||||
#### `--trusted-hosts`
|
||||
|
||||
List of (comma-separated) trusted hosts for remote Taskfiles. Hosts in this list
|
||||
will not prompt for confirmation when downloading Taskfiles.
|
||||
|
||||
Hosts in the trusted hosts list will automatically be trusted without prompting
|
||||
for confirmation when they are first downloaded or when their checksums change.
|
||||
The host matching includes the port if specified in the URL. Use with caution
|
||||
and only add hosts you fully trust.
|
||||
|
||||
#### `--cacert`
|
||||
|
||||
Path to a custom CA certificate file for TLS verification.
|
||||
|
||||
#### `--cert`
|
||||
|
||||
Path to a client certificate file for mTLS authentication.
|
||||
|
||||
#### `--cert-key`
|
||||
|
||||
Path to the client certificate private key file.
|
||||
|
||||
## Exit Codes
|
||||
|
||||
Task uses specific exit codes to indicate different types of errors:
|
||||
|
||||
@@ -108,7 +108,8 @@ silent: true
|
||||
|
||||
- **Type**: `boolean`
|
||||
- **Default**: `true`
|
||||
- **Description**: Enable colored output. Colors are automatically enabled in CI environments (`CI=true`).
|
||||
- **Description**: Enable colored output. Colors are automatically enabled in CI
|
||||
environments (`CI=true`).
|
||||
- **CLI equivalent**: [`-c, --color`](./cli.md#-c---color)
|
||||
- **Environment variable**: [`TASK_COLOR`](./environment.md#task-color)
|
||||
|
||||
@@ -120,9 +121,11 @@ color: false
|
||||
|
||||
- **Type**: `boolean`
|
||||
- **Default**: `false`
|
||||
- **Description**: Disable fuzzy matching for task names. When enabled, Task will not suggest similar task names when you mistype a task name.
|
||||
- **Description**: Disable fuzzy matching for task names. When enabled, Task
|
||||
will not suggest similar task names when you mistype a task name.
|
||||
- **CLI equivalent**: [`--disable-fuzzy`](./cli.md#--disable-fuzzy)
|
||||
- **Environment variable**: [`TASK_DISABLE_FUZZY`](./environment.md#task-disable-fuzzy)
|
||||
- **Environment variable**:
|
||||
[`TASK_DISABLE_FUZZY`](./environment.md#task-disable-fuzzy)
|
||||
|
||||
```yaml
|
||||
disable-fuzzy: true
|
||||
@@ -134,7 +137,8 @@ disable-fuzzy: true
|
||||
- **Minimum**: `1`
|
||||
- **Description**: Number of concurrent tasks to run
|
||||
- **CLI equivalent**: [`-C, --concurrency`](./cli.md#-c---concurrency-number)
|
||||
- **Environment variable**: [`TASK_CONCURRENCY`](./environment.md#task-concurrency)
|
||||
- **Environment variable**:
|
||||
[`TASK_CONCURRENCY`](./environment.md#task-concurrency)
|
||||
|
||||
```yaml
|
||||
concurrency: 4
|
||||
@@ -158,8 +162,8 @@ failfast: true
|
||||
- **Default**: `false`
|
||||
- **Description**: Prompt for missing required variables instead of failing.
|
||||
When enabled, Task will display an interactive prompt for any missing required
|
||||
variable. Requires a TTY. Task automatically detects non-TTY environments
|
||||
(CI pipelines, etc.) and skips prompts.
|
||||
variable. Requires a TTY. Task automatically detects non-TTY environments (CI
|
||||
pipelines, etc.) and skips prompts.
|
||||
- **CLI equivalent**: [`--interactive`](./cli.md#--interactive)
|
||||
|
||||
```yaml
|
||||
@@ -178,6 +182,157 @@ interactive: true
|
||||
temp-dir: .task
|
||||
```
|
||||
|
||||
### `remote`
|
||||
|
||||
- **Type**: `object`
|
||||
- **Description**: Remote configuration settings for handling
|
||||
[remote Taskfiles](../remote-taskfiles.md).
|
||||
|
||||
#### `remote.insecure`
|
||||
|
||||
- **Type**: `boolean`
|
||||
- **Default**: `false`
|
||||
- **Description**: Allow insecure connections when fetching remote Taskfiles
|
||||
- **CLI equivalent**: `--insecure`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_INSECURE`](./environment.md#task_remote_insecure)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
insecure: true
|
||||
```
|
||||
|
||||
#### `remote.offline`
|
||||
|
||||
- **Type**: `boolean`
|
||||
- **Default**: `false`
|
||||
- **Description**: Work in offline mode, preventing remote Taskfile fetching
|
||||
- **CLI equivalent**: `--offline`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_OFFLINE`](./environment.md#task_remote_offline)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
offline: true
|
||||
```
|
||||
|
||||
#### `remote.timeout`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: 10s
|
||||
- **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$`
|
||||
- **Description**: Timeout duration for remote operations (e.g., '30s', '5m')
|
||||
- **CLI equivalent**: `--timeout`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_TIMEOUT`](./environment.md#task_remote_timeout)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
timeout: '1m'
|
||||
```
|
||||
|
||||
#### `remote.cache-expiry`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: 0s (no cache)
|
||||
- **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$`
|
||||
- **Description**: Cache expiry duration for remote Taskfiles (e.g., '1h',
|
||||
'24h')
|
||||
- **CLI equivalent**: `--expiry`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_CACHE_EXPIRY`](./environment.md#task_remote_cache_expiry)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
cache-expiry: '6h'
|
||||
```
|
||||
|
||||
#### `remote.cache-dir`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: `.task`
|
||||
- **Description**: Directory where remote Taskfiles are cached. Can be an
|
||||
absolute path (e.g., `/var/cache/task`) or relative to the Taskfile directory.
|
||||
- **CLI equivalent**: `--remote-cache-dir`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_CACHE_DIR`](./environment.md#task_remote_cache_dir)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
cache-dir: ~/.task
|
||||
```
|
||||
|
||||
#### `remote.trusted-hosts`
|
||||
|
||||
- **Type**: `array of strings`
|
||||
- **Default**: `[]` (empty list)
|
||||
- **Description**: List of trusted hosts for remote Taskfiles. Hosts in this
|
||||
list will not prompt for confirmation when downloading Taskfiles
|
||||
- **CLI equivalent**: `--trusted-hosts`
|
||||
- **Environment variable**:
|
||||
[`TASK_REMOTE_TRUSTED_HOSTS`](./environment.md#task_remote_trusted_hosts)
|
||||
(comma-separated)
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
trusted-hosts:
|
||||
- github.com
|
||||
- gitlab.com
|
||||
- raw.githubusercontent.com
|
||||
- example.com:8080
|
||||
```
|
||||
|
||||
Hosts in the trusted hosts list will automatically be trusted without prompting
|
||||
for confirmation when they are first downloaded or when their checksums change.
|
||||
The host matching includes the port if specified in the URL. Use with caution
|
||||
and only add hosts you fully trust.
|
||||
|
||||
You can also specify trusted hosts via the command line:
|
||||
|
||||
```shell
|
||||
# Trust specific host for this execution
|
||||
task --trusted-hosts github.com -t https://github.com/user/repo.git//Taskfile.yml
|
||||
|
||||
# Trust multiple hosts (comma-separated)
|
||||
task --trusted-hosts github.com,gitlab.com -t https://github.com/user/repo.git//Taskfile.yml
|
||||
|
||||
# Trust a host with a specific port
|
||||
task --trusted-hosts example.com:8080 -t https://example.com:8080/Taskfile.yml
|
||||
```
|
||||
|
||||
#### `remote.cacert`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: `""`
|
||||
- **Description**: Path to a custom CA certificate file for TLS verification
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
cacert: '/path/to/ca.crt'
|
||||
```
|
||||
|
||||
#### `remote.cert`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: `""`
|
||||
- **Description**: Path to a client certificate file for mTLS authentication
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
cert: '/path/to/client.crt'
|
||||
```
|
||||
|
||||
#### `remote.cert-key`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Default**: `""`
|
||||
- **Description**: Path to the client certificate private key file
|
||||
|
||||
```yaml
|
||||
remote:
|
||||
cert-key: '/path/to/client.key'
|
||||
```
|
||||
|
||||
## Example Configuration
|
||||
|
||||
Here's a complete example of a `.taskrc.yml` file with all available options:
|
||||
@@ -190,7 +345,20 @@ color: true
|
||||
disable-fuzzy: false
|
||||
concurrency: 2
|
||||
temp-dir: .task
|
||||
remote:
|
||||
insecure: false
|
||||
offline: false
|
||||
timeout: '30s'
|
||||
cache-expiry: '24h'
|
||||
cache-dir: ~/.task
|
||||
trusted-hosts:
|
||||
- github.com
|
||||
- gitlab.com
|
||||
cacert: ''
|
||||
cert: ''
|
||||
cert-key: ''
|
||||
|
||||
# Enable experimental features
|
||||
experiments:
|
||||
REMOTE_TASKFILES: 1
|
||||
GENTLE_FORCE: 1
|
||||
```
|
||||
|
||||
@@ -20,7 +20,8 @@ their configuration file equivalents.
|
||||
## Variables
|
||||
|
||||
All [configuration file options](./config.md) can also be set via environment
|
||||
variables. The priority order is: CLI flags > environment variables > config files > defaults.
|
||||
variables. The priority order is: CLI flags > environment variables > config
|
||||
files > defaults.
|
||||
|
||||
### `TASK_VERBOSE`
|
||||
|
||||
@@ -67,7 +68,8 @@ variables. The priority order is: CLI flags > environment variables > config fil
|
||||
|
||||
- **Type**: `boolean` (`true`, `false`, `1`, `0`)
|
||||
- **Default**: `false`
|
||||
- **Description**: Compiles and prints tasks in the order that they would be run, without executing them
|
||||
- **Description**: Compiles and prints tasks in the order that they would be
|
||||
run, without executing them
|
||||
|
||||
### `TASK_ASSUME_YES`
|
||||
|
||||
@@ -92,14 +94,16 @@ variables. The priority order is: CLI flags > environment variables > config fil
|
||||
- **Type**: `string`
|
||||
- **Description**: Message template to print before a task's grouped output.
|
||||
Only applies when the output style is `group`.
|
||||
- **CLI equivalent**: [`--output-group-begin`](./cli.md#--output-group-begin-template)
|
||||
- **CLI equivalent**:
|
||||
[`--output-group-begin`](./cli.md#--output-group-begin-template)
|
||||
|
||||
### `TASK_OUTPUT_GROUP_END`
|
||||
|
||||
- **Type**: `string`
|
||||
- **Description**: Message template to print after a task's grouped output.
|
||||
Only applies when the output style is `group`.
|
||||
- **CLI equivalent**: [`--output-group-end`](./cli.md#--output-group-end-template)
|
||||
- **Description**: Message template to print after a task's grouped output. Only
|
||||
applies when the output style is `group`.
|
||||
- **CLI equivalent**:
|
||||
[`--output-group-end`](./cli.md#--output-group-end-template)
|
||||
|
||||
### `TASK_OUTPUT_GROUP_ERROR_ONLY`
|
||||
|
||||
@@ -107,7 +111,8 @@ variables. The priority order is: CLI flags > environment variables > config fil
|
||||
- **Default**: `false`
|
||||
- **Description**: Swallow output from successful tasks. Only applies when the
|
||||
output style is `group`.
|
||||
- **CLI equivalent**: [`--output-group-error-only`](./cli.md#--output-group-error-only)
|
||||
- **CLI equivalent**:
|
||||
[`--output-group-error-only`](./cli.md#--output-group-error-only)
|
||||
|
||||
### `TASK_TEMP_DIR`
|
||||
|
||||
@@ -118,16 +123,64 @@ Taskfile, not the working directory. Defaults to: `./.task`.
|
||||
|
||||
### `TASK_CORE_UTILS`
|
||||
|
||||
This env controls whether the Bash interpreter will use its own
|
||||
core utilities implemented in Go, or the ones available in the system.
|
||||
Valid values are `true` (`1`) or `false` (`0`). By default, this is `true` on
|
||||
Windows and `false` on other operating systems. We might consider making this
|
||||
enabled by default on all platforms in the future.
|
||||
This env controls whether the Bash interpreter will use its own core utilities
|
||||
implemented in Go, or the ones available in the system. Valid values are `true`
|
||||
(`1`) or `false` (`0`). By default, this is `true` on Windows and `false` on
|
||||
other operating systems. We might consider making this enabled by default on all
|
||||
platforms in the future.
|
||||
|
||||
### `FORCE_COLOR`
|
||||
|
||||
Force color output usage.
|
||||
|
||||
## Remote Taskfile Variables
|
||||
|
||||
The following variables are used to control the behavior of
|
||||
[remote Taskfiles](../remote-taskfiles.md).
|
||||
|
||||
### `TASK_REMOTE_INSECURE`
|
||||
|
||||
Allow insecure connections when fetching remote Taskfiles.
|
||||
|
||||
### `TASK_REMOTE_OFFLINE`
|
||||
|
||||
Work in offline mode, preventing remote Taskfile fetching.
|
||||
|
||||
### `TASK_REMOTE_TIMEOUT`
|
||||
|
||||
Timeout duration for remote operations (e.g., '30s', '5m').
|
||||
|
||||
### `TASK_REMOTE_CACHE_EXPIRY`
|
||||
|
||||
Cache expiry duration for remote Taskfiles (e.g., '1h', '24h').
|
||||
|
||||
### `TASK_REMOTE_CACHE_DIR`
|
||||
|
||||
Directory where remote Taskfiles are cached. Can be an absolute path (e.g.,
|
||||
`/var/cache/task`) or relative to the Taskfile directory.
|
||||
|
||||
### `TASK_REMOTE_TRUSTED_HOSTS`
|
||||
|
||||
List of (comma-separated) trusted hosts for remote Taskfiles. Hosts in this list
|
||||
will not prompt for confirmation when downloading Taskfiles.
|
||||
|
||||
Hosts in the trusted hosts list will automatically be trusted without prompting
|
||||
for confirmation when they are first downloaded or when their checksums change.
|
||||
The host matching includes the port if specified in the URL. Use with caution
|
||||
and only add hosts you fully trust.
|
||||
|
||||
### `TASK_REMOTE_CACERT`
|
||||
|
||||
Path to a custom CA certificate file for TLS verification.
|
||||
|
||||
### `TASK_REMOTE_CERT`
|
||||
|
||||
Path to a client certificate file for mTLS authentication.
|
||||
|
||||
### `TASK_REMOTE_CERT_KEY`
|
||||
|
||||
Path to the client certificate private key file.
|
||||
|
||||
### Custom Colors
|
||||
|
||||
All color variables are [ANSI color codes][ansi]. You can specify multiple codes
|
||||
|
||||
Reference in New Issue
Block a user