all repos

mugit @ 248777362ec518bdbb38dfcdeaa72b4dd94c8cb9

馃惍 git server that your cow will love
3 files changed, 27 insertions(+), 8 deletions(-)
ui: fix feeds, include links protocol
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-02-14 15:19:34 +0200
Authored at: 2026-02-14 15:03:15 +0200
Change ID: xvvqmromlyuukontltuktnrnmyxyylwl
Parent: d5b24c1
M internal/handlers/feed.go
路路路
        2
        2
         

      
        3
        3
         import (

      
        4
        4
         	"net/http"

      
        
        5
        +	"net/url"

      
        5
        6
         

      
        6
        7
         	"github.com/gorilla/feeds"

      
        7
        8
         )

      路路路
        20
        21
         	}

      
        21
        22
         

      
        22
        23
         	repoName := repo.Name()

      
        
        24
        +

      
        
        25
        +	feedLink, err := url.JoinPath("http://", h.c.Meta.Host, repoName)

      
        
        26
        +	if err != nil {

      
        
        27
        +		h.write500(w, err)

      
        
        28
        +		return

      
        
        29
        +	}

      
        
        30
        +

      
        23
        31
         	feed := &feeds.Feed{

      
        24
        32
         		Title:       repoName,

      
        25
        
        -		Link:        &feeds.Link{Href: h.c.Meta.Host + "/" + repoName},

      
        
        33
        +		Link:        &feeds.Link{Href: feedLink},

      
        26
        34
         		Description: desc,

      
        27
        35
         	}

      
        28
        36
         

      路路路
        34
        42
         	}

      
        35
        43
         

      
        36
        44
         	for _, branch := range branches {

      
        
        45
        +		href, _ := url.JoinPath("http://", h.c.Meta.Host, repoName, "tree", branch.Name)

      
        37
        46
         		feed.Items = append(feed.Items, &feeds.Item{

      
        38
        47
         			Id:      "b:" + branch.Name,

      
        39
        48
         			Title:   "branch: " + branch.Name,

      
        40
        
        -			Link:    &feeds.Link{Href: h.c.Meta.Host + "/tree/" + branch.Name},

      
        
        49
        +			Link:    &feeds.Link{Href: href},

      
        41
        50
         			Updated: branch.LastUpdate,

      
        42
        51
         		})

      
        43
        52
         	}

      路路路
        49
        58
         	}

      
        50
        59
         

      
        51
        60
         	for _, tag := range tags {

      
        
        61
        +		href, _ := url.JoinPath("http://", h.c.Meta.Host, repoName, "tree", tag.Name())

      
        52
        62
         		feed.Items = append(feed.Items, &feeds.Item{

      
        53
        63
         			Id:          "t:" + tag.Name(),

      
        54
        64
         			Title:       "tag: " + tag.Name(),

      
        55
        
        -			Link:        &feeds.Link{Href: h.c.Meta.Host + "/tree/" + tag.Name()},

      
        
        65
        +			Link:        &feeds.Link{Href: href},

      
        56
        66
         			Description: desc,

      
        57
        67
         			Updated:     tag.When(),

      
        58
        68
         			Content:     tag.Message(),

      路路路
        76
        86
         		return

      
        77
        87
         	}

      
        78
        88
         

      
        
        89
        +	feedLink, err := url.JoinPath("http://", h.c.Meta.Host)

      
        
        90
        +	if err != nil {

      
        
        91
        +		h.write500(w, err)

      
        
        92
        +		return

      
        
        93
        +	}

      
        
        94
        +

      
        79
        95
         	feed := &feeds.Feed{

      
        80
        96
         		Title:       h.c.Meta.Host,

      
        81
        
        -		Link:        &feeds.Link{Href: h.c.Meta.Host},

      
        
        97
        +		Link:        &feeds.Link{Href: feedLink},

      
        82
        98
         		Description: h.c.Meta.Description,

      
        83
        99
         	}

      
        84
        100
         

      
        85
        101
         	for _, repo := range repos {

      
        
        102
        +		href, _ := url.JoinPath("http://", h.c.Meta.Host, repo.Name)

      
        86
        103
         		feed.Items = append(feed.Items, &feeds.Item{

      
        87
        104
         			Title:       repo.Name,

      
        88
        
        -			Link:        &feeds.Link{Href: h.c.Meta.Host + "/" + repo.Name},

      
        
        105
        +			Link:        &feeds.Link{Href: href},

      
        89
        106
         			Description: repo.Desc,

      
        90
        107
         			Id:          repo.Name,

      
        91
        108
         			Updated:     repo.LastCommit,

      
M internal/handlers/repo.go
路路路
        31
        31
         	data := make(map[string]any)

      
        32
        32
         	data["meta"] = h.c.Meta

      
        33
        33
         	data["repos"] = repos

      
        
        34
        +	data["servername"] = h.c.Meta.Host

      
        34
        35
         	h.templ(w, "index", data)

      
        35
        36
         }

      
        36
        37
         

      
M web/templates/_head.html
路路路
        7
        7
           <meta name="go-import" content="{{ .servername}}/{{ .name }} git https://{{ .servername }}/{{ .name }}">

      
        8
        8
           {{ end }}

      
        9
        9
           {{ if and .servername .name }}

      
        10
        
        -  <link rel="alternate" type="application/rss" href="{{ .servername }}/{{ .name }}/feed">

      
        11
        
        -  {{ else }}

      
        12
        
        -  <link rel="alternate" type="application/rss" href="{{ .servername }}/index.xml">

      
        
        10
        +  <link rel="alternate" type="application/rss" href="https://{{ .servername }}/{{ .name }}/feed">

      
        
        11
        +  {{ end }}

      
        
        12
        +  {{ if .servername }}

      
        
        13
        +  <link rel="alternate" type="application/rss" href="https://{{ .servername }}/index.xml">

      
        13
        14
           {{ end }}

      
        14
        15
         {{ end }}