pub struct UploadConfig {Show 25 fields
pub name: Option<String>,
pub ids: Option<Vec<String>>,
pub exclude: Option<Vec<String>>,
pub exts: Option<Vec<String>>,
pub target: String,
pub username: Option<String>,
pub password: Option<String>,
pub method: Option<String>,
pub mode: Option<String>,
pub checksum_header: Option<String>,
pub trusted_certificates: Option<String>,
pub client_x509_cert: Option<String>,
pub client_x509_key: Option<String>,
pub checksum: Option<bool>,
pub signature: Option<bool>,
pub meta: Option<bool>,
pub custom_headers: Option<HashMap<String, String>>,
pub custom_artifact_name: Option<bool>,
pub extra_files: Option<Vec<ExtraFileSpec>>,
pub extra_files_only: Option<bool>,
pub skip: Option<StringOrBool>,
pub if_condition: Option<String>,
pub overwrite: Option<bool>,
pub required: Option<bool>,
pub retain_on_rollback: Option<bool>,
}Fields§
§name: Option<String>Human-readable name for this upload config.
ids: Option<Vec<String>>Build IDs filter: only upload artifacts whose id is in this list.
exclude: Option<Vec<String>>Glob patterns matched against each artifact’s file name; anodizer drops
any artifact whose name matches at least one glob from THIS upload
target only. Use it to keep heavy sidecars (checksums, signatures,
SBOMs) off a given endpoint while archives still upload. Composes with
ids: and exts: (all filters apply). None/empty keeps everything.
uploads:
- name: mirror
target: "https://mirror.example.com/{{ .ArtifactName }}"
exclude: ["*.sha256", "*.sig", "*.cdx.json"]exts: Option<Vec<String>>File extension filter: only upload artifacts with these extensions.
target: StringTarget URL template (supports template variables like {{ ProjectName }}, {{ Version }}).
username: Option<String>Username for HTTP basic auth.
Resolution order: rendered username template → env UPLOAD_{NAME}_USERNAME.
Set this to a literal value or a {{ Env.X }} template.
password: Option<String>Password for HTTP basic auth.
Strongly prefer {{ Env.UPLOAD_PASSWORD }} (or any other env-var
template) over an in-config literal — plaintext values here are NOT
redacted from dry-run output and will land in dist/config.yaml
when the pipeline runs with --dry-run / --snapshot. Resolution
order: rendered password template → env UPLOAD_{NAME}_SECRET.
Password-resolution cascade.
method: Option<String>HTTP method: PUT or POST (default: PUT).
mode: Option<String>Upload mode: “archive” (default) or “binary”.
checksum_header: Option<String>Header name for the SHA256 checksum of the artifact.
trusted_certificates: Option<String>Path to PEM-encoded trusted CA certificates.
client_x509_cert: Option<String>Path to PEM-encoded client X.509 certificate for mTLS.
client_x509_key: Option<String>Path to PEM-encoded client X.509 key for mTLS.
checksum: Option<bool>Include checksums in uploaded artifacts.
signature: Option<bool>Include signatures in uploaded artifacts.
meta: Option<bool>Include dist/metadata.json in uploaded artifacts. The sibling
dist/artifacts.json manifest is never uploaded.
custom_headers: Option<HashMap<String, String>>Custom HTTP headers (each value is template-expanded).
custom_artifact_name: Option<bool>When true, use the artifact name as-is (don’t append to target URL).
extra_files: Option<Vec<ExtraFileSpec>>Extra files to include in uploading.
extra_files_only: Option<bool>Upload only extra files, skip normal artifacts.
skip: Option<StringOrBool>Skip condition template (if rendered to “true”, skip this upload).
if_condition: Option<String>Template-conditional gate: when the rendered result is falsy
("false" / "0" / "no" / empty), the upload is skipped.
Render failure hard-errors. The uploads[].if: conditional gate.
overwrite: Option<bool>Re-upload an artifact even when an identical one already exists at the
target path (default: false).
With the default, a re-run that finds the same version’s artifact
already uploaded with a matching SHA-256 records an idempotent SKIP
rather than re-PUTting it — so re-running a partially-failed release is
safe. A path that already holds a different artifact for the same
version still hard-errors (immutable-version drift) unless overwrite
is set. With overwrite: true, every artifact is PUT unconditionally.
required: Option<bool>Override whether this upload failing should fail the overall release.
Default: false — a failure here is logged but does not abort the
release. Set to true to fail the release on any error.
retain_on_rollback: Option<bool>When true, a triggered rollback leaves this upload’s artifacts in
place rather than issuing a server-side DELETE. Default false.
Trait Implementations§
Source§impl Clone for UploadConfig
impl Clone for UploadConfig
Source§fn clone(&self) -> UploadConfig
fn clone(&self) -> UploadConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for UploadConfig
impl Debug for UploadConfig
Source§impl Default for UploadConfig
impl Default for UploadConfig
Source§fn default() -> UploadConfig
fn default() -> UploadConfig
Source§impl<'de> Deserialize<'de> for UploadConfigwhere
UploadConfig: Default,
impl<'de> Deserialize<'de> for UploadConfigwhere
UploadConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for UploadConfig
impl JsonSchema for UploadConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PublisherGateOverrides for UploadConfig
impl PublisherGateOverrides for UploadConfig
Source§fn required_override(&self) -> Option<bool>
fn required_override(&self) -> Option<bool>
required: override. None keeps the publisher’s
built-in default; Some(true) anywhere escalates the release gate.Source§fn retain_on_rollback_override(&self) -> Option<bool>
fn retain_on_rollback_override(&self) -> Option<bool>
retain_on_rollback: override. Some(true) anywhere
opts the publisher’s successful work out of rollback.