Menu
Open source

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.

Usage

river
import.git "NAMESPACE" {
  repository = "GIT_REPOSTORY"
  path       = "PATH_TO_MODULE"
}

Arguments

The following arguments are supported:

NameTypeDescriptionDefaultRequired
repositorystringThe Git repository address to retrieve the module from.yes
revisionstringThe Git revision to retrieve the module from."HEAD"no
pathstringThe path in the repository where the module is stored.yes
pull_frequencydurationThe frequency to pull the repository for updates."60s"no

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/agent.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/agent.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, such as FILE_NAME.river or FOLDER_NAME/FILE_NAME.river.

If pull_frequency is not "0s", the Git repository is pulled for updates at the frequency specified. If it is 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:

HierarchyBlockDescriptionRequired
basic_authbasic_authConfigure basic_auth for authenticating to the repository.no
ssh_keyssh_keyConfigure an SSH Key for authenticating to the repository.no

basic_auth block

NameTypeDescriptionDefaultRequired
password_filestringFile containing the basic auth password.no
passwordsecretBasic auth password.no
usernamestringBasic auth username.no

password and password_file are mutually exclusive, and only one can be provided inside a basic_auth block.

ssh_key block

NameTypeDescriptionDefaultRequired
usernamestringSSH username.yes
keysecretSSH private key.no
key_filestringSSH private key path.no
passphrasesecretPassphrase for SSH key if needed.no

Examples

This example imports custom components from a Git repository and uses a custom component to add two numbers:

river
import.git "math" {
  repository = "https://github.com/wildum/module.git"
  revision   = "master"
  path       = "math.river"
}

math.add "default" {
  a = 15
  b = 45
}