3

我正在尝试了解 GitHub 贡献数据,以及它们显示它的方式。我创建了一个愚蠢的两步流程来“利用”贡献(可以在此处找到)

我刚刚意识到每天的“重量”是相对于一年中的其余时间而言的,而不是固定的。因此,我想做两个额外的功能。

展平

获取您的公共贡献历史并根据需要创建提交,以便一年中的每一天都有相同的金额。为此,我需要:

  • AJAX 从我自己的服务器请求数据(因为它们不允许 XSS)
  • 从那里,请求https://github.com/users/%s/contributions_calendar_data (示例)
  • 每天创建足够的提交以等于一年中最高的公共活动

选择颜色

除了扁平化之外,我还想提供选择颜色的功能(其中一种绿色 GitHub 用于绘制您的日常活动)。这是我不知道该怎么做的地方。

如果不首先“扁平化”提交活动,我将不会提供该功能,因为这似乎更加令人生畏。但是,我的问题是:

  • 给定每天都有T次提交的提交活动历史记录,实现每个色调“层”需要多少次提交?
  • 引入新提交时,这些值如何变化?

例如,假设我将提交历史平展为每天 85 次提交,每种颜色需要多少次提交?如果我包含更多级别,这些会有所不同吗?

If the "base level" is 400, rather than 85, how will that affect the commit history?

For reference, this is the repo I'm doing the experimenting on. It's basically a web interface that let's you "draw", and a CLI that takes the JSON output of the UI and generates a bunch of empty commits for you.

Needless to say I don't know much about statistics.

4

1 回答 1

0

好问题!

AJAX 从我自己的服务器请求数据(因为它们不允许 XSS)

要获得公共贡献,您可以使用ghcal如下方式:

var GhCal = require("ghcal");

GhCal("bevacqua", function (err, data) {
    console.log(err || data);
});

这将在回调中为您提供如下输出:

[..., ["2015-04-26", 22], ...]

给定每天都有T次提交的提交活动历史记录,实现每个色调“层”需要多少次提交?

根据我的测试,如果每一天都有相同数量的提交TT + 1

在创作git-stats时,我也有同样的问题。其工作原理的确切规则尚未公开。我通过电子邮件向 GitHub 询问他们的算法,他们回复:

我们无法分享颜色的精确计算方式(我们会不时调整),但它基于将特定日期的贡献计数映射到基于全年贡献计数分布的颜色(每个范围被分配一个特定的颜色)。

因此,简而言之,正如您所注意到的,有五个级别,并且根据每天完成的提交次数将数据标准化为具有不同级别,并且其背后的算法会不时更改。

例如,假设我将提交历史平展为每天 85 次提交,每种颜色需要多少次提交?

从我的测试来看,只有一个。

如果我包含更多级别,这些会有所不同吗?

是的,但老实说,你应该尝试一下。:D

如果“基本级别”是 400,而不是 85,那将如何影响提交历史?

我几乎可以肯定,在这种情况下,只有当您想要拥有多个级别时,差异才会显着。如果你整天都有 400,除了你有 401 的那一天,我想那一天会比其他天更暗。

可能最好让用户决定他一天要创建多少次提交。:)

github-contributions是我创建的一个项目,它做相关的事情(在贡献日历上绘制/创建文本)。

于 2015-10-04T14:19:55.007 回答