import.git
The import.git
block imports custom components from a Git repository and exposes them to the importer.
import.git
blocks must be given a label that determines the namespace where custom components are exposed.
The entire repository is cloned, and the module path is accessible via the module_path
keyword.
This enables, for example, your module to import other modules within the repository by setting relative paths in the import.file blocks.
Usage
import.git "NAMESPACE" {
repository = "GIT_REPOSTORY"
path = "PATH_TO_MODULE"
}
Arguments
The following arguments are supported:
The repository
attribute must be set to a repository address that would be recognized by Git with a git clone REPOSITORY_ADDRESS
command, such as https://github.com/grafana/alloy.git
.
You must set the repository
attribute to a repository address that Git would recognize with a git clone REPOSITORY_ADDRESS
command, such as https://github.com/grafana/alloy.git
.
When provided, the revision
attribute must be set to a valid branch, tag, or commit SHA within the repository.
You must set the path
attribute to a path accessible from the repository’s root.
It can either be an Alloy configuration file such as FILE_NAME.alloy
or DIR_NAME/FILE_NAME.alloy
or
a directory containing Alloy configuration files such as DIR_NAME
or .
if the Alloy configuration files are stored at the root of the repository.
If pull_frequency
isn’t "0s"
, the Git repository is pulled for updates at the frequency specified.
If it’s set to "0s"
, the Git repository is pulled once on init.
Warning
Pulling hosted Git repositories too often can result in throttling.
Blocks
The following blocks are supported inside the definition of import.git
:
basic_auth block
password
and password_file
are mutually exclusive, and only one can be provided inside a basic_auth
block.
ssh_key block
Examples
This example imports custom components from a Git repository and uses a custom component to add two numbers:
import.git "math" {
repository = "https://github.com/wildum/module.git"
revision = "master"
path = "math.alloy"
}
math.add "default" {
a = 15
b = 45
}
This example imports custom components from a directory in a Git repository and uses a custom component to add two numbers:
import.git "math" {
repository = "https://github.com/wildum/module.git"
revision = "master"
path = "modules"
}
math.add "default" {
a = 15
b = 45
}