Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Hits-of-Code Drone build Gitlab build dependency status

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


The API is as simple as


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:


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


$ 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='' ./hoc

You can also use the Docker image:

$ docker run -p 8080:8080 --env HOC_BASE_URL='' -it --rm vbrandl/hits-of-code

When running the binary directly, you need a git binary in your PATH.


hoc is licensed under the MIT License (LICENSE or