Documentation
¶
Overview ¶
Package redirect contains logic for resovling ambiquios redirects and generic Git Web UI URLs. To define a new redirect rule, create a new struct which implements interface redirectRule. Then, add it to NewRules.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNoMatch indicates no commit can be found. ErrNoMatch = errors.New("no match found") )
Functions ¶
This section is empty.
Types ¶
type GitRedirect ¶
type GitRedirect interface { // Commit returns URL to a specific commit. Commit(models.Commit, string) (string, error) // Diff returns URL for viewing difference between two commits. Diff(models.Commit, models.Commit) (string, error) // Log returns URL for viewing log between two commits. Log(models.Commit, models.Commit) (string, error) }
GitRedirect is interface for generating URLs.
func NewCodesearchRedirect ¶
func NewCodesearchRedirect() GitRedirect
NewCodesearchRedirect returns struct that implements GitRedirect interface. All methods return URLs to source.chromium.org instance.
func NewGitilesRedirect ¶
func NewGitilesRedirect() GitRedirect
NewGitilesRedirect returns struct that implements GitRedirect interface. All methods return URLs to Gitiles instance.
type Rules ¶
type Rules struct {
// contains filtered or unexported fields
}
Rules holds all available redirect rules. The order of rules matter, so generic / catch-all rules should be last.
func NewRules ¶
func NewRules(redirect GitRedirect) *Rules
NewRules creates new instance of RedirectRules with hardcoded rules. New rules should be added here.