From 423b1c69be7828c331a47467b66217d190e916b9 Mon Sep 17 00:00:00 2001 From: Don Bowman <don.waterloo@gmail.com> Date: Wed, 8 Apr 2015 00:44:38 +0000 Subject: [PATCH 01/18] don't set mime type to text/plain. This will break serving e.g. raw images, html, etc According to http://golang.org/pkg/net/http/#DetectContentType "If the Header does not contain a Content-Type line, Write adds a Content-Type set to the result of passing the initial 512 bytes of written data to DetectContentType." --- routers/repo/download.go | 1 - 1 file changed, 1 deletion(-) diff --git a/routers/repo/download.go b/routers/repo/download.go index c5e18e005b..b1c5fbc84d 100644 --- a/routers/repo/download.go +++ b/routers/repo/download.go @@ -27,7 +27,6 @@ func ServeBlob(ctx *middleware.Context, blob *git.Blob) error { _, isTextFile := base.IsTextFile(buf) _, isImageFile := base.IsImageFile(buf) - ctx.Resp.Header().Set("Content-Type", "text/plain") if !isTextFile && !isImageFile { ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+path.Base(ctx.Repo.TreeName)) ctx.Resp.Header().Set("Content-Transfer-Encoding", "binary") From 81e6173356f94360217822b8104e6d3afac628b0 Mon Sep 17 00:00:00 2001 From: Don Bowman <don.waterloo@gmail.com> Date: Wed, 8 Apr 2015 22:25:47 +0000 Subject: [PATCH 02/18] remove blackfriday.EXTENSION_HARD_LINE_BREAK from options. --- modules/base/markdown.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/base/markdown.go b/modules/base/markdown.go index d06e1338e7..e860f9705c 100644 --- a/modules/base/markdown.go +++ b/modules/base/markdown.go @@ -198,7 +198,7 @@ func RenderRawMarkdown(body []byte, urlPrefix string) []byte { extensions |= blackfriday.EXTENSION_FENCED_CODE extensions |= blackfriday.EXTENSION_AUTOLINK extensions |= blackfriday.EXTENSION_STRIKETHROUGH - extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK + //extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK extensions |= blackfriday.EXTENSION_SPACE_HEADERS extensions |= blackfriday.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK From f3aab5dbe30f8e6a1032b524315f7fd37c3e0b24 Mon Sep 17 00:00:00 2001 From: James <james@jamesanderson.me> Date: Tue, 28 Apr 2015 11:59:05 -0400 Subject: [PATCH 03/18] Add full name field to admin's user edit page (fixes #1130) --- modules/auth/admin.go | 1 + routers/admin/users.go | 1 + templates/admin/user/edit.tmpl | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/modules/auth/admin.go b/modules/auth/admin.go index e6cc82cd34..a95b83de6a 100644 --- a/modules/auth/admin.go +++ b/modules/auth/admin.go @@ -11,6 +11,7 @@ import ( ) type AdminEditUserForm struct { + FullName string `form:"fullname" binding:"MaxSize(100)"` Email string `binding:"Required;Email;MaxSize(50)"` Password string `binding:"OmitEmpty;MinSize(6);MaxSize(255)"` Website string `binding:"MaxSize(50)"` diff --git a/routers/admin/users.go b/routers/admin/users.go index ddcca6390e..12c52236f9 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -185,6 +185,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { u.EncodePasswd() } + u.FullName = form.FullName u.Email = form.Email u.Website = form.Website u.Location = form.Location diff --git a/templates/admin/user/edit.tmpl b/templates/admin/user/edit.tmpl index bdc0e3343f..4f4cc727ab 100644 --- a/templates/admin/user/edit.tmpl +++ b/templates/admin/user/edit.tmpl @@ -32,6 +32,10 @@ <label>{{.i18n.Tr "username"}}</label> <label class="text-left">{{.User.Name}}</label> </div> + <div class="field"> + <label for="full-name">{{.i18n.Tr "settings.full_name"}}</label> + <input class="ipt ipt-large ipt-radius {{if .Err_FullName}}ipt-error{{end}}" id="full-name" name="fullname" type="text" value="{{.User.FullName}}" /> + </div> <div class="field"> <label class="req" for="email">{{.i18n.Tr "email"}}</label> <input class="ipt ipt-large ipt-radius {{if .Err_Email}}ipt-error{{end}}" id="email" name="email" type="email" value="{{.User.Email}}" required/> From 5c63e1015d54098e56652f07d4ce2861e52e75f9 Mon Sep 17 00:00:00 2001 From: mrburns <m.cramet@gmail.com> Date: Fri, 8 May 2015 10:20:27 +0200 Subject: [PATCH 04/18] Add app sub url for color picker js lib inclusion Currently, the js file doesn't take into account the possibility of a sub url being used (wich is my case :) wich prevents its inclusion. --- templates/repo/issue/list.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index 0c817bc1d8..b64d8b81d7 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -96,7 +96,7 @@ </div> </div> </div> -<script src="/js/bootstrap-colorpicker.min.js"></script> +<script src="{{AppSubUrl}}/js/bootstrap-colorpicker.min.js"></script> <script> $(function(){ $('.label-color-picker').colorpicker({ From 66d7adc3a8027177bb576190e288ae8b5e6173c2 Mon Sep 17 00:00:00 2001 From: Martin van Beurden <chadoe@gmail.com> Date: Sat, 9 May 2015 20:24:33 +0200 Subject: [PATCH 05/18] fix systemd "Trailing garbage, ignoring." warning. Environment should be a space-separated list instead of comma-separated. No need for double quoting when the values don't contain spaces. --- scripts/systemd/gogs.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/systemd/gogs.service b/scripts/systemd/gogs.service index 7436e46ae6..95567eaa96 100644 --- a/scripts/systemd/gogs.service +++ b/scripts/systemd/gogs.service @@ -14,7 +14,7 @@ Group=git WorkingDirectory=/home/git/gogs ExecStart=/home/git/gogs/gogs web Restart=always -Environment="USER=git","HOME=/home/git" +Environment=USER=git HOME=/home/git [Install] WantedBy=multi-user.target From 27fe9cfcba095ea42fb97764b869616d2079cdc1 Mon Sep 17 00:00:00 2001 From: Thomas Keppler <winfr34k@gmail.com> Date: Fri, 15 May 2015 01:29:44 +0200 Subject: [PATCH 06/18] Fix: "Port is blocked" issue Fixed an issue where the post intall file for Debian enforced port 6000 which should have been port 3000 because it renders the software virtually unusable because it's a blocked port in Firefox, Chrome and alikes. For further reference see: http://www-archive.mozilla.org/projects/netlib/PortBanning.html --- packager/debian/postinst | 2 -- 1 file changed, 2 deletions(-) diff --git a/packager/debian/postinst b/packager/debian/postinst index c0b06b0233..964e8148f8 100755 --- a/packager/debian/postinst +++ b/packager/debian/postinst @@ -18,8 +18,6 @@ case "$1" in chown ${APP_USER}.${APP_GROUP} $(dirname ${APP_CONFIG}) [ -f ${APP_CONFIG} ] || ${CLI} run cp conf/app.ini ${APP_CONFIG} ${CLI} config:set USER=${APP_USER} - PORT=$(${CLI} config:get PORT || echo "6000") - sed -i "s|HTTP_PORT = 3000|HTTP_PORT = ${PORT}|" ${APP_CONFIG} sed -i "s|RUN_USER = git|RUN_USER = ${APP_USER}|" ${APP_CONFIG} sed -i "s|RUN_MODE = dev|RUN_MODE = prod|" ${APP_CONFIG} From b36134194cf8304ba553c2623447ea60586cd5e2 Mon Sep 17 00:00:00 2001 From: Christian Dietrich <christian.dietrich@informatik.uni-erlangen.de> Date: Wed, 3 Jun 2015 15:46:37 +0200 Subject: [PATCH 07/18] settings/password: no minimal required characters for OldPassword If users are added to gogs due a reverse proxy automatically, their password is set to their initial username. If their username is shorter than 6 characters, they can never set a password. But since this password is required for some operations (e.g. repository deletion), they could not use all features of gogs until now. --- modules/auth/user_form.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/auth/user_form.go b/modules/auth/user_form.go index b616a460ff..d3d7306774 100644 --- a/modules/auth/user_form.go +++ b/modules/auth/user_form.go @@ -107,7 +107,7 @@ func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) bindi } type ChangePasswordForm struct { - OldPassword string `form:"old_password" binding:"Required;MinSize(6);MaxSize(255)"` + OldPassword string `form:"old_password" binding:"Required;MinSize(1);MaxSize(255)"` Password string `form:"password" binding:"Required;MinSize(6);MaxSize(255)"` Retype string `form:"retype"` } From 6eecbf17cd8be6c2ee7f935e53a45c4f41f86d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn?= <bo@kbct.de> Date: Wed, 13 May 2015 14:15:05 +0200 Subject: [PATCH 08/18] fix debian init script - use start-stop-daemon's chuid feature insted of su - using `su -c` breaks if the git user has no usable shell - this fixes #1025 - put --test before --exec, instead it gets passed to gogs - set cwd via --chdir --- scripts/init/debian/gogs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/init/debian/gogs b/scripts/init/debian/gogs index 13e8b8aa5b..b0b52286fc 100644 --- a/scripts/init/debian/gogs +++ b/scripts/init/debian/gogs @@ -49,10 +49,12 @@ do_start() # 1 if daemon was already running # 2 if daemon could not be started sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ - --exec $DAEMON -- $DAEMON_ARGS --test > /dev/null \\ + --test --chdir $WORKINGDIR --chuid $USER \\ + --exec $DAEMON -- $DAEMON_ARGS > /dev/null \\ || return 1" sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ - --background --exec /bin/su -- - $USER -c \"cd \\\"$WORKINGDIR\\\" && $DAEMON -- $DAEMON_ARGS\" \\ + --background --chdir $WORKINGDIR --chuid $USER \\ + --exec $DAEMON -- $DAEMON_ARGS \\ || return 2" } From 73698d292a2c60cbe947efc2f62c05d8ffd88277 Mon Sep 17 00:00:00 2001 From: stephen mcquay <stephen@mcquay.me> Date: Mon, 8 Jun 2015 00:40:38 -0700 Subject: [PATCH 09/18] fix .keys route This change fixes the output from /{{ username }}.keys so that it can work in a ~/.ssh/authorized_keys file --- routers/user/home.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/user/home.go b/routers/user/home.go index 3484e78050..ef05be27a3 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -152,6 +152,7 @@ func ShowSSHKeys(ctx *middleware.Context, uid int64) { var buf bytes.Buffer for i := range keys { buf.WriteString(keys[i].OmitEmail()) + buf.WriteString("\n") } ctx.RenderData(200, buf.Bytes()) } From bfef8f0edd5f2c4afb1e2551a9e36c57508ad12d Mon Sep 17 00:00:00 2001 From: William Friesen <wfriesen@gmail.com> Date: Tue, 9 Jun 2015 21:40:43 +1000 Subject: [PATCH 10/18] Fix command used by FreeBSD init script --- scripts/init/freebsd/gogs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/init/freebsd/gogs b/scripts/init/freebsd/gogs index df13ee0d9c..e1d3bdee90 100644 --- a/scripts/init/freebsd/gogs +++ b/scripts/init/freebsd/gogs @@ -21,7 +21,7 @@ load_rc_config $name : ${gogs_enable:="NO"} : ${gogs_directory:="/home/git"} -command="${gogs_directory}/scripts/start.sh" +command="${gogs_directory}/gogs web" pidfile="${gogs_directory}/${name}.pid" From d82d9bc153580a6e09df784414f9b12d467d3e69 Mon Sep 17 00:00:00 2001 From: Matt Butcher <mattbutcher@google.com> Date: Thu, 18 Jun 2015 05:01:05 -0600 Subject: [PATCH 11/18] Fix minor spelling issues. --- cmd/serve.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/serve.go b/cmd/serve.go index 484060c4c3..63c3890a9b 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -82,7 +82,7 @@ func runServ(c *cli.Context) { } if len(c.Args()) < 1 { - fail("Not enough arguments", "Not enough arugments") + fail("Not enough arguments", "Not enough arguments") } keys := strings.Split(c.Args()[0], "-") @@ -97,7 +97,7 @@ func runServ(c *cli.Context) { user, err := models.GetUserByKeyId(keyId) if err != nil { - fail("internal error", "Fail to get user by key ID(%d): %v", keyId, err) + fail("internal error", "Failed to get user by key ID(%d): %v", keyId, err) } cmd := os.Getenv("SSH_ORIGINAL_COMMAND") @@ -113,7 +113,7 @@ func runServ(c *cli.Context) { repoPath := strings.Trim(args, "'") rr := strings.SplitN(repoPath, "/", 2) if len(rr) != 2 { - fail("Invalid repository path", "Invalide repository path: %v", args) + fail("Invalid repository path", "Invalid repository path: %v", args) } repoUserName := rr[0] repoName := strings.TrimSuffix(rr[1], ".git") @@ -123,7 +123,7 @@ func runServ(c *cli.Context) { if err == models.ErrUserNotExist { fail("Repository owner does not exist", "Unregistered owner: %s", repoUserName) } - fail("Internal error", "Fail to get repository owner(%s): %v", repoUserName, err) + fail("Internal error", "Failed to get repository owner(%s): %v", repoUserName, err) } repo, err := models.GetRepositoryByName(repoUser.Id, repoName) @@ -135,7 +135,7 @@ func runServ(c *cli.Context) { fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, repoName) } } - fail("Internal error", "Fail to get repository: %v", err) + fail("Internal error", "Failed to get repository: %v", err) } requestedMode, has := COMMANDS[verb] @@ -171,7 +171,7 @@ func runServ(c *cli.Context) { gitcmd.Stdin = os.Stdin gitcmd.Stderr = os.Stderr if err = gitcmd.Run(); err != nil { - fail("Internal error", "Fail to execute git command: %v", err) + fail("Internal error", "Failed to execute git command: %v", err) } if requestedMode == models.ACCESS_MODE_WRITE { @@ -184,7 +184,7 @@ func runServ(c *cli.Context) { err = models.Update(task.RefName, task.OldCommitId, task.NewCommitId, user.Name, repoUserName, repoName, user.Id) if err != nil { - log.GitLogger.Error(2, "Fail to update: %v", err) + log.GitLogger.Error(2, "Failed to update: %v", err) } } From 08f7547acf40c20eaaaaae3fdfc7835020d7d945 Mon Sep 17 00:00:00 2001 From: Linquize <linquize@yahoo.com.hk> Date: Sat, 4 Apr 2015 19:23:53 +0800 Subject: [PATCH 12/18] Update build.sh for Windows --- scripts/build.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index ea43bdafcb..cf127c2aee 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -4,8 +4,14 @@ rm -rf $outPath mkdir $outPath go build ../gogs.go -chmod +x gogs -mv gogs $outPath/ +PLATFORM=`uname | cut -d _ -f 1` +if [ $PLATFORM = "MINGW32" ] || [ $PLATFORM = "MINGW64" ] || [ $PLATFORM = "CYGWIN" ]; then + GOGS_EXE=gogs.exe +else + GOGS_EXE=gogs +fi +chmod +x $GOGS_EXE +mv $GOGS_EXE $outPath/ cp -r ../conf/ $outPath/conf/ cp -r ../custom/ $outPath/custom/ From e94ca36335cbfc5678520fed7325ddcde279b507 Mon Sep 17 00:00:00 2001 From: Paolo Borelli <pborelli@gnome.org> Date: Fri, 5 Jun 2015 19:52:00 +0200 Subject: [PATCH 13/18] Add CommonName to the self signed certificate Without a CN the self signed certificate is considered invalid by chrome. You can check with: openssl x509 -in cert.pem -subject -noout --- cmd/cert.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/cert.go b/cmd/cert.go index 631c4c6823..0a09b00344 100644 --- a/cmd/cert.go +++ b/cmd/cert.go @@ -114,6 +114,7 @@ func runCert(ctx *cli.Context) { SerialNumber: serialNumber, Subject: pkix.Name{ Organization: []string{"Acme Co"}, + CommonName: "Gogs", }, NotBefore: notBefore, NotAfter: notAfter, From 562ad02a6da7323b3ec5e2b0259ee1f17935d5f6 Mon Sep 17 00:00:00 2001 From: Jakub Stasiak <jakub@stasiak.at> Date: Thu, 14 May 2015 00:14:24 +0200 Subject: [PATCH 14/18] Add file permalink button The button appears when a file is viewed in a branch or a tag. It points to a URL containing the branch's (or tag's) current commit id so that it'll always point to the same content. --- conf/locale/locale_de-DE.ini | 1 + conf/locale/locale_en-US.ini | 1 + conf/locale/locale_es-ES.ini | 1 + conf/locale/locale_fr-FR.ini | 1 + conf/locale/locale_ja-JP.ini | 1 + conf/locale/locale_lv-LV.ini | 1 + conf/locale/locale_nl-NL.ini | 1 + conf/locale/locale_pl-PL.ini | 1 + conf/locale/locale_pt-BR.ini | 1 + conf/locale/locale_ru-RU.ini | 1 + conf/locale/locale_zh-CN.ini | 1 + conf/locale/locale_zh-HK.ini | 1 + templates/repo/view_file.tmpl | 5 +++++ 13 files changed, 17 insertions(+) diff --git a/conf/locale/locale_de-DE.ini b/conf/locale/locale_de-DE.ini index f3737f709d..434040a1f5 100755 --- a/conf/locale/locale_de-DE.ini +++ b/conf/locale/locale_de-DE.ini @@ -341,6 +341,7 @@ releases=Veröffentlichungen file_raw=Roh file_history=Verlauf file_view_raw=Ansicht Roh +file_permalink=Permalink commits.commits=Commits commits.search=Durchsuche Commits diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index 841e4201bd..d7c4e0ec1c 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -343,6 +343,7 @@ releases = Releases file_raw = Raw file_history = History file_view_raw = View Raw +file_permalink = Permalink commits.commits = Commits commits.search = Search commits diff --git a/conf/locale/locale_es-ES.ini b/conf/locale/locale_es-ES.ini index 75f5bd3096..42ec40e29f 100755 --- a/conf/locale/locale_es-ES.ini +++ b/conf/locale/locale_es-ES.ini @@ -343,6 +343,7 @@ releases=Releases file_raw=Raw file_history=Histórico file_view_raw=Ver Raw +file_permalink=Permalink commits.commits=Commits commits.search=Buscar Commits diff --git a/conf/locale/locale_fr-FR.ini b/conf/locale/locale_fr-FR.ini index cd7063f953..f2549b5563 100755 --- a/conf/locale/locale_fr-FR.ini +++ b/conf/locale/locale_fr-FR.ini @@ -341,6 +341,7 @@ releases=Publications file_raw=Raw file_history=Historique file_view_raw=Voir le Raw +file_permalink=Permalink commits.commits=Commissions commits.search=Rechercher des commissions diff --git a/conf/locale/locale_ja-JP.ini b/conf/locale/locale_ja-JP.ini index 1f5faa3d7b..cffdf08f3d 100755 --- a/conf/locale/locale_ja-JP.ini +++ b/conf/locale/locale_ja-JP.ini @@ -341,6 +341,7 @@ releases=リリース file_raw=生データ file_history=履歴 file_view_raw=生データを見る +file_permalink=Permalink commits.commits=コミット commits.search=コミットの検索 diff --git a/conf/locale/locale_lv-LV.ini b/conf/locale/locale_lv-LV.ini index 93dad75422..1e7da6c074 100755 --- a/conf/locale/locale_lv-LV.ini +++ b/conf/locale/locale_lv-LV.ini @@ -341,6 +341,7 @@ releases=Laidieni file_raw=Neapstrādāts file_history=Vēsture file_view_raw=Rādīt neapstrādātu +file_permalink=Permalink commits.commits=Revīzijas commits.search=Meklēt revīzijas diff --git a/conf/locale/locale_nl-NL.ini b/conf/locale/locale_nl-NL.ini index 5f39e42dca..483c35638c 100755 --- a/conf/locale/locale_nl-NL.ini +++ b/conf/locale/locale_nl-NL.ini @@ -343,6 +343,7 @@ releases=Publicaties file_raw=Ruwe file_history=Geschiedenis file_view_raw=Weergave ruwe +file_permalink=Permalink commits.commits=Commits commits.search=Zoeken diff --git a/conf/locale/locale_pl-PL.ini b/conf/locale/locale_pl-PL.ini index e8a4a29d27..bb3bc5ca95 100755 --- a/conf/locale/locale_pl-PL.ini +++ b/conf/locale/locale_pl-PL.ini @@ -343,6 +343,7 @@ releases=Wydania file_raw=Czysty file_history=Historia file_view_raw=Zobacz czysty +file_permalink=Permalink commits.commits=Commity commits.search=Przeszukaj commity diff --git a/conf/locale/locale_pt-BR.ini b/conf/locale/locale_pt-BR.ini index 055d4dec34..82d9a7f59b 100755 --- a/conf/locale/locale_pt-BR.ini +++ b/conf/locale/locale_pt-BR.ini @@ -341,6 +341,7 @@ releases=Lançamentos file_raw=Cru file_history=Histórico file_view_raw=Ver cru +file_permalink=Permalink commits.commits=Commits commits.search=Pesquisar commits diff --git a/conf/locale/locale_ru-RU.ini b/conf/locale/locale_ru-RU.ini index ac1e2c6a1c..66c5b6a4c2 100755 --- a/conf/locale/locale_ru-RU.ini +++ b/conf/locale/locale_ru-RU.ini @@ -341,6 +341,7 @@ releases=Релизы file_raw=Исходник file_history=История file_view_raw=Посмотреть исходник +file_permalink=Permalink commits.commits=Коммиты commits.search=Поиск коммитов diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini index 347e697639..da9435108e 100755 --- a/conf/locale/locale_zh-CN.ini +++ b/conf/locale/locale_zh-CN.ini @@ -343,6 +343,7 @@ releases=版本发布 file_raw=原始文件 file_history=文件历史 file_view_raw=查看原始文件 +file_permalink=Permalink commits.commits=次代码提交 commits.search=搜索提交历史 diff --git a/conf/locale/locale_zh-HK.ini b/conf/locale/locale_zh-HK.ini index 92a3916946..660221091f 100755 --- a/conf/locale/locale_zh-HK.ini +++ b/conf/locale/locale_zh-HK.ini @@ -341,6 +341,7 @@ releases=版本發佈 file_raw=原始文件 file_history=文件歷史 file_view_raw=查看原始文件 +file_permalink=Permalink commits.commits=次代碼提交 commits.search=搜索提交歷史 diff --git a/templates/repo/view_file.tmpl b/templates/repo/view_file.tmpl index d33cc95023..4d11170bd0 100644 --- a/templates/repo/view_file.tmpl +++ b/templates/repo/view_file.tmpl @@ -12,6 +12,11 @@ <strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span> {{end}} {{if not .ReadmeInList}} + {{if not .IsCommit}} + <a class="right" href="{{.RepoLink}}/src/{{.CommitId}}/{{.TreeName}}"> + <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_permalink"}}</button> + </a> + {{end}} <a class="right" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{.TreeName}}"> <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button> </a> From a5f9077e5a7d334e7ec84cedc4d8465ff1e2d910 Mon Sep 17 00:00:00 2001 From: Tiago Pires <tandrepires@gmail.com> Date: Mon, 20 Jul 2015 14:53:53 +0100 Subject: [PATCH 15/18] Update docker image. Shrink docker image. Update from fig (deprecated) to docker-compose. Update README.md. Signed-off-by: Tiago Pires <tandrepires@gmail.com> --- docker/README.md | 21 ++++++++----------- docker/assemble_blocks.sh | 16 +++++++------- docker/blocks/docker_gogs/Dockerfile | 15 ++++++------- docker/blocks/docker_gogs_dev/Dockerfile | 20 +++++++----------- .../{fig => docker-compose} | 0 .../{fig => docker-compose} | 0 .../option_db_mysql/{fig => docker-compose} | 0 .../{fig => docker-compose} | 0 .../{fig => docker-compose} | 0 docker/blocks/w_cache/{fig => docker-compose} | 0 .../w_cache_session/{fig => docker-compose} | 0 docker/blocks/w_db/{fig => docker-compose} | 0 .../blocks/w_db_cache/{fig => docker-compose} | 0 .../{fig => docker-compose} | 0 .../w_db_session/{fig => docker-compose} | 0 docker/blocks/w_none/{fig => docker-compose} | 0 .../blocks/w_session/{fig => docker-compose} | 0 17 files changed, 31 insertions(+), 41 deletions(-) rename docker/blocks/option_cache_memcache/{fig => docker-compose} (100%) rename docker/blocks/option_cache_redis/{fig => docker-compose} (100%) rename docker/blocks/option_db_mysql/{fig => docker-compose} (100%) rename docker/blocks/option_db_postgresql/{fig => docker-compose} (100%) rename docker/blocks/option_session_mysql/{fig => docker-compose} (100%) rename docker/blocks/w_cache/{fig => docker-compose} (100%) rename docker/blocks/w_cache_session/{fig => docker-compose} (100%) rename docker/blocks/w_db/{fig => docker-compose} (100%) rename docker/blocks/w_db_cache/{fig => docker-compose} (100%) rename docker/blocks/w_db_cache_session/{fig => docker-compose} (100%) rename docker/blocks/w_db_session/{fig => docker-compose} (100%) rename docker/blocks/w_none/{fig => docker-compose} (100%) rename docker/blocks/w_session/{fig => docker-compose} (100%) diff --git a/docker/README.md b/docker/README.md index 9f82cf7626..2ef372711f 100644 --- a/docker/README.md +++ b/docker/README.md @@ -3,13 +3,13 @@ Docker TOOLS ARE WRITTEN FOR TESTING AND TO SEE WHAT IT IS! -For this to work you will need the nifty docker tool [fig]. +For this to work you will need the nifty docker tool [docker-compose]. The most simple setup will look like this: ```sh ./assemble_blocks.sh docker_gogs w_db option_db_mysql -fig up +docker-compose up ``` @@ -22,21 +22,21 @@ How does it work ---------------- `./assemble_blocks.sh` will look in `blocks` for subdirectories. -In the subdirectories there are three relevant files: `Dockerfile`, `config` and `fig`. +In the subdirectories there are three relevant files: `Dockerfile`, `config` and `docker-compose`. `Dockerfile` will be copied to `docker/` (also means last `Dockerfile` wins). The `config` file contains lines which will in the gogs docker container end up in `$GOGS_PATH/custom/config/app.ini` and by this gogs will be configured. Here you can define things like the MySQL server for your database block. -The `fig` file will just be added to `fig.yml`, which is used by fig to manage your containers. +The `docker-compose` file will just be added to `docker-compose.yml`, which is used by docker-compose to manage your containers. This includes container linking! Just have a look at them and it will be clear how to write your own blocks. Just some things - - all files (`Dockerfile`, `fig` and `config`) are optional + - all files (`Dockerfile`, `docker-compose` and `config`) are optional - the gogs block should always be the first block Currently the blocks are designed that, the blocks that start with `docker` pull in the base docker image. @@ -57,14 +57,11 @@ Here is a more elaborated example ```sh ./assemble_blocks.sh docker_gogs w_db_cache_session option_db_postgresql option_cache_redis option_session_mysql -fig up +docker-compose up ``` This will set up four containters and link them proberly. One for each of - - - gogs - - database (postgresql) - - cache (redis) +docker-compose - session (mysql) WARNING: This will not work at the Moment! MySQL session is broken! @@ -73,7 +70,7 @@ WARNING: This will not work at the Moment! MySQL session is broken! Remark ------ -After you execute `assemble_blocks.sh` you should always trigger `fig build` to inculde the the new init script `init_gogs.sh` in the docker image. +After you execute `assemble_blocks.sh` you should always trigger `docker-compose build` to inculde the the new init script `init_gogs.sh` in the docker image. If you want to use another GoGS docker file, but keep everything else the same, you can create a block, e.g. `docker_gogs_custom`, with only a `Dockerfile` and call @@ -86,4 +83,4 @@ This will pull in the `Dockerfile` from `docker_gogs` instead of the one from `d `Dockerfile`s for the `master` and `dev` branch are provided as `docker_gogs` and `docker_gogs_dev` -[fig]:http://www.fig.sh/ +[docker-compose]:https://docs.docker.com/compose/ diff --git a/docker/assemble_blocks.sh b/docker/assemble_blocks.sh index 852064de28..3109a6a090 100755 --- a/docker/assemble_blocks.sh +++ b/docker/assemble_blocks.sh @@ -10,8 +10,8 @@ gogs_config_file=conf.tmp gogs_config=config gogs_init_file=$docker_dir/init_gogs.sh -fig_file=fig.yml -fig_config=fig +compose_file=docker-compose.yml +compose_config=docker-compose gogs_init_template=$template_dir/init_gogs.sh.tpl @@ -28,7 +28,7 @@ if [ "$#" == 0 ]; then exit 0 fi -for file in $gogs_config_file $fig_file; do +for file in $gogs_config_file $compose_file; do if [ -e $file ]; then echo "Deleting $file" rm $file @@ -53,10 +53,10 @@ for dir in $@; do echo "" >> $gogs_config_file fi - if [ -e $current_dir/$fig_config ]; then - echo "Adding $current_dir/$fig_config to $fig_file" - cat $current_dir/fig >> $fig_file - echo "" >> $fig_file + if [ -e $current_dir/$compose_config ]; then + echo "Adding $current_dir/$compose_config to $compose_file" + cat $current_dir/$compose_config >> $compose_file + echo "" >> $compose_file fi done @@ -69,4 +69,4 @@ d if [ -e $gogs_config_file ]; then echo "Removing temporary GoGS config" rm $gogs_config_file -fi \ No newline at end of file +fi diff --git a/docker/blocks/docker_gogs/Dockerfile b/docker/blocks/docker_gogs/Dockerfile index efedc31a80..1b58fbcf92 100644 --- a/docker/blocks/docker_gogs/Dockerfile +++ b/docker/blocks/docker_gogs/Dockerfile @@ -1,23 +1,20 @@ -FROM ubuntu:14.04 +FROM buildpack-deps:trusty-scm # This part is taken from the official docker image -------------------- RUN apt-get update && apt-get install -y \ - build-essential ca-certificates curl \ - bzr git mercurial openssh-client\ - --no-install-recommends + build-essential --no-install-recommends ENV GOLANG_VERSION 1.3 -RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ - | tar -v -C /usr/src -xz -WORKDIR /usr/src/go +RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ + | tar -v -C /usr/src -xz -RUN cd src && ./make.bash --no-clean 2>&1 +RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1 ENV PATH /usr/src/go/bin:$PATH -RUN mkdir -p /go/src +RUN mkdir -p /go/src /go/bin && chmod -R 777 /go ENV GOPATH /go ENV PATH /go/bin:$PATH WORKDIR /go diff --git a/docker/blocks/docker_gogs_dev/Dockerfile b/docker/blocks/docker_gogs_dev/Dockerfile index ce653fbe7e..a51d165ee8 100644 --- a/docker/blocks/docker_gogs_dev/Dockerfile +++ b/docker/blocks/docker_gogs_dev/Dockerfile @@ -1,24 +1,20 @@ -FROM ubuntu:14.04 +FROM buildpack-deps:trusty-scm -# This part is derived from the official docker image ------------------ +# This part is taken from the official docker image -------------------- -RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ - apt-get install -qy \ - build-essential ca-certificates curl \ - bzr git mercurial openssh-client\ - --no-install-recommends +RUN apt-get update && apt-get install -y \ + build-essential --no-install-recommends ENV GOLANG_VERSION 1.3 -RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ - | tar -v -C /usr/src -xz -WORKDIR /usr/src/go +RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ + | tar -v -C /usr/src -xz -RUN cd src && ./make.bash --no-clean 2>&1 +RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1 ENV PATH /usr/src/go/bin:$PATH -RUN mkdir -p /go/src +RUN mkdir -p /go/src /go/bin && chmod -R 777 /go ENV GOPATH /go ENV PATH /go/bin:$PATH WORKDIR /go diff --git a/docker/blocks/option_cache_memcache/fig b/docker/blocks/option_cache_memcache/docker-compose similarity index 100% rename from docker/blocks/option_cache_memcache/fig rename to docker/blocks/option_cache_memcache/docker-compose diff --git a/docker/blocks/option_cache_redis/fig b/docker/blocks/option_cache_redis/docker-compose similarity index 100% rename from docker/blocks/option_cache_redis/fig rename to docker/blocks/option_cache_redis/docker-compose diff --git a/docker/blocks/option_db_mysql/fig b/docker/blocks/option_db_mysql/docker-compose similarity index 100% rename from docker/blocks/option_db_mysql/fig rename to docker/blocks/option_db_mysql/docker-compose diff --git a/docker/blocks/option_db_postgresql/fig b/docker/blocks/option_db_postgresql/docker-compose similarity index 100% rename from docker/blocks/option_db_postgresql/fig rename to docker/blocks/option_db_postgresql/docker-compose diff --git a/docker/blocks/option_session_mysql/fig b/docker/blocks/option_session_mysql/docker-compose similarity index 100% rename from docker/blocks/option_session_mysql/fig rename to docker/blocks/option_session_mysql/docker-compose diff --git a/docker/blocks/w_cache/fig b/docker/blocks/w_cache/docker-compose similarity index 100% rename from docker/blocks/w_cache/fig rename to docker/blocks/w_cache/docker-compose diff --git a/docker/blocks/w_cache_session/fig b/docker/blocks/w_cache_session/docker-compose similarity index 100% rename from docker/blocks/w_cache_session/fig rename to docker/blocks/w_cache_session/docker-compose diff --git a/docker/blocks/w_db/fig b/docker/blocks/w_db/docker-compose similarity index 100% rename from docker/blocks/w_db/fig rename to docker/blocks/w_db/docker-compose diff --git a/docker/blocks/w_db_cache/fig b/docker/blocks/w_db_cache/docker-compose similarity index 100% rename from docker/blocks/w_db_cache/fig rename to docker/blocks/w_db_cache/docker-compose diff --git a/docker/blocks/w_db_cache_session/fig b/docker/blocks/w_db_cache_session/docker-compose similarity index 100% rename from docker/blocks/w_db_cache_session/fig rename to docker/blocks/w_db_cache_session/docker-compose diff --git a/docker/blocks/w_db_session/fig b/docker/blocks/w_db_session/docker-compose similarity index 100% rename from docker/blocks/w_db_session/fig rename to docker/blocks/w_db_session/docker-compose diff --git a/docker/blocks/w_none/fig b/docker/blocks/w_none/docker-compose similarity index 100% rename from docker/blocks/w_none/fig rename to docker/blocks/w_none/docker-compose diff --git a/docker/blocks/w_session/fig b/docker/blocks/w_session/docker-compose similarity index 100% rename from docker/blocks/w_session/fig rename to docker/blocks/w_session/docker-compose From a6596f223175547952816351905c34ccf3e0b84f Mon Sep 17 00:00:00 2001 From: Duncan <duncan@vtllf.org> Date: Tue, 21 Jul 2015 15:19:56 +1200 Subject: [PATCH 16/18] Prevent browsers from leaking referrer headers --- templates/base/head.tmpl | 1 + templates/base/head_old.tmpl | 1 + templates/ng/base/head.tmpl | 1 + 3 files changed, 3 insertions(+) diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index d057754410..8551801d01 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -6,6 +6,7 @@ <meta name="author" content="Gogs - Go Git Service" /> <meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" /> <meta name="keywords" content="go, git, self-hosted, gogs"> + <meta name="referrer" content="no-referrer" /> <meta name="_csrf" content="{{.CsrfToken}}" /> {{if .GoGetImport}} <meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}"> diff --git a/templates/base/head_old.tmpl b/templates/base/head_old.tmpl index e04fe2e1a7..fc2a86788d 100644 --- a/templates/base/head_old.tmpl +++ b/templates/base/head_old.tmpl @@ -8,6 +8,7 @@ <meta name="author" content="Gogs - Go Git Service" /> <meta name="description" content="Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language" /> <meta name="keywords" content="go, git"> + <meta name="referrer" content="no-referrer" /> <meta name="_csrf" content="{{.CsrfToken}}" /> {{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}} diff --git a/templates/ng/base/head.tmpl b/templates/ng/base/head.tmpl index f2a235bd43..6d5001a9cb 100644 --- a/templates/ng/base/head.tmpl +++ b/templates/ng/base/head.tmpl @@ -6,6 +6,7 @@ <meta name="author" content="Gogs - Go Git Service" /> <meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" /> <meta name="keywords" content="go, git, self-hosted, gogs"> + <meta name="referrer" content="no-referrer" /> <meta name="_csrf" content="{{.CsrfToken}}" /> {{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}} From 30beb59fd8fdf2ae06cc0253930deb9434bb8a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20San=20Juli=C3=A1n?= <manferwebs@gmail.com> Date: Thu, 23 Jul 2015 11:46:20 +0200 Subject: [PATCH 17/18] install admin password field fix Admin Password field in install form must be of type password --- templates/install.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/install.tmpl b/templates/install.tmpl index ece78859e9..df98737626 100644 --- a/templates/install.tmpl +++ b/templates/install.tmpl @@ -187,7 +187,7 @@ </div> <div class="inline field {{if .Err_AdminPasswd}}error{{end}}"> <label for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label> - <input id="admin_passwd" name="admin_passwd" value="{{.admin_passwd}}"> + <input id="admin_passwd" name="admin_passwd" type="password" value="{{.admin_passwd}}"> </div> <div class="inline field {{if .Err_AdminPasswd}}error{{end}}"> <label for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label> @@ -210,4 +210,4 @@ </div> </div> </div> -{{template "base/footer" .}} \ No newline at end of file +{{template "base/footer" .}} From 04e596f984ae53cf9b933920a2a7f9b0e8c7a881 Mon Sep 17 00:00:00 2001 From: Unknwon <u@gogs.io> Date: Fri, 24 Jul 2015 16:52:01 +0800 Subject: [PATCH 18/18] #1369: nil pointer when add repo to team --- models/access.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/models/access.go b/models/access.go index 51b60c9970..54d0f099c6 100644 --- a/models/access.go +++ b/models/access.go @@ -173,13 +173,12 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6 func (repo *Repository) recalculateTeamAccesses(e Engine, ignTeamID int64) (err error) { accessMap := make(map[int64]AccessMode, 20) - if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { - return fmt.Errorf("refreshCollaboratorAccesses: %v", err) - } - if err = repo.getOwner(e); err != nil { return err } + if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { + return fmt.Errorf("refreshCollaboratorAccesses: %v", err) + } if repo.Owner.IsOrganization() { if err = repo.Owner.getTeams(e); err != nil { return err