summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gopmfile41
-rw-r--r--.travis.yml3
-rw-r--r--CONTRIBUTING.md20
-rw-r--r--README.md30
-rw-r--r--cmd/web.go3
-rw-r--r--conf/app.ini2
-rwxr-xr-xconf/locale/locale_de-DE.ini1
-rw-r--r--conf/locale/locale_en-US.ini4
-rwxr-xr-xconf/locale/locale_es-ES.ini1
-rwxr-xr-xconf/locale/locale_fr-CA.ini1
-rwxr-xr-xconf/locale/locale_ja-JP.ini1
-rwxr-xr-xconf/locale/locale_lv-LV.ini1
-rwxr-xr-xconf/locale/locale_nl-NL.ini5
-rwxr-xr-xconf/locale/locale_ru-RU.ini19
-rwxr-xr-xconf/locale/locale_zh-CN.ini1
-rwxr-xr-xconf/locale/locale_zh-HK.ini1
-rw-r--r--gogs.go2
-rw-r--r--models/models.go10
-rw-r--r--models/repo.go1
-rw-r--r--models/webhook.go2
-rw-r--r--modules/auth/repo_form.go1
-rw-r--r--modules/base/template.go9
-rw-r--r--modules/base/tool.go67
-rw-r--r--modules/middleware/repo.go3
-rw-r--r--modules/setting/setting.go18
-rw-r--r--routers/install.go6
-rw-r--r--routers/repo/setting.go3
-rw-r--r--templates/.VERSION2
-rw-r--r--templates/admin/auth/list.tmpl4
-rw-r--r--templates/admin/config.tmpl4
-rw-r--r--templates/admin/org/list.tmpl2
-rw-r--r--templates/admin/repo/list.tmpl2
-rw-r--r--templates/admin/user/list.tmpl2
-rw-r--r--templates/base/head.tmpl2
-rw-r--r--templates/ng/base/head.tmpl2
-rw-r--r--templates/repo/settings/options.tmpl5
-rw-r--r--templates/user/auth/signin.tmpl2
-rw-r--r--templates/user/profile.tmpl2
-rw-r--r--templates/user/settings/applications.tmpl2
-rw-r--r--templates/user/settings/social.tmpl2
-rw-r--r--templates/user/settings/sshkeys.tmpl2
41 files changed, 126 insertions, 165 deletions
diff --git a/.gopmfile b/.gopmfile
index d09e632bd7..e28fe0d3c0 100644
--- a/.gopmfile
+++ b/.gopmfile
@@ -2,35 +2,34 @@
path = github.com/gogits/gogs
[deps]
-github.com/beego/memcache = commit:2aea774416
-github.com/bradfitz/gomemcache =
+github.com/bradfitz/gomemcache = commit:72a68649ba
github.com/Unknwon/cae = commit:2e70a1351b
-github.com/Unknwon/com = commit:d9bcf409c8
+github.com/Unknwon/com = commit:188d690b1a
github.com/Unknwon/i18n = commit:1e88666229
-github.com/Unknwon/macaron =
-github.com/codegangsta/cli = commit:a14c5b47c7
-github.com/go-sql-driver/mysql = commit:04cf947760
-github.com/go-xorm/core = commit:e7882d8b00
-github.com/go-xorm/xorm = commit:dcc529b68a
+github.com/Unknwon/macaron = commit:e089393c3f
+github.com/codegangsta/cli = commit:6086d7927e
+github.com/go-sql-driver/mysql = commit:27633f0519
+github.com/go-xorm/core = commit:16cb27928f
+github.com/go-xorm/xorm = commit:f2d3be988e
github.com/gogits/chardet = commit:2404f77725
github.com/gogits/go-gogs-client = commit:92e76d616a
-github.com/lib/pq = commit:3e3efe51a0
-github.com/macaron-contrib/binding = commit:0fbe4b9707
-github.com/macaron-contrib/cache =
-github.com/macaron-contrib/captcha = commit:3567dc48b8
-github.com/macaron-contrib/csrf = commit:3ea14e7ee7
-github.com/macaron-contrib/i18n = commit:0ee0539c84
+github.com/lib/pq = commit:835d5eb08d
+github.com/macaron-contrib/binding = commit:dc739fabc3
+github.com/macaron-contrib/cache = commit:b68f6b448f
+github.com/macaron-contrib/captcha = commit:066c50c7eb
+github.com/macaron-contrib/csrf = commit:98ddf5a710
+github.com/macaron-contrib/i18n = commit:eeebd44f64
github.com/macaron-contrib/oauth2 = commit:8f394c3629
-github.com/macaron-contrib/session =
-github.com/macaron-contrib/toolbox = commit:57127bcc89
-github.com/mattn/go-sqlite3 = commit:a80c27ba33
-github.com/microcosm-cc/bluemonday =
+github.com/macaron-contrib/session = commit:8e8d938b27
+github.com/macaron-contrib/toolbox = commit:acbfe36e16
+github.com/mattn/go-sqlite3 = commit:25d045f12a
+github.com/microcosm-cc/bluemonday = commit:fcd0f5074e
github.com/nfnt/resize = commit:8f44931448
-github.com/russross/blackfriday = commit:05b8cefd6a
-github.com/shurcooL/go = commit:48293cbc7a
+github.com/russross/blackfriday = commit:77efab57b2
+github.com/shurcooL/go = commit:329f57438c
golang.org/x/net =
golang.org/x/text =
-gopkg.in/ini.v1 = commit:28ad8c408b
+gopkg.in/ini.v1 = commit:4febc4104c
gopkg.in/redis.v2 = commit:e617904962
[res]
diff --git a/.travis.yml b/.travis.yml
index 85e5f396ea..4149e17316 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,4 +12,5 @@ script: go build -v
notifications:
email:
- - u@gogs.io \ No newline at end of file
+ - u@gogs.io
+ slack: gophercn:o5pSanyTeNhnfYc3QnG0X7Wx \ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d3619018a4..fc21ee0386 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,20 +2,20 @@
> This guidelines sheet is forked from [CONTRIBUTING.md](https://github.com/drone/drone/blob/master/CONTRIBUTING.md).
-Gogs is not perfect and it has bugs, or incomplete features for rare cases. You're welcome to tell us or contribute some code. This document describes details about how can you contribute to Gogs project.
+Gogs is not perfect, and it has bugs or incomplete features in rare cases. You're welcome to tell us, or to contribute some code. This document describes details about how can you contribute to Gogs project.
## Contribution guidelines
Depends on the situation, you will:
-- Find bug, create an issue
-- Need more functionality, make a feature request
-- Want to contribute code, open a pull request
-- Run into issue, need help
+- Find a bug and create an issue
+- Need more functionality and make a feature request
+- Want to contribute code and open a pull request
+- Run into issue and need help
### Bug Report
-If you find or consider something is a bug, please create a issue on [GitHub](https://github.com/gogits/gogs/issues). To reduce unnecessary time wasting of interacting and waiting with team members, please include following information in the first place with a comfortable form for you:
+If you find something you consider a bug, please create a issue on [GitHub](https://github.com/gogits/gogs/issues). To avoid wasting time and reduce back-and-forth communication with team members, please include at least the following information in a form comfortable for you:
- Bug Description
- Gogs Version
@@ -28,7 +28,7 @@ Please take a moment to check that an issue on [GitHub](https://github.com/gogit
#### Bug Report Example
-Gogs crashed when create repository with license, using v0.5.13.0207, SQLite3, Git 1.9.0, Ubuntu 12.04.
+Gogs crashed when creating a repository with a license, using v0.5.13.0207, SQLite3, Git 1.9.0, Ubuntu 12.04.
Error log:
@@ -38,11 +38,11 @@ Error log:
### Feature Request
-There is no standard form of making a feature request, just try to describe the feature as clear as possible because team members may not have experience with the functionality you're talking about.
+There is no standard form of making a feature request. Just try to describe the feature as clearly as possible, because team members may not have experience with the functionality you're talking about.
### Pull Request
-Pull requests are always welcome, but note that **ALL PULL REQUESTS MUST SEND TO `DEV` BRANCH**.
+Pull requests are always welcome, but note that **ALL PULL REQUESTS MUST APPLY TO THE `DEV` BRANCH**.
We are always thrilled to receive pull requests, and do our best to process them as fast as possible. Not sure if that typo is worth a pull request? Do it! We will appreciate it.
@@ -52,7 +52,7 @@ We're trying very hard to keep Gogs lean and focused. We don't want it to do eve
### Ask For Help
-Before open any new issue, please check your problem on [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md) and [FAQs](http://gogs.io/docs/intro/faqs.html) pages.
+Before opening a new issue, please check to make sure your problem isn't already addressed on the [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md) and [FAQs](http://gogs.io/docs/intro/faqs.html) pages.
## Things To Notice
diff --git a/README.md b/README.md
index a601bb773b..150aa64de8 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/gogits/gogs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.
+Gogs (Go Git Service) is a painless self-hosted Git service written in Go.
![Demo](http://gogs.qiniudn.com/gogs_demo.gif)
@@ -12,9 +12,9 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.
### NOTICES
- Due to testing purpose, data of [try.gogs.io](https://try.gogs.io) has been reset in **Jan 28, 2015** and will reset multiple times after. Please do **NOT** put your important data on the site.
-- Demo site [try.gogs.io](https://try.gogs.io) is running under `dev` branch.
+- The demo site [try.gogs.io](https://try.gogs.io) is running under `dev` branch.
- You **MUST** read [CONTRIBUTING.md](CONTRIBUTING.md) before you start filing a issue or making a Pull Request.
-- If you think there are vulnerabilities in the project, please talk private to **u@gogs.io**, thanks!
+- If you think there are vulnerabilities in the project, please talk privately to **u@gogs.io**. Thanks!
#### Other language version
@@ -22,15 +22,15 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.
## Purpose
-The goal of this project is to make the easiest, fastest and most painless way to set up a self-hosted Git service. With Go, this can be done in independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, and Windows.
+The goal of this project is to make the easiest, fastest, and most painless way to set up a self-hosted Git service. With Go, this can be done via an independent binary distribution across **ALL platforms** that Go supports, including Linux, Mac OS X, and Windows.
## Overview
-- Please see [Documentation](http://gogs.io/docs/intro/) for project design, known issues, and change log.
-- See [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team.
-- Try it before anything? Do it [online](https://try.gogs.io/unknwon/gogs) or go down to **Installation -> Install from binary** section!
-- Having troubles? Get help from [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md).
-- Want to help on localization? Check out [Crowdin](https://crowdin.com/project/gogs)!
+- Please see the [Documentation](http://gogs.io/docs/intro/) for project design, known issues, and change log.
+- See the [Trello Board](https://trello.com/b/uxAoeLUl/gogs-go-git-service) to follow the develop team.
+- Want to try it before doing anything else? Do it [online](https://try.gogs.io/unknwon/gogs) or go down to the **Installation -> Install from binary** section!
+- Having trouble? Get help with [Troubleshooting](http://gogs.io/docs/intro/troubleshooting.md).
+- Want to help with localization? Check out [Crowdin](https://crowdin.com/project/gogs)!
## Features
@@ -46,22 +46,22 @@ The goal of this project is to make the easiest, fastest and most painless way t
- Repository Git hooks
- Add/remove repository collaborators
- Gravatar and cache support
-- Mail service(register, issue)
+- Mail service (register, issue)
- Administration panel
- Slack webhook integration
- Drone CI integration
- Supports MySQL, PostgreSQL and SQLite3
-- Social account login(GitHub, Google, QQ, Weibo)
-- Multi-language support([10 languages](https://crowdin.com/project/gogs))
+- Social account login (GitHub, Google, QQ, Weibo)
+- Multi-language support ([10 languages](https://crowdin.com/project/gogs))
## System Requirements
-- A cheap Raspberry Pi is powerful enough to match the minimal requirement.
-- 4 CPU Cores and 1GB RAM would be the baseline for teamwork.
+- A cheap Raspberry Pi is powerful enough for basic functionality.
+- At least 4 CPU cores and 1GB RAM would be the baseline for teamwork.
## Installation
-Make sure you install [Prerequirements](http://gogs.io/docs/installation/) first.
+Make sure you install the [prerequisites](http://gogs.io/docs/installation/) first.
There are 5 ways to install Gogs:
diff --git a/cmd/web.go b/cmd/web.go
index 3284acb9df..4b06a882c0 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -166,12 +166,11 @@ func newMacaron() *macaron.Macaron {
}
func runWeb(ctx *cli.Context) {
- checkVersion()
-
if ctx.IsSet("config") {
setting.CustomConf = ctx.String("config")
}
routers.GlobalInit()
+ checkVersion()
m := newMacaron()
diff --git a/conf/app.ini b/conf/app.ini
index e80d77a9ca..2019557bd4 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -90,7 +90,7 @@ TASK_INTERVAL = 1
; Deliver timeout in seconds
DELIVER_TIMEOUT = 5
; Allow insecure certification
-ALLOW_INSECURE_CERTIFICATION = false
+SKIP_TLS_VERIFY = false
[mailer]
ENABLED = false
diff --git a/conf/locale/locale_de-DE.ini b/conf/locale/locale_de-DE.ini
index 1dc7523b0f..31ee931b9e 100755
--- a/conf/locale/locale_de-DE.ini
+++ b/conf/locale/locale_de-DE.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Passwortcode Lebensdauer
config.webhook_config=Webhook-Einstellungen
config.task_interval=Task-Intervall
config.deliver_timeout=Zeitlimit für Zustellung
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=Mailer-Einstellungen
config.mailer_enabled=Aktiviert
config.mailer_name=Name
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini
index 9e691171a4..54b80abb5e 100644
--- a/conf/locale/locale_en-US.ini
+++ b/conf/locale/locale_en-US.ini
@@ -281,8 +281,6 @@ init_readme = Initialize this repository with a README.md
create_repo = Create Repository
default_branch = Default Branch
mirror_interval = Mirror Interval (hour)
-goget_meta = Go-Get Meta
-goget_meta_helper = This repository will be <span class="label label-blue label-radius">Go-Getable</span>
need_auth = Need Authorization
migrate_type = Migration Type
@@ -647,7 +645,7 @@ config.reset_password_code_lives = Reset Password Code Lives
config.webhook_config = Webhook Configuration
config.task_interval = Task Interval
config.deliver_timeout = Deliver Timeout
-config.allow_insecure_certification = Allow Insecure Certification
+config.skip_tls_verify = Skip TLS Verify
config.mailer_config = Mailer Configuration
config.mailer_enabled = Enabled
config.mailer_name = Name
diff --git a/conf/locale/locale_es-ES.ini b/conf/locale/locale_es-ES.ini
index d7fab5f961..046bab8969 100755
--- a/conf/locale/locale_es-ES.ini
+++ b/conf/locale/locale_es-ES.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Reset Password Code Lives
config.webhook_config=Webhook Configuration
config.task_interval=Task Interval
config.deliver_timeout=Deliver Timeout
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=Mailer Configuration
config.mailer_enabled=Enabled
config.mailer_name=Name
diff --git a/conf/locale/locale_fr-CA.ini b/conf/locale/locale_fr-CA.ini
index 94a2e96867..0aeae3423f 100755
--- a/conf/locale/locale_fr-CA.ini
+++ b/conf/locale/locale_fr-CA.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Réinitialiser le Mot De Passe des Limites de C
config.webhook_config=Configuration Webhook
config.task_interval=Intervalles de Tâches
config.deliver_timeout=Expiration d'Envoi
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=Configuration du Maileur
config.mailer_enabled=Activé
config.mailer_name=Nom
diff --git a/conf/locale/locale_ja-JP.ini b/conf/locale/locale_ja-JP.ini
index 29ea94e4da..441da8feb8 100755
--- a/conf/locale/locale_ja-JP.ini
+++ b/conf/locale/locale_ja-JP.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=パスワードリンクの有効期限をリ
config.webhook_config=Webhook設定
config.task_interval=タスクの間隔
config.deliver_timeout=送信タイムアウト
+config.skip_tls_verify=TLSの確認を省略
config.mailer_config=メーラーの構成
config.mailer_enabled=有効にした
config.mailer_name=名前
diff --git a/conf/locale/locale_lv-LV.ini b/conf/locale/locale_lv-LV.ini
index 6ab814806f..b640972c81 100755
--- a/conf/locale/locale_lv-LV.ini
+++ b/conf/locale/locale_lv-LV.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Paroles atiestatīšanas koda ilgums
config.webhook_config=Tīkla āķu konfigurācija
config.task_interval=Uzdevuma intervāls
config.deliver_timeout=Piegādes noildze
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=Sūtītāja konfigurācija
config.mailer_enabled=Iespējots
config.mailer_name=Nosaukums
diff --git a/conf/locale/locale_nl-NL.ini b/conf/locale/locale_nl-NL.ini
index adc98c9d5a..0a4ecb43a7 100755
--- a/conf/locale/locale_nl-NL.ini
+++ b/conf/locale/locale_nl-NL.ini
@@ -516,8 +516,8 @@ dashboard.git_gc_repos=Garbage collectie uitvoeren
dashboard.git_gc_repos_success=Garbage collectie met succes uitgevoerd.
dashboard.resync_all_sshkeys=Herschrijf '.ssh/authorized_keys' (Let op: alle sleutels die niet van Gogs zijn zullen verloren gaan!)
dashboard.resync_all_sshkeys_success=Alle publieke sleutels zijn herschreven.
-dashboard.resync_all_update_hooks=Rewrite all update hook of repositories (needed when custom config path is changed)
-dashboard.resync_all_update_hooks_success=All repositories' update hook have been rewritten successfully.
+dashboard.resync_all_update_hooks=Herschrijf alle repositorie-hooks (nodig als de configuratie bestandslocatie is gewijzigd)
+dashboard.resync_all_update_hooks_success=Alle repositorie-hooks zijn herschreven.
dashboard.server_uptime=Uptime server
dashboard.current_goroutine=Huidige Goroutines
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Reset wachtwoord Code leven
config.webhook_config=Webhook configuratie
config.task_interval=Taakinterval
config.deliver_timeout=Bezorging verlooptijd
+config.skip_tls_verify=TLS certificaat controle overslaan
config.mailer_config=Mailerconfiguatie
config.mailer_enabled=Ingeschakeld
config.mailer_name=Naam
diff --git a/conf/locale/locale_ru-RU.ini b/conf/locale/locale_ru-RU.ini
index aa2c0ee558..e21dca14df 100755
--- a/conf/locale/locale_ru-RU.ini
+++ b/conf/locale/locale_ru-RU.ini
@@ -58,11 +58,11 @@ repo_path_helper=Всех удаленные репозитории Git буде
run_user=Пользователь
run_user_helper=У пользователя должен быть доступ к пути к корню репозитория и к запуску Gogs.
domain=Домен
-domain_helper=This affects SSH clone URLs.
-http_port=HTTP Port
-http_port_helper=Port number which application will listen on.
+domain_helper=Влияет на URL-адреса для клонирования по SSH.
+http_port=Порт HTTP
+http_port_helper=Номер порта, который приложение будет слушать.
app_url=URL приложения
-app_url_helper=This affects HTTP/HTTPS clone URL and somewhere in e-mail.
+app_url_helper=Этот параметр влияет на URL для клонирования по HTTP/HTTPS и на адреса в электронной почте.
email_title=Настройки службы электронной почты (опционально)
smtp_host=Узел SMTP
mailer_user=Электронная почта отправителя
@@ -80,7 +80,7 @@ test_git_failed=Не удалось проверить 'git' команду: %v
sqlite3_not_available=Ваша версия не поддерживает SQLite3, пожалуйста скачайте официальную бинарную версию от %s, а не версию gobuild.
invalid_db_setting=Настройки базы данных не правильные: %v
invalid_repo_path=Недопустимый путь к корню репозитория: %v
-run_user_not_match=Run user isn't the current user: %s -> %s
+run_user_not_match=Текущий пользователь не является пользователем для запуска: %s -> %s
save_config_failed=Не удалось сохранить конфигурацию: %v
invalid_admin_setting=Указан недопустимый параметр учетной записи администратора: %v
install_success=Добро пожаловать! Мы рады, что вы выбрали Gogs. Веселитесь и берегите себя.
@@ -88,7 +88,7 @@ install_success=Добро пожаловать! Мы рады, что вы вы
[home]
uname_holder=Имя пользователь или E-mail
password_holder=Пароль
-switch_dashboard_context=Switch Dashboard Context
+switch_dashboard_context=Переключить контекст панели управления
my_repos=Мои репозитории
collaborative_repos=Совместные репозитории
my_orgs=Моя Организация
@@ -280,9 +280,9 @@ license_helper=Выберите файл лицензии
init_readme=Создать репозиторий с файлом README.md
create_repo=Создание репозитория
default_branch=Ветка по умолчанию
-mirror_interval=Mirror Interval (hour)
-goget_meta=Go-Get Meta
-goget_meta_helper=This repository will be <span class="label label-blue label-radius">Go-Getable</span>
+mirror_interval=Интервал зеркалирования (час)
+goget_meta=Meta-тег для go get
+goget_meta_helper=Репозиторий будет доступен для <span class="label label-blue label-radius">go get</span>
need_auth=Требуется авторизация
migrate_type=Тип миграции
@@ -647,6 +647,7 @@ config.reset_password_code_lives=Reset Password Code Lives
config.webhook_config=Настройка автоматического обновления репозиции
config.task_interval=Интервал задания
config.deliver_timeout=Задержка доставки
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=Настройки почты
config.mailer_enabled=Включено
config.mailer_name=Имя
diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini
index efeca15adb..3537068228 100755
--- a/conf/locale/locale_zh-CN.ini
+++ b/conf/locale/locale_zh-CN.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=重置密码链接有效期
config.webhook_config=Web 钩子配置
config.task_interval=任务周期
config.deliver_timeout=推送超时
+config.skip_tls_verify=忽略 TLS 验证
config.mailer_config=邮件配置
config.mailer_enabled=启用服务
config.mailer_name=发送者名称
diff --git a/conf/locale/locale_zh-HK.ini b/conf/locale/locale_zh-HK.ini
index 0c9ba19091..a9b51a5b0c 100755
--- a/conf/locale/locale_zh-HK.ini
+++ b/conf/locale/locale_zh-HK.ini
@@ -647,6 +647,7 @@ config.reset_password_code_lives=重置密碼連結有效期
config.webhook_config=Web 鉤子配置
config.task_interval=任務周期
config.deliver_timeout=推送超時
+config.skip_tls_verify=Skip TLS Verify
config.mailer_config=郵件配置
config.mailer_enabled=啟用服務
config.mailer_name=發送者名稱
diff --git a/gogs.go b/gogs.go
index b2f45b333f..34790b7258 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-const APP_VER = "0.5.13.0210 Beta"
+const APP_VER = "0.5.13.0214 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/models/models.go b/models/models.go
index 3eeeabda3f..486aceac22 100644
--- a/models/models.go
+++ b/models/models.go
@@ -15,7 +15,7 @@ import (
"github.com/go-xorm/xorm"
_ "github.com/lib/pq"
- "github.com/gogits/gogs/models/migrations"
+ // "github.com/gogits/gogs/models/migrations"
"github.com/gogits/gogs/modules/setting"
)
@@ -121,7 +121,7 @@ func SetEngine() (err error) {
if err != nil {
return fmt.Errorf("models.init(fail to create xorm.log): %v", err)
}
- x.Logger = xorm.NewSimpleLogger(f)
+ x.SetLogger(xorm.NewSimpleLogger(f))
x.ShowSQL = true
x.ShowInfo = true
@@ -136,9 +136,9 @@ func NewEngine() (err error) {
return err
}
- if err = migrations.Migrate(x); err != nil {
- return err
- }
+ // if err = migrations.Migrate(x); err != nil {
+ // return err
+ // }
if err = x.StoreEngine("InnoDB").Sync2(tables...); err != nil {
return fmt.Errorf("sync database struct error: %v\n", err)
diff --git a/models/repo.go b/models/repo.go
index cdb838a1fb..179120a311 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -154,7 +154,6 @@ type Repository struct {
IsPrivate bool
IsBare bool
- IsGoget bool
IsMirror bool
*Mirror `xorm:"-"`
diff --git a/models/webhook.go b/models/webhook.go
index 34349bb598..96af0b6967 100644
--- a/models/webhook.go
+++ b/models/webhook.go
@@ -315,7 +315,7 @@ func DeliverHooks() {
req := httplib.Post(t.Url).SetTimeout(timeout, timeout).
Header("X-Gogs-Delivery", t.Uuid).
Header("X-Gogs-Event", string(t.EventType)).
- SetTLSClientConfig(&tls.Config{InsecureSkipVerify: setting.Webhook.AllowInsecureCertification})
+ SetTLSClientConfig(&tls.Config{InsecureSkipVerify: setting.Webhook.SkipTLSVerify})
switch t.ContentType {
case JSON:
diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go
index 36e62f04fb..c771dd59b8 100644
--- a/modules/auth/repo_form.go
+++ b/modules/auth/repo_form.go
@@ -52,7 +52,6 @@ type RepoSettingForm struct {
Branch string `form:"branch"`
Interval int `form:"interval"`
Private bool `form:"private"`
- GoGet bool `form:"goget"`
}
func (f *RepoSettingForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
diff --git a/modules/base/template.go b/modules/base/template.go
index f3fa138578..0fd519e6c5 100644
--- a/modules/base/template.go
+++ b/modules/base/template.go
@@ -126,8 +126,13 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{
return a + b
},
"ActionIcon": ActionIcon,
- "DateFormat": DateFormat,
- "List": List,
+ "DateFmtLong": func(t time.Time) string {
+ return t.Format(time.RFC1123Z)
+ },
+ "DateFmtShort": func(t time.Time) string {
+ return t.Format("Jan 02, 2006")
+ },
+ "List": List,
"Mail2Domain": func(mail string) string {
if !strings.Contains(mail, "@") {
return "try.gogs.io"
diff --git a/modules/base/tool.go b/modules/base/tool.go
index 5043364cec..55e6dffd96 100644
--- a/modules/base/tool.go
+++ b/modules/base/tool.go
@@ -126,7 +126,7 @@ func VerifyTimeLimitCode(data string, minutes int, code string) bool {
retCode := CreateTimeLimitCode(data, minutes, start)
if retCode == code && minutes > 0 {
// check time is expired or not
- before, _ := DateParse(start, "YmdHi")
+ before, _ := time.ParseInLocation("200601021504", start, time.Local)
now := time.Now()
if before.Add(time.Minute*time.Duration(minutes)).Unix() > now.Unix() {
return true
@@ -141,7 +141,7 @@ const TimeLimitCodeLength = 12 + 6 + 40
// create a time limit code
// code format: 12 length date time string + 6 minutes string + 40 sha1 encoded string
func CreateTimeLimitCode(data string, minutes int, startInf interface{}) string {
- format := "YmdHi"
+ format := "200601021504"
var start, end time.Time
var startStr, endStr string
@@ -149,16 +149,16 @@ func CreateTimeLimitCode(data string, minutes int, startInf interface{}) string
if startInf == nil {
// Use now time create code
start = time.Now()
- startStr = DateFormat(start, format)
+ startStr = start.Format(format)
} else {
// use start string create code
startStr = startInf.(string)
- start, _ = DateParse(startStr, format)
- startStr = DateFormat(start, format)
+ start, _ = time.ParseInLocation(format, startStr, time.Local)
+ startStr = start.Format(format)
}
end = start.Add(time.Minute * time.Duration(minutes))
- endStr = DateFormat(end, format)
+ endStr = end.Format(format)
// create sha1 encode string
sh := sha1.New()
@@ -420,58 +420,3 @@ func Subtract(left interface{}, right interface{}) interface{} {
return fleft + float64(rleft) - (fright + float64(rright))
}
}
-
-// DateFormat pattern rules.
-var datePatterns = []string{
- // year
- "Y", "2006", // A full numeric representation of a year, 4 digits Examples: 1999 or 2003
- "y", "06", //A two digit representation of a year Examples: 99 or 03
-
- // month
- "m", "01", // Numeric representation of a month, with leading zeros 01 through 12
- "n", "1", // Numeric representation of a month, without leading zeros 1 through 12
- "M", "Jan", // A short textual representation of a month, three letters Jan through Dec
- "F", "January", // A full textual representation of a month, such as January or March January through December
-
- // day
- "d", "02", // Day of the month, 2 digits with leading zeros 01 to 31
- "j", "2", // Day of the month without leading zeros 1 to 31
-
- // week
- "D", "Mon", // A textual representation of a day, three letters Mon through Sun
- "l", "Monday", // A full textual representation of the day of the week Sunday through Saturday
-
- // time
- "g", "3", // 12-hour format of an hour without leading zeros 1 through 12
- "G", "15", // 24-hour format of an hour without leading zeros 0 through 23
- "h", "03", // 12-hour format of an hour with leading zeros 01 through 12
- "H", "15", // 24-hour format of an hour with leading zeros 00 through 23
-
- "a", "pm", // Lowercase Ante meridiem and Post meridiem am or pm
- "A", "PM", // Uppercase Ante meridiem and Post meridiem AM or PM
-
- "i", "04", // Minutes with leading zeros 00 to 59
- "s", "05", // Seconds, with leading zeros 00 through 59
-
- // time zone
- "T", "MST",
- "P", "-07:00",
- "O", "-0700",
-
- // RFC 2822
- "r", time.RFC1123Z,
-}
-
-// Parse Date use PHP time format.
-func DateParse(dateString, format string) (time.Time, error) {
- replacer := strings.NewReplacer(datePatterns...)
- format = replacer.Replace(format)
- return time.ParseInLocation(format, dateString, time.Local)
-}
-
-// Date takes a PHP like date func to Go's time format.
-func DateFormat(t time.Time, format string) string {
- replacer := strings.NewReplacer(datePatterns...)
- format = replacer.Replace(format)
- return t.Format(format)
-}
diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go
index 1ab158dd6d..67a9eda691 100644
--- a/modules/middleware/repo.go
+++ b/modules/middleware/repo.go
@@ -394,8 +394,7 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler {
}
ctx.Data["CloneLink"] = ctx.Repo.CloneLink
- if ctx.Repo.Repository.IsGoget {
- ctx.Data["GoGetLink"] = fmt.Sprintf("%s%s/%s", setting.AppUrl, u.LowerName, repo.LowerName)
+ if ctx.Query("go-get") == "1" {
ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.LowerName, repo.LowerName)
}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index d71a8cda55..52dca3f041 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -69,9 +69,9 @@ var (
// Webhook settings.
Webhook struct {
- TaskInterval int
- DeliverTimeout int
- AllowInsecureCertification bool
+ TaskInterval int
+ DeliverTimeout int
+ SkipTLSVerify bool
}
// Repository settings.
@@ -240,7 +240,10 @@ func NewConfigContext() {
ReverseProxyAuthUser = sec.Key("REVERSE_PROXY_AUTHENTICATION_USER").MustString("X-WEBAUTH-USER")
sec = Cfg.Section("attachment")
- AttachmentPath = path.Join(workDir, sec.Key("PATH").MustString("data/attachments"))
+ AttachmentPath = sec.Key("PATH").MustString("data/attachments")
+ if !filepath.IsAbs(AttachmentPath) {
+ AttachmentPath = path.Join(workDir, AttachmentPath)
+ }
AttachmentAllowedTypes = sec.Key("ALLOWED_TYPES").MustString("image/jpeg|image/png")
AttachmentMaxSize = sec.Key("MAX_SIZE").MustInt64(32)
AttachmentMaxFiles = sec.Key("MAX_FILES").MustInt(10)
@@ -297,7 +300,10 @@ func NewConfigContext() {
sec = Cfg.Section("picture")
PictureService = sec.Key("SERVICE").In("server", []string{"server"})
- AvatarUploadPath = path.Join(workDir, sec.Key("AVATAR_UPLOAD_PATH").MustString("data/avatars"))
+ AvatarUploadPath = sec.Key("AVATAR_UPLOAD_PATH").MustString("data/avatars")
+ if !filepath.IsAbs(AvatarUploadPath) {
+ AvatarUploadPath = path.Join(workDir, AvatarUploadPath)
+ }
os.MkdirAll(AvatarUploadPath, os.ModePerm)
switch sec.Key("GRAVATAR_SOURCE").MustString("gravatar") {
case "duoshuo":
@@ -514,7 +520,7 @@ func newWebhookService() {
sec := Cfg.Section("webhook")
Webhook.TaskInterval = sec.Key("TASK_INTERVAL").MustInt(1)
Webhook.DeliverTimeout = sec.Key("DELIVER_TIMEOUT").MustInt(5)
- Webhook.AllowInsecureCertification = sec.Key("ALLOW_INSECURE_CERTIFICATION").MustBool()
+ Webhook.SkipTLSVerify = sec.Key("SKIP_TLS_VERIFY").MustBool()
}
func NewServices() {
diff --git a/routers/install.go b/routers/install.go
index a3583a1a98..a7828e351c 100644
--- a/routers/install.go
+++ b/routers/install.go
@@ -189,6 +189,12 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
// Save settings.
cfg := ini.Empty()
+ if com.IsFile(setting.CustomConf) {
+ // Keeps custom settings if there is already something.
+ if err := cfg.Append(setting.CustomConf); err != nil {
+ log.Error(4, "Fail to load custom conf '%s': %v", setting.CustomConf, err)
+ }
+ }
cfg.Section("database").Key("DB_TYPE").SetValue(models.DbCfg.Type)
cfg.Section("database").Key("HOST").SetValue(models.DbCfg.Host)
cfg.Section("database").Key("NAME").SetValue(models.DbCfg.Name)
diff --git a/routers/repo/setting.go b/routers/repo/setting.go
index 33bf1eab28..8368513ad8 100644
--- a/routers/repo/setting.go
+++ b/routers/repo/setting.go
@@ -8,9 +8,9 @@ import (
"encoding/json"
"errors"
"fmt"
+ "path"
"strings"
"time"
- "path"
"github.com/Unknwon/com"
@@ -84,7 +84,6 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) {
ctx.Repo.Repository.Description = form.Description
ctx.Repo.Repository.Website = form.Website
ctx.Repo.Repository.IsPrivate = form.Private
- ctx.Repo.Repository.IsGoget = form.GoGet
if err := models.UpdateRepository(ctx.Repo.Repository); err != nil {
ctx.Handle(404, "UpdateRepository", err)
return
diff --git a/templates/.VERSION b/templates/.VERSION
index 8f04f6d0da..0c9421a4d2 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.5.13.0210 Beta \ No newline at end of file
+0.5.13.0214 Beta \ No newline at end of file
diff --git a/templates/admin/auth/list.tmpl b/templates/admin/auth/list.tmpl
index aba516b8eb..ec701a8f8c 100644
--- a/templates/admin/auth/list.tmpl
+++ b/templates/admin/auth/list.tmpl
@@ -34,8 +34,8 @@
<td><a href="{{AppSubUrl}}/admin/auths/{{.Id}}">{{.Name}}</a></td>
<td>{{.TypeString}}</td>
<td><i class="fa fa{{if .IsActived}}-check{{end}}-square-o"></i></td>
- <td><span title="{{DateFormat .Updated "r"}}">{{DateFormat .Updated "M d, Y"}}</span></td>
- <td><span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span></td>
+ <td><span title="{{DateFmtLong .Updated}}">{{DateFmtShort .Updated}}</span></td>
+ <td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
<td><a href="{{AppSubUrl}}/admin/auths/{{.Id}}"><i class="fa fa-pencil-square-o"></i></a></td>
</tr>
{{end}}
diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl
index 5cf84beb99..6c328353bc 100644
--- a/templates/admin/config.tmpl
+++ b/templates/admin/config.tmpl
@@ -105,8 +105,8 @@
<dd>{{.Webhook.TaskInterval}} {{.i18n.Tr "tool.raw_minutes"}}</dd>
<dt>{{.i18n.Tr "admin.config.deliver_timeout"}}</dt>
<dd>{{.Webhook.DeliverTimeout}} {{.i18n.Tr "tool.raw_seconds"}}</dd>
- <dt>{{.i18n.Tr "admin.config.allow_insecure_certification"}}</dt>
- <dd><i class="fa fa{{if .Webhook.AllowInsecureCertification}}-check{{end}}-square-o"></i></dd>
+ <dt>{{.i18n.Tr "admin.config.skip_tls_verify"}}</dt>
+ <dd><i class="fa fa{{if .Webhook.SkipTLSVerify}}-check{{end}}-square-o"></i></dd>
</dl>
</div>
</div>
diff --git a/templates/admin/org/list.tmpl b/templates/admin/org/list.tmpl
index b522dc08a3..ce5083a0ae 100644
--- a/templates/admin/org/list.tmpl
+++ b/templates/admin/org/list.tmpl
@@ -35,7 +35,7 @@
<td>{{.NumTeams}}</td>
<td>{{.NumMembers}}</td>
<td>{{.NumRepos}}</td>
- <td><span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span></td>
+ <td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
</tr>
{{end}}
</tbody>
diff --git a/templates/admin/repo/list.tmpl b/templates/admin/repo/list.tmpl
index 88e16a4337..981e2ef72b 100644
--- a/templates/admin/repo/list.tmpl
+++ b/templates/admin/repo/list.tmpl
@@ -37,7 +37,7 @@
<td>{{.NumWatches}}</td>
<td>{{.NumStars}}</td>
<td>{{.NumIssues}}</td>
- <td><span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span></td>
+ <td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span></td>
</tr>
{{end}}
</tbody>
diff --git a/templates/admin/user/list.tmpl b/templates/admin/user/list.tmpl
index d42d52910e..1dd5553eb5 100644
--- a/templates/admin/user/list.tmpl
+++ b/templates/admin/user/list.tmpl
@@ -37,7 +37,7 @@
<td><i class="fa fa{{if .IsActive}}-check{{end}}-square-o"></i></td>
<td><i class="fa fa{{if .IsAdmin}}-check{{end}}-square-o"></i></td>
<td>{{.NumRepos}}</td>
- <td><span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span></td>
+ <td><span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created }}</span></td>
<td><a href="{{AppSubUrl}}/admin/users/{{.Id}}"><i class="fa fa-pencil-square-o"></i></a></td>
</tr>
{{end}}
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index 7775933ca9..cb3951ea2c 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -9,7 +9,7 @@
<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="_csrf" content="{{.CsrfToken}}" />
- {{if .Repository.IsGoget}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
+ {{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
<!-- Stylesheets -->
{{if CdnMode}}
diff --git a/templates/ng/base/head.tmpl b/templates/ng/base/head.tmpl
index 40a7d28ff2..f2a235bd43 100644
--- a/templates/ng/base/head.tmpl
+++ b/templates/ng/base/head.tmpl
@@ -7,7 +7,7 @@
<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="_csrf" content="{{.CsrfToken}}" />
- {{if .Repository.IsGoget}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
+ {{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
<link rel="shortcut icon" href="{{AppSubUrl}}/img/favicon.png" />
diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl
index 093e937553..41683f8450 100644
--- a/templates/repo/settings/options.tmpl
+++ b/templates/repo/settings/options.tmpl
@@ -59,11 +59,6 @@
<input class="ipt-chk" id="visibility" name="private" type="checkbox" {{if .Repository.IsPrivate}}checked{{end}} />
<span>{{.i18n.Tr "repo.visiblity_helper" | Str2html}}</span>
</div>
- <div class="field">
- <label for="goget">{{.i18n.Tr "repo.goget_meta"}}</label>
- <input class="ipt-chk" id="goget" name="goget" type="checkbox" {{if .Repository.IsGoget}}checked{{end}} />
- <span>{{.i18n.Tr "repo.goget_meta_helper" | Str2html}}</span>
- </div>
<div class="field">
<span class="form-label"></span>
<button class="btn btn-green btn-large btn-radius" id="change-reponame-btn" href="#change-reponame-modal">{{.i18n.Tr "repo.settings.update_settings"}}</button>
diff --git a/templates/user/auth/signin.tmpl b/templates/user/auth/signin.tmpl
index 78d6febb80..455df63ac8 100644
--- a/templates/user/auth/signin.tmpl
+++ b/templates/user/auth/signin.tmpl
@@ -26,10 +26,12 @@
<button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "sign_in"}}</button>&nbsp;&nbsp;&nbsp;&nbsp;
{{if not .IsSocialLogin}}<a href="{{AppSubUrl}}/user/forget_password">{{.i18n.Tr "auth.forget_password"}}</a>{{end}}
</div>
+ {{if .ShowRegistrationButton}}
<div class="field">
<label></label>
<a href="{{AppSubUrl}}/user/sign_up">{{.i18n.Tr "auth.sign_up_now" | Str2html}}</a>
</div>
+ {{end}}
{{if and (not .IsSocialLogin) .OauthEnabled}}
<hr/>
<div id="sign-social" class="text-center social-buttons">
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index 44c2212383..a18a8b50d6 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -28,7 +28,7 @@
{{if .Owner.Website}}
<li class="list-group-item"><i class="octicon octicon-link"></i>&nbsp;&nbsp;<a target="_blank" href="{{.Owner.Website}}">{{.Owner.Website}}</a></li>
{{end}}
- <li class="list-group-item"><i class="octicon octicon-clock"></i>&nbsp;&nbsp;{{.i18n.Tr "user.join_on"}} {{DateFormat .Owner.Created "M d, Y"}}</li>
+ <li class="list-group-item"><i class="octicon octicon-clock"></i>&nbsp;&nbsp;{{.i18n.Tr "user.join_on"}} {{DateFmtShort .Owner.Created}}</li>
</ul>
<hr>
<ul class="list-no-style">
diff --git a/templates/user/settings/applications.tmpl b/templates/user/settings/applications.tmpl
index ce74ef7766..2e766a3dc7 100644
--- a/templates/user/settings/applications.tmpl
+++ b/templates/user/settings/applications.tmpl
@@ -22,7 +22,7 @@
<i class="fa fa-send fa-2x left"></i>
<div class="ssh-content left">
<p><strong>{{.Name}}</strong></p>
- <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span> — <i class="octicon octicon-info"></i>{{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} {{DateFormat .Updated "M d, Y"}}{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i></p>
+ <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span> — <i class="octicon octicon-info"></i>{{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} {{DateFmtShort .Updated}}{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i></p>
</div>
<a href="{{AppSubUrl}}/user/settings/applications?remove={{.Id}}">
<button class="btn btn-small btn-red btn-radius ssh-btn right">{{$.i18n.Tr "settings.delete_token"}}</button>
diff --git a/templates/user/settings/social.tmpl b/templates/user/settings/social.tmpl
index b47f883e51..f2a30da791 100644
--- a/templates/user/settings/social.tmpl
+++ b/templates/user/settings/social.tmpl
@@ -18,7 +18,7 @@
<div class="ssh-content left">
<p><strong>{{Oauth2Name .Type}}</strong></p>
<p class="print">{{.Identity}}</p>
- <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span> — <i class="octicon octicon-info"></i>{{$.i18n.Tr "settings.last_used"}} {{DateFormat .Updated "M d, Y"}}</i></p>
+ <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span> — <i class="octicon octicon-info"></i>{{$.i18n.Tr "settings.last_used"}} {{DateFmtShort .Updated}}</i></p>
</div>
<a class="right btn btn-small btn-red btn-header btn-radius" href="{{AppSubUrl}}/user/settings/social?remove={{.Id}}">{{$.i18n.Tr "settings.unbind"}}</a>
</li>
diff --git a/templates/user/settings/sshkeys.tmpl b/templates/user/settings/sshkeys.tmpl
index 48a4d343ae..42b76039ee 100644
--- a/templates/user/settings/sshkeys.tmpl
+++ b/templates/user/settings/sshkeys.tmpl
@@ -23,7 +23,7 @@
<div class="ssh-content left">
<p><strong>{{.Name}}</strong></p>
<p class="print">{{.Fingerprint}}</p>
- <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFormat .Created "r"}}">{{DateFormat .Created "M d, Y"}}</span> — <i class="octicon octicon-info"></i>{{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span title="{{DateFormat .Updated "r"}}">{{DateFormat .Updated "M d, Y"}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i></p>
+ <p class="activity"><i>{{$.i18n.Tr "settings.add_on"}} <span title="{{DateFmtLong .Created}}">{{DateFmtShort .Created}}</span> — <i class="octicon octicon-info"></i>{{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span title="{{DateFmtLong .Updated}}">{{DateFmtShort .Updated}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i></p>
</div>
<form action="{{AppSubUrl}}/user/settings/ssh" method="post">
{{$.CsrfTokenHtml}}