## Is your feature request related to a problem?

You can currently install plugins from Github and NPM sources, but not GitLab

## Describe the solution you'd like

Copy a GitLab URL to install a plugin

## Describe alternatives you've considered

Using the plugin source editor.

## Additional context

Came from a conversation in the Users' slack

#### *Thank you* for your feature request – we love each and every one!

posthog/plugins/utils.py
match = re.search(r"^https?:\/\/(?:www\.)?npmjs\.com\/package\/([a-z0-9_-]+)\/?(v\/([A-Za-z0-9_.-]+)\/?|)$", url)
    if not match:
        return None
    parsed = {"type": "npm", "pkg": match.group(1), "version": match.group(3)}
    parsed["root_url"] = "https://www.npmjs.com/package/{}".format(parsed["pkg"])
    if get_latest_if_none and not parsed["version"]:
        try:
            details = requests.get("https://registry.npmjs.org/{}/latest".format(parsed["pkg"])).json()
            return parse_url("https://www.npmjs.com/package/{}/v/{}".format(parsed["pkg"], details["version"]))
        except Exception:
            raise Exception("Could not get latest commit for: {}".format(parsed["url"]))
    if parsed["version"]:
        parsed["tagged_url"] = "https://www.npmjs.com/package/{}/v/{}".format(parsed["pkg"], parsed["version"])
    return parsed
def parse_url(url: str, get_latest_if_none=False) -> Dict[str, str]:
    parsed_url = parse_github_url(url, get_latest_if_none)
    if parsed_url:
        return parsed_url
    parsed_url = parse_npm_url(url, get_latest_if_none)
    if parsed_url:
        return parsed_url
    raise Exception("Must be a Github Repository or NPM package URL!")
def download_plugin_archive(url: str, tag: Optional[str] = None):