Expose all snippets to /snippets endpoint for GitLab Admin
### Problem to solve Snippet spam is a problem for public GitLab instances, both self-managed and GitLab.com. Because of the spam issues with snippets Administrators are introducing additional tooling to help combat that spam. Unfortunately, there is not currently a way for a GitLab administrator to retrieve all Snippets on the system regardless of visibility or scope. ### Intended users * [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator) ### Proposal A new parameter should be available to the `/snippets` endpoint for GitLab Instance Administrators that allows them to retrieve all the Snippets on the instance. Possible: `?scope=all` ### Testing Activity @fjsanpedro: * Add specs to ensure we include snippets with internal visibility in that endpoint @vij: * Test visible snippets are correct ### MR Breakdown @fjsanpedro: * We would need to change the scope we use for retrieving the public snippets and retrieve also internal (Maybe it would be better to include the SnippetFinder there?) ### Documentation Docs need to be updated to specify that this parameter is Admin only and that it returns all snippets. <details><summary>Original Description</summary> ### Problem to solve Snippet spam is still a problem, including on https://gitlab.com. With the recent addition of the `/snippets/public` endpoint things have become much better: I wrote a script that deletes recent users that create accounts and immediately a snippet on our instance (same for users with unreasonably long bio written in Vietnamese). Unfortunately some spammers seem to also make snippets with internal visibility level. ### Intended users * [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator) ### Proposal I propose for the `/snippets/public` API endpoint to return all snippets visible to the current user, and not only snippets with public visibility. Alternatively I propose to introduce another endpoint that allows to list all snippets. ### Permissions and Security No permissions necessary, and no potential for security problems. </details>
issue