// Sub-aba Git do provider: URL/imagem crua; corpo do `if @provider_tab == "git"` de general.gvb.
component {
text(
class = u-label-cap,
content = "SOURCE — REPOSITORY URL / IMAGE",
)
input(
class = field__input,
form_control = service_form_repo_url,
:value = service_form_repo_url,
on_change = field:service_form_repo_url,
placeholder = "github.com/user/repo ou nginx:latest",
)
text(
class = u-muted,
content = """
URL de repositório vira Git; caso contrário é imagem de
registry.
""",
)
row(class = healthcheck__grid) {
column(class = healthcheck__field) {
text(class = u-label-cap, content = "BRANCH")
input(
class = field__input,
form_control = service_form_branch,
:value = service_form_branch,
on_change = field:service_form_branch,
placeholder = main,
)
}
column(class = healthcheck__field) {
text(class = u-label-cap, content = "PORT")
input(
class = field__input,
form_control = service_form_general_port,
:value = service_form_general_port,
on_change = field:service_form_general_port,
placeholder = 80,
)
text(
if = @error_service_form_general_port,
not_equals = "",
class = u-error,
content = "@error_service_form_general_port",
)
}
}
row(class = healthcheck__grid) {
column(class = healthcheck__field) {
text(class = u-label-cap, content = "USERNAME")
input(
class = field__input,
form_control = service_form_username,
:value = service_form_username,
on_change = field:service_form_username,
placeholder = "(opcional)",
)
}
column(class = healthcheck__field) {
text(class = u-label-cap, content = "CREDENTIALS (secret)")
input(
class = field__input,
form_control = service_form_credentials,
:value = service_form_credentials,
on_change = field:service_form_credentials,
placeholder = "(opcional)",
)
text(
class = u-muted,
content = """
Nome de um secret do projeto (aba Secrets), puro — sem
<secret:>. Usado para clonar repositório Git privado
via HTTPS; não tem efeito com URL SSH.
""",
)
}
}
text(class = u-label-cap, content = "BUILD PATH (root)")
input(
class = field__input,
form_control = service_form_build_path,
:value = service_form_build_path,
on_change = field:service_form_build_path,
placeholder = .,
)
text(
class = u-label-cap,
content = "WATCH PATHS (separados por vírgula)",
)
input(
class = field__input,
form_control = service_form_watch_paths,
:value = service_form_watch_paths,
on_change = field:service_form_watch_paths,
placeholder = "src, Cargo.toml",
)
toggle(
:checked = service_form_submodules,
on_toggle = field:service_form_submodules,
label = " Enable submodules",
)
text(class = u-label-cap, content = "BUILD ENGINE: DOCKERFILE")
row(class = healthcheck__grid) {
column(class = healthcheck__field) {
text(class = u-label-cap, content = "DOCKERFILE")
input(
class = field__input,
form_control = service_form_dockerfile,
:value = service_form_dockerfile,
on_change = field:service_form_dockerfile,
placeholder = Dockerfile,
)
}
column(class = healthcheck__field) {
text(class = u-label-cap, content = "CONTEXT PATH")
input(
class = field__input,
form_control = service_form_context_path,
:value = service_form_context_path,
on_change = field:service_form_context_path,
placeholder = .,
)
}
}
text(class = u-label-cap, content = "BUILD STAGE (opcional)")
input(
class = field__input,
form_control = service_form_build_stage,
:value = service_form_build_stage,
on_change = field:service_form_build_stage,
placeholder = "(multi-stage target)",
)
row(class = env__add) {
button(
class = "btn btn--primary",
on_click = general_save,
disabled = @busy_general_save,
text = Save,
)
text(class = u-muted, content = "@service_action_message")
}
}