Hi @CamilaBetim 
So the problem is that environment variables are not available at the time artifact (and other variables) are interpolated. Environment variables are only set inside the task, while artifact are retrieved by the client agent.
What you could do is maybe use a prestart task to manually clone the repo into the alloc dir? If you have git installed you can use the exec driver directly, or a lightweight Docker image that has the git command.
Here’s an example:
job "private-git-clone" {
datacenters = ["dc1"]
group "repo" {
task "clone" {
driver = "exec"
lifecycle {
hook = "prestart"
}
config {
command = "git"
args = ["clone", "https://${USER}:${SENHA}@bitbucket.org/${USER}/nomad.git", "${NOMAD_ALLOC_DIR}/repo"]
}
template {
data = <<EOF
USER="{{ ... }}"
SENHA="{{ ... }}"
EOF
destination = "${NOMAD_SECREST_DIR}/env"
env = true
}
}
task "repo" {
driver = "docker"
config {
image = "ubuntu:20.04"
command = "/bin/bash"
args = ["local/script.sh"]
# Mount a path in the allocation directory into the Docker container.
mount {
type = "bind"
source = "..${NOMAD_ALLOC_DIR}/repo"
target = "/repo"
}
}
template {
data = <<EOF
cat /repo/README.md
while true
do
sleep 10
done
EOF
destination = "local/script.sh"
}
}
}
}
See if this works for you, and let us know how it goes 