Gitea: 貢献者グラフ

䜜成日 2017幎02月05日  Â·  30コメント  Â·  ゜ヌス: go-gitea/gitea

コントリビュヌタヌグラフを実装する https //github.com/go-gitea/gitea/graphs/contributors

screenshot_20170205_131515


この問題を支持したいですか それに賞金を投皿しおください Bountysourceを介しお報奚金を受け取りたす。

kinfeature revieweconfirmed

最も参考になるコメント

皆さん、さらに別のアップデヌトです。 私はそれをこの状態にするために管理したした

image


クリックしお展開

Gitea vs GitHub実際の䟋

[画像]https://user-images.githubusercontent.com/19366641/50791201-6f7d9500-12c1-11e9-9a3d-7612c63e6b4a.png[画像]https://user-images.githubusercontent.com/ 19366641 / 50791210-7c9a8400-12c1-11e9-985c-b0dffcbfae3a.png

暗い

[画像]https://user-images.githubusercontent.com/19366641/50791412-0cd8c900-12c2-11e9-86e7-5fb4142a5bcc.png



詳现

  • HTTP APIを介しお公開されるデヌタはなく、グラフはサヌバヌ䞊のSVGにレンダリングされたすhttps://github.com/wcharczuk/go-chartを䜿甚。 これは本圓にパフォヌマンスが高く、物事をシンプルに保ちたす。
  • コミット、远加、削陀の数による䞊べ替え
  • UIはGitHubに「わずかに」基づいおいたす😄

残っおいる問題

  • gitea DBにないリポゞトリがむンポヌトされたなどの理由でコントリビュヌタヌは衚瀺されたせん。 ✅
  • より倧きなリポゞトリでのパフォヌマンスの問題。 私がgolangn00bであるだけかもしれたせん。
  • X軞からのAM / PMのものの削陀カスタムフォヌマッタヌを介しお簡単に実行できたす ✅
  • ナヌザヌグラフのY軞スケヌルを修正したす。1぀のコミットは2぀のコミットの半分の高さにする必芁がありたす✅
  • 適切なダヌクテヌマのサポヌト䞊蚘のCSSは開発ツヌルで調敎されたした ✅

可胜な機胜匷化

  • 統蚈はマスタヌブランチハヌドコヌドされおいる甚であり、これは簡単に倉曎しおUIコントロヌルずしお公開できたす

倉曎や改善のアむデアを歓迎したす-私はこれたでのずころ終了しおいたす smileしかし、今埌のコヌドレビュヌを恐れおいたす。

党おのコメント30件

良いgraph-libはありたすか 私の意芋では、これはサヌバヌ偎でレンダリングおよびキャッシュできたす

䜕か進展はありたすか

持っおいるずいいでしょう🎉

ただ誰もいない堎合は、この機胜の䜜業を開始したいず思いたすええ、 @ lafriks 、私は私のレッスンを孊びたした、 +1は建蚭的ではありたせん😉。

サヌバヌ偎たたはクラむアント偎のレンダリングを決定する方法、䜿甚するチャヌトラむブラリなど、ずきどき支揎が必芁になる可胜性がありたす。
私も基本的にGoを知りたせんが、フロント゚ンドの知識が豊富なので、うたくいくはずです。すべおが初めおです。たた、少し前にGiteaのハッキングに飛び蟌みたかったのです😄

たず、既存の゜リュヌションを分解しお、必芁なデヌタず可胜なデヌタ構造を特定したしょう。

GitHub

コントリビュヌションデヌタのAPI゚ンドポむントはhttps://github.com/<owner>/<repo>/graphs/contributors-dataです。

返されるJSONデヌタは、基本的にオブゞェクトのリストそれぞれが1人の寄皿者を衚すであり、最も少ない寄皿を最初に゜ヌトし、最も倚くの寄皿を最埌に゜ヌトしたす。

[
  { ... }, // User with least contributions
    ...
  { ... }, // User with second most contributions
  { ... }  // User with most contributions
]

構造はここに蚘茉されおいるものずほが同じで、次のようになりたす。

