"Trending projects" should include internal projects, for internal users
Problem
We have about 150 internal users on an installation with about 400 projects. All of them are "internal", e.g open to access for all of the users.
When new users start using GitLab, they are always surprised that there are so few projects and so little activity. That is because when they choose to "explore", they end up on "trending projects", which is empty. It shows only public projects, of which there are none.
It would be great if trending projects would include internal projects, for internal users.
Proposal
We have installed our internal GitLab to try to recreate some of the dynamics of GitHub, on an internal site. Project visibility is an important part of that.
INSERT INTO #{table_name} (project_id)
SELECT project_id
FROM notes
INNER JOIN projects ON projects.id = notes.project_id
WHERE notes.created_at >= #{timestamp}
AND notes.system IS FALSE
AND projects.visibility_level = #{Gitlab::VisibilityLevel::PUBLIC}
GROUP BY project_id
ORDER BY count(*) DESC
LIMIT #{PROJECTS_LIMIT};
The problem with this is the PROJECTS_LIMIT
at the end. We'd need to do this twice: once for public projects, and once for public + internal, to avoid having the same problem in reverse (if all of the trending projects on an instance are internal, but there are public projects too, then anonymous users should still see public trending projects when they view the list).
Implementation Guide
-
Explore > Projects > Trending should list all projects a user has access to, including internal and private projects. Private projects should only be listed if the user is a member of these projects. Internal projects should be listed if the user is a member of these projects, or if they have access to see them because they are an internal user. -
Unauthenticated users should see public projects listed, if available -
If no projects are available, users should see an empty state
Note: The focus of this issue is merely to include internal and private projects in the calculations. Updating the algorithm that determines what is trending is tackled in #442693.