1diff --git a/pkg/service/git.go b/pkg/service/git.go
2index 6c3912fae3c57a3500849ef2e15d2616b838f144..afe61039f3e8e8c87a8b628e03015b167e285dd4 100644
3--- a/pkg/service/git.go
4+++ b/pkg/service/git.go
5@@ -16,6 +16,7 @@ type (
6 Repository struct {
7 Name string
8 Description string
9+ Public bool
10 LastCommitDate string
11 Ref string
12 }
13@@ -66,6 +67,7 @@
14 repos = append(repos, &Repository{
15 Name: r.Name,
16 Description: r.Description,
17+ Public: r.Public,
18 LastCommitDate: obj.Author.When.Format(timeFormat),
19 Ref: head.Name().Short(),
20 })
21diff --git a/templates/gitlist.qtpl b/templates/gitlist.qtpl
22index fa470089e9f4fd64c066822ec1c849628ddd4f1e..fc047ebf4a7f8946462124d017d6d9def0c9f76c 100644
23--- a/templates/gitlist.qtpl
24+++ b/templates/gitlist.qtpl
25@@ -18,9 +18,14 @@ <div class="col-md-6 order-last order-md-first">
26 <div class="event-list">
27 {% for _, r := range p.Respositories %}
28 <div class="event">
29- <h4>
30- <a href="/{%s r.Name %}/">{%s r.Name %}</a>
31- </h4>
32+ <div class="row">
33+ <div class="col-md">
34+ <a href="/{%s r.Name %}/">{%s r.Name %}</a>
35+ </div>
36+ <div class="col-md text-md-end">
37+ <small>{% if !r.Public %}private{% endif %}</small>
38+ </div>
39+ </div>
40 </hr>
41 <p>{%s r.Description %}</p>
42 <p>
43diff --git a/templates/gitlist.qtpl.go b/templates/gitlist.qtpl.go
44index 601dbb2fa8c947e791800ebded6aabbd64005919..07e5567039df5840d9c40d821cc6d60c88bec6b0 100644
45--- a/templates/gitlist.qtpl.go
46+++ b/templates/gitlist.qtpl.go
47@@ -108,61 +108,74 @@ for _, r := range p.Respositories {
48 //line templates/gitlist.qtpl:19
49 qw422016.N().S(`
50 <div class="event">
51- <h4>
52- <a href="/`)
53-//line templates/gitlist.qtpl:22
54+ <div class="row">
55+ <div class="col-md">
56+ <a href="/`)
57+//line templates/gitlist.qtpl:23
58 qw422016.E().S(r.Name)
59-//line templates/gitlist.qtpl:22
60+//line templates/gitlist.qtpl:23
61 qw422016.N().S(`/">`)
62-//line templates/gitlist.qtpl:22
63+//line templates/gitlist.qtpl:23
64 qw422016.E().S(r.Name)
65-//line templates/gitlist.qtpl:22
66+//line templates/gitlist.qtpl:23
67 qw422016.N().S(`</a>
68- </h4>
69+ </div>
70+ <div class="col-md text-md-end">
71+ <small>`)
72+//line templates/gitlist.qtpl:26
73+ if !r.Public {
74+//line templates/gitlist.qtpl:26
75+ qw422016.N().S(`private`)
76+//line templates/gitlist.qtpl:26
77+ }
78+//line templates/gitlist.qtpl:26
79+ qw422016.N().S(`</small>
80+ </div>
81+ </div>
82 </hr>
83 <p>`)
84-//line templates/gitlist.qtpl:25
85+//line templates/gitlist.qtpl:30
86 qw422016.E().S(r.Description)
87-//line templates/gitlist.qtpl:25
88+//line templates/gitlist.qtpl:30
89 qw422016.N().S(`</p>
90 <p>
91 <a href="/`)
92-//line templates/gitlist.qtpl:27
93+//line templates/gitlist.qtpl:32
94 qw422016.E().S(r.Name)
95-//line templates/gitlist.qtpl:27
96+//line templates/gitlist.qtpl:32
97 qw422016.N().S(`/log/`)
98-//line templates/gitlist.qtpl:27
99+//line templates/gitlist.qtpl:32
100 qw422016.E().S(r.Ref)
101-//line templates/gitlist.qtpl:27
102+//line templates/gitlist.qtpl:32
103 qw422016.N().S(`/">log</a>
104 <a href="/`)
105-//line templates/gitlist.qtpl:28
106+//line templates/gitlist.qtpl:33
107 qw422016.E().S(r.Name)
108-//line templates/gitlist.qtpl:28
109+//line templates/gitlist.qtpl:33
110 qw422016.N().S(`/tree/`)
111-//line templates/gitlist.qtpl:28
112+//line templates/gitlist.qtpl:33
113 qw422016.E().S(r.Ref)
114-//line templates/gitlist.qtpl:28
115+//line templates/gitlist.qtpl:33
116 qw422016.N().S(`/">tree</a>
117 <a href="/`)
118-//line templates/gitlist.qtpl:29
119+//line templates/gitlist.qtpl:34
120 qw422016.E().S(r.Name)
121-//line templates/gitlist.qtpl:29
122+//line templates/gitlist.qtpl:34
123 qw422016.N().S(`/refs/">refs</a>
124 </p>
125 </div>
126 `)
127-//line templates/gitlist.qtpl:32
128+//line templates/gitlist.qtpl:37
129 }
130-//line templates/gitlist.qtpl:32
131+//line templates/gitlist.qtpl:37
132 qw422016.N().S(`
133 </div>
134 </div>
135 <div id="about" class="col-md-4 order-first order-md-last">
136 `)
137-//line templates/gitlist.qtpl:36
138+//line templates/gitlist.qtpl:41
139 qw422016.N().Z(p.About)
140-//line templates/gitlist.qtpl:36
141+//line templates/gitlist.qtpl:41
142 qw422016.N().S(`
143 <div class="alert alert-warning text-center" role="alert">
144 This project is under development, things may be broken or incomplete.
145@@ -170,65 +183,65 @@ </div>
146 </div>
147 </div>
148 `)
149-//line templates/gitlist.qtpl:42
150+//line templates/gitlist.qtpl:47
151 }
152
153-//line templates/gitlist.qtpl:42
154+//line templates/gitlist.qtpl:47
155 func (p *GitListPage) WriteContent(qq422016 qtio422016.Writer, ctx context.Context) {
156-//line templates/gitlist.qtpl:42
157+//line templates/gitlist.qtpl:47
158 qw422016 := qt422016.AcquireWriter(qq422016)
159-//line templates/gitlist.qtpl:42
160+//line templates/gitlist.qtpl:47
161 p.StreamContent(qw422016, ctx)
162-//line templates/gitlist.qtpl:42
163+//line templates/gitlist.qtpl:47
164 qt422016.ReleaseWriter(qw422016)
165-//line templates/gitlist.qtpl:42
166+//line templates/gitlist.qtpl:47
167 }
168
169-//line templates/gitlist.qtpl:42
170+//line templates/gitlist.qtpl:47
171 func (p *GitListPage) Content(ctx context.Context) string {
172-//line templates/gitlist.qtpl:42
173+//line templates/gitlist.qtpl:47
174 qb422016 := qt422016.AcquireByteBuffer()
175-//line templates/gitlist.qtpl:42
176+//line templates/gitlist.qtpl:47
177 p.WriteContent(qb422016, ctx)
178-//line templates/gitlist.qtpl:42
179+//line templates/gitlist.qtpl:47
180 qs422016 := string(qb422016.B)
181-//line templates/gitlist.qtpl:42
182+//line templates/gitlist.qtpl:47
183 qt422016.ReleaseByteBuffer(qb422016)
184-//line templates/gitlist.qtpl:42
185+//line templates/gitlist.qtpl:47
186 return qs422016
187-//line templates/gitlist.qtpl:42
188+//line templates/gitlist.qtpl:47
189 }
190
191-//line templates/gitlist.qtpl:44
192+//line templates/gitlist.qtpl:49
193 func (p *GitListPage) StreamScript(qw422016 *qt422016.Writer, ctx context.Context) {
194-//line templates/gitlist.qtpl:44
195+//line templates/gitlist.qtpl:49
196 qw422016.N().S(`
197 `)
198-//line templates/gitlist.qtpl:45
199+//line templates/gitlist.qtpl:50
200 }
201
202-//line templates/gitlist.qtpl:45
203+//line templates/gitlist.qtpl:50
204 func (p *GitListPage) WriteScript(qq422016 qtio422016.Writer, ctx context.Context) {
205-//line templates/gitlist.qtpl:45
206+//line templates/gitlist.qtpl:50
207 qw422016 := qt422016.AcquireWriter(qq422016)
208-//line templates/gitlist.qtpl:45
209+//line templates/gitlist.qtpl:50
210 p.StreamScript(qw422016, ctx)
211-//line templates/gitlist.qtpl:45
212+//line templates/gitlist.qtpl:50
213 qt422016.ReleaseWriter(qw422016)
214-//line templates/gitlist.qtpl:45
215+//line templates/gitlist.qtpl:50
216 }
217
218-//line templates/gitlist.qtpl:45
219+//line templates/gitlist.qtpl:50
220 func (p *GitListPage) Script(ctx context.Context) string {
221-//line templates/gitlist.qtpl:45
222+//line templates/gitlist.qtpl:50
223 qb422016 := qt422016.AcquireByteBuffer()
224-//line templates/gitlist.qtpl:45
225+//line templates/gitlist.qtpl:50
226 p.WriteScript(qb422016, ctx)
227-//line templates/gitlist.qtpl:45
228+//line templates/gitlist.qtpl:50
229 qs422016 := string(qb422016.B)
230-//line templates/gitlist.qtpl:45
231+//line templates/gitlist.qtpl:50
232 qt422016.ReleaseByteBuffer(qb422016)
233-//line templates/gitlist.qtpl:45
234+//line templates/gitlist.qtpl:50
235 return qs422016
236-//line templates/gitlist.qtpl:45
237+//line templates/gitlist.qtpl:50
238 }