git-log-to-elasticsearch
Usage
Make sure crystal is installed (tested with Crystal 1.0.0)
shards update --ignore-crystal-version
shards build --production --release
# this only imports the main branch
./bin/git-log-to-elasticsearch -v -b '^origin/main$' \
-n 'org/my-repo-name' v ~/path/to/repo
Possible arguments:
--host=URL
: Target URL to index into, defaulthttp://localhost:9200
-b regex, --branch=regex
: specifies the branches to import as regex, default.*
(all branches)-u, --user=user:pass
: basic auth info-n NAME, --name=NAME
: specifies the repo name, i.e.elastic/elasticsearch
-v, --verbose
: Verbose output-d, --dry-run
: Don't index into Elasticsearch, exit before
Sample run to index only the master branch data of my local Elasticsearch repo in one of my Elastic Cloud clusters
./bin/git-log-to-elasticsearch -b '^origin/master$' -n 'elastic/elasticsearch' \
--host https://my-cloud-cluster.es.europe-west3.gcp.cloud.es.io:9243 \
-u elastic:$PASS ~/devel/elasticsearch/
This takes a couple of minutes. I have not yet taken the time to parallelize this using fibers and multi threading. Feel free to send a PR.
Contributing
- Fork it (https://github.com/spinscale/git-log-to-elasticsearch/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Alexander Reelsen - creator and maintainer