@@ -1,5 +1,8 @@ | |||
[run] | |||
init_cmds = [["./gogs", "web"]] | |||
init_cmds = [ | |||
["grep", "-rn", "FIXME", "."], | |||
["./gogs", "web"] | |||
] | |||
watch_all = true | |||
watch_dirs = [ | |||
"$WORKDIR/conf/locale", |
@@ -166,7 +166,9 @@ type Repository struct { | |||
} | |||
func (repo *Repository) GetOwner() (err error) { | |||
repo.Owner, err = GetUserById(repo.OwnerId) | |||
if repo.Owner == nil { | |||
repo.Owner, err = GetUserById(repo.OwnerId) | |||
} | |||
return err | |||
} | |||
@@ -175,6 +177,14 @@ func (repo *Repository) GetMirror() (err error) { | |||
return err | |||
} | |||
func (repo *Repository) HasAccess(uname string) bool { | |||
if err := repo.GetOwner(); err != nil { | |||
return false | |||
} | |||
has, _ := HasAccess(uname, path.Join(repo.Owner.Name, repo.Name), READABLE) | |||
return has | |||
} | |||
// DescriptionHtml does special handles to description and return HTML string. | |||
func (repo *Repository) DescriptionHtml() template.HTML { | |||
sanitize := func(s string) string { |
@@ -235,8 +235,22 @@ func UpdateHookTask(t *HookTask) error { | |||
return err | |||
} | |||
var ( | |||
// Prevent duplicate deliveries. | |||
// This happens with massive hook tasks cannot finish delivering | |||
// before next shooting starts. | |||
isShooting = false | |||
) | |||
// DeliverHooks checks and delivers undelivered hooks. | |||
// FIXME: maybe can use goroutine to shoot a number of them at same time? | |||
func DeliverHooks() { | |||
if isShooting { | |||
return | |||
} | |||
isShooting = true | |||
defer func() { isShooting = false }() | |||
tasks := make([]*HookTask, 0, 10) | |||
timeout := time.Duration(setting.WebhookDeliverTimeout) * time.Second | |||
x.Where("is_delivered=?", false).Iterate(new(HookTask), | |||
@@ -255,7 +269,7 @@ func DeliverHooks() { | |||
t.IsDelivered = true | |||
// TODO: record response. | |||
// FIXME: record response. | |||
switch t.Type { | |||
case GOGS: | |||
{ |
@@ -27,7 +27,7 @@ | |||
</div> | |||
<div id="org-repo-list"> | |||
{{range .Repos}} | |||
{{if or $isMember (not .IsPrivate)}} | |||
{{if .HasAccess $.SignedUser.Name}} | |||
<div class="org-repo-item"> | |||
<ul class="org-repo-status right"> | |||
<li><i class="octicon octicon-star"></i> {{.NumStars}}</li> |