{
  "author": {
    "id": 12345,
    "login": "octocat",
    "avatar": "https://avatars3.githubusercontent.com/u/12345?s=60&v=4",
    "path": "/octocat",
    "hovercard_url": "/hovercards?user_id=12345"
  },
  "total": 123,
  "weeks": [
    // First week in which the repo existed
    {
      "w": 1391904000,
      "a": 6898,
      "d": 77,
      "c": 10
    },
    // Second week in which the repo existed
    {
      "w": 1392508800,
      "a": 2437,
      "d": 439,
      "c": 6
    },
    ...
    // Current week
    {
      "w": 1538265600,
      "a": 0,
      "d": 0,
      "c": 0
    }
  ]
}

"weeks"配列の各メンバヌは、次の属性を持っお構成されおいたす。

  • w -週の始たり。Unixタむムスタンプずしお指定されたす。
  • a -远加の数
  • d -削陀の数
  • c -コミット数

そのすべおの情報は、これらのカヌドを䜜成するために䜿甚されたす。

grafik

倧きな貢献床のグラフは、1週間の各ナヌザヌからの統蚈n  0 <= n <= weeks since the repo exists を合蚈し、各週の环積倀をプロットするこずで明らかに䜜成できたす。

GitLab

GitLab CEはオヌプン゜ヌスであるため、関連するファむルがありたす。

API゚ンドポむントはhttps://gitlab.com/<owner>/<repo>/graphs/master?format=jsonです。

返されるJSONデヌタははるかに単玔です。

[
  { ... }, // Latest commit
  { ... }, // Second latest commit
    ...
  { ... }, // First commit
]

配列の各メンバヌは1぀のコミットを衚し、最初に最新のコミット、最埌に最初のコミットを゜ヌトしたす。 構造は次のようになりたす。

{
  "author_name": "Some User",
  "author_email": "[email protected]",
  "date": "2018-10-02"
}

ナヌザヌが同じ日に耇数のコミットを行った堎合、コミットごずに1぀ず぀、同じナヌザヌ情報ず日付を持぀重耇した゚ントリが存圚するだけです。

ナヌザヌごずのタむルには、GitHubよりも少ない情報が含たれたす。プロットは、1日のコミット数、X軞は時間、Y軞はコミット数を取埗するこずによっお行われたす。 これは、リポゞトリ党䜓ナヌザヌ名を無芖ず各ナヌザヌ特定の日に特定のナヌザヌのすべおのコミット゚ントリを取埗するの䞡方に察しお行われたす。


どちらの堎合も、レンダリングはクラむアント偎で実行されたす。これには、ズヌムを䜿甚しお動的なグラフを䜜成できるずいう倧きな利点がありたす。

ここでの䞀般的なワヌクフロヌで機胜する堎合は、この問題に割り圓おられおも問題ありたせん。


これに぀いおもう少し考えたす。 もちろん建蚭的なフィヌドバックは倧歓迎です

UIにペヌゞリンクを配眮する

image

それはうたくいくはずです、今のずころ䜕も再構築する必芁はありたせん。

リンクに぀いお蚀えば、ペヌゞはおそらくhttps://git.example.com/<owner>/<repo>/contributorsにあるはずです。これが、そこにある他のすべおのリンクが機胜する方法です。

私が奜たないもう1぀のアむデアは、[アクティビティ]ペヌゞに投皿者グラフを配眮するこずです。

私はいく぀かのDOM線集を行いたした

image

アむコンずしおocticon-organizationを遞択したしたが、 octicon-graphも機胜する可胜性がありたす。

ここで、GiteaのGitHubコントリビュヌタヌチャヌトでCSSをすばやく線集し、画像をマヌゞしたす。

image

これは、個々のナヌザヌごずのグラフを考慮に入れずに、どのように芋えるかに぀いおの非垞に倧たかな考えです。

玠晎らしく芋えたす^-^

@linusg玠晎らしい どうぞ

@lunny私は今ちょっず混乱しおいたす @Morlinestは誰ですか、そしお圌はこの問題でどのような圹割を果たしたすか

それはおそらく間違いであるか、おそらく圌は私ず䞀緒にいく぀かの秘密の蚈画を持っおいたすD

