564030336d
* Add lots of comments to user.Issues() * Answered some questions from comments * fix typo in comment * Refac user.Issues(): add func repoIDs * Refac user.Issues(): add func userRepoIDs * Refac user.Issues(): add func issueIDsFromSearch * Refac user.Issues(): improve error handling * Refac user.Issues(): add inline documentation and move variable declarations closer to their usages * Refac user.Issues(): add func repoIDMap * Refac user.Issues(): cleanup * Refac: Separate Issues from Pulls during routing * fix typo in comment * Adapt Unittests to Refactoring * Issue13171: Issue and PR Overviews now ignore archived Repositories * changed some verbatim SQL conditions to builder.Eq * models/issue.go: use OptionalBool properly Co-authored-by: 6543 <6543@obermui.de> * Use IsArchived rather than ExcludeArchivedRepos * fixed broken test after merge * added nil check * Added Unit Test securing Issue 13171 fix * Improved IsArchived filtering in issue.GetUserIssueStats * Removed unused func * Added grouping to avoid returning duplicate repo IDs Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Gitea <gitea@fake.local> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
737 lines
No EOL
12 KiB
YAML
737 lines
No EOL
12 KiB
YAML
-
|
|
id: 1
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: repo1
|
|
name: repo1
|
|
is_archived: false
|
|
is_empty: false
|
|
is_private: false
|
|
num_issues: 2
|
|
num_closed_issues: 1
|
|
num_pulls: 3
|
|
num_closed_pulls: 0
|
|
num_milestones: 3
|
|
num_closed_milestones: 1
|
|
num_watches: 4
|
|
num_projects: 1
|
|
num_closed_projects: 0
|
|
status: 0
|
|
|
|
-
|
|
id: 2
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: repo2
|
|
name: repo2
|
|
is_archived: false
|
|
is_private: true
|
|
num_issues: 2
|
|
num_closed_issues: 1
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_stars: 1
|
|
close_issues_via_commit_in_any_branch: true
|
|
status: 0
|
|
|
|
-
|
|
id: 3
|
|
owner_id: 3
|
|
owner_name: user3
|
|
lower_name: repo3
|
|
name: repo3
|
|
is_private: true
|
|
num_issues: 1
|
|
num_closed_issues: 0
|
|
num_pulls: 1
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
num_projects: 1
|
|
num_closed_projects: 0
|
|
status: 0
|
|
|
|
-
|
|
id: 4
|
|
owner_id: 5
|
|
owner_name: user5
|
|
lower_name: repo4
|
|
name: repo4
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_stars: 1
|
|
num_projects: 0
|
|
num_closed_projects: 1
|
|
status: 0
|
|
|
|
-
|
|
id: 5
|
|
owner_id: 3
|
|
owner_name: user3
|
|
lower_name: repo5
|
|
name: repo5
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: true
|
|
status: 0
|
|
|
|
-
|
|
id: 6
|
|
owner_id: 10
|
|
owner_name: user10
|
|
lower_name: repo6
|
|
name: repo6
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 7
|
|
owner_id: 10
|
|
owner_name: user10
|
|
lower_name: repo7
|
|
name: repo7
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 8
|
|
owner_id: 10
|
|
owner_name: user10
|
|
lower_name: repo8
|
|
name: repo8
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 9
|
|
owner_id: 11
|
|
owner_name: user11
|
|
lower_name: repo9
|
|
name: repo9
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 10
|
|
owner_id: 12
|
|
owner_name: user12
|
|
lower_name: repo10
|
|
name: repo10
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 1
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
num_forks: 1
|
|
status: 0
|
|
|
|
-
|
|
id: 11
|
|
fork_id: 10
|
|
owner_id: 13
|
|
owner_name: user13
|
|
lower_name: repo11
|
|
name: repo11
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 12
|
|
owner_id: 14
|
|
owner_name: user14
|
|
lower_name: test_repo_12
|
|
name: test_repo_12
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 13
|
|
owner_id: 14
|
|
owner_name: user14
|
|
lower_name: test_repo_13
|
|
name: test_repo_13
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 14
|
|
owner_id: 14
|
|
owner_name: user14
|
|
lower_name: test_repo_14
|
|
name: test_repo_14
|
|
description: test_description_14
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 15
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: repo15
|
|
name: repo15
|
|
is_empty: true
|
|
status: 0
|
|
|
|
-
|
|
id: 16
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: repo16
|
|
name: repo16
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
status: 0
|
|
|
|
-
|
|
id: 17
|
|
owner_id: 15
|
|
owner_name: user15
|
|
lower_name: big_test_public_1
|
|
name: big_test_public_1
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 18
|
|
owner_id: 15
|
|
owner_name: user15
|
|
lower_name: big_test_public_2
|
|
name: big_test_public_2
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 19
|
|
owner_id: 15
|
|
owner_name: user15
|
|
lower_name: big_test_private_1
|
|
name: big_test_private_1
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 20
|
|
owner_id: 15
|
|
owner_name: user15
|
|
lower_name: big_test_private_2
|
|
name: big_test_private_2
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 21
|
|
owner_id: 16
|
|
owner_name: user16
|
|
lower_name: big_test_public_3
|
|
name: big_test_public_3
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 22
|
|
owner_id: 16
|
|
owner_name: user16
|
|
lower_name: big_test_private_3
|
|
name: big_test_private_3
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 23
|
|
owner_id: 17
|
|
owner_name: user17
|
|
lower_name: big_test_public_4
|
|
name: big_test_public_4
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 24
|
|
owner_id: 17
|
|
owner_name: user17
|
|
lower_name: big_test_private_4
|
|
name: big_test_private_4
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 25
|
|
owner_id: 20
|
|
owner_name: user20
|
|
lower_name: big_test_public_mirror_5
|
|
name: big_test_public_mirror_5
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: true
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 26
|
|
owner_id: 20
|
|
owner_name: user20
|
|
lower_name: big_test_private_mirror_5
|
|
name: big_test_private_mirror_5
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: true
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 27
|
|
owner_id: 19
|
|
owner_name: user19
|
|
lower_name: big_test_public_mirror_6
|
|
name: big_test_public_mirror_6
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: true
|
|
num_forks: 1
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 28
|
|
owner_id: 19
|
|
owner_name: user19
|
|
lower_name: big_test_private_mirror_6
|
|
name: big_test_private_mirror_6
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_watches: 0
|
|
is_mirror: true
|
|
num_forks: 1
|
|
is_fork: false
|
|
status: 0
|
|
|
|
-
|
|
id: 29
|
|
fork_id: 27
|
|
owner_id: 20
|
|
owner_name: user20
|
|
lower_name: big_test_public_fork_7
|
|
name: big_test_public_fork_7
|
|
is_private: false
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: true
|
|
status: 0
|
|
|
|
-
|
|
id: 30
|
|
fork_id: 28
|
|
owner_id: 20
|
|
owner_name: user20
|
|
lower_name: big_test_private_fork_7
|
|
name: big_test_private_fork_7
|
|
is_private: true
|
|
num_issues: 0
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
is_mirror: false
|
|
is_fork: true
|
|
status: 0
|
|
|
|
-
|
|
id: 31
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: repo20
|
|
name: repo20
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 32 # org public repo
|
|
owner_id: 3
|
|
owner_name: user3
|
|
lower_name: repo21
|
|
name: repo21
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 33
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: utf8
|
|
name: utf8
|
|
is_private: false
|
|
status: 0
|
|
|
|
-
|
|
id: 34
|
|
owner_id: 21
|
|
owner_name: user21
|
|
lower_name: golang
|
|
name: golang
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 35
|
|
owner_id: 21
|
|
owner_name: user21
|
|
lower_name: graphql
|
|
name: graphql
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 36
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: commits_search_test
|
|
name: commits_search_test
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 37
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: git_hooks_test
|
|
name: git_hooks_test
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 38
|
|
owner_id: 22
|
|
owner_name: limited_org
|
|
lower_name: public_repo_on_limited_org
|
|
name: public_repo_on_limited_org
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 39
|
|
owner_id: 22
|
|
owner_name: limited_org
|
|
lower_name: private_repo_on_limited_org
|
|
name: private_repo_on_limited_org
|
|
is_private: true
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 40
|
|
owner_id: 23
|
|
owner_name: limited_org
|
|
lower_name: public_repo_on_private_org
|
|
name: public_repo_on_private_org
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 41
|
|
owner_id: 23
|
|
owner_name: limited_org
|
|
lower_name: private_repo_on_private_org
|
|
name: private_repo_on_private_org
|
|
is_private: true
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
|
|
-
|
|
id: 42
|
|
owner_id: 2
|
|
owner_name: user2
|
|
lower_name: glob
|
|
name: glob
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 1
|
|
num_milestones: 1
|
|
is_mirror: false
|
|
|
|
-
|
|
id: 43
|
|
owner_id: 26
|
|
owner_name: org26
|
|
lower_name: repo26
|
|
name: repo26
|
|
is_private: true
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 44
|
|
owner_id: 27
|
|
owner_name: user27
|
|
lower_name: template1
|
|
name: template1
|
|
is_private: false
|
|
is_template: true
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 45
|
|
owner_id: 27
|
|
owner_name: user27
|
|
lower_name: template2
|
|
name: template2
|
|
is_private: false
|
|
is_template: true
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 46
|
|
owner_id: 26
|
|
owner_name: org26
|
|
lower_name: repo_external_tracker
|
|
name: repo_external_tracker
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 47
|
|
owner_id: 26
|
|
owner_name: org26
|
|
lower_name: repo_external_tracker_numeric
|
|
name: repo_external_tracker_numeric
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 48
|
|
owner_id: 26
|
|
owner_name: org26
|
|
lower_name: repo_external_tracker_alpha
|
|
name: repo_external_tracker_alpha
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
num_pulls: 1
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 49
|
|
owner_id: 27
|
|
owner_name: user27
|
|
lower_name: repo49
|
|
name: repo49
|
|
is_private: false
|
|
num_stars: 0
|
|
num_forks: 0
|
|
num_issues: 0
|
|
is_mirror: false
|
|
status: 0
|
|
|
|
-
|
|
id: 50
|
|
owner_id: 30
|
|
owner_name: user30
|
|
lower_name: repo50
|
|
name: repo50
|
|
is_archived: false
|
|
is_empty: false
|
|
is_private: false
|
|
num_issues: 1
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_milestones: 0
|
|
num_closed_milestones: 0
|
|
num_watches: 0
|
|
num_projects: 0
|
|
num_closed_projects: 0
|
|
status: 0
|
|
|
|
-
|
|
id: 51
|
|
owner_id: 30
|
|
owner_name: user30
|
|
lower_name: repo51
|
|
name: repo51
|
|
is_archived: true
|
|
is_empty: false
|
|
is_private: false
|
|
num_issues: 1
|
|
num_closed_issues: 0
|
|
num_pulls: 0
|
|
num_closed_pulls: 0
|
|
num_milestones: 0
|
|
num_closed_milestones: 0
|
|
num_watches: 0
|
|
num_projects: 0
|
|
num_closed_projects: 0
|
|
status: 0 |