Add support for customizing HTTP headers (#1196)

This PR adds support for custom HTTP headers, introducing a
`--http-header` CLI flag to accept `key=value` pairs. These headers can
also be specified within the `setting.pkl` file.

Closes #633

SPICE: https://github.com/apple/pkl-evolution/pull/24

---------

Co-authored-by: Jen Basch <jbasch94@gmail.com>
Co-authored-by: Islon Scherer <islonscherer@gmail.com>
This commit is contained in:
Jeaeun Kim
2026-05-13 05:53:59 +09:00
committed by GitHub
parent fe58405220
commit 14085c18bb
14 changed files with 358 additions and 18 deletions
@@ -48,6 +48,7 @@ import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.TaskAction;
import org.jspecify.annotations.Nullable;
import org.pkl.commons.cli.CliBaseOptions;
import org.pkl.core.Pair;
import org.pkl.core.evaluatorSettings.Color;
import org.pkl.gradle.utils.PluginUtils;
@@ -161,6 +162,10 @@ public abstract class BasePklTask extends DefaultTask {
@Optional
public abstract MapProperty<URI, URI> getHttpRewrites();
@Input
@Optional
public abstract ListProperty<Pair<Pattern, List<Pair<String, String>>>> getHttpHeaders();
@Input
@Optional
public abstract Property<Boolean> getPowerAssertions();
@@ -218,6 +223,7 @@ public abstract class BasePklTask extends DefaultTask {
getHttpProxy().getOrNull(),
getHttpNoProxy().getOrElse(List.of()),
getHttpRewrites().getOrNull(),
getHttpHeaders().getOrNull(),
Map.of(),
Map.of(),
null,
@@ -164,6 +164,7 @@ public abstract class ModulesTask extends BasePklTask {
null,
List.of(),
getHttpRewrites().getOrNull(),
getHttpHeaders().getOrNull(),
Map.of(),
Map.of(),
null,