diff options
-rwxr-xr-x | conf/locale/locale_de-DE.ini | 14 | ||||
-rw-r--r-- | conf/locale/locale_en-US.ini | 1 | ||||
-rwxr-xr-x | conf/locale/locale_fr-CA.ini | 14 | ||||
-rwxr-xr-x | conf/locale/locale_nl-NL.ini | 14 | ||||
-rwxr-xr-x | conf/locale/locale_zh-CN.ini | 16 | ||||
-rwxr-xr-x | conf/locale/locale_zh-HK.ini | 14 | ||||
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | models/user.go | 1 | ||||
-rw-r--r-- | modules/auth/admin.go | 17 | ||||
-rw-r--r-- | modules/middleware/repo.go | 2 | ||||
-rw-r--r-- | modules/setting/setting.go | 2 | ||||
-rw-r--r-- | routers/admin/users.go | 3 | ||||
-rw-r--r-- | routers/repo/http.go | 3 | ||||
-rw-r--r-- | templates/.VERSION | 2 | ||||
-rw-r--r-- | templates/admin/user/edit.tmpl | 14 | ||||
-rw-r--r-- | templates/repo/settings/nav.tmpl | 2 |
16 files changed, 100 insertions, 21 deletions
diff --git a/conf/locale/locale_de-DE.ini b/conf/locale/locale_de-DE.ini index 4a076d97d2..53e71d853f 100755 --- a/conf/locale/locale_de-DE.ini +++ b/conf/locale/locale_de-DE.ini @@ -164,6 +164,7 @@ unable_verify_ssh_key=Gogs kann deinen SSH-Schlüssel nicht verifizieren, nimmt auth_failed=Authentifizierung fehlgeschlagen: %v
still_own_repo=Dein Konto besitzt noch Repositorys. Diese müssen zuerst gelöscht oder übertragen werden.
+still_has_org=Ihr Konto noch Mitgliedschaft in der Organisation, Sie nach links oder löschen Sie sie zuerst.
org_still_own_repo=Diese Organisation besitzt noch Repositorys. Diese müssen zuerst gelöscht oder übertragen werden.
still_own_user=Diese Authentifizierung wird noch von einigen Benutzern genutzt. Entferne diese zuvor und lösche erneut.
@@ -184,6 +185,7 @@ profile=Profil password=Passwort
ssh_keys=SSH-Schlüssel
social=Soziale Konten
+applications=Anwendungen
orgs=Organisationen
delete=Konto löschen
uid=Uid
@@ -224,6 +226,16 @@ social_desc=Dies ist eine Liste verknüpfter sozialer Konten. Entferne alle Verk unbind=Verknüpfung entfernen
unbind_success=Die Verknüpfung zum sozialen Konto wurde entfernt.
+manage_access_token=Verwaltung persönlicher Zugangs-Tokens
+generate_new_token=Neues Token erzeugen
+tokens_desc=Die von dir erzeugten Tokens können zum Zugriff auf die Gogs-API verwendet werden.
+new_token_desc=Momentan erlaubt jedes Token vollen Zugriff auf dein Konto.
+token_name=Token-Name
+generate_token=Token erzeugen
+generate_token_succees=Neues Zugangs-Token wurde erstellt! Bitte kopiere dein persönliches Zugangs-Token jetzt. Du wirst es später nicht mehr anzeigen können!
+delete_token=Löschen
+delete_token_success=Persönliches Zugangs-Token wurde gelöscht! Vergiss nicht, auch deine Anwendungen zu aktualisieren.
+
delete_account=Konto löschen
delete_prompt=Diese Aktion wird dein Konto dauerhaft löschen und kann <strong>NICHT</strong> rückgängig gemacht werden!
confirm_delete_account=Löschen
@@ -496,9 +508,11 @@ users.update_profile_success=Kontoprofil aktualisiert users.edit_account=Konto bearbeiten
users.is_activated=Dieses Konto ist aktiviert
users.is_admin=Dieses Konto hat Administratorrechte
+users.allow_git_hook=Dieses Konto verfügt über Berechtigungen zum Erstellen von Git hooks
users.update_profile=Kontoprofil aktualisieren
users.delete_account=Dieses Konto löschen
users.still_own_repo=Dieses Konto besitzt noch Repositorys. Diese müssen zuerst gelöscht oder übertragen werden.
+users.still_has_org=Dieses Konto noch Mitgliedschaft in der Organisation, Sie nach links oder löschen Sie sie zuerst.
orgs.org_manage_panel=Organisationenverwaltung
orgs.name=Name
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index 4f1442d205..a061bcb21c 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -508,6 +508,7 @@ users.update_profile_success = Account profile has been successfully updated. users.edit_account = Edit Account users.is_activated = This account is activated users.is_admin = This account has administrator permissions +users.allow_git_hook = This account has permissions to create Git hooks users.update_profile = Update Account Profile users.delete_account = Delete This Account users.still_own_repo = This account still have ownership of repository, you have to delete or transfer them first. diff --git a/conf/locale/locale_fr-CA.ini b/conf/locale/locale_fr-CA.ini index 40057ef2d8..5ebe53e016 100755 --- a/conf/locale/locale_fr-CA.ini +++ b/conf/locale/locale_fr-CA.ini @@ -164,6 +164,7 @@ unable_verify_ssh_key=Gogs n'a pu vérifier la validité de votre clé SSH, mêm auth_failed=Échec d'authentification : %s
still_own_repo=Votre compte comporte toujours des propriétés de Référentiel. Vous devez d'abord les supprimer ou les transférer.
+still_has_org=Votre compte a toujours membres de l'organisation, vous avez à gauche ou supprimez tout d'abord.
org_still_own_repo=Cette organisation comporte toujours des propriétés de Référentiel. Vous devez d'abord les supprimer ou les transférer.
still_own_user=Cette authentification a déjà servi à d'autres utilisateurs. Veuillez les déplacer puis supprimez à nouveau.
@@ -184,6 +185,7 @@ profile=Profil password=Mot de Passe
ssh_keys=Clés SSH
social=Réseaux Sociaux
+applications=Applications
orgs=Organisations
delete=Supprimer le Compte
uid=ID d'Utilisateur
@@ -224,6 +226,16 @@ social_desc=Ceci est la liste des comptes de réseaux sociaux associés. Supprim unbind=Dissocier
unbind_success=Compte de réseau social dissocié.
+manage_access_token=Gérer les jetons d'accès personnels
+generate_new_token=Générer le nouveau jeton
+tokens_desc=Jetons, que vous avez généré qui peuvent être utilisés pour accéder à l'API Gogs.
+new_token_desc=Comme pour l'instant, chaque jeton aura un accès complet à votre compte.
+token_name=Nom du jeton
+generate_token=Générer le jeton
+generate_token_succees=Nouveau jeton d'accès a été généré avec succès ! Assurez-vous de copier votre nouveau jeton d'accès personnel maintenant. Vous ne serez pas en mesure de le revoir !
+delete_token=Supprimer
+delete_token_success=Jeton d'accès personnelle a été supprimée avec succès ! N'oubliez pas de mettre à jour vos applications aussi bien.
+
delete_account=Supprimer le Compte
delete_prompt=Votre compte sera supprimé définitivement et cette opération est <strong>IRRÉVERSIBLE</strong> !
confirm_delete_account=Confirmer la suppression
@@ -496,9 +508,11 @@ users.update_profile_success=Profil mis à jour avec succès. users.edit_account=Modifier le Compte
users.is_activated=Ce compte est activé
users.is_admin=Ce compte possède un niveau d'accès administrateur
+users.allow_git_hook=Ce compte dispose des autorisations pour créer des crochets de Git
users.update_profile=Mettre le profil à jour
users.delete_account=Supprimer ce Compte
users.still_own_repo=Ce compte comporte toujours des propriétés de Référentiel. Vous devez d'abord les supprimer ou les transférer.
+users.still_has_org=Ce compte a toujours membres de l'organisation, vous avez à gauche ou supprimez tout d'abord.
orgs.org_manage_panel=Gestion des Organisations
orgs.name=Nom
diff --git a/conf/locale/locale_nl-NL.ini b/conf/locale/locale_nl-NL.ini index 3dce2bcafb..ab93b8e021 100755 --- a/conf/locale/locale_nl-NL.ini +++ b/conf/locale/locale_nl-NL.ini @@ -164,6 +164,7 @@ unable_verify_ssh_key=Gogs kan niet controleren of uw SSH-sleutel, maar wij gaan auth_failed=Verificatie mislukt: %v
still_own_repo=Uw account heeft nog een eigendom op een repositorie. U moet deze eerst verwijderen of overdragen.
+still_has_org=Uw account nog steeds lidmaatschap van organisatie, u hebt naar links of hen eerst verwijderen.
org_still_own_repo=De organisatie heeft nog eigendomen op repositories. U moet deze eerst verwijderen of overdragen.
still_own_user=Deze authenticatie methode wordt nog gebruikt door sommige gebruikers. U moet hen eerst verplaatsen of verwijderen.
@@ -184,6 +185,7 @@ profile=Profiel password=Wachtwoord
ssh_keys=SSH-sleutels
social=Sociale netwerk-accounts
+applications=Toepassingen
orgs=Organisaties
delete=Verwijder account
uid=uid
@@ -224,6 +226,16 @@ social_desc=Dit is een lijst van de bijbehorende sociale accounts koppelingen, V unbind=Loskoppelen
unbind_success=Sociaal account is ontkoppeld.
+manage_access_token=Persoonlijke toegangstokens beheren
+generate_new_token=Nieuwe Token genereren
+tokens_desc=Tokens u hebt gegenereerd die kunnen worden gebruikt voor toegang tot de API Gogs.
+new_token_desc=Zoals voor nu, moet elke token zal hebben volledige toegang tot uw account.
+token_name=Symbolische naam
+generate_token=Token genereren
+generate_token_succees=Nieuwe toegangstoken is met succes gegenereerd! Zorg ervoor dat uw nieuwe persoonlijke toegangstoken nu kopiëren. U zal niet zitten kundig voor zien het weer!
+delete_token=Verwijderen
+delete_token_success=Persoonlijke toegangstoken is met succes verwijderd! Vergeet niet uw toepassingen ook wilt bijwerken.
+
delete_account=Verwijder uw account
delete_prompt=Deze handeling zal uw account definitief verwijderen, u kunt dit <strong> NIET </strong> terug draaien!
confirm_delete_account=Bevestig verwijdering
@@ -496,9 +508,11 @@ users.update_profile_success=Profiel is succesvol bijgewerkt. users.edit_account=Bewerk account
users.is_activated=Dit account is geactiveerd
users.is_admin=Dit account heeft beheerdersrechten
+users.allow_git_hook=Deze account beschikt over machtigingen voor het maken van Git haken
users.update_profile=Account profiel bijwerken
users.delete_account=Dit account verwijderen
users.still_own_repo=Dit account is nog steeds eigendom van een repositorie. U moet deze repositorie eerst verwijderen of overdragen.
+users.still_has_org=Deze account nog steeds lidmaatschap van organisatie, u hebt naar links of hen eerst verwijderen.
orgs.org_manage_panel=Organisaties beheren
orgs.name=Naam
diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini index d22be191a0..bf1b21a427 100755 --- a/conf/locale/locale_zh-CN.ini +++ b/conf/locale/locale_zh-CN.ini @@ -164,6 +164,7 @@ unable_verify_ssh_key=Gogs 无法验证您输入的 SSH 密钥,但我们假设 auth_failed=授权验证失败:%v
still_own_repo=您的帐户仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除帐户操作!
+still_has_org=您的帐户仍旧是某些组织的成员,您必须先离开或删除组织。
org_still_own_repo=该组织仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除组织操作!
still_own_user=该授权认证依旧被部分用户使用,请先删除该部分用户后再试!
@@ -184,6 +185,7 @@ profile=个人信息 password=修改密码
ssh_keys=管理 SSH 密钥
social=社交帐号绑定
+applications=管理授权应用
orgs=管理组织
delete=删除帐户
uid=用户 ID
@@ -224,6 +226,16 @@ social_desc=以下是与您帐户所关联的社交帐号,如果您发现有 unbind=解除绑定
unbind_success=社交帐号解除绑定成功!
+manage_access_token=管理个人操作令牌
+generate_new_token=生成新的令牌
+tokens_desc=您可以使用这些已生成的令牌来操作 Gogs API。
+new_token_desc=目前为止,任何令牌都对您的帐户拥有完整的操作权限。
+token_name=令牌名称
+generate_token=生成令牌
+generate_token_succees=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次!
+delete_token=删除令牌
+delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。
+
delete_account=删除当前帐户
delete_prompt=删除操作会永久清除您的帐户信息,并且 <strong>不可恢复</strong>!
confirm_delete_account=确认删除帐户
@@ -482,7 +494,7 @@ dashboard.last_gc_pause=上次 GC 暂停时间 dashboard.gc_times=GC 执行次数
users.user_manage_panel=用户管理面板
-users.new_account=您尝试添加到团队的仓库不存在,请先创建仓库!
+users.new_account=创建新的帐户
users.name=用户名
users.activated=已激活
users.admin=管理员
@@ -496,9 +508,11 @@ users.update_profile_success=该用户信息更新成功! users.edit_account=编辑用户信息
users.is_activated=该用户已被激活
users.is_admin=该用户具有管理员权限
+users.allow_git_hook=该帐户具有创建 Git 钩子的权限
users.update_profile=更新用户信息
users.delete_account=删除该用户
users.still_own_repo=该帐户仍然是某些仓库的拥有者,您必须先转移或删除它们才能执行删除帐户操作!
+users.still_has_org=该帐户仍旧是某些组织的成员,您必须先使其离开或删除组织。
orgs.org_manage_panel=组织管理面板
orgs.name=组织名称
diff --git a/conf/locale/locale_zh-HK.ini b/conf/locale/locale_zh-HK.ini index 8cd2c50f00..25974e7d00 100755 --- a/conf/locale/locale_zh-HK.ini +++ b/conf/locale/locale_zh-HK.ini @@ -164,6 +164,7 @@ unable_verify_ssh_key=Gogs 無法驗證您輸入的 SSH 密鑰,但我們假設 auth_failed=授權驗證失敗:%v
still_own_repo=您的帳戶仍然是某些倉庫的擁有者,您必須先轉移或刪除它們才能執行刪除帳戶操作!
+still_has_org=您的帳戶仍舊是某些組織的成員,您必須先離開或刪除組織。
org_still_own_repo=該組織仍然是某些倉庫的擁有者,您必須先轉移或刪除它們才能執行刪除組織操作!
still_own_user=該授權認證依舊被部分用戶使用,請先刪除該部分用戶後再試!
@@ -184,6 +185,7 @@ profile=個人信息 password=修改密碼
ssh_keys=管理 SSH 密鑰
social=社交帳號綁定
+applications=管理授權應用
orgs=管理組織
delete=刪除帳戶
uid=用戶 ID
@@ -224,6 +226,16 @@ social_desc=以下是與您帳戶所關聯的社交帳號,如果您發現有 unbind=解除綁定
unbind_success=社交帳號解除綁定成功!
+manage_access_token=管理個人操作令牌
+generate_new_token=生成新的令牌
+tokens_desc=您可以使用這些已生成的令牌來操作 Gogs API。
+new_token_desc=目前為止,任何令牌都對您的帳戶擁有完整的操作權限。
+token_name=令牌名稱
+generate_token=生成令牌
+generate_token_succees=新的操作令牌生成成功!您必須立即復製到一個安全的地方,因為該令牌只會顯示一次!
+delete_token=删除令牌
+delete_token_success=個人操作令牌刪除成功!請更新與該令牌有關的所有應用。
+
delete_account=刪除當前帳戶
delete_prompt=刪除操作會永久清除您的帳戶信息,並且 <strong>不可恢復</strong>!
confirm_delete_account=確認刪除帳戶
@@ -496,9 +508,11 @@ users.update_profile_success=該用戶信息更新成功! users.edit_account=編輯用戶信息
users.is_activated=該用戶已被激活
users.is_admin=該用戶具有管理員權限
+users.allow_git_hook=該帳戶具有創建 Git 鉤子的權限
users.update_profile=更新用戶信息
users.delete_account=刪除該用戶
users.still_own_repo=該帳戶仍然是某些倉庫的擁有者,您必須先轉移或刪除它們才能執行刪除帳戶操作!
+users.still_has_org=該帳戶仍舊是某些組織的成員,您必須先使其離開或刪除組織。
orgs.org_manage_panel=組織管理面版
orgs.name=組織名稱
@@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.8.1116 Beta" +const APP_VER = "0.5.8.1117 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/user.go b/models/user.go index 7038e075f8..31f4a289ff 100644 --- a/models/user.go +++ b/models/user.go @@ -67,6 +67,7 @@ type User struct { Website string IsActive bool IsAdmin bool + AllowGitHook bool Rands string `xorm:"VARCHAR(10)"` Salt string `xorm:"VARCHAR(10)"` Created time.Time `xorm:"CREATED"` diff --git a/modules/auth/admin.go b/modules/auth/admin.go index 60ea3a3cc2..6fec6ce73e 100644 --- a/modules/auth/admin.go +++ b/modules/auth/admin.go @@ -11,14 +11,15 @@ import ( ) type AdminEditUserForm struct { - Email string `form:"email" binding:"Required;Email;MaxSize(50)"` - Passwd string `form:"password"` - Website string `form:"website" binding:"MaxSize(50)"` - Location string `form:"location" binding:"MaxSize(50)"` - Avatar string `form:"avatar" binding:"Required;Email;MaxSize(50)"` - Active bool `form:"active"` - Admin bool `form:"admin"` - LoginType int `form:"login_type"` + Email string `form:"email" binding:"Required;Email;MaxSize(50)"` + Passwd string `form:"password"` + Website string `form:"website" binding:"MaxSize(50)"` + Location string `form:"location" binding:"MaxSize(50)"` + Avatar string `form:"avatar" binding:"Required;Email;MaxSize(50)"` + Active bool `form:"active"` + Admin bool `form:"admin"` + AllowGitHook bool `form:"allow_git_hook"` + LoginType int `form:"login_type"` } func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index 2d311d2131..0aae122d22 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -454,7 +454,7 @@ func RequireTrueOwner() macaron.Handler { // GitHookService checks if repsitory Git hooks service has been enabled. func GitHookService() macaron.Handler { return func(ctx *Context) { - if !setting.Service.EnableGitHooks { + if !ctx.User.AllowGitHook && !ctx.User.IsAdmin { ctx.Handle(404, "GitHookService", nil) return } diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 6b1b9fed4c..0f293b6905 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -285,7 +285,6 @@ var Service struct { LdapAuth bool ActiveCodeLives int ResetPwdCodeLives int - EnableGitHooks bool } func newService() { @@ -295,7 +294,6 @@ func newService() { Service.RequireSignInView = Cfg.MustBool("service", "REQUIRE_SIGNIN_VIEW") Service.EnableCacheAvatar = Cfg.MustBool("service", "ENABLE_CACHE_AVATAR") Service.EnableReverseProxyAuth = Cfg.MustBool("service", "ENABLE_REVERSE_PROXY_AUTHENTICATION") - Service.EnableGitHooks = Cfg.MustBool("service", "ENABLE_GIT_HOOKS") } var logLevels = map[string]string{ diff --git a/routers/admin/users.go b/routers/admin/users.go index ac33fd62b1..0a1056f3bd 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -174,7 +174,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { return } - // NOTE: need password length check? + // FIXME: need password length check if len(form.Passwd) > 0 { u.Passwd = form.Passwd u.Salt = models.GetUserSalt() @@ -191,6 +191,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { u.AvatarEmail = form.Avatar u.IsActive = form.Active u.IsAdmin = form.Admin + u.AllowGitHook = form.AllowGitHook if err := models.UpdateUser(u); err != nil { ctx.Handle(500, "UpdateUser", err) return diff --git a/routers/repo/http.go b/routers/repo/http.go index 0ce83cef4d..2dc66449da 100644 --- a/routers/repo/http.go +++ b/routers/repo/http.go @@ -14,9 +14,9 @@ import ( "os" "os/exec" "path" - "path/filepath" "regexp" + "runtime" "strconv" "strings" "time" @@ -184,6 +184,7 @@ func Http(ctx *middleware.Context) { handler := HttpBackend(&config) handler(ctx.Resp, ctx.Req.Request) + runtime.GC() } type route struct { diff --git a/templates/.VERSION b/templates/.VERSION index 78403f16c7..43806b4f3a 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.8.1116 Beta
\ No newline at end of file +0.5.8.1117 Beta
\ No newline at end of file diff --git a/templates/admin/user/edit.tmpl b/templates/admin/user/edit.tmpl index 1d4cf806f1..317349935e 100644 --- a/templates/admin/user/edit.tmpl +++ b/templates/admin/user/edit.tmpl @@ -56,15 +56,19 @@ <label></label> <input type="checkbox" name="active" {{if .User.IsActive}}checked{{end}}> <strong>{{.i18n.Tr "admin.users.is_activated"}}</strong> - <br> - <label></label> - <input type="checkbox" name="admin" {{if .User.IsAdmin}}checked{{end}}> - <strong>{{.i18n.Tr "admin.users.is_admin"}}</strong> + <br> + <label></label> + <input type="checkbox" name="admin" {{if .User.IsAdmin}}checked{{end}}> + <strong>{{.i18n.Tr "admin.users.is_admin"}}</strong> + <br> + <label></label> + <input type="checkbox" name="allow_git_hook" {{if .User.AllowGitHook}}checked{{end}}> + <strong>{{.i18n.Tr "admin.users.allow_git_hook"}}</strong> </div> <div class="field"> <label></label> <button class="btn btn-green btn-large btn-radius">{{.i18n.Tr "admin.users.update_profile"}}</button> - + <button class="btn btn-large btn-red btn-radius" id="delete-account-btn" href="#delete-account-modal">{{.i18n.Tr "admin.users.delete_account"}}</button> </div> <div class="white-popup-block mfp-hide" id="delete-account-modal"> diff --git a/templates/repo/settings/nav.tmpl b/templates/repo/settings/nav.tmpl index 16128f0151..6803c56383 100644 --- a/templates/repo/settings/nav.tmpl +++ b/templates/repo/settings/nav.tmpl @@ -5,7 +5,9 @@ <li {{if .PageIsSettingsOptions}}class="current"{{end}}><a href="{{.RepoLink}}/settings">{{.i18n.Tr "repo.settings.options"}}</a></li> <li {{if .PageIsSettingsCollaboration}}class="current"{{end}}><a href="{{.RepoLink}}/settings/collaboration">{{.i18n.Tr "repo.settings.collaboration"}}</a></li> <li {{if .PageIsSettingsHooks}}class="current"{{end}}><a href="{{.RepoLink}}/settings/hooks">{{.i18n.Tr "repo.settings.hooks"}}</a></li> + {{if or .SignedUser.AllowGitHook .SignedUser.IsAdmin}} <li {{if .PageIsSettingsGitHooks}}class="current"{{end}}><a href="{{.RepoLink}}/settings/hooks/git">{{.i18n.Tr "repo.settings.githooks"}}</a></li> + {{end}} <!-- <li {{if .PageIsSettingsKeys}}class="current"{{end}}><a href="{{.RepoLink}}/settings/keys">{{.i18n.Tr "repo.settings.deploy_keys"}}</a></li> --> </ul> </div> |