Small webservice, that returns a badge of the Hits-of-Code of a git repository, as described by Yegor Bugayenko. It is implemented in Rust, using the actix-web web framework.
A live version of this webservice can be found on hitsofcode.com.
The API is as simple as
https://<host>/<service>/<user>/<repo>
where <service>
is one of gitub
, gitlab
, bitbucket
or sourcehut
. The HoC data can also be received as JSON by
appending /json
to the reuqest path:
https://<host>/<service>/<user>/<repo>/json
There is also an overview page available via https://<host>/<service>/<user>/<repo>/view
To delete a repository and the cache from the server, send a POST
request to
https://<host>/<service>/<user>/<repo>/delete
. On the overview page, there is a button to perform this operation. It
will respond with a redirect to the overview page so the cache is rebuilt directly.
The code can be built as a standalone binary, using cargo
or as a Docker container. Run either
$ cargo build --release
or
$ docker build .
inside the repository.
I'm currently working on migrating to nix. To get a development shell, run nix-shell
, to
build the package run nix-build --attr package
and to build the Docker image, run nix-build --attr dockerImage
.
Rename hoc.toml.example
to hoc.toml
or .env.example
to .env
and set the
correct value for base_url
/HOC_BASE_URL
. If you don't want to use a configuration or dotenv file, you can pass all
parameters directly via environment variables. For variable names see .env.example
.
To start a local instance of the service just run:
$ HOC_BASE_URL='http://0.0.0.0:8080' ./hoc
You can also use the Docker image:
$ docker run -p 8080:8080 --env HOC_BASE_URL='http://0.0.0.0:8080' -it --rm ghcr.io/vbrandl/hoc:latest
When running the binary directly, you need a git
binary in your PATH
.
hoc
is licensed under the MIT License (LICENSE or http://opensource.org/licenses/MIT)