@linusg @Morlinest :(申し蚳ありたせん。 @ Morlinestが蚀ったような間違いです。この問題を@linusgに割り圓おたいのですが、非メンテナず問題のポスタヌに割り圓おるこずができないこずがわかりたした。

わかりたした、説明しおくれおありがずうsmile

ああ、だから私は今それをしなければならないでしょうD

興味のある方ぞの短い泚意事項私はクリスマス䌑暇䞭にこれに取り組みたかったのですが、倚くの時間を芋぀けるこずができたせんでした。 基本的なものペヌゞ、ルヌティングなどを䜜成し、匕き続き䜜業する予定です。

どうもありがずう^-^

皆さん、さらに別のアップデヌトです。 私はそれをこの状態にするために管理したした

image


クリックしお展開

Gitea vs GitHub実際の䟋

[画像]https://user-images.githubusercontent.com/19366641/50791201-6f7d9500-12c1-11e9-9a3d-7612c63e6b4a.png[画像]https://user-images.githubusercontent.com/ 19366641 / 50791210-7c9a8400-12c1-11e9-985c-b0dffcbfae3a.png

暗い

[画像]https://user-images.githubusercontent.com/19366641/50791412-0cd8c900-12c2-11e9-86e7-5fb4142a5bcc.png



詳现

  • HTTP APIを介しお公開されるデヌタはなく、グラフはサヌバヌ䞊のSVGにレンダリングされたすhttps://github.com/wcharczuk/go-chartを䜿甚。 これは本圓にパフォヌマンスが高く、物事をシンプルに保ちたす。
  • コミット、远加、削陀の数による䞊べ替え
  • UIはGitHubに「わずかに」基づいおいたす😄

残っおいる問題

  • gitea DBにないリポゞトリがむンポヌトされたなどの理由でコントリビュヌタヌは衚瀺されたせん。 ✅
  • より倧きなリポゞトリでのパフォヌマンスの問題。 私がgolangn00bであるだけかもしれたせん。
  • X軞からのAM / PMのものの削陀カスタムフォヌマッタヌを介しお簡単に実行できたす ✅
  • ナヌザヌグラフのY軞スケヌルを修正したす。1぀のコミットは2぀のコミットの半分の高さにする必芁がありたす✅
  • 適切なダヌクテヌマのサポヌト䞊蚘のCSSは開発ツヌルで調敎されたした ✅

可胜な機胜匷化

  • 統蚈はマスタヌブランチハヌドコヌドされおいる甚であり、これは簡単に倉曎しおUIコントロヌルずしお公開できたす

倉曎や改善のアむデアを歓迎したす-私はこれたでのずころ終了しおいたす smileしかし、今埌のコヌドレビュヌを恐れおいたす。

すっごく...ここに行きたす 今床は倖郚入力の時間ですので、䞋の画像をご芧ください。

image

GitHubから取埗したgiteaレポ

image

説明させおください

  • giteaナヌザヌDBに含たれおいないナヌザヌが衚瀺されたすが、プロファむルぞのリンクはありたせん。 統蚈はナヌザヌ名によっお蚈算されたす各コミットごずに「名前」ず「メヌル」のみが䜿甚可胜です。そのため、GitHubには「䞍明」、「Unknwon」、「ú闻」がありたすが、GitHubには「Unknwon」のみがありたす。リポゞトリのクロヌンを䜜成/むンポヌトするず、同じナヌザヌがすべお倱われたす。 私はそれが利甚可胜な最良の遞択肢だず思いたすか

  • GitHubは週ごずに統蚈をコンパむルしたすが、私は毎日の統蚈を䜿甚したした。 これを倉曎する必芁がありたすか

    これが、GitHubのY軞が玄150 [1週間あたりのコミット数]で終了し、GiteaのY軞が52 [1日あたりのコミット数]で終了する理由です。 たた、Giteaのチャヌトがより倚くの「スパむク」で衚瀺されるようになりたす。 補間も利甚できたせん

  • GitHubはマヌゞコミットを統蚈から陀倖したす。私はこの皮のものを実装したせんでしたそしお、通垞のコミットず区別するのがどれほど難しいかわかりたせん。 この機胜が必芁ですか

  • ナヌザヌごずのグラフに別の色を䜿甚したすか

  • 他に䜕を改善できるず思いたすか

パフォヌマンス

前回の投皿で指摘したすべおの問題を修正し、パフォヌマンスの問題に戻りたした。 私の開発マシンからのすべおの統蚈

Giteaブログリポゞトリの寄皿者ペヌゞの読み蟌みには1.1秒かかりたすが、これはおそらく問題ありたせん_ペヌゞ1090msテンプレヌト7ms_

giteaメむンレポ甚のものは1分14秒かかり、_ペヌゞ74443msテンプレヌト47ms_を報告したす。 ただし、9幎の歎史があり、玄7kのコミットがありたす。

考えられる改善点gitearepoの寄皿者ペヌゞは最終的に602のナヌザヌカヌドになりたす。GitHubは100でカットオフするず思いたす。https//github.com/go-gitea/gitea/graphs/contributorsを参照しおください。

あれに぀いおどう思う

image

ペヌゞにアクセスするたびにコミット履歎党䜓がトラバヌスされるため、統蚈をキャッシュするこずで状況を改善するこずもできたす。 それが理にかなっおいお、実装がどのように芋えるかに぀いおの手がかりはありたせん。

倉曎されたCSSファむルを衚瀺するには、ServiceWorkerのキャッシュをクリアする必芁がありたした通垞のキャッシュの曎新は機胜したせん。 OOTBで動䜜するように、ここで䜕をする必芁がありたすか

その他のスクリヌンショット、クリックしお展開

[画像]https://user-images.githubusercontent.com/19366641/50845620-95f90a00-136d-11e9-94a1-dfcdbdcf8908.png[画像]https://user-images.githubusercontent.com/ 19366641 / 50845863-28011280-136e-11e9-8a93-a194dde3115c.png[画像]https://user-images.githubusercontent.com/19366641/50846330-2be16480-136f-11e9-8aad-e814157d045f.png [画像]https://user-images.githubusercontent.com/19366641/50846507-9b575400-136f-11e9-9a6f-97f7a9ec28a1.png

@linusgお疲れ様でした!!! リポゞトリが倧きい堎合぀たり、1000を超えるコミットにcronゞョブずしお機胜させるのはどうですか 構成に応じお、1日以䞊実行できたす。 トップ100で十分だず思いたす。そうでない堎合は、ペヌゞ付けの方が適しおいたす。

@linusg

  • 統蚈はマスタヌブランチハヌドコヌドされおいる甚であり、これは簡単に倉曎しおUIコントロヌルずしお公開できたす

別のオプションを䜜成する代わりに、デフォルトのブランチオプションを䜿甚できるかもしれたせん。

この問題は、最近のアクティビティがないため、自動的に叀いものずしおマヌクされおいたす。 今埌2週間以内にそれ以䞊の掻動が発生しなければ、閉鎖されたす。 貢献しおいただきありがずうございたす。

いいえ、ただこれに取り組んでいたす-誰かがstaleラベルを削陀する可胜性がありたす

いいえ、ただこれに取り組んでいたす

この機胜が間もなく登堎するこずを期埅しお、これは朗報です。
どこでもチャヌトやグラフィックデヌタ衚珟を芋るために誇倧宣䌝...

この機胜が間もなく登堎するこずを期埅しお、これは朗報です。

すぐにtm

時間は間違いなく私にずっお問題です...私の基本的に存圚しないgolangの知識の次に、ハハ。

私はすべおの興奮を芋おうれしいです私も興奮しおいたす、そうでなければこれに取り組むこずはありたせん、しかしあなたがこれが十分に速く進歩しおいないず感じたらくそヌ、それは半幎以䞊経っおいたす、私はすべおの倉曎でPRを行うこずができ、他の誰かが手䌝うこずができたすか

すぐに™

😅

しかし、皆さんがこれが十分な速さで進歩しおいないず感じた堎合

Naaah ..機胜が非垞に優れおいお機胜しおいる堎合、機胜にかかる時間を気にする人はいたすか

私はすべおの倉曎でPRを行うこずができ、他の誰かが手䌝うこずができたすか

IDK、倚分あなたはここGHにあなたのレポを公に投皿するこずができたす。そうすれば他の人があなたのレポをPRしおそれを機胜させるこずができたす。
たたは、公匏リポゞトリで新しいブランチのPRを開くこずができたす。そこから、熟緎した時間のある人々がフォヌクしお䜜業し、代わりにブランチがマスタヌにマヌゞされるのを埅぀PRを行うこずができたす...

@linusgあなたが䞍圚のずきに誰かがあなたを助けるかもしれないPRを送っおください。

この機胜を楜しみにしおいたす。 今は叀くなっおいたすか .....ありがずう

ここにさらにニュヌスはありたすか

PRや支店がここに提出されたこずはありたすか

私はそうは思わない。 @linusg

自分の倉曎をプッシュしたこずはないず思いたす。 私がただそれらを持っおいるかどうかさえわかりたせん-ごめんなさい

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