109 lines
4.0 KiB
HTML
109 lines
4.0 KiB
HTML
@use super::base;
|
|
@use crate::statics::VersionInfo;
|
|
|
|
@(version_info: VersionInfo, repo_count: usize, base_url: &str)
|
|
|
|
@:base("Hits-of-Code Badges", "Hits-of-Code Badges", {
|
|
|
|
<p>
|
|
This API offers badges for the Hits-of-Code metric for your repositories. This metric was proposed by
|
|
<a href="https://www.yegor256.com/">Yegor Bugayenko</a> as an
|
|
<a href="https://www.yegor256.com/2014/11/14/hits-of-code.html">alternative to Lines-of-Code</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Instead of counting the number of existing lines in a codebase, the number of modified lines is counted. That way, the
|
|
metric can only grow and never shrink. While this metric still cannot give any information about the code quality, it
|
|
gives an overview about the amount of work put into a codebase.
|
|
</p>
|
|
|
|
<p>
|
|
There is a <a href="https://github.com/yegor256/hoc/">command-line tool</a> to calculate the HoC of a repository, but
|
|
some people might want a nice badge to put in their README, that's why I implemented this API. Currently the API can be
|
|
used for GitHub, GitLab, Bitbucket and Sourcehut repositories. Just put the following code in your README:
|
|
</p>
|
|
|
|
<pre>
|
|
[![Hits-of-Code](@base_url/<service>/<user>/<repo>)](@base_url/<service>/<user>/<repo>/view)
|
|
</pre>
|
|
|
|
<p>
|
|
where <code><service></code> is one of <code>github</code>, <code>gitlab</code>, <code>bitbucket</code> or
|
|
<code>sourcehut</code>. So the following Markdown
|
|
</p>
|
|
|
|
<pre>
|
|
[![Hits-of-Code](@base_url/github/vbrandl/hoc)](@base_url/github/vbrandl/hoc/view)
|
|
</pre>
|
|
|
|
<p>
|
|
would render this badge:
|
|
</p>
|
|
|
|
<pre>
|
|
<a href="@base_url/github/vbrandl/hoc/view"><img src="@base_url/github/vbrandl/hoc"
|
|
alt="example badge" /></a>
|
|
</pre>
|
|
|
|
<p>
|
|
By default, this service assumes the existence of a branch named <code>master</code>. If no branch with that name exists
|
|
in your repository or you want a badge for another branch of your repository, just append
|
|
<code>?branch=<branch-name></code> to the URL.
|
|
</p>
|
|
|
|
<p>
|
|
The badge label can be customized using the <code>label=<some-label></code> query parameter. It defaults to <code>Hits-of-Code</code>.
|
|
</p>
|
|
|
|
<p>
|
|
You can also request the HoC as JSON by appending <code>/json</code> to the request path. This will return a JSON object
|
|
with three fields: <code>count</code> (the HoC value), <code>commits</code> (the number of commits) and
|
|
<code>head</code> (the commit ref of HEAD). Requesting <a
|
|
href="@base_url/github/vbrandl/hoc/json">@base_url/github/vbrandl/hoc/json</a> might return something along
|
|
the lines of
|
|
</p>
|
|
|
|
<pre>
|
|
{
|
|
"head": "1f01c3b964b018fb0c0c2c5b572bf4ace2968546",
|
|
"count": 8324,
|
|
"commits": 223
|
|
}
|
|
</pre>
|
|
|
|
<h2>Badge Generator</h2>
|
|
|
|
<form method="post" action="/generate">
|
|
<select name="service" id="service">
|
|
<option value="github">GitHub</option>
|
|
<option value="gitlab">Gitlab</option>
|
|
<option value="bitbucket">Bitbucket</option>
|
|
<option value="sourcehut">Sourcehut</option>
|
|
</select>
|
|
<label>/</label>
|
|
<input name="user" id="user" type="text" placeholder="user" />
|
|
<label>/</label>
|
|
<input name="repo" id="repo" type="text" placeholder="repository" />
|
|
<label>:</label>
|
|
<input name="branch" id="branch" type="text" placeholder="branch (defaults to `master`)" />
|
|
<button type="submit">Generate</button>
|
|
</form>
|
|
|
|
<h2>Source Code</h2>
|
|
|
|
<p>
|
|
The whole service is licensed under the <a href="https://opensource.org/licenses/MIT">MIT license</a> and the source
|
|
code <a href="https://github.com/vbrandl/hoc">can be found on GitHub</a>. Feature proposals or pull requests are
|
|
welcome.
|
|
</p>
|
|
|
|
<h2>Contact</h2>
|
|
|
|
<p>
|
|
You can reach me via mail: <a href="mailto:mail+hoc@@vbrandl.net">mail+hoc@@vbrandl.net</a> preferably using
|
|
my <a href="https://www.vbrandl.net/static/keys/0x1FFE431282F4B8CC0A7579167FB009175885FC76.asc">GPG key</a>
|
|
(<a href="http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x1FFE431282F4B8CC0A7579167FB009175885FC76">from a
|
|
keyserver</a>), or by using any other UID from my key.
|
|
</p>
|
|
}, version_info, repo_count)
|