aboutsummaryrefslogtreecommitdiffstats
path: root/models/repo.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2019-04-22 21:40:51 +0100
committerLauris BH <lauris@nix.lv>2019-04-22 23:40:51 +0300
commitbe666b03eef1e085adc0749837480e0db7f811ad (patch)
treeed8f4bc7c4a5cf2c7a7a37e38aef23b10a83595e /models/repo.go
parentb83114f1407247415b184f77f8f2f6ecea8cb994 (diff)
downloadgitea-be666b03eef1e085adc0749837480e0db7f811ad.tar.gz
gitea-be666b03eef1e085adc0749837480e0db7f811ad.zip
Trace Logging on Permission Denied & ColorFormat (#6618)
* Add log.ColorFormat and log.ColorFormatted Structs can now implement log.ColorFormatted to provide their own colored format when logged with `%-v` or additional flags. Signed-off-by: Andrew Thornton <art27@cantab.net> * Add basic ColorFormat to repository and user Signed-off-by: Andrew Thornton <art27@cantab.net> * Add basic ColorFormat to access and unit Signed-off-by: Andrew Thornton <art27@cantab.net> * Add ColorFormat to permission and on trace log it Signed-off-by: Andrew Thornton <art27@cantab.net> * Add log.NewColoredIDValue to make ID value coloring consistent Signed-off-by: Andrew Thornton <art27@cantab.net> * formatting changes * Add some better tracing to permission denied for read issues/pulls Signed-off-by: Andrew Thornton <art27@cantab.net> * Add Trace logging on permission denied Signed-off-by: Andrew Thornton <art27@cantab.net> * Remove isTrace() check from deferred func * Adjust repo and allow logging of team * use FormatInt instead of Itoa * Add blank line Signed-off-by: Andrew Thornton <art27@cantab.net> * Update access.go
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/models/repo.go b/models/repo.go
index 6069be1243..936ad2ae37 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -18,6 +18,7 @@ import (
"path/filepath"
"regexp"
"sort"
+ "strconv"
"strings"
"time"
@@ -210,6 +211,24 @@ type Repository struct {
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
}
+// ColorFormat returns a colored string to represent this repo
+func (repo *Repository) ColorFormat(s fmt.State) {
+ var ownerName interface{}
+
+ if repo.OwnerName != "" {
+ ownerName = repo.OwnerName
+ } else if repo.Owner != nil {
+ ownerName = repo.Owner.Name
+ } else {
+ ownerName = log.NewColoredIDValue(strconv.FormatInt(repo.OwnerID, 10))
+ }
+
+ log.ColorFprintf(s, "%d:%s/%s",
+ log.NewColoredIDValue(repo.ID),
+ ownerName,
+ repo.Name)
+}
+
// AfterLoad is invoked from XORM after setting the values of all fields of this object.
func (repo *Repository) AfterLoad() {
// FIXME: use models migration to solve all at once.