diff options
author | Jason Song <i@wolfogre.com> | 2022-12-20 17:07:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-20 17:07:13 +0800 |
commit | 659055138b6d32492b20c9f4d1d5a3cdaa47188d (patch) | |
tree | e2e7741be2b7b349e04f6901bff92b75b9b7c9ac /templates/repo/settings | |
parent | 40ba750c4bf1f3f5f8dff5af57b2db4b600f237f (diff) | |
download | gitea-659055138b6d32492b20c9f4d1d5a3cdaa47188d.tar.gz gitea-659055138b6d32492b20c9f4d1d5a3cdaa47188d.zip |
Secrets storage with SecretKey encrypted (#22142)
Fork of #14483, but [gave up
MasterKey](https://github.com/go-gitea/gitea/pull/14483#issuecomment-1350728557),
and fixed some problems.
Close #12065.
Needed by #13539.
Featrues:
- Secrets for repo and org, not user yet.
- Use SecretKey to encrypte/encrypt secrets.
- Trim spaces of secret value.
- Add a new locale ini block, to make it easy to support secrets for
user.
Snapshots:
Repo level secrets:
![image](https://user-images.githubusercontent.com/9418365/207823319-b8a4903f-38ca-4af7-9d05-336a5af906f3.png)
Rrg level secrets
![image](https://user-images.githubusercontent.com/9418365/207823371-8bd02e93-1928-40d1-8c76-f48b255ace36.png)
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Diffstat (limited to 'templates/repo/settings')
-rw-r--r-- | templates/repo/settings/deploy_keys.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/settings/nav.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/settings/navbar.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/settings/secrets.tmpl | 60 |
4 files changed, 64 insertions, 2 deletions
diff --git a/templates/repo/settings/deploy_keys.tmpl b/templates/repo/settings/deploy_keys.tmpl index 44c916eefb..31d1c1f7ab 100644 --- a/templates/repo/settings/deploy_keys.tmpl +++ b/templates/repo/settings/deploy_keys.tmpl @@ -75,6 +75,8 @@ {{end}} </div> </div> + <br/> + {{template "repo/settings/secrets" .}} </div> <div class="ui small basic delete modal"> diff --git a/templates/repo/settings/nav.tmpl b/templates/repo/settings/nav.tmpl index 6239b04ed4..3c00c5e188 100644 --- a/templates/repo/settings/nav.tmpl +++ b/templates/repo/settings/nav.tmpl @@ -12,7 +12,7 @@ {{if or .SignedUser.AllowGitHook .SignedUser.IsAdmin}} <li {{if .PageIsSettingsGitHooks}}class="current"{{end}}><a href="{{.RepoLink}}/settings/hooks/git">{{.locale.Tr "repo.settings.githooks"}}</a></li> {{end}} - <li {{if .PageIsSettingsKeys}}class="current"{{end}}><a href="{{.RepoLink}}/settings/keys">{{.locale.Tr "repo.settings.deploy_keys"}}</a></li> + <li {{if .PageIsSettingsKeys}}class="current"{{end}}><a href="{{.RepoLink}}/settings/keys">{{.locale.Tr "secrets.secrets"}}</a></li> </ul> </div> </div> diff --git a/templates/repo/settings/navbar.tmpl b/templates/repo/settings/navbar.tmpl index e2b741b8d0..236a82f348 100644 --- a/templates/repo/settings/navbar.tmpl +++ b/templates/repo/settings/navbar.tmpl @@ -25,7 +25,7 @@ </a> {{end}} <a class="{{if .PageIsSettingsKeys}}active {{end}}item" href="{{.RepoLink}}/settings/keys"> - {{.locale.Tr "repo.settings.deploy_keys"}} + {{.locale.Tr "secrets.secrets"}} </a> {{if .LFSStartServer}} <a class="{{if .PageIsSettingsLFS}}active {{end}}item" href="{{.RepoLink}}/settings/lfs"> diff --git a/templates/repo/settings/secrets.tmpl b/templates/repo/settings/secrets.tmpl new file mode 100644 index 0000000000..6fb97beb4a --- /dev/null +++ b/templates/repo/settings/secrets.tmpl @@ -0,0 +1,60 @@ +<div class="ui container"> + <h4 class="ui top attached header"> + {{.locale.Tr "secrets.secrets"}} + <div class="ui right"> + <div class="ui primary tiny show-panel button" data-panel="#add-secret-panel">{{.locale.Tr "secrets.creation"}}</div> + </div> + </h4> + <div class="ui attached segment"> + <div class="{{if not .HasError}}hide {{end}}mb-4" id="add-secret-panel"> + <form class="ui form" action="{{.Link}}/secrets" method="post"> + {{.CsrfTokenHtml}} + <div class="field"> + {{.locale.Tr "secrets.description"}} + </div> + <div class="field{{if .Err_Title}} error{{end}}"> + <label for="secret-title">{{.locale.Tr "secrets.name"}}</label> + <input id="secret-title" name="title" value="{{.title}}" autofocus required pattern="^[a-zA-Z_][a-zA-Z0-9_]*$" placeholder="{{.locale.Tr "secrets.creation.name_placeholder"}}"> + </div> + <div class="field{{if .Err_Content}} error{{end}}"> + <label for="secret-content">{{.locale.Tr "secrets.value"}}</label> + <textarea id="secret-content" name="content" required placeholder="{{.locale.Tr "secrets.creation.value_placeholder"}}">{{.content}}</textarea> + </div> + <button class="ui green button"> + {{.locale.Tr "secrets.creation"}} + </button> + <button class="ui hide-panel button" data-panel="#add-secret-panel"> + {{.locale.Tr "cancel"}} + </button> + </form> + </div> + {{if .Secrets}} + <div class="ui key list"> + {{range .Secrets}} + <div class="item"> + <div class="right floated content"> + <button class="ui red tiny button delete-button" data-url="{{$.Link}}/secrets/delete" data-id="{{.ID}}"> + {{$.locale.Tr "settings.delete_key"}} + </button> + </div> + <div class="left floated content"> + <i>{{svg "octicon-key" 32}}</i> + </div> + <div class="content"> + <strong>{{.Name}}</strong> + <div class="print meta">******</div> + <div class="activity meta"> + <i> + {{$.locale.Tr "settings.add_on"}} + <span>{{.CreatedUnix.FormatShort}}</span> + </i> + </div> + </div> + </div> + {{end}} + </div> + {{else}} + {{.locale.Tr "secrets.none"}} + {{end}} + </div> +</div> |