WarpFleet Synchronizer is a Web server which aims to synchronize your Git repositories containing macros against your Warp 10 instance.

WarpFleet Git Synchronizer for Warp 10 is a Web server that aims to synchronize your Git repositories containing macros (WarpScript) with your Warp 10 instance.
Warp 10 provides a powerful repository manager through the WarpFleet mechanism and especially the WarpFleet Resolver.
The main idea is to use a post-commit hook in your favorite Git SCM (GitHub, GitLab, …) to run a synchronization. WarpFleet Synchronizer then runs a git clone/pull locally. Your Warp 10 instance uses WarpFleet Synchronizer as a WarpFleet Resolver backend.
Setup
The setup is easy. You have to compile and package WarpFleetSynchronizer. At first, get the source code here: https://github.com/senx/WarpFleetSynchronizer
git clone https://github.com/senx/WarpFleetSynchronizer.git
cd WarpFleetSynchronizer
./gradlew shadowJar
Now you have to configure your first repo. Create a file conf.json
:
{
"host": "0.0.0.0",
"port": 8082,
"remotes": "*",
"repos": [
{
"name": "my-warpfleet-macros", // must be unique
"url": "git@github.com:senx/my-warpfleet-macros.git",
"passphrase": "sshPass"
}
]
}
You can configure public or private repositories depending on your needs, HTTP(S) or git URLs, with ssh or user/password authentication.
Public repo:
{
"name": "my-warpfleet-macros",
"url": "https://github.com/senx/my-warpfleet-macros.git"
}
Private repository with ssh (you may have an SSH key deployed on your server):
{
"name": "my-warpfleet-macros",
"url": "git@github.com:senx/my-warpfleet-macros.git"
}
Private repository with SSH and passphrase:
{
"name": "my-warpfleet-macros",
"url": "git@github.com:senx/my-warpfleet-macros.git",
"passphrase": "sshPass"
}
And private repository with credentials:
{
"name": "my-warpfleet-macros",
"url": "https://github.com/senx/my-warpfleet-macros.git",
"username": "homer",
"password": "httpPass"
}
Run it
java -jar WarpFleetSynchronizer.jar ./path/to/conf.json
Of course, you can embed it into a Docker image.
FROM openjdk:8-jre-slim
WORKDIR /ADD build/libs/WarpFleetSynchronizer.jar WarpFleetSynchronizer.jar
EXPOSE 8082
CMD java -jar WarpFleetSynchronizer /opt/conf.json
docker build -t WarpFleetSynchronizer .
docker run -d -p 8082:8082 -v /path/to/conf.json:/opt/conf.json WarpFleetSynchronizer
First run
At first run, you have to synchronize your repo. You can use the dedicated endpoint (the post-commit webhook):
http://<ip of warpfleet sync>:8082/api/sync/my-warpfleet-macros
You can test if you can reach your macro:
http://<ip of warpfleet sync>:8082/macros/my-warpfleet-macros/path/to/macro.mc2
Now setup Warp 10 ( /path/to/warp10/etc/conf.d/20-warpfleet.conf
)
warpfleet.macros.repos = http://<ip of warpfleet sync>/macros
More info about warp10.io.
Done!
Git webhook
WarpFleet Synchronizer exposes an API, especially this endpoint:
http://<ip of warpfleet sync>:8082/api/sync/my-warpfleet-macros
Use it to refresh your macros.
More info about APIs.
Roadmap
- Distribute a binary
- Provide a GUI
- Publish a Doker image
Read more
Variables and macros are the muscles and bones of your script. Here are concepts and functions to make the best use of variables in macros.
Learn how you can connect to Kafka and consume messages directly from your Warp 10 instance.
When deploying analytics services we can tumble into resource allocation issues. In this article we cover some Warp 10 built-in mechanisms that solve ...

Senior Software Engineer