gitea/services/repository
Şahin Akkaya 21331be30c
Implement contributors graph (#27882)
Continuation of https://github.com/go-gitea/gitea/pull/25439. Fixes #847

Before:
<img width="1296" alt="image"
src="https://github.com/go-gitea/gitea/assets/32161460/24571ac8-b254-43c9-b178-97340f0dc8a9">

----
After:
<img width="1296" alt="image"
src="https://github.com/go-gitea/gitea/assets/32161460/c60b2459-9d10-4d42-8d83-d5ef0f45bf94">

---
#### Overview
This is the implementation of a requested feature: Contributors graph
(#847)

It makes Activity page a multi-tab page and adds a new tab called
Contributors. Contributors tab shows the contribution graphs over time
since the repository existed. It also shows per user contribution graphs
for top 100 contributors. Top 100 is calculated based on the selected
contribution type (commits, additions or deletions).

---
#### Demo
(The demo is a bit old but still a good example to show off the main
features)

<video src="https://github.com/go-gitea/gitea/assets/32161460/9f68103f-8145-4cc2-94bc-5546daae7014" controls width="320" height="240">
  <a href="https://github.com/go-gitea/gitea/assets/32161460/9f68103f-8145-4cc2-94bc-5546daae7014">Download</a>
</video>


#### Features:

- Select contribution type (commits, additions or deletions)
- See overall and per user contribution graphs for the selected
contribution type
- Zoom and pan on graphs to see them in detail
- See top 100 contributors based on the selected contribution type and
selected time range
- Go directly to users' profile by clicking their name if they are
registered gitea users
- Cache the results so that when the same repository is visited again
fetching data will be faster


---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: hiifong <i@hiif.ong>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: yp05327 <576951401@qq.com>
2024-02-15 23:21:13 +01:00
..
archiver Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
files Extract linguist code to method (#29168) 2024-02-14 18:50:31 +00:00
adopt_test.go Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
adopt.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
avatar_test.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
avatar.go Improve avatar uploading / resizing / compressing, remove Fomantic card module (#24653) 2023-05-13 20:59:11 +02:00
branch.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
cache.go Always enable caches (#28527) 2023-12-19 09:29:05 +00:00
check.go Update tool dependencies (#29030) 2024-02-02 19:11:39 -05:00
collaboration_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
collaboration.go Fix DeleteCollaboration transaction behaviour (#28886) 2024-01-22 07:19:56 +00:00
commit.go Show branches and tags that contain a commit (#25180) 2023-07-27 12:47:41 +02:00
contributors_graph_test.go Implement contributors graph (#27882) 2024-02-15 23:21:13 +01:00
contributors_graph.go Implement contributors graph (#27882) 2024-02-15 23:21:13 +01:00
create_test.go bump to use go 1.22 (#29119) 2024-02-14 18:19:57 +00:00
create.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
delete_test.go Delete repos of org when purge delete user (#27273) 2023-10-19 13:16:11 +00:00
delete.go Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
fork_test.go Add option to prohibit fork if user reached maximum limit of repositories (#21848) 2022-12-27 15:21:14 -06:00
fork.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
hooks.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
lfs_test.go Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220) 2023-12-07 15:27:36 +08:00
lfs.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
push.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
repository_test.go refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
repository.go Remove unnecessary parameter (#27671) 2023-10-18 15:03:10 +00:00
review_test.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
review.go Use context parameter in services/repository (#23186) 2023-02-28 16:17:51 -06:00
setting.go Fix an actions schedule bug (#28942) 2024-01-31 14:55:12 +00:00
template.go Move notification interface to services layer (#26915) 2023-09-05 18:37:47 +00:00
transfer_test.go Move some repository transfer functions to service layer (#28855) 2024-02-05 06:17:23 +00:00
transfer.go Move some repository transfer functions to service layer (#28855) 2024-02-05 06:17:23 +00:00