mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 19:11:25 +01:00
feat(repo): validate create templates, publish local projects, verify edits
repo create --license NOPE returned Gitea's HTTP 500 internals. License, .gitignore and label templates are now checked against the server's lists, case-insensitively, and complete with Tab. --source DIR adds the new repository as a remote of a local Git repository and --push pushes its current branch; --public is the explicit opposite of --private, and -d/-g/-l and the new alias follow gh. --trust-model now offers the names Gitea accepts. A prompted name is confirmed with the visibility, owner and host, and creation reports "✓ Created repository ..." and the URL. repo edit --default-branch nope exited 0 without changing anything; the branch must now exist. Edit gains --visibility, --enable-issues/-wiki/ -pull-requests/-projects, --allow-merge-commit/-squash/-rebase, --delete-branch-on-merge, --default-merge-style and --add-topic/ --remove-topic, and reports which settings it changed. repo migrate names the repository after the source URL, validates --service before prompting, and reports the import with the URL. Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
9 files changed
+742
-308
No files matched your search
@@ -45,6 +45,30 @@ func (s Repositories) Generate(ctx context.Context, source string, opts Reposito
|
||||
return repositoryFrom(&response), nil
|
||||
}
|
||||
|
||||
// Licenses lists the license templates that repository creation accepts.
|
||||
func (s Repositories) Licenses(ctx context.Context) ([]string, error) {
|
||||
licenses, _, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]*gitea.LicensesTemplateListEntry, *gitea.Response, error) {
|
||||
return c.Templates.ListLicenses(ctx)
|
||||
})
|
||||
return convertAll(licenses, func(license *gitea.LicensesTemplateListEntry) string { return license.Key }), err
|
||||
}
|
||||
|
||||
// Gitignores lists the .gitignore templates that repository creation accepts.
|
||||
func (s Repositories) Gitignores(ctx context.Context) ([]string, error) {
|
||||
names, _, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]string, *gitea.Response, error) {
|
||||
return c.Templates.ListGitignores(ctx)
|
||||
})
|
||||
return names, err
|
||||
}
|
||||
|
||||
// LabelTemplates lists the label sets that repository creation accepts.
|
||||
func (s Repositories) LabelTemplates(ctx context.Context) ([]string, error) {
|
||||
names, _, err := call(ctx, s.Client, func(ctx context.Context, c *gitea.Client) ([]string, *gitea.Response, error) {
|
||||
return c.Templates.ListLabels(ctx)
|
||||
})
|
||||
return names, err
|
||||
}
|
||||
|
||||
// RepositoryMigrationOptions is explicit server-side import input. Credentials stay in request bodies.
|
||||
type RepositoryMigrationOptions struct {
|
||||
Name string `json:"repo_name"`
|
||||
|
||||
Reference in new issue
Block a user