aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorZettat123 <zettat123@gmail.com>2024-09-11 07:49:42 +0800
committerGitHub <noreply@github.com>2024-09-11 07:49:42 +0800
commitdef1c9670b5f8d5cc967bea61255fb3935dd5f50 (patch)
treef0d29f039c74979768da2ffdda0afd676023ce39 /templates
parentd9a7748cdc3f13392acbde87edd18602b566c216 (diff)
downloadgitea-def1c9670b5f8d5cc967bea61255fb3935dd5f50.tar.gz
gitea-def1c9670b5f8d5cc967bea61255fb3935dd5f50.zip
Support migration from AWS CodeCommit (#31981)
This PR adds support for migrating repos from [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html). The access key ID and secret access key are required to get repository information and pull requests. And [HTTPS Git credentials](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) are required to clone the repository. <img src="https://github.com/user-attachments/assets/82ecb2d0-8d43-42b0-b5af-f5347a13b9d0" width="680" /> The AWS CodeCommit icon is from [AWS Architecture Icons](https://aws.amazon.com/architecture/icons/). <img src="https://github.com/user-attachments/assets/3c44d21f-d753-40f5-9eae-5d3589e0d50d" width="320" />
Diffstat (limited to 'templates')
-rw-r--r--templates/repo/migrate/codecommit.tmpl117
-rw-r--r--templates/swagger/v1_json.tmpl8
2 files changed, 125 insertions, 0 deletions
diff --git a/templates/repo/migrate/codecommit.tmpl b/templates/repo/migrate/codecommit.tmpl
new file mode 100644
index 0000000000..d1cebd0e48
--- /dev/null
+++ b/templates/repo/migrate/codecommit.tmpl
@@ -0,0 +1,117 @@
+{{template "base/head" .}}
+<div role="main" aria-label="{{.Title}}" class="page-content repository new migrate">
+ <div class="ui middle very relaxed page grid">
+ <div class="column">
+ <form class="ui form" action="{{.Link}}" method="post">
+ {{template "base/disable_form_autofill"}}
+ {{.CsrfTokenHtml}}
+ <h3 class="ui top attached header">
+ {{ctx.Locale.Tr "repo.migrate.migrate" .service.Title}}
+ <input id="service_type" type="hidden" name="service" value="{{.service}}">
+ </h3>
+ <div class="ui attached segment">
+ {{template "base/alert" .}}
+ <div class="inline required field {{if .Err_CloneAddr}}error{{end}}">
+ <label for="clone_addr">{{ctx.Locale.Tr "repo.migrate.clone_address"}}</label>
+ <input id="clone_addr" name="clone_addr" value="{{.clone_addr}}" autofocus required>
+ <span class="help">
+ {{ctx.Locale.Tr "repo.migrate.clone_address_desc"}}{{if .ContextUser.CanImportLocal}} {{ctx.Locale.Tr "repo.migrate.clone_local_path"}}{{end}}
+ </span>
+ </div>
+
+ <div class="inline required field {{if .Err_Auth}}error{{end}}">
+ <label for="aws_access_key_id">{{ctx.Locale.Tr "repo.migrate.codecommit.aws_access_key_id"}}</label>
+ <input id="aws_access_key_id" name="aws_access_key_id" value="{{.aws_access_key_id}}" required>
+ </div>
+ <div class="inline required field {{if .Err_Auth}}error{{end}}">
+ <label for="aws_secret_access_key">{{ctx.Locale.Tr "repo.migrate.codecommit.aws_secret_access_key"}}</label>
+ <input id="aws_secret_access_key" name="aws_secret_access_key" type="password" value="{{.aws_secret_access_key}}" required>
+ </div>
+ <div class="inline required field {{if .Err_Auth}}error{{end}}">
+ <label for="auth_username">{{ctx.Locale.Tr "repo.migrate.codecommit.https_git_credentials_username"}}</label>
+ <input id="auth_username" name="auth_username" value="{{.auth_username}}" required>
+ </div>
+ <div class="inline required field {{if .Err_Auth}}error{{end}}">
+ <label for="auth_password">{{ctx.Locale.Tr "repo.migrate.codecommit.https_git_credentials_password"}}</label>
+ <input id="auth_password" name="auth_password" type="password" value="{{.auth_password}}" required>
+ </div>
+
+ {{if not .DisableNewPullMirrors}}
+ <div class="inline field">
+ <label>{{ctx.Locale.Tr "repo.migrate_options"}}</label>
+ <div class="ui checkbox">
+ <input id="mirror" name="mirror" type="checkbox" {{if .mirror}} checked{{end}}>
+ <label>{{ctx.Locale.Tr "repo.migrate_options_mirror_helper"}}</label>
+ </div>
+ </div>
+ {{end}}
+
+ <div id="migrate_items">
+ <div class="inline field">
+ <label>{{ctx.Locale.Tr "repo.migrate_items"}}</label>
+ <div class="ui checkbox">
+ <input name="pull_requests" type="checkbox" {{if .pull_requests}}checked{{end}}>
+ <label>{{ctx.Locale.Tr "repo.migrate_items_pullrequests"}}</label>
+ </div>
+ </div>
+ </div>
+
+ <div class="divider"></div>
+
+ <div class="inline required field {{if .Err_Owner}}error{{end}}">
+ <label>{{ctx.Locale.Tr "repo.owner"}}</label>
+ <div class="ui selection owner dropdown">
+ <input type="hidden" id="uid" name="uid" value="{{.ContextUser.ID}}" required>
+ <span class="text truncated-item-container" title="{{.ContextUser.Name}}">
+ {{ctx.AvatarUtils.Avatar .ContextUser 28 "mini"}}
+ <span class="truncated-item-name">{{.ContextUser.ShortName 40}}</span>
+ </span>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ <div class="menu" title="{{.SignedUser.Name}}">
+ <div class="item truncated-item-container" data-value="{{.SignedUser.ID}}">
+ {{ctx.AvatarUtils.Avatar .SignedUser 28 "mini"}}
+ <span class="truncated-item-name">{{.SignedUser.ShortName 40}}</span>
+ </div>
+ {{range .Orgs}}
+ <div class="item truncated-item-container" data-value="{{.ID}}" title="{{.Name}}">
+ {{ctx.AvatarUtils.Avatar . 28 "mini"}}
+ <span class="truncated-item-name">{{.ShortName 40}}</span>
+ </div>
+ {{end}}
+ </div>
+ </div>
+ </div>
+
+ <div class="inline required field {{if .Err_RepoName}}error{{end}}">
+ <label for="repo_name">{{ctx.Locale.Tr "repo.repo_name"}}</label>
+ <input id="repo_name" name="repo_name" value="{{.repo_name}}" required maxlength="100">
+ </div>
+ <div class="inline field">
+ <label>{{ctx.Locale.Tr "repo.visibility"}}</label>
+ <div class="ui checkbox">
+ {{if .IsForcedPrivate}}
+ <input name="private" type="checkbox" checked disabled>
+ <label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label>
+ {{else}}
+ <input name="private" type="checkbox" {{if .private}}checked{{end}}>
+ <label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label>
+ {{end}}
+ </div>
+ </div>
+ <div class="inline field {{if .Err_Description}}error{{end}}">
+ <label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label>
+ <textarea id="description" name="description" maxlength="2048">{{.description}}</textarea>
+ </div>
+
+ <div class="inline field">
+ <label></label>
+ <button class="ui primary button">
+ {{ctx.Locale.Tr "repo.migrate_repo"}}
+ </button>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+{{template "base/footer" .}}
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 52d3754737..d9f1a8f5e9 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -22615,6 +22615,14 @@
"type": "string",
"x-go-name": "AuthUsername"
},
+ "aws_access_key_id": {
+ "type": "string",
+ "x-go-name": "AWSAccessKeyID"
+ },
+ "aws_secret_access_key": {
+ "type": "string",
+ "x-go-name": "AWSSecretAccessKey"
+ },
"clone_addr": {
"type": "string",
"x-go-name": "CloneAddr"