fix: make default support links respect --docs-url (#14176)

make default support links respect --docs-url
This commit is contained in:
Benjamin Peinhardt
2024-08-12 16:01:22 -05:00
committed by GitHub
parent 4c7132f08b
commit 76722a7db5
7 changed files with 80 additions and 44 deletions

View File

@ -2,7 +2,10 @@ package appearance
import (
"context"
"fmt"
"strings"
"github.com/coder/coder/v2/buildinfo"
"github.com/coder/coder/v2/codersdk"
)
@ -10,36 +13,50 @@ type Fetcher interface {
Fetch(ctx context.Context) (codersdk.AppearanceConfig, error)
}
var DefaultSupportLinks = []codersdk.LinkConfig{
{
Name: "Documentation",
Target: "https://coder.com/docs/coder-oss",
Icon: "docs",
},
{
Name: "Report a bug",
Target: "https://github.com/coder/coder/issues/new?labels=needs+grooming&body={CODER_BUILD_INFO}",
Icon: "bug",
},
{
Name: "Join the Coder Discord",
Target: "https://coder.com/chat?utm_source=coder&utm_medium=coder&utm_campaign=server-footer",
Icon: "chat",
},
{
Name: "Star the Repo",
Target: "https://github.com/coder/coder",
Icon: "star",
},
func DefaultSupportLinks(docsURL string) []codersdk.LinkConfig {
version := buildinfo.Version()
if docsURL == "" {
docsURL = "https://coder.com/docs/@" + strings.Split(version, "-")[0]
}
buildInfo := fmt.Sprintf("Version: [`%s`](%s)", version, buildinfo.ExternalURL())
return []codersdk.LinkConfig{
{
Name: "Documentation",
Target: docsURL,
Icon: "docs",
},
{
Name: "Report a bug",
Target: "https://github.com/coder/coder/issues/new?labels=needs+grooming&body=" + buildInfo,
Icon: "bug",
},
{
Name: "Join the Coder Discord",
Target: "https://coder.com/chat?utm_source=coder&utm_medium=coder&utm_campaign=server-footer",
Icon: "chat",
},
{
Name: "Star the Repo",
Target: "https://github.com/coder/coder",
Icon: "star",
},
}
}
type AGPLFetcher struct{}
type AGPLFetcher struct {
docsURL string
}
func (AGPLFetcher) Fetch(context.Context) (codersdk.AppearanceConfig, error) {
func (f AGPLFetcher) Fetch(context.Context) (codersdk.AppearanceConfig, error) {
return codersdk.AppearanceConfig{
AnnouncementBanners: []codersdk.BannerConfig{},
SupportLinks: DefaultSupportLinks,
SupportLinks: DefaultSupportLinks(f.docsURL),
}, nil
}
var DefaultFetcher Fetcher = AGPLFetcher{}
func NewDefaultFetcher(docsURL string) Fetcher {
return &AGPLFetcher{
docsURL: docsURL,
}
}

View File

@ -475,7 +475,8 @@ func New(options *Options) *API {
dbRolluper: options.DatabaseRolluper,
}
api.AppearanceFetcher.Store(&appearance.DefaultFetcher)
f := appearance.NewDefaultFetcher(api.DeploymentValues.DocsURL.String())
api.AppearanceFetcher.Store(&f)
api.PortSharer.Store(&portsharing.DefaultPortSharer)
buildInfo := codersdk.BuildInfoResponse{
ExternalURL: buildinfo.ExternalURL(),