Skip to content

vbrandl/hoc

master
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?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
doc
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Hits-of-Code

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 hitsofcode.com.

API

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.

Building

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.

Running

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 vbrandl/hits-of-code

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

License

hoc is licensed under the MIT License (LICENSE or http://opensource.org/licenses/MIT)