Categorygithub.com/gitsight/go-vcsurl
modulepackage
1.0.1
Repository: https://github.com/gitsight/go-vcsurl.git
Documentation: pkg.go.dev

# README

go-vcsurl GoDoc Test

go-vcsurl library provides a VCS URL parser for HTTP, git or ssh remote URLs and also frontend URLs from providers like GitHub, GitLab, and Bitbucket.

This library is based on the previous work done by @sourcegraph.

Installation

The recommended way to install go-vcsurl

go get github.com/gitsight/go-vcsurl

Usage

urls := []string{
	"github.com/alice/libfoo",
	"git://github.com/bob/libbar",
	"https://gitlab.com/foo/bar",
	"https://github.com/go-enry/go-enry/releases/tag/v2.4.1",
}

for i, url := range urls {
	info, err := vcsurl.Parse(url)
	if err != nil {
		fmt.Printf("error parsing %s\n", err)
	}

	fmt.Printf("%d. %s %s\n", i+1, info.Kind, info.ID)
	fmt.Printf("   name: %s\n", info.Name)
	fmt.Printf("   host: %s\n", info.Host)

	remote, _ := info.Remote(vcsurl.SSH)
	fmt.Printf("   remote: %s\n", remote)

	if info.Committish != "" {
		fmt.Printf("   commit-ish: %s\n", info.Committish)
	}
}
1. git github.com/alice/libfoo
   name: libfoo
   host: github.com
   remote: [email protected]/alice/libfoo.git
2. git github.com/bob/libbar
   name: libbar
   host: github.com
   remote: [email protected]/bob/libbar.git
3. git gitlab.com/foo/bar
   name: bar
   host: gitlab.com
   remote: [email protected]/foo/bar.git
4. git github.com/go-enry/go-enry
   name: go-enry
   host: github.com
   remote: [email protected]/go-enry/go-enry.git
   commit-ish: v2.4.1

License

MIT, see LICENSE

# Functions

Parse parses a string that resembles a VCS repository URL.

# Constants

Supported VCS host provider.
Supported VCS kinds.
Supported VCS host provider.
Supported VCS host provider.
Supported VCS protocols.
Supported VCS protocols.

# Variables

Errors returned by Parse function.
Errors returned by Parse function.
Errors returned by Parse function.
Errors returned by Parse function.
Errors returned by Parse function.
Errors returned by Parse function.

# Structs

VCS describes a VCS repository.

# Type aliases

Host VCS provider.
Kind of VCS.
Protocol of remote.