Merge branch 'master' into master
This commit is contained in:
commit
20ed1e949e
|
|
@ -339,6 +339,7 @@ func TestCommitRepoAction(t *testing.T) {
|
|||
|
||||
s.action.ActUserID = user.ID
|
||||
s.action.RepoID = repo.ID
|
||||
s.action.Repo = repo
|
||||
s.action.IsPrivate = repo.IsPrivate
|
||||
|
||||
testCorrectRepoAction(t, s.commitRepoActionOptions, &s.action)
|
||||
|
|
|
|||
|
|
@ -11,10 +11,12 @@ import (
|
|||
"os"
|
||||
"path"
|
||||
|
||||
gouuid "github.com/satori/go.uuid"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
api "code.gitea.io/sdk/gitea"
|
||||
|
||||
"github.com/go-xorm/xorm"
|
||||
gouuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
// Attachment represent a attachment of issue/comment/release.
|
||||
|
|
@ -39,6 +41,20 @@ func (a *Attachment) IncreaseDownloadCount() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// APIFormat converts models.Attachment to api.Attachment
|
||||
func (a *Attachment) APIFormat() *api.Attachment {
|
||||
size, _ := a.Size()
|
||||
return &api.Attachment{
|
||||
ID: a.ID,
|
||||
Name: a.Name,
|
||||
Created: a.CreatedUnix.AsTime(),
|
||||
DownloadCount: a.DownloadCount,
|
||||
Size: size,
|
||||
UUID: a.UUID,
|
||||
DownloadURL: a.DownloadURL(),
|
||||
}
|
||||
}
|
||||
|
||||
// AttachmentLocalPath returns where attachment is stored in local file
|
||||
// system based on given UUID.
|
||||
func AttachmentLocalPath(uuid string) string {
|
||||
|
|
@ -50,6 +66,20 @@ func (a *Attachment) LocalPath() string {
|
|||
return AttachmentLocalPath(a.UUID)
|
||||
}
|
||||
|
||||
// Size returns the file's size of the attachment
|
||||
func (a *Attachment) Size() (int64, error) {
|
||||
fi, err := os.Stat(a.LocalPath())
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return fi.Size(), nil
|
||||
}
|
||||
|
||||
// DownloadURL returns the download url of the attached file
|
||||
func (a *Attachment) DownloadURL() string {
|
||||
return fmt.Sprintf("%sattachments/%s", setting.AppURL, a.UUID)
|
||||
}
|
||||
|
||||
// NewAttachment creates a new attachment object.
|
||||
func NewAttachment(name string, buf []byte, file multipart.File) (_ *Attachment, err error) {
|
||||
attach := &Attachment{
|
||||
|
|
@ -81,6 +111,22 @@ func NewAttachment(name string, buf []byte, file multipart.File) (_ *Attachment,
|
|||
return attach, nil
|
||||
}
|
||||
|
||||
// GetAttachmentByID returns attachment by given id
|
||||
func GetAttachmentByID(id int64) (*Attachment, error) {
|
||||
return getAttachmentByID(x, id)
|
||||
}
|
||||
|
||||
func getAttachmentByID(e Engine, id int64) (*Attachment, error) {
|
||||
attach := &Attachment{ID: id}
|
||||
|
||||
if has, err := e.Get(attach); err != nil {
|
||||
return nil, err
|
||||
} else if !has {
|
||||
return nil, ErrAttachmentNotExist{ID: id, UUID: ""}
|
||||
}
|
||||
return attach, nil
|
||||
}
|
||||
|
||||
func getAttachmentByUUID(e Engine, uuid string) (*Attachment, error) {
|
||||
attach := &Attachment{UUID: uuid}
|
||||
has, err := e.Get(attach)
|
||||
|
|
@ -180,3 +226,20 @@ func DeleteAttachmentsByComment(commentID int64, remove bool) (int, error) {
|
|||
|
||||
return DeleteAttachments(attachments, remove)
|
||||
}
|
||||
|
||||
// UpdateAttachment updates the given attachment in database
|
||||
func UpdateAttachment(atta *Attachment) error {
|
||||
return updateAttachment(x, atta)
|
||||
}
|
||||
|
||||
func updateAttachment(e Engine, atta *Attachment) error {
|
||||
var sess *xorm.Session
|
||||
if atta.ID != 0 && atta.UUID == "" {
|
||||
sess = e.ID(atta.ID)
|
||||
} else {
|
||||
// Use uuid only if id is not set and uuid is set
|
||||
sess = e.Where("uuid = ?", atta.UUID)
|
||||
}
|
||||
_, err := sess.Cols("name", "issue_id", "release_id", "comment_id", "download_count").Update(atta)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,3 +58,32 @@ func TestDeleteAttachments(t *testing.T) {
|
|||
assert.True(t, IsErrAttachmentNotExist(err))
|
||||
assert.Nil(t, attachment)
|
||||
}
|
||||
|
||||
func TestGetAttachmentByID(t *testing.T) {
|
||||
assert.NoError(t, PrepareTestDatabase())
|
||||
|
||||
attach, err := GetAttachmentByID(1)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11", attach.UUID)
|
||||
}
|
||||
|
||||
func TestAttachment_DownloadURL(t *testing.T) {
|
||||
attach := &Attachment{
|
||||
UUID: "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
|
||||
ID: 1,
|
||||
}
|
||||
assert.Equal(t, "https://try.gitea.io/attachments/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11", attach.DownloadURL())
|
||||
}
|
||||
|
||||
func TestUpdateAttachment(t *testing.T) {
|
||||
assert.NoError(t, PrepareTestDatabase())
|
||||
|
||||
attach, err := GetAttachmentByID(1)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11", attach.UUID)
|
||||
|
||||
attach.Name = "new_name"
|
||||
assert.NoError(t, UpdateAttachment(attach))
|
||||
|
||||
AssertExistsAndLoadBean(t, &Attachment{Name: "new_name"})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -374,7 +374,11 @@ func ParseCommitWithSignature(c *git.Commit) *CommitVerification {
|
|||
//Find Committer account
|
||||
committer, err := GetUserByEmail(c.Committer.Email) //This find the user by primary email or activated email so commit will not be valid if email is not
|
||||
if err != nil { //Skipping not user for commiter
|
||||
log.Error(3, "NoCommitterAccount: %v", err)
|
||||
// We can expect this to often be an ErrUserNotExist. in the case
|
||||
// it is not, however, it is important to log it.
|
||||
if !IsErrUserNotExist(err) {
|
||||
log.Error(3, "GetUserByEmail: %v", err)
|
||||
}
|
||||
return &CommitVerification{
|
||||
Verified: false,
|
||||
Reason: "gpg.error.no_committer_account",
|
||||
|
|
|
|||
|
|
@ -219,6 +219,66 @@ Please try to upgrade to a lower version (>= v0.6.0) first, then upgrade to curr
|
|||
return nil
|
||||
}
|
||||
|
||||
func dropTableColumns(x *xorm.Engine, tableName string, columnNames ...string) (err error) {
|
||||
if tableName == "" || len(columnNames) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
switch {
|
||||
case setting.UseSQLite3:
|
||||
log.Warn("Unable to drop columns in SQLite")
|
||||
case setting.UseMySQL, setting.UseTiDB, setting.UsePostgreSQL:
|
||||
cols := ""
|
||||
for _, col := range columnNames {
|
||||
if cols != "" {
|
||||
cols += ", "
|
||||
}
|
||||
cols += "DROP COLUMN `" + col + "`"
|
||||
}
|
||||
if _, err := x.Exec(fmt.Sprintf("ALTER TABLE `%s` %s", tableName, columnNames)); err != nil {
|
||||
return fmt.Errorf("Drop table `%s` columns %v: %v", tableName, columnNames, err)
|
||||
}
|
||||
case setting.UseMSSQL:
|
||||
sess := x.NewSession()
|
||||
defer sess.Close()
|
||||
|
||||
if err = sess.Begin(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cols := ""
|
||||
for _, col := range columnNames {
|
||||
if cols != "" {
|
||||
cols += ", "
|
||||
}
|
||||
cols += "`" + strings.ToLower(col) + "`"
|
||||
}
|
||||
sql := fmt.Sprintf("SELECT Name FROM SYS.DEFAULT_CONSTRAINTS WHERE PARENT_OBJECT_ID = OBJECT_ID('%[1]s') AND PARENT_COLUMN_ID IN (SELECT column_id FROM sys.columns WHERE lower(NAME) IN (%[2]s) AND object_id = OBJECT_ID('%[1]s'))",
|
||||
tableName, strings.Replace(cols, "`", "'", -1))
|
||||
constraints := make([]string, 0)
|
||||
if err := sess.SQL(sql).Find(&constraints); err != nil {
|
||||
sess.Rollback()
|
||||
return fmt.Errorf("Find constraints: %v", err)
|
||||
}
|
||||
for _, constraint := range constraints {
|
||||
if _, err := sess.Exec(fmt.Sprintf("ALTER TABLE `%s` DROP CONSTRAINT `%s`", tableName, constraint)); err != nil {
|
||||
sess.Rollback()
|
||||
return fmt.Errorf("Drop table `%s` constraint `%s`: %v", tableName, constraint, err)
|
||||
}
|
||||
}
|
||||
if _, err := sess.Exec(fmt.Sprintf("ALTER TABLE `%s` DROP COLUMN %s", tableName, cols)); err != nil {
|
||||
sess.Rollback()
|
||||
return fmt.Errorf("Drop table `%s` columns %v: %v", tableName, columnNames, err)
|
||||
}
|
||||
|
||||
return sess.Commit()
|
||||
default:
|
||||
log.Fatal(4, "Unrecognized DB")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func fixLocaleFileLoadPanic(_ *xorm.Engine) error {
|
||||
cfg, err := ini.Load(setting.CustomConf)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -5,29 +5,9 @@
|
|||
package migrations
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
|
||||
"github.com/go-xorm/xorm"
|
||||
)
|
||||
|
||||
func removeIsOwnerColumnFromOrgUser(x *xorm.Engine) (err error) {
|
||||
switch {
|
||||
case setting.UseSQLite3:
|
||||
log.Warn("Unable to drop columns in SQLite")
|
||||
case setting.UseMySQL, setting.UseTiDB, setting.UsePostgreSQL:
|
||||
if _, err := x.Exec("ALTER TABLE org_user DROP COLUMN is_owner, DROP COLUMN num_teams"); err != nil {
|
||||
return fmt.Errorf("DROP COLUMN org_user.is_owner, org_user.num_teams: %v", err)
|
||||
}
|
||||
case setting.UseMSSQL:
|
||||
if _, err := x.Exec("ALTER TABLE org_user DROP COLUMN is_owner, num_teams"); err != nil {
|
||||
return fmt.Errorf("DROP COLUMN org_user.is_owner, org_user.num_teams: %v", err)
|
||||
}
|
||||
default:
|
||||
log.Fatal(4, "Unrecognized DB")
|
||||
}
|
||||
|
||||
return nil
|
||||
return dropTableColumns(x, "org_user", "is_owner", "num_teams")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ func (r *Release) loadAttributes(e Engine) error {
|
|||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return GetReleaseAttachments(r)
|
||||
}
|
||||
|
||||
// LoadAttributes load repo and publisher attributes for a release
|
||||
|
|
@ -79,6 +79,10 @@ func (r *Release) TarURL() string {
|
|||
|
||||
// APIFormat convert a Release to api.Release
|
||||
func (r *Release) APIFormat() *api.Release {
|
||||
assets := make([]*api.Attachment, 0)
|
||||
for _, att := range r.Attachments {
|
||||
assets = append(assets, att.APIFormat())
|
||||
}
|
||||
return &api.Release{
|
||||
ID: r.ID,
|
||||
TagName: r.TagName,
|
||||
|
|
@ -92,6 +96,7 @@ func (r *Release) APIFormat() *api.Release {
|
|||
CreatedAt: r.CreatedUnix.AsTime(),
|
||||
PublishedAt: r.CreatedUnix.AsTime(),
|
||||
Publisher: r.Publisher.APIFormat(),
|
||||
Attachments: assets,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2176,6 +2176,7 @@ func GitFsck() {
|
|||
func(idx int, bean interface{}) error {
|
||||
repo := bean.(*Repository)
|
||||
repoPath := repo.RepoPath()
|
||||
log.Trace(fmt.Sprintf("Running health check for repository %s", repoPath))
|
||||
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
|
||||
desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err)
|
||||
log.Warn(desc)
|
||||
|
|
@ -2187,6 +2188,7 @@ func GitFsck() {
|
|||
}); err != nil {
|
||||
log.Error(4, "GitFsck: %v", err)
|
||||
}
|
||||
log.Trace("Finished: GitFsck")
|
||||
}
|
||||
|
||||
// GitGcRepos calls 'git gc' to remove unnecessary files and optimize the local repository
|
||||
|
|
|
|||
|
|
@ -87,6 +87,21 @@ func notifyWatchers(e Engine, act *Action) error {
|
|||
return fmt.Errorf("insert new actioner: %v", err)
|
||||
}
|
||||
|
||||
act.loadRepo()
|
||||
// check repo owner exist.
|
||||
if err := act.Repo.getOwner(e); err != nil {
|
||||
return fmt.Errorf("can't get repo owner: %v", err)
|
||||
}
|
||||
|
||||
// Add feed for organization
|
||||
if act.Repo.Owner.IsOrganization() && act.ActUserID != act.Repo.Owner.ID {
|
||||
act.ID = 0
|
||||
act.UserID = act.Repo.Owner.ID
|
||||
if _, err = e.InsertOne(act); err != nil {
|
||||
return fmt.Errorf("insert new actioner: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
for i := range watches {
|
||||
if act.ActUserID == watches[i].UserID {
|
||||
continue
|
||||
|
|
|
|||
|
|
@ -464,7 +464,11 @@ func shortLinkProcessorFull(ctx *postProcessCtx, node *html.Node, noLink bool) {
|
|||
childNode.Parent = linkNode
|
||||
absoluteLink := isLinkStr(link)
|
||||
if !absoluteLink {
|
||||
link = strings.Replace(link, " ", "+", -1)
|
||||
if image {
|
||||
link = strings.Replace(link, " ", "+", -1)
|
||||
} else {
|
||||
link = strings.Replace(link, " ", "-", -1)
|
||||
}
|
||||
}
|
||||
urlPrefix := ctx.urlPrefix
|
||||
if image {
|
||||
|
|
|
|||
|
|
@ -81,11 +81,13 @@ func TestRender_ShortLinks(t *testing.T) {
|
|||
|
||||
rawtree := util.URLJoin(AppSubURL, "raw", "master")
|
||||
url := util.URLJoin(tree, "Link")
|
||||
otherURL := util.URLJoin(tree, "OtherLink")
|
||||
otherURL := util.URLJoin(tree, "Other-Link")
|
||||
imgurl := util.URLJoin(rawtree, "Link.jpg")
|
||||
otherImgurl := util.URLJoin(rawtree, "Link+Other.jpg")
|
||||
urlWiki := util.URLJoin(AppSubURL, "wiki", "Link")
|
||||
otherURLWiki := util.URLJoin(AppSubURL, "wiki", "OtherLink")
|
||||
otherURLWiki := util.URLJoin(AppSubURL, "wiki", "Other-Link")
|
||||
imgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "Link.jpg")
|
||||
otherImgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "Link+Other.jpg")
|
||||
favicon := "http://google.com/favicon.ico"
|
||||
|
||||
test(
|
||||
|
|
@ -125,7 +127,11 @@ func TestRender_ShortLinks(t *testing.T) {
|
|||
`<p><a href="`+imgurl+`" rel="nofollow"><img src="`+imgurl+`" title="Title" alt="AltName"/></a></p>`,
|
||||
`<p><a href="`+imgurlWiki+`" rel="nofollow"><img src="`+imgurlWiki+`" title="Title" alt="AltName"/></a></p>`)
|
||||
test(
|
||||
"[[Link]] [[OtherLink]]",
|
||||
`<p><a href="`+url+`" rel="nofollow">Link</a> <a href="`+otherURL+`" rel="nofollow">OtherLink</a></p>`,
|
||||
`<p><a href="`+urlWiki+`" rel="nofollow">Link</a> <a href="`+otherURLWiki+`" rel="nofollow">OtherLink</a></p>`)
|
||||
"[[Name|Link Other.jpg|alt=\"AltName\"|title='Title']]",
|
||||
`<p><a href="`+otherImgurl+`" rel="nofollow"><img src="`+otherImgurl+`" title="Title" alt="AltName"/></a></p>`,
|
||||
`<p><a href="`+otherImgurlWiki+`" rel="nofollow"><img src="`+otherImgurlWiki+`" title="Title" alt="AltName"/></a></p>`)
|
||||
test(
|
||||
"[[Link]] [[Other Link]]",
|
||||
`<p><a href="`+url+`" rel="nofollow">Link</a> <a href="`+otherURL+`" rel="nofollow">Other Link</a></p>`,
|
||||
`<p><a href="`+urlWiki+`" rel="nofollow">Link</a> <a href="`+otherURLWiki+`" rel="nofollow">Other Link</a></p>`)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ sign_in=Anmelden
|
|||
sign_in_with=Anmelden mit
|
||||
sign_out=Abmelden
|
||||
sign_up=Registrieren
|
||||
link_account=Account verbinden
|
||||
link_account=Konto verbinden
|
||||
link_account_signin_or_signup=Melde dich mit den existierenden Zugangsdaten an, um das Benutzerkonto mit diesem Benutzerkonto zu verbinden, oder registriere ein neues Benutzerkonto
|
||||
register=Registrieren
|
||||
website=Webseite
|
||||
|
|
@ -112,21 +112,21 @@ server_service_title=Server- und sonstige Diensteinstellungen
|
|||
offline_mode=Offline-Modus aktivieren
|
||||
offline_mode_popup=CDN deaktivieren. Alle benötigten Dateien werden von diesem Server ausgeliefert.
|
||||
disable_gravatar=Gravatar-Dienst deaktivieren
|
||||
disable_gravatar_popup=Gravatar und benutzerdefinierte Quellen deaktivieren. Alle Profilbilder werden vom Nutzer hochgeladen oder sind das Standard-Profilbild.
|
||||
disable_gravatar_popup=Gravatar und benutzerdefinierte Quellen deaktivieren. Alle Profilbilder müssen vom Nutzer hochgeladen werde, ansonsten wird das Standard-Profilbild verwendet.
|
||||
federated_avatar_lookup=Suche nach föderierten Profilbildern einschalten
|
||||
federated_avatar_lookup_popup=Die Suche nach föderierten Profilbildern durch die Verwendung von föderierten open source Services basierend auf libravatar erlauben.
|
||||
federated_avatar_lookup_popup=Föderierte Profilbilder via Libravatar aktivieren.
|
||||
disable_registration=Registrierung deaktivieren
|
||||
disable_registration_popup=Registrierung neuer Benutzer deaktivieren. Nur Administratoren können Benutzerkonten anlegen.
|
||||
disable_registration_popup=Registrierung neuer Benutzer deaktivieren; nur Administratoren werden Benutzerkonten anlegen können.
|
||||
openid_signin=OpenID Anmeldung aktivieren
|
||||
openid_signin_popup=Aktiviere Anmeldung via OpenID für Benutzer
|
||||
openid_signup=Aktiviere OpenID Selbstregistrierung
|
||||
openid_signup_popup=Aktiviere OpenID-basierte Selbstregistrierung
|
||||
openid_signin_popup=Benutzeranmeldung via OpenID aktivieren
|
||||
openid_signup=OpenID Selbstregistrierung aktivieren
|
||||
openid_signup_popup=OpenID-basierte Selbstregistrierung aktivieren
|
||||
enable_captcha=Captcha aktivieren
|
||||
enable_captcha_popup=Captcha-Eingabe bei der Registrierung erforderlich.
|
||||
require_sign_in_view=Seiten nur für angemeldete Benutzer zugänglich
|
||||
require_sign_in_view_popup=Nur angemeldete Benutzer können auf alle Seiten zugreifen. Gäste sehen nur die Seiten zum Anmelden/Registrieren.
|
||||
admin_setting_desc=Du musst jetzt kein Administrator-Konto anlegen. Der erste Benutzer, der sich registriert, erhält automatisch Administrator-Rechte.
|
||||
admin_title=Administrator Einstellungen
|
||||
admin_title=Administratoreinstellungen
|
||||
admin_name=Benutzername
|
||||
admin_password=Passwort
|
||||
confirm_password=Passwort bestätigen
|
||||
|
|
@ -142,13 +142,13 @@ invalid_admin_setting=Admin-Konto Einstellungen sind ungültig: %v
|
|||
install_success=Willkommen! Danke, dass du Gitea gewählt hast. Viel Spaß!
|
||||
invalid_log_root_path=Pfad zum Log-Verzeichnis ist ungültig: %v
|
||||
default_keep_email_private=Standard-Wert für "Private E-Mail-Adressen
|
||||
default_keep_email_private_popup=Das ist der der Standardwert für die Sichtbarkeit der E-Mail-Adresse der Benutzer. Die E-Mail-Adressen aller neu registrierten Benutzer werden versteckt wenn eingeschalten, außer der Benutzer ändert seine Einstellung.
|
||||
default_allow_create_organization=Berechtigung, die es neuen Benutzern erlaubt Organisationen zu erstellen
|
||||
default_allow_create_organization_popup=Dies ist die Berechtigung, die neue Benutzer standartmäßig haben. Wenn dies auf "wahr" gesetzt ist, können neue Benutzer Organisationen erstellen.
|
||||
default_keep_email_private_popup=Das ist der der Standardwert für die Sichtbarkeit der E-Mail-Adresse der Benutzer. Die E-Mail-Adressen aller neu registrierten Benutzer werden versteckt wenn aktiviert, außer der Benutzer ändert diese Einstellung.
|
||||
default_allow_create_organization=Standardberechtigung, die es neuen Benutzern erlaubt Organisationen zu erstellen
|
||||
default_allow_create_organization_popup=Die Standardberechtigung für neue Benutzer. Wenn dies aktiviert ist, können neue Benutzer Organisationen erstellen.
|
||||
default_enable_timetracking=Zeiterfassung standardmäßig aktivieren
|
||||
default_enable_timetracking_popup=Repositories werden Zeiterfassung entsprechend dieser Einstellung standardmäßig aktiviert haben
|
||||
no_reply_address=No-Reply Adresse
|
||||
no_reply_address_helper=Domain für die E-Mail-adresse des Benutzers in den git logs, wenn der Benutzer seine E-Mail privat halten möchte. (z.B. Benutzer 'joe' und 'noreply.example.org' als Einstellung -> 'joe@noreply.example.org')
|
||||
no_reply_address_helper=Domain für die E-Mail-Adresse des Benutzers in den git logs, wenn der Benutzer seine E-Mail privat halten möchte, z.B. Benutzer 'joe' und 'noreply.example.org' als Einstellung wird zu 'joe@noreply.example.org' in den Logs.
|
||||
|
||||
[home]
|
||||
uname_holder=Benutzername oder E-Mail
|
||||
|
|
@ -160,7 +160,7 @@ collaborative_repos=Gemeinschaftliche Repositories
|
|||
my_orgs=Meine Organisationen
|
||||
my_mirrors=Meine Mirrors
|
||||
view_home=%s betrachten
|
||||
search_repos=Finde eine Repository…
|
||||
search_repos=Finde ein Repository…
|
||||
|
||||
issues.in_your_repos=Eigene Repositories
|
||||
|
||||
|
|
@ -178,39 +178,39 @@ create_new_account=Konto erstellen
|
|||
register_helper_msg=Hast du bereits ein Konto? Jetzt anmelden!
|
||||
social_register_helper_msg=Hast du bereits ein Konto? Jetzt anmelden!
|
||||
disable_register_prompt=Die Registrierung wurde deaktiviert. Bitte wende dich an den Administrator.
|
||||
disable_register_mail=Es tut uns leid, die Bestätigung der Registrierungs-E-Mail wurde deaktiviert.
|
||||
disable_register_mail=Die Bestätigung der Registrierungs-E-Mail wurde deaktiviert.
|
||||
remember_me=Angemeldet bleiben
|
||||
forgot_password_title=Passwort vergessen
|
||||
forgot_password=Passwort vergessen?
|
||||
sign_up_now=Möchtest du ein Konto? Registriere dich jetzt.
|
||||
confirmation_mail_sent_prompt=Eine neue Bestätigungs-E-Mail wurde an <b>%s</b> gesendet. Bitte kontrolliere dein Postfach innerhalb der nächsten %s, um die Registrierung abzuschließen.
|
||||
reset_password_mail_sent_prompt=Eine E-Mail wurde an <b>%s</b> gesendet. Bitte kontrolliere dein Postfach innerhalb der nächsten %s, um das Passwort zurückzusetzen.
|
||||
sign_up_now=Noch kein Konto? Jetzt registrieren.
|
||||
confirmation_mail_sent_prompt=Eine neue Bestätigungs-E-Mail wurde an <b>%s</b> gesendet. Bitte überprüfe dein Postfach innerhalb der nächsten %s, um die Registrierung abzuschließen.
|
||||
reset_password_mail_sent_prompt=Eine E-Mail wurde an <b>%s</b> gesendet. Bitte überprüfe dein Postfach innerhalb der nächsten %s, um das Passwort zurückzusetzen.
|
||||
active_your_account=Aktiviere dein Konto
|
||||
prohibit_login=Anmelden verboten
|
||||
prohibit_login_desc=Dein Account wurde gesperrt, bitte wende dich an den Administrator.
|
||||
prohibit_login_desc=Dein Konto wurde gesperrt, bitte wende dich an den Administrator.
|
||||
resent_limit_prompt=Du hast bereits eine Aktivierungs-E-Mail angefordert. Bitte warte 3 Minuten und probiere es dann nochmal.
|
||||
has_unconfirmed_mail=Hallo %s, du hast eine unbestätigte E-Mail-Adresse (<b>%s</b>). Wenn du keine Bestätigungs-E-Mail erhalten hast oder eine neue senden möchtest, klicke bitte auf den folgenden Button.
|
||||
resend_mail=Hier klicken, um die Aktivierungs-E-Mail erneut zu versenden
|
||||
resend_mail=Aktivierungs-E-Mail erneut verschicken
|
||||
email_not_associate=Diese E-Mail-Adresse ist mit keinem Konto verknüpft.
|
||||
send_reset_mail=Hier klicken, um die E-Mail zum Passwort-zurücksetzen erneut zu versenden
|
||||
send_reset_mail=E-Mail zum Passwort-zurücksetzen erneut verschicken
|
||||
reset_password=Passwort zurücksetzen
|
||||
invalid_code=Es tut uns leid, der Bestätigungscode ist abgelaufen oder ungültig.
|
||||
reset_password_helper=Hier klicken, um das Passwort zurückzusetzen
|
||||
reset_password_helper=Passwort zurückzusetzen
|
||||
password_too_short=Das Passwort muss mindenstens %d Zeichen lang sein.
|
||||
non_local_account=Nicht-Lokale Accounts können ihre Passwörter nicht über das Gitea-Webinterface ändern.
|
||||
non_local_account=Nicht-Lokale Benutzerkonten können ihre Passwörter nicht über das Gitea-Webinterface ändern.
|
||||
verify=Verifizieren
|
||||
scratch_code=Einmalpasswort
|
||||
use_scratch_code=Einmalpasswort verwenden
|
||||
twofa_scratch_used=Du hast dein Einmalpasswort verwendet. Du wurdest zu den Einstellung der Zwei-Faktor-Authentifizierung umgeleitet, dort kannst du dein Gerät abmelden oder ein neues Einmalpasswort erzeugen.
|
||||
twofa_passcode_incorrect=Ungültige PIN. Wenn du dein Gerät verlegt hast, verwende dein Einmalpasswort.
|
||||
twofa_scratch_token_incorrect=Dein Einmalpasswort ist falsch.
|
||||
twofa_passcode_incorrect=Ungültige PIN. Wenn du dein Gerät verloren hast, verwende dein Einmalpasswort.
|
||||
twofa_scratch_token_incorrect=Das Einmalpasswort ist falsch.
|
||||
login_userpass=Benutzer / Passwort
|
||||
login_openid=OpenID
|
||||
openid_connect_submit=Verbinden
|
||||
openid_connect_title=Mit bestehendem Account verbinden
|
||||
openid_connect_desc=Die eingegebene OpenID ist uns unbekannt, du kannst sie mit einem bestehendem Account verbinden.
|
||||
openid_connect_title=Mit bestehendem Konto verbinden
|
||||
openid_connect_desc=Die eingegebene OpenID URI ist uns unbekannt, du kannst sie mit einem bestehendem Konto verbinden.
|
||||
openid_register_title=Neues Konto einrichten
|
||||
openid_register_desc=Die eingegebene OpenID ist uns unbekannt, du kannst sie hier mit einem neuen Account verbinden.
|
||||
openid_register_desc=Die eingegebene OpenID URI ist uns unbekannt, du kannst sie hier mit einem neuen Konto verbinden.
|
||||
openid_signin_desc=Beispiel-URIs: https://anne.me, bob.openid.org.cn, gnusocial.net/carry
|
||||
disable_forgot_password_mail=Das zurücksetzen von Passwörtern wurde deaktiviert. Bitte kontaktiere den Administrator.
|
||||
|
||||
|
|
@ -247,8 +247,8 @@ TreeName=Dateipfad
|
|||
Content=Inhalt
|
||||
|
||||
require_error=` darf nicht leer sein.`
|
||||
alpha_dash_error=` kann ausschließlich alphanumerische Zeichen und (-_) enthalten.`
|
||||
alpha_dash_dot_error=` müssen gültige alphanumerische, dash(-_) oder Punkt-Zeichen sein. `
|
||||
alpha_dash_error=` darf ausschließlich alphanumerische Zeichen und (-_) enthalten.`
|
||||
alpha_dash_dot_error=` darf ausschließlich alphanumerische, (-_) und Punkt-Zeichen enthalten.`
|
||||
git_ref_name_error=` muss ein wohlgeformter Git-Referenzname sein.`
|
||||
size_error=` muss die Größe %s haben.`
|
||||
min_size_error=` muss mindestens %s Zeichen enthalten.`
|
||||
|
|
@ -269,25 +269,25 @@ email_been_used=E-Mail-Adresse wird bereits verwendet.
|
|||
openid_been_used=OpenID-Adresse "%s" wurde bereits verwendet.
|
||||
username_password_incorrect=Falscher Benutzername oder Passwort.
|
||||
enterred_invalid_repo_name=Bitte achte darauf, dass der eingegebene Repository-Name korrekt ist.
|
||||
enterred_invalid_owner_name=Bitte achte darauf, dass der eingegebene Name des Besitzers korrekt ist.
|
||||
enterred_invalid_owner_name=Bitte achte darauf, dass der eingegebene Besitzername korrekt ist.
|
||||
enterred_invalid_password=Bitte achte darauf, dass das eingegebene Passwort korrekt ist.
|
||||
user_not_exist=Dieser Benutzer ist nicht vorhanden.
|
||||
last_org_owner=Entfernen des letzten Mitglieds aus einem Eigentümer-Team ist nicht zulässig, da es immer mindestens einen Eigentümer pro Organisation geben muss.
|
||||
last_org_owner=Du kannst das letzte Mitglied aus dem Eigentümer-Team nicht entfernen, da es immer mindestens einen Eigentümer pro Organisation geben muss.
|
||||
cannot_add_org_to_team=Organisationen können nicht als Teammitglied hinzugefügt werden.
|
||||
|
||||
invalid_ssh_key=Leider konnte der SSH-Schlüssel vom Server nicht überprüfen werden: %s
|
||||
invalid_gpg_key=Leider konnte der GPG-Schlüssel vom Server nicht überprüft werden: %s
|
||||
unable_verify_ssh_key=Bitte überprüfe den SSH-Schlüssel nochmal, da er nicht verifiziert werden konnte.
|
||||
invalid_ssh_key=Wir konnten deinen SSH-Schlüssel leider nicht überprüfen: %s
|
||||
invalid_gpg_key=Wir konnten deinen GPG-Schlüssel leider nicht überprüfen: %s
|
||||
unable_verify_ssh_key=Bitte überprüfe den SSH-Schlüssel, da er nicht verifiziert werden konnte.
|
||||
auth_failed=Authentifizierung fehlgeschlagen: %v
|
||||
|
||||
still_own_repo=Dein Konto ist noch der Besitzer von mindestens einem Repository. Bitte lösche oder transferiere dieses zuerst.
|
||||
still_own_repo=Dein Konto ist noch der Besitzer von mindestens einem Repository. Bitte lösche oder übertrage dieses zuerst.
|
||||
still_has_org=Dein Konto ist noch ein Mitglied mindestens einer Organisation, du musst diese zuerst verlassen.
|
||||
org_still_own_repo=Diese Organisation besitzt noch Repositories, diese musst du vorher löschen oder transferieren.
|
||||
org_still_own_repo=Diese Organisation besitzt noch Repositories, diese musst du vorher löschen oder übertragen.
|
||||
|
||||
target_branch_not_exist=Ziel-Branch existiert nicht
|
||||
target_branch_not_exist=Die Ziel-Branch existiert nicht.
|
||||
|
||||
[user]
|
||||
change_avatar=Ändere dein Profilbild
|
||||
change_avatar=Profilbild ändern
|
||||
join_on=Beigetreten am
|
||||
repositories=Repositories
|
||||
activity=Öffentliche Aktivität
|
||||
|
|
@ -312,12 +312,12 @@ orgs=Organisationen
|
|||
repos=Repositories
|
||||
delete=Konto löschen
|
||||
twofa=Zwei-Faktor-Authentifizierung
|
||||
account_link=Externe Accounts
|
||||
account_link=Externe Konten
|
||||
organization=Organisation
|
||||
uid=Uid
|
||||
|
||||
public_profile=Öffentliches Profil
|
||||
profile_desc=Deine E-Mail-Adresse ist öffentlich einsehbar und wird dafür verwendet, dir Benachrichtigungen zu deinem Konto und Aktivitäten auf der Webseite zu schicken.
|
||||
profile_desc=Deine E-Mail-Adresse ist öffentlich einsehbar und wird dafür verwendet, dir Benachrichtigungen zu deinem Konto und Aktivitäten auf Gitea zu schicken.
|
||||
password_username_disabled=Nutzer, die nicht von Gitea verwaltet sind, können ihren Benutzernamen nicht ändern. Bitte kontaktiere den Gitea-Administrator für mehr Details.
|
||||
full_name=Vollständiger Name
|
||||
website=Webseite
|
||||
|
|
@ -325,13 +325,13 @@ location=Standort
|
|||
update_profile=Profil aktualisieren
|
||||
update_profile_success=Dein Profil wurde aktualisiert.
|
||||
change_username=Benutzername geändert
|
||||
change_username_prompt=Diese Änderung wird den Link zu Ihrem Profil ändern.
|
||||
change_username_prompt=Diese Änderung wird den Link zu deinem Profil ändern.
|
||||
continue=Weiter
|
||||
cancel=Abbrechen
|
||||
|
||||
lookup_avatar_by_mail=Suche nach Profilbildern via E-Mail
|
||||
federated_avatar_lookup=Suche nach föderierten Profilbildern
|
||||
enable_custom_avatar=Benutzerdefiniertes Profilbild aktivieren
|
||||
enable_custom_avatar=Benutzerdefiniertes Profilbild benutzen
|
||||
choose_new_avatar=Neues Profilbild auswählen
|
||||
update_avatar=Profilbild-Einstellungen aktualisieren
|
||||
delete_current_avatar=Aktuelles Profilbild löschen
|
||||
|
|
@ -342,7 +342,7 @@ change_password=Passwort ändern
|
|||
old_password=Aktuelles Passwort
|
||||
new_password=Neues Passwort
|
||||
retype_new_password=Neues Passwort erneut eingeben
|
||||
password_incorrect=Aktuelles Passwort ist nicht korrekt.
|
||||
password_incorrect=Das aktuelle Passwort ist falsch.
|
||||
change_password_success=Dein Passwort wurde geändert. Du kannst dich jetzt mit deinem neuen Passwort anmelden.
|
||||
password_change_disabled=Nicht-lokale Benutzer dürfen nicht ihr Kennwort über das Webinterface ändern.
|
||||
|
||||
|
|
@ -354,45 +354,45 @@ primary=Primär
|
|||
primary_email=Als primäre Adresse verwenden
|
||||
delete_email=Löschen
|
||||
email_deletion=E-Mail-Adresse löschen
|
||||
email_deletion_desc=Wenn du diese E-Mail-Adresse löschst, werden alle mit deinem Konto verknüpften Informationen verloren gehen. Git commits, die mit dieser E-Mail ausgeführt werden, bleiben ungeändert. Willst du fortfahren?
|
||||
email_deletion_desc=Wenn du diese E-Mail-Adresse löschst, werden alle mit deinem Konto verknüpften Informationen verloren gehen. Git commits, die mit dieser E-Mail ausgeführt werden, werden nicht geändert. Fortfahren?
|
||||
email_deletion_success=E-Mail-Adresse wurde erfolgreich gelöscht!
|
||||
openid_deletion=OpenID Löschen
|
||||
openid_deletion_desc=Du wirst dich nicht mehr mit dieser OpenID anmelden können, wenn du sie löschst. Weiter?
|
||||
openid_deletion_desc=Du wirst dich nicht mehr mit dieser OpenID anmelden können, wenn du sie löschst. Fortfahren?
|
||||
openid_deletion_success=OpenID wurde erfolgreich gelöscht!
|
||||
add_new_email=Neue E-Mail-Adresse hinzufügen
|
||||
add_new_openid=Neue OpenID-URI hinzufügen
|
||||
add_email=E-Mail-Adresse hinzufügen
|
||||
add_openid=OpenID-URI hinzufügen
|
||||
add_email_confirmation_sent=Eine neue Bestätigungs-E-Mail wurde an '%s' gesendet. Kontrolliere dein Postfach innerhalb der nächsten %s, um die Verifizierung abzuschließen.
|
||||
add_email_success=Dein neue E-Mail-Adresse wurde erfolgreich hinzugefügt.
|
||||
add_email_confirmation_sent=Eine neue Bestätigungs-E-Mail wurde an '%s' gesendet. Bitte überprüfe dein Postfach innerhalb der nächsten %s, um die Verifizierung abzuschließen.
|
||||
add_email_success=Deine neue E-Mail-Adresse wurde erfolgreich hinzugefügt.
|
||||
add_openid_success=Deine neue OpenID-Adresse wurde erfolgreich hinzugefügt.
|
||||
keep_email_private=E-Mail-Adresse nicht veröffentlichen
|
||||
keep_email_private_popup=Deine E-Mail-Adresse wird vor anderen Benutzern versteckt, wenn diese Option gesetzt ist.
|
||||
openid_desc=Mit deinen OpenID-Adressen kannst du die Authentifizierung an einen provider deiner Wahl delegieren
|
||||
openid_desc=Mit deinen OpenID-Adressen kannst du die Authentifizierung an einen Provider deiner Wahl delegieren
|
||||
|
||||
manage_ssh_keys=SSH-Schlüssel verwalten
|
||||
manage_gpg_keys=GPG-Schlüssel verwalten
|
||||
add_key=Schlüssel hinzufügen
|
||||
ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die deinem Konto zugeordnet sind. Bitte entferne alle Schlüssel, die dir unbekannt sind.
|
||||
gpg_desc=Dies ist eine Liste aller GPG-Schlüssel, die deinem Konto zugeordnet sind. Bitte entferne alle Schlüssel, die dir unbekannt sind.
|
||||
ssh_helper=<strong>Brauchst du Hilfe?</strong> Hier ist eine Anleitung zum <a href="%s">Erzeugen von SSH-Schlüsseln</a> oder <a href="%s">Lösen einfacher SSH-Probleme</a>.
|
||||
ssh_desc=Dies ist eine Liste aller SSH-Schlüssel, die deinem Konto zugeordnet sind. Bitte entferne alle Schlüssel, die dir unbekannt sind, da damit Zugriff auf deine Repositories möglich ist.
|
||||
gpg_desc=Dies ist eine Liste aller GPG-Schlüssel, die deinem Konto zugeordnet sind. Bitte entferne alle Schlüssel, die dir unbekannt sind, da diese verwendet werden um Git-Commits damit zu verifizieren.
|
||||
ssh_helper=<strong>Brauchst du Hilfe?</strong> Hier ist Githubs Anleitung zum <a href="%s">Erzeugen von SSH-Schlüsseln</a> oder <a href="%s">Lösen einfacher SSH-Probleme</a>.
|
||||
gpg_helper=<strong>Brauchst du Hilfe?</strong> Hier ist GitHubs Anleitung <a href="%s">über GPG</a>.
|
||||
add_new_key=SSH-Schlüssel hinzufügen
|
||||
add_new_gpg_key=GPG-Schlüssel hinzufügen
|
||||
ssh_key_been_used=Dieser öffentliche Schlüssel wird bereits verwendet.
|
||||
ssh_key_name_used=Ein öffentlicher Schlüssel mit demselben Namen ist bereits vorhanden.
|
||||
gpg_key_id_used=Ein öffentlicher GPG-Schlüssel mit der gleichen ID existiert bereits.
|
||||
gpg_no_key_email_found=Es konnte keine passende E-Mail aus diesem GPG-Schlüssel gefunden werden.
|
||||
gpg_no_key_email_found=Es konnte keine passende E-Mail in diesem GPG-Schlüssel gefunden werden.
|
||||
subkeys=Unterschlüssel
|
||||
key_id=Schlüssel-ID
|
||||
key_name=Schlüsselname
|
||||
key_content=Inhalt
|
||||
add_key_success=Ihr SSH-Schlüssel "%s" wurde hinzugefügt.
|
||||
add_gpg_key_success=Ihr GPG-Schlüssel "%s" wurde hinzugefügt.
|
||||
add_key_success=Dein SSH-Schlüssel "%s" wurde hinzugefügt.
|
||||
add_gpg_key_success=Dein GPG-Schlüssel "%s" wurde hinzugefügt.
|
||||
delete_key=Löschen
|
||||
ssh_key_deletion=SSH-Schlüssel löschen
|
||||
gpg_key_deletion=GPG-Schlüssel löschen
|
||||
ssh_key_deletion_desc=Wenn du diesen SSH-Schlüssel löschst, wirst du nicht mehr in der Lage sein, dich mit diesem Schlüssel auf deinem Account anzumelden. Fortfahren?
|
||||
ssh_key_deletion_desc=Wenn du diesen SSH-Schlüssel löschst, wirst du nicht mehr in der Lage sein, diesen Schlüssel für deinen Konto zu benutzen. Fortfahren?
|
||||
gpg_key_deletion_desc=Wenn du diesen GPG-Schlüssel löschst, werden alle Commits, die damit signiert wurden als unsigniert makiert. Fortfahren?
|
||||
ssh_key_deletion_success=Der SSH-Schlüssel wurde gelöscht.
|
||||
gpg_key_deletion_success=Der GPG-Schlüssel wurde gelöscht.
|
||||
|
|
@ -412,42 +412,42 @@ ssh_disabled=SSH ist deaktiviert
|
|||
manage_social=Verknüpfte soziale Konten verwalten
|
||||
social_desc=Dies ist eine Liste deiner zugeordneten Social-Media-Accounts. Bitte stelle sicher, dass du alle diese Accounts kennst, da man sich damit in deinem Namen auf Gitea einloggen kann.
|
||||
unbind=Verknüpfung entfernen
|
||||
unbind_success=Das Social-Konto wurde von deinem Account entfernt.
|
||||
unbind_success=Das Social-Media-Konto wurde von deinem Konto entfernt.
|
||||
|
||||
manage_access_token=Verwaltung persönlicher Zugangs-Token
|
||||
manage_access_token=Verwaltung persönlicher Zugangstokens
|
||||
generate_new_token=Neuen Token erzeugen
|
||||
tokens_desc=Von dir erzeugten Token, können zum Zugriff auf die Gitea-API verwendet werden.
|
||||
new_token_desc=Jeder Token ermöglicht vollen Zugriff auf dein Konto.
|
||||
token_name=Token-Name
|
||||
generate_token=Token generieren
|
||||
generate_token_success=Dein Zugangs-Token wurde erfolgreich erstellt! Denk daran, es jetzt gleich zu kopieren, später wirst du es nicht mehr sehen!
|
||||
generate_token_success=Dein Zugangstoken wurde erfolgreich erstellt! Aus Sicherheitsgründen wird das Passwort nur einmal angezeigt.
|
||||
delete_token=Löschen
|
||||
access_token_deletion=Persönlichen Token entfernen
|
||||
access_token_deletion_desc=Wenn du dieses Zugangs-Token löschst, wird das der Zugang für sämtliche Applikationen, die es nutzen, nicht mehr möglich sein. Fortfahren?
|
||||
delete_token_success=Das persönliche Zugangstoken wurde erfolgreich entfernt! Vergiss nicht, es aus Apps zu entfernen, welche es nutzen.
|
||||
access_token_deletion_desc=Wenn du diesen Zugangstoken löschst, wird das der Zugang für sämtliche Anwendungen, die ihn nutzen, nicht mehr möglich sein. Fortfahren?
|
||||
delete_token_success=Der persönliche Zugangstoken wurde erfolgreich entfernt! Vergiss nicht, ihn aus Anwendungen zu entfernen, die ihn nutzen.
|
||||
|
||||
twofa_desc=Gitea unterstützt Zwei-Faktor-Authentifizierung, um deine Account-Sicherheit zu erhöhen.
|
||||
twofa_desc=Gitea unterstützt Zwei-Faktor-Authentifizierung, um deine Kontosicherheit zu erhöhen.
|
||||
twofa_is_enrolled=Für dein Konto ist die Zwei-Faktor-Authentifizierung <strong>eingeschaltet</strong>.
|
||||
twofa_not_enrolled=Für deinen Account ist die Zwei-Faktor-Authentifizierung momentan nicht eingeschaltet.
|
||||
twofa_not_enrolled=Für dein Konto ist die Zwei-Faktor-Authentifizierung momentan nicht eingeschaltet.
|
||||
twofa_disable=Zwei-Faktor-Authentifizierung deaktivieren
|
||||
twofa_scratch_token_regenerate=Neues Einmalpasswort erstellen
|
||||
twofa_scratch_token_regenerated=Ein neues Einmalpasswort wurde generiert. Es lautet %s. Bewahre es an einem sicheren Ort auf.
|
||||
twofa_enroll=Zwei-Faktor-Authentifizierung aktivieren
|
||||
twofa_disable_note=Du kannst Zwei-Faktor-Authentifizierung auch deaktivieren.
|
||||
twofa_disable_desc=Die Deaktivierung von Zwei-Faktor-Authentifizierung wird die Sicherheit deines Kontos verringern. Möchtest du wirklich fortfahren?
|
||||
twofa_disable_desc=Die Deaktivierung von Zwei-Faktor-Authentifizierung wird die Sicherheit deines Kontos verringern. Fortfahren?
|
||||
regenerate_scratch_token_desc=Wenn du dein Einmalpasswort verlegt oder du dich damit eingeloggt hast, kannst du es hier zurücksetzen.
|
||||
twofa_disabled=Zwei-Faktor-Authentifizierung wurde deaktiviert.
|
||||
scan_this_image=Scanne diese Grafik mit deiner Authentifizierungs-App:
|
||||
or_enter_secret=Oder gib das Secret ein: %s
|
||||
then_enter_passcode=Und gebe den PIN ein, die die Anwendung dir gibt:
|
||||
then_enter_passcode=Und gebe den PIN ein, die die Anwendung dir anzeigt:
|
||||
passcode_invalid=Die PIN ist ungültig. Versuche es erneut.
|
||||
twofa_enrolled=Die Zwei-Faktor-Authentifizierung ist jetzt für dein Konto aktiviert. Vergewissere dich, dass du das Einmalpasswort (%s) gespeichert hast, da es nur einmal angezeigt wird!
|
||||
|
||||
manage_account_links=Verknüpfte Konten verwalten
|
||||
manage_account_links_desc=Externe, mit diesem Konto verknüpfte Accounts
|
||||
account_links_not_available=Es sind keine externen Accounts mit diesem verknüpft
|
||||
manage_account_links_desc=Externe, mit diesem Benutzerkonto verknüpfte Konten
|
||||
account_links_not_available=Es sind keine externen Benutzerkonten mit diesem verknüpft
|
||||
remove_account_link=Verknüpftes Konto entfernen
|
||||
remove_account_link_desc=Das Löschen dieses Kontos wird sämtlichen verbundenen Zugang zu deinem Account entfernen. Fortfahren?
|
||||
remove_account_link_desc=Das Löschen dieses verknüpften Benutzerkontos wird sämtlichen verbundenen Zugang zu deinem Benutzerkonto entfernen. Fortfahren?
|
||||
remove_account_link_success=Verknüpftes Konto wurde erfolgreich entfernt!
|
||||
|
||||
orgs_none=Du bist kein Mitglied in einer Organisation.
|
||||
|
|
@ -455,7 +455,7 @@ repos_none=Du besitzt keine Repositories
|
|||
|
||||
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öschvorgang bestätigen
|
||||
confirm_delete_account=Löschen bestätigen
|
||||
delete_account_title=Konto löschen
|
||||
delete_account_desc=Bist du sicher, dass du dieses Konto dauerhaft löschen möchtest?
|
||||
|
||||
|
|
@ -477,19 +477,19 @@ repo_gitignore_helper=Wähle eine .gitignore Vorlage aus
|
|||
license=Lizenz
|
||||
license_helper=Wähle eine Lizenz aus
|
||||
readme=Readme
|
||||
readme_helper=Readme Vorlage auswählen
|
||||
readme_helper=Readme-Vorlage auswählen
|
||||
auto_init=Repository mit ausgewählten Dateien und Vorlagen erstellen
|
||||
create_repo=Repository erstellen
|
||||
default_branch=Standard-Branch
|
||||
default_branch=Standardbranch
|
||||
mirror_prune=Entfernen
|
||||
mirror_prune_desc=Entferne alle Verweise auf nicht mehr existierende Remote-Repositories
|
||||
mirror_interval=Spiegel Intervall (gültige Zeiteinheiten sind "h", "m", "s")
|
||||
mirror_interval=Spiegelintervall (gültige Zeiteinheiten sind "h", "m", "s")
|
||||
mirror_interval_invalid=Spiegel-Intervall ist nicht gültig
|
||||
mirror_address=Mirror-Adresse
|
||||
mirror_address_desc=Bitte die nötigen Zugangsdaten in die Adresse mit aufnehmen.
|
||||
mirror_address_desc=Bitte füge alle nötigen Zugangsdaten in die Adresse mit ein.
|
||||
mirror_last_synced=Zuletzt synchronisiert
|
||||
watchers=Beobachter
|
||||
stargazers=In Favoriten von
|
||||
stargazers=Favorisiert von
|
||||
forks=Forks
|
||||
pick_reaction=Wähle eine Reaktion
|
||||
reactions_more=und %d weitere
|
||||
|
|
@ -498,21 +498,21 @@ form.reach_limit_of_creation=Du hast bereits dein Limit von %d Repositories erre
|
|||
form.name_reserved=Der Repository-Name '%s' ist reserviert.
|
||||
form.name_pattern_not_allowed=Repository-Namen der Form '%s' sind nicht erlaubt.
|
||||
|
||||
need_auth=Authorisierung benötigt
|
||||
need_auth=Authentifizierung benötigt
|
||||
migrate_type=Migrationstyp
|
||||
migrate_type_helper=Dieses Repository wird ein <span class="text blue">Mirror</span> sein
|
||||
migrate_repo=Repository migrieren
|
||||
migrate.clone_address=Adresse kopieren
|
||||
migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL oder ein lokaler Serverpfad sein.
|
||||
migrate.clone_local_path=oder Pfad auf dem lokalen Server
|
||||
migrate.permission_denied=Dir wurde die Berechtigung zum Importieren lokaler Repositories nicht erteilt.
|
||||
migrate.clone_address=Klon-Adresse
|
||||
migrate.clone_address_desc=Dies kann eine HTTP/HTTPS/GIT URL sein.
|
||||
migrate.clone_local_path=oder ein lokaler Serverpfad
|
||||
migrate.permission_denied=Du hast keine Berechtigung zum Importieren lokaler Repositories.
|
||||
migrate.invalid_local_path=Der lokale Pfad ist ungültig, existiert nicht oder ist kein Ordner.
|
||||
migrate.failed=Fehler bei Migration: %v
|
||||
migrate.failed=Fehler bei der Migration: %v
|
||||
migrate.lfs_mirror_unsupported=Spiegelung von LFS-Objekten wird nicht unterstützt - nutze stattdessen 'git lfs fetch --all' und 'git lfs push --all'.
|
||||
|
||||
mirror_from=Mirror von
|
||||
forked_from=geforkt von
|
||||
fork_from_self=Du kannst kein Repository forken, das dir gehört!
|
||||
fork_from_self=Du kannst kein Repository forken, das dir bereits gehört!
|
||||
copy_link=Kopieren
|
||||
copy_link_success=Kopiert!
|
||||
copy_link_error=Drücke ⌘-C oder Strg-C zum Kopieren
|
||||
|
|
@ -543,7 +543,7 @@ pulls=Pull-Requests
|
|||
labels=Label
|
||||
milestones=Meilensteine
|
||||
commits=Commits
|
||||
commit=Commits
|
||||
commit=Commit
|
||||
releases=Releases
|
||||
file_raw=Originalformat
|
||||
file_history=Verlauf
|
||||
|
|
@ -576,7 +576,7 @@ editor.update='%s' ändern
|
|||
editor.delete='%s' löschen
|
||||
editor.commit_message_desc=Eine ausführlichere (optionale) Beschreibung hinzufügen…
|
||||
editor.commit_directly_to_this_branch=Direkt in die <strong class="branch-name">%s</strong>-Branch einchecken.
|
||||
editor.create_new_branch=Einen <strong>neuen Branch</strong> für diesen Commit erstellen und einen Pull Request starten.
|
||||
editor.create_new_branch=Einen <strong>neue Branch</strong> für diesen Commit erstellen und einen Pull Request starten.
|
||||
editor.new_branch_name_desc=Neuer Branchname…
|
||||
editor.cancel=Abbrechen
|
||||
editor.filename_cannot_be_empty=Der Dateiname darf nicht leer sein.
|
||||
|
|
@ -590,7 +590,7 @@ editor.file_already_exists=Eine Datei mit dem Namen '%s' existiert bereits in di
|
|||
editor.no_changes_to_show=Keine Änderungen vorhanden.
|
||||
editor.fail_to_update_file=Fehler beim Ändern/Erstellen der Datei '%s'. Fehler: %v
|
||||
editor.add_subdir=Unterverzeichnis erstellen…
|
||||
editor.unable_to_upload_files=Fehler beim Hochladen der Dateien zu '%s'. Fehler: %v
|
||||
editor.unable_to_upload_files=Fehler beim Hochladen der Dateien nach '%s'. Fehler: %v
|
||||
editor.upload_files_to_dir=Dateien hochladen nach '%s'
|
||||
editor.cannot_commit_to_protected_branch=Auf die geschützte Branch "%s" kann nicht geschrieben werden.
|
||||
|
||||
|
|
@ -633,8 +633,8 @@ issues.label_templates.info=Es sind noch keine Label vorhanden. Du kannst vordef
|
|||
issues.label_templates.helper=Wähle ein Label
|
||||
issues.label_templates.use=Dieses Label Set benutzen
|
||||
issues.label_templates.fail_to_load_file=Fehler beim Laden der Label Template Datei '%s': %v
|
||||
issues.add_label_at=das <div class="ui label"style="color: %s\; background-color: %s">%s</div>-Label %s hinzugefügt
|
||||
issues.remove_label_at=das <div class="ui label"style="color: %s\; background-color: %s">%s</div>-Label %s entfernt
|
||||
issues.add_label_at=hat das <div class="ui label"style="color: %s\; background-color: %s">%s</div>-Label %s hinzugefügt
|
||||
issues.remove_label_at=hat das <div class="ui label"style="color: %s\; background-color: %s">%s</div>-Label %s entfernt
|
||||
issues.add_milestone_at=`fügte das Issue zum <b>%s</b> Meilenstein hinzu %s`
|
||||
issues.change_milestone_at=`änderte den Meilenstein von <b>%s</b> zu <b>%s</b> %s`
|
||||
issues.remove_milestone_at=`entfernte das Issue vom <b>%s</b> Meilenstein %s`
|
||||
|
|
@ -661,10 +661,10 @@ issues.filter_sort=Sortieren
|
|||
issues.filter_sort.latest=Neueste
|
||||
issues.filter_sort.oldest=Älteste
|
||||
issues.filter_sort.recentupdate=Kürzlich aktualisiert
|
||||
issues.filter_sort.leastupdate=Am längsten nicht aktualisiert
|
||||
issues.filter_sort.leastupdate=Am Längsten nicht aktualisiert
|
||||
issues.filter_sort.mostcomment=Am meisten kommentiert
|
||||
issues.filter_sort.leastcomment=Am wenigsten kommentiert
|
||||
issues.action_open=Offen
|
||||
issues.action_open=Öffnen
|
||||
issues.action_close=Schließen
|
||||
issues.action_label=Label
|
||||
issues.action_milestone=Meilenstein
|
||||
|
|
@ -679,7 +679,7 @@ issues.open_title=Offen
|
|||
issues.closed_title=Geschlossen
|
||||
issues.num_comments=%d Kommentare
|
||||
issues.commented_at=`kommentierte <a href="#%s">%s</a>`
|
||||
issues.delete_comment_confirm=Bist du sicher dass du das Kommentar löschen möchtest?
|
||||
issues.delete_comment_confirm=Bist du sicher dass du diesen Kommentar löschen möchtest?
|
||||
issues.no_content=Hier gibt es bis jetzt noch keinen Inhalt.
|
||||
issues.close_issue=Schließen
|
||||
issues.close_comment_issue=Kommentieren und schließen
|
||||
|
|
@ -708,8 +708,8 @@ issues.label_deletion_desc=Durch das löschen des Labels wird dieses von jeden I
|
|||
issues.label_deletion_success=Das Label wurde erfolgreich gelöscht!
|
||||
issues.label.filter_sort.alphabetically=Alphabetisch
|
||||
issues.label.filter_sort.reverse_alphabetically=Umgekehrt alphabetisch
|
||||
issues.label.filter_sort.by_size=Größe
|
||||
issues.label.filter_sort.reverse_by_size=Umgekehrte Größe
|
||||
issues.label.filter_sort.by_size=Kleinste zuerst
|
||||
issues.label.filter_sort.reverse_by_size=Größte zuerst
|
||||
issues.num_participants=%d Beteiligte
|
||||
issues.attachment.open_tab=`Klicken um "%s" in einem neuen Tab zu öffnen`
|
||||
issues.attachment.download=`Klicken um "%s" herunterzuladen`
|
||||
|
|
@ -786,7 +786,7 @@ milestones.cancel=Abbrechen
|
|||
milestones.modify=Meilenstein ändern
|
||||
milestones.edit_success=Änderungen des Meilensteins '%s' wurden erfolgreich gespeichert!
|
||||
milestones.deletion=Meilenstein löschen
|
||||
milestones.deletion_desc=Der Meilenstein wird von allen verknüpften Issues entfernt. Möchtest du fortfahren?
|
||||
milestones.deletion_desc=Der Meilenstein wird von allen verknüpften Issues entfernt. Fortfahren?
|
||||
milestones.deletion_success=Meilenstein erfolgreich gelöscht!
|
||||
milestones.filter_sort.closest_due_date=Nächster Stichtag
|
||||
milestones.filter_sort.furthest_due_date=Fernster Stichtag
|
||||
|
|
@ -936,7 +936,7 @@ settings.add_collaborator=Mitarbeiter hinzufügen
|
|||
settings.add_collaborator_success=Neuer Mitarbeiter wurde hinzugefügt.
|
||||
settings.delete_collaborator=Löschen
|
||||
settings.collaborator_deletion=Mitarbeiter löschen
|
||||
settings.collaborator_deletion_desc=Nach dem Löschen wird dieser Benutzer keinen Zugriff mehr als Mitarbeiter auf dieses Repository haben. Möchtest du fortfahren?
|
||||
settings.collaborator_deletion_desc=Nach dem Löschen wird dieser Benutzer keinen Mitarbeiter-Zugriff mehr auf dieses Repository haben. Fortfahren?
|
||||
settings.remove_collaborator_success=Mitarbeiter wurde entfernt.
|
||||
settings.search_user_placeholder=Benutzer suchen…
|
||||
settings.org_not_allowed_to_be_collaborator=Eine Organisation kann nicht als Mitarbeiter hinzugefügt werden.
|
||||
|
|
@ -944,7 +944,7 @@ settings.user_is_org_member=Benutzer ist ein Organisationsmitglied und kann nich
|
|||
settings.add_webhook=Webhook hinzufügen
|
||||
settings.hooks_desc=Webhooks erlauben es dir, externe Dienste zu informieren, wenn etwas Bestimmtes in deinem Repository passiert. Gitea sendet dann einen POST-Request an die angegebene URL. Erfahre mehr im <a target="_blank" rel="noopener" href="%s">Webhooks Guide</a>.
|
||||
settings.webhook_deletion=Webhook entfernen
|
||||
settings.webhook_deletion_desc=Das Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Wirklich fortfahren?
|
||||
settings.webhook_deletion_desc=Das Löschen dieses Webhooks wird alle zugehörigen Informationen und den Übertragungsverlauf entfernen. Fortfahren?
|
||||
settings.webhook_deletion_success=Webhook wurde erfolgreich entfernt!
|
||||
settings.webhook.test_delivery=Senden testen
|
||||
settings.webhook.test_delivery_desc=Sendet ein simuliertes Push-Ereignis, um die Webhook-Einstellungen zu testen
|
||||
|
|
@ -959,7 +959,7 @@ settings.githook_edit_desc=Wenn ein Hook nicht aktiv ist, wird der Standardinhal
|
|||
settings.githook_name=Hook-Name
|
||||
settings.githook_content=Hook-Inhalt
|
||||
settings.update_githook=Hook aktualisieren
|
||||
settings.add_webhook_desc=Gitea sendet einen <code>POST</code>-Request an die unten stehende URL mit Details aller abonnierten Ereignisse. Du kannst auch angeben, welches Datenformat du empfangen möchtest (JSON, x-www-form-urlencoded, etc.). Mehr Informationen findest du im <a target="_blank" rel="noopener" href="%s">Webhooks Guide</a>.
|
||||
settings.add_webhook_desc=Gitea sendet einen <code>POST</code>-Request an die unten stehende URL mit Details aller abonnierten Ereignisse. Du kannst auch angeben, welches Datenformat du empfangen möchtest (JSON, x-www-form-urlencoded, XML, etc.). Mehr Informationen findest du im <a target="_blank" rel="noopener" href="%s">Webhooks Guide</a>.
|
||||
settings.payload_url=Payload-URL
|
||||
settings.content_type=Inhaltstyp
|
||||
settings.secret=Secret
|
||||
|
|
@ -1006,21 +1006,21 @@ settings.key_been_used=Deploy-Schlüssel wurde verwendet.
|
|||
settings.key_name_used=Ein Deploy-Schlüssel mit diesem Namen existiert bereits.
|
||||
settings.add_key_success=Der Deploy-Schlüssel '%s' wurde erfolgreich hinzugefügt!
|
||||
settings.deploy_key_deletion=Deploy-Schlüssel löschen
|
||||
settings.deploy_key_deletion_desc=Durch das Löschen dieses Keys wird ein Zugriff damit nicht mehr möglich sein. Fortfahren?
|
||||
settings.deploy_key_deletion_desc=Durch das Löschen dieses Deploy-Schlüssels wird ein Zugriff damit nicht mehr möglich sein. Fortfahren?
|
||||
settings.deploy_key_deletion_success=Der Deploy-Schlüssel wurde erfolgreich gelöscht!
|
||||
settings.branches=Branches
|
||||
settings.protected_branch=Branch-Schutz
|
||||
settings.protected_branch=Branch-Protection
|
||||
settings.protected_branch_can_push=Push erlauben?
|
||||
settings.protected_branch_can_push_yes=Du kannst pushen
|
||||
settings.protected_branch_can_push_no=Du kannst nicht pushen
|
||||
settings.branch_protection=Branch-Protection für <b>%s</b>
|
||||
settings.protect_this_branch=Diesen Branch schützen
|
||||
settings.protect_this_branch=Diese Branch schützen
|
||||
settings.protect_this_branch_desc=Verhindere Force-Pushes sowie Löschungen.
|
||||
settings.protect_whitelist_committers=Erlaube wer in diesen Branch pushen kann
|
||||
settings.protect_whitelist_committers=Erlaube wer in diese Branch pushen kann
|
||||
settings.protect_whitelist_committers_desc=Füge Benutzer oder Teams zur Whitelist hinzu. Benutzer auf der Whitelist können Push-Restriktionen umgehen.
|
||||
settings.protect_whitelist_users=Benutzer, die in diesen Branch pushen können
|
||||
settings.protect_whitelist_users=Benutzer, die in diese Branch pushen können
|
||||
settings.protect_whitelist_search_users=Benutzer suchen
|
||||
settings.protect_whitelist_teams=Teams, deren Mitglieder in diesen Branch pushen können.
|
||||
settings.protect_whitelist_teams=Teams, deren Mitglieder in diese Branch pushen können.
|
||||
settings.protect_whitelist_search_teams=Teams suchen
|
||||
settings.add_protected_branch=Schutz aktivieren
|
||||
settings.delete_protected_branch=Schutz deaktivieren
|
||||
|
|
@ -1029,7 +1029,7 @@ settings.remove_protected_branch_success=Branch-Protection für %s erfolgreich e
|
|||
settings.protected_branch_deletion=Eine geschützte Branch löschen
|
||||
settings.protected_branch_deletion_desc=Jeder mit Schreibzugriff wird direkt in diese Branch pushen können. Bist du sicher?
|
||||
settings.default_branch_desc=Die Standardbranch ist als "basis"-Branch in deinem Repository definiert, Commits und Pull-Requests werden automatisch mit dieser Branch durchgeführt wenn du keine andere angibst.
|
||||
settings.choose_branch=Wähle einen Branch…
|
||||
settings.choose_branch=Wähle eine Branch…
|
||||
settings.no_protected_branch=Es gibt keine geschützten Branches
|
||||
|
||||
diff.browse_source=Quellcode durchsuchen
|
||||
|
|
@ -1072,21 +1072,21 @@ release.save_draft=Entwurf speichern
|
|||
release.edit_release=Release bearbeiten
|
||||
release.delete_release=Dieses Release löschen
|
||||
release.deletion=Release löschen
|
||||
release.deletion_desc=Beim Löschen dieses Releases wird das entsprechende Git-Tag gelöscht. Möchtest du fortfahren?
|
||||
release.deletion_desc=Beim Löschen dieses Releases wird das entsprechende Git-Tag gelöscht. Es wird kein Code gelöscht. Fortfahren?
|
||||
release.deletion_success=Das Release wurde gelöscht.
|
||||
release.tag_name_already_exist=Ein Release mit diesem Tag existiert bereits.
|
||||
release.tag_name_invalid=Tag-Name ist nicht gültig.
|
||||
release.downloads=Downloads
|
||||
|
||||
branch.name=Branch name
|
||||
branch.name=Branchname
|
||||
branch.search=Branches durchsuchen
|
||||
branch.already_exists=Es existiert bereits eine Branch mit dem Namen %s.
|
||||
branch.delete_head=Löschen
|
||||
branch.delete=Branch %s löschen
|
||||
branch.delete_html=Branch löschen
|
||||
branch.delete_desc=Das Löschen eines Branches kann nicht Rückgängig gemacht werden.
|
||||
branch.delete_desc=Das Löschen einer Branch kann nicht Rückgängig gemacht werden.
|
||||
branch.delete_notices_1=- Diese Operation <strong>kann nicht</strong> rückgängig gemacht werden.
|
||||
branch.delete_notices_2=- Diese Operation wird permanent alle Inhalte des Branches %s löschen.
|
||||
branch.delete_notices_2=- Diese Operation wird permanent alle Inhalte der Branch %s löschen.
|
||||
branch.delete_notices_html=- Diese Operation wird permanent alle Inhalte der Branch löschen
|
||||
branch.deletion_success=%s wurde gelöscht.
|
||||
branch.deletion_failed=Branch %s konnte nicht gelöscht werden.
|
||||
|
|
@ -1095,7 +1095,7 @@ branch.create_branch=Erstelle Branch <strong>%s</strong>
|
|||
branch.create_from=von '%s'
|
||||
branch.create_success=Branch '%s' wurde erfolgreich erstellt!
|
||||
branch.branch_already_exists=Branch '%s' existiert bereits in diesem Repository.
|
||||
branch.branch_name_conflict=Branch Name '%s' steht in Konflikt mit dem bestehendem Branch '%s'.
|
||||
branch.branch_name_conflict=Branch Name '%s' steht in Konflikt mit der bestehendem Branch '%s'.
|
||||
branch.tag_collision=Branch '%s' kann nicht erstellt werden, da ein Tag mit dem selben Namen bereits in diesem Repository vorhanden ist.
|
||||
branch.deleted_by=Von %s gelöscht
|
||||
branch.restore_success=%s wurde erfolgreich wiederhergestellt
|
||||
|
|
@ -1139,7 +1139,7 @@ settings.delete_account=Diese Organisation löschen
|
|||
settings.delete_prompt=Die Organisation wird dauerhaft gelöscht. Dies kann <strong>NICHT</strong> rückgängig gemacht werden!
|
||||
settings.confirm_delete_account=Löschen
|
||||
settings.delete_org_title=Organisation löschen
|
||||
settings.delete_org_desc=Diese Organisation wird dauerhaft gelöscht. Möchtest du fortfahren?
|
||||
settings.delete_org_desc=Diese Organisation wird dauerhaft gelöscht. Fortfahren?
|
||||
settings.hooks_desc=Webhooks hinzufügen, die für <strong>alle</strong> Repositories dieser Organisation ausgelöst werden.
|
||||
|
||||
members.membership_visibility=Sichtbarkeit der Mitgliedschaft:
|
||||
|
|
@ -1171,7 +1171,7 @@ teams.update_settings=Einstellungen aktualisieren
|
|||
teams.delete_team=Dieses Team löschen
|
||||
teams.add_team_member=Teammitglied hinzufügen
|
||||
teams.delete_team_title=Team löschen
|
||||
teams.delete_team_desc=Mitglieder dieses Teams verlieren möglicherweise ihren Zugang zu einigen Repositories, wenn dieses Team gelöscht wird. Möchtest du fortfahren?
|
||||
teams.delete_team_desc=Mitglieder dieses Teams verlieren möglicherweise ihren Zugang zu einigen Repositories, wenn dieses Team gelöscht wird. Fortfahren?
|
||||
teams.delete_team_success=Das Team wurde gelöscht.
|
||||
teams.read_permission_desc=Dieses Team hat <strong>Lesezugriff</strong>: Mitglieder können Team-Repositories einsehen und klonen.
|
||||
teams.write_permission_desc=Dieses Team hat <strong>Schreibzugriff</strong>: Mitglieder können Team-Repositories einsehen und darauf pushen.
|
||||
|
|
@ -1220,6 +1220,8 @@ dashboard.reinit_missing_repos=Alle Git-Repositories mit Einträgen neu einlesen
|
|||
dashboard.reinit_missing_repos_success=Alle verlorenen Git-Repositories mit existierenden Einträgen wurden erfolgreich aktualisiert.
|
||||
dashboard.sync_external_users=Externe Benutzerdaten synchronisieren
|
||||
dashboard.sync_external_users_started=Externe Benutzersynchronisation gestartet
|
||||
dashboard.git_fsck=Healthchecks auf alle Repositories ausführen
|
||||
dashboard.git_fsck_started=Repository-Healthchecks gestartet
|
||||
dashboard.server_uptime=Server-Uptime
|
||||
dashboard.current_goroutine=Aktuelle Goroutinen
|
||||
dashboard.current_memory_usage=Aktuelle Speichernutzung
|
||||
|
|
@ -1260,7 +1262,7 @@ users.created=Registriert am
|
|||
users.last_login=Letzter Login
|
||||
users.never_login=Niemals eingeloggt
|
||||
users.send_register_notify=Registrierungs-Benachrichtigung an den Benutzer senden
|
||||
users.new_success=Der Account '%s' wurde erfolgreich erstellt.
|
||||
users.new_success=Das Konto '%s' wurde erfolgreich erstellt.
|
||||
users.edit=Bearbeiten
|
||||
users.auth_source=Authentifizierungsquelle
|
||||
users.local=Lokal
|
||||
|
|
@ -1270,14 +1272,14 @@ users.update_profile_success=Kontoprofil wurde erfolgreich aktualisiert.
|
|||
users.edit_account=Konto bearbeiten
|
||||
users.max_repo_creation=Maximal erstellbare Repositories
|
||||
users.max_repo_creation_desc=(Auf -1 setzen, um das globale Standardlimit zu verwenden)
|
||||
users.is_activated=Benutzerkonto aktiviert
|
||||
users.is_activated=Benutzerkonto ist aktiv
|
||||
users.prohibit_login=Login deaktiviert
|
||||
users.is_admin=Administratorberechtigungen
|
||||
users.is_admin=Ist Admin
|
||||
users.allow_git_hook=Kann Git-Hooks erstellen
|
||||
users.allow_import_local=Kann lokale Repositories importieren
|
||||
users.allow_create_organization=Kann Organisationen erstellen
|
||||
users.update_profile=Konto aktualisieren
|
||||
users.delete_account=Konto löschen
|
||||
users.delete_account=Benutzerkonto löschen
|
||||
users.still_own_repo=Dieser Benutzer besitzt noch eine oder mehr Repositories. Diese Repositories müssen erst gelöscht oder übertragen werden.
|
||||
users.still_has_org=Dieser Benutzer ist noch Mitglied einer oder mehr Organisationen. Der Benutzer muss diese erst verlassen oder löschen.
|
||||
users.deletion_success=Benutzerkonto erfolgreich gelöscht.
|
||||
|
|
@ -1361,7 +1363,7 @@ auths.update_success=Die Authentifizierungseinstellungen wurden aktualisiert.
|
|||
auths.update=Authentifizierungseinstellungen aktualisieren
|
||||
auths.delete=Diese Authentifizierungsquelle löschen
|
||||
auths.delete_auth_title=Authentifizierungsquelle löschen
|
||||
auths.delete_auth_desc=Diese Authentifizierungsquelle wird gelöscht. Möchtest du fortfahren?
|
||||
auths.delete_auth_desc=Diese Authentifizierungsquelle wird gelöscht. Fortfahren?
|
||||
auths.still_in_used=Diese Authentifizierung wird noch von einem oder mehreren Nutzern verwendet. Bitte lösche diese Benutzer oder ändere deren Anmeldetyp.
|
||||
auths.deletion_success=Authentifizierung wurde erfolgreich gelöscht.
|
||||
auths.login_source_exist=Login-Quelle '%s' ist bereits vorhanden.
|
||||
|
|
@ -1411,7 +1413,7 @@ config.register_email_confirm=E-Mail-Bestätigung erforderlich
|
|||
config.disable_register=Registrierung deaktivieren
|
||||
config.enable_openid_signup=Registrierung via OpenID aktivieren
|
||||
config.enable_openid_signin=Anmelden via OpenID aktivieren
|
||||
config.show_registration_button=Schaltfläche Registrieren anzeigen
|
||||
config.show_registration_button=Schaltfläche zum Registrieren anzeigen
|
||||
config.require_sign_in_view=Ansehen erfordert Anmeldung
|
||||
config.mail_notify=E-Mail-Benachrichtigung
|
||||
config.disable_key_size_check=Prüfung der Mindestschlüssellänge deaktiveren
|
||||
|
|
@ -1565,10 +1567,10 @@ mark_all_as_read=Alle als gelesen markieren
|
|||
[gpg]
|
||||
error.extract_sign=Die Signatur konnte nicht extrahiert werden
|
||||
error.generate_hash=Es konnte kein Hash vom Commit generiert werden
|
||||
error.no_committer_account=Es ist kein Account mit dieser Commiter-Email verbunden
|
||||
error.no_committer_account=Es ist kein Benutzerkonto mit dieser Commiter-Email verbunden
|
||||
error.no_gpg_keys_found=Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
|
||||
error.not_signed_commit=Kein signierter Commit
|
||||
error.failed_retrieval_gpg_keys=Fehler beim Abrufen eines Keys des Commiter-Accounts
|
||||
error.failed_retrieval_gpg_keys=Fehler beim Abrufen eines Keys des Commiter-Kontos
|
||||
|
||||
[units]
|
||||
error.no_unit_allowed_repo=Es konnte kein Repository-Element gefunden werden auf welches du Zugriff hast
|
||||
|
|
|
|||
|
|
@ -946,6 +946,7 @@ settings.transfer_form_title = Please enter the following information to confirm
|
|||
settings.wiki_delete = Erase Wiki Data
|
||||
settings.wiki_delete_desc = Once you erase wiki data there is no going back. Please be certain.
|
||||
settings.wiki_delete_notices_1 = - This will delete and disable the wiki for %s
|
||||
settings.confirm_wiki_delete = Erase Wiki Data
|
||||
settings.wiki_deletion_success = Repository wiki data have been erased.
|
||||
settings.delete = Delete This Repository
|
||||
settings.delete_desc = Once you delete a repository, there is no going back. Please be certain.
|
||||
|
|
@ -1246,6 +1247,8 @@ dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for w
|
|||
dashboard.reinit_missing_repos_success = All missing Git repositories for which records existed have been reinitialized.
|
||||
dashboard.sync_external_users = Synchronize external user data
|
||||
dashboard.sync_external_users_started = External user synchronization started
|
||||
dashboard.git_fsck = Execute health checks on all repositories
|
||||
dashboard.git_fsck_started = Repository health checks started
|
||||
dashboard.server_uptime = Server Uptime
|
||||
dashboard.current_goroutine = Current Goroutines
|
||||
dashboard.current_memory_usage = Current Memory Usage
|
||||
|
|
|
|||
|
|
@ -920,6 +920,7 @@ settings.transfer_form_title=Kérlek, add meg a követező információt a műve
|
|||
settings.wiki_delete=Wiki adatok törlése
|
||||
settings.wiki_delete_desc=Miután kitörli a Wiki adatokat nincs visszaút. Jól gondolja meg.
|
||||
settings.wiki_delete_notices_1=- Ez le fogja törölni, és kikapcsolni a Wiki a következőnek: %s
|
||||
settings.confirm_wiki_delete=Wiki Adatok Törlése
|
||||
settings.wiki_deletion_success=A tároló Wikijében lévő összes adat törölve.
|
||||
settings.delete=A tároló törlése
|
||||
settings.delete_desc=Ha egyszer letöröl egy tárolót, azt nem lehet visszavonni. Bizonyosodjon meg benne, hogy ezt szeretné.
|
||||
|
|
@ -1220,6 +1221,8 @@ dashboard.reinit_missing_repos=Az összes Git tároló újra-inicializálása am
|
|||
dashboard.reinit_missing_repos_success=Az összes Git tároló amihez létezett bejegyzés újra lett iniciaizálva.
|
||||
dashboard.sync_external_users=Külső felhasználói adatok szinkronizálása
|
||||
dashboard.sync_external_users_started=Külső felhasználó szinkronizálása elkezdődött
|
||||
dashboard.git_fsck=Tárolók állapotának ellenőrzése
|
||||
dashboard.git_fsck_started=Tárolók állapotának ellenőrzése elindítva
|
||||
dashboard.server_uptime=Kiszolgáló futási ideje
|
||||
dashboard.current_goroutine=Jelenlegi Goroutinok
|
||||
dashboard.current_memory_usage=Jelenlegi memória használat
|
||||
|
|
|
|||
|
|
@ -920,6 +920,7 @@ settings.transfer_form_title=Введите сопутствующую инфо
|
|||
settings.wiki_delete=Стереть данные Вики
|
||||
settings.wiki_delete_desc=Будьте внимательны! Удаление всех вики-страниц необратимо.
|
||||
settings.wiki_delete_notices_1=-Это будет удалено и отключит Вики для %s
|
||||
settings.confirm_wiki_delete=Стереть данные Вики
|
||||
settings.wiki_deletion_success=Данные Вики успешно стерты.
|
||||
settings.delete=Удалить этот репозиторий
|
||||
settings.delete_desc=Будьте внимательны! Как только вы удалите репозиторий — пути назад не будет.
|
||||
|
|
@ -1220,6 +1221,8 @@ dashboard.reinit_missing_repos=Переинициализировать все
|
|||
dashboard.reinit_missing_repos_success=Все отсутствующие репозитории Git, для которых существуют записи были повторно инициализированы.
|
||||
dashboard.sync_external_users=Синхронизировать данные внешних пользователей
|
||||
dashboard.sync_external_users_started=Запущена синхронизация внешних пользователей
|
||||
dashboard.git_fsck=Запустить проверку данных всех репозиториев (git fsck)
|
||||
dashboard.git_fsck_started=Проверка данных запущена
|
||||
dashboard.server_uptime=Время непрерывной работы сервера
|
||||
dashboard.current_goroutine=Текущее количество Goroutines
|
||||
dashboard.current_memory_usage=Текущее использование памяти
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
"less": "^2.7.2",
|
||||
"less-plugin-clean-css": "^1.5.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
|||
@footer-margin: 40px;
|
||||
|
||||
body {
|
||||
font-family: "Lato", "Microsoft YaHei", Arial, Helvetica, sans-serif !important;
|
||||
font-family: "Lato", "Segoe UI", "Microsoft YaHei", Arial, Helvetica, sans-serif !important;
|
||||
background-color: #fff;
|
||||
overflow-y: scroll;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
|
|
|||
|
|
@ -989,13 +989,16 @@
|
|||
margin: 0;
|
||||
}
|
||||
.lines-num {
|
||||
border-right: 1px solid #d4d4d5;
|
||||
border-color: #d4d4d5;
|
||||
border-right-width: 1px;
|
||||
border-right-style: solid;
|
||||
padding: 0 5px;
|
||||
}
|
||||
tbody {
|
||||
tr {
|
||||
td.halfwidth {
|
||||
width: 50%;
|
||||
// halfwidth is used in split view - and in that case, 1% of each
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
&.tag-code td, td.tag-code {
|
||||
|
|
@ -1034,23 +1037,33 @@
|
|||
border-color: #c1e9c1 !important;
|
||||
}
|
||||
}
|
||||
.code-diff-split tbody tr {
|
||||
// light gray for empty lines before / after commit
|
||||
&.add-code td:nth-child(1), &.add-code td:nth-child(2),
|
||||
&.del-code td:nth-child(3), &.del-code td:nth-child(4) {
|
||||
background-color: #fafafa;
|
||||
.code-diff-split {
|
||||
table, tbody {
|
||||
width: 100%;
|
||||
}
|
||||
tbody tr {
|
||||
// light gray for empty lines before / after commit
|
||||
&.add-code td:nth-child(1), &.add-code td:nth-child(2),
|
||||
&.del-code td:nth-child(3), &.del-code td:nth-child(4) {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
&.del-code td:nth-child(1), &.del-code td:nth-child(2),
|
||||
td.del-code {
|
||||
background-color: #ffe0e0 !important;
|
||||
border-color: #f1c0c0 !important;
|
||||
}
|
||||
&.del-code td:nth-child(1), &.del-code td:nth-child(2),
|
||||
td.del-code {
|
||||
background-color: #ffe0e0 !important;
|
||||
border-color: #f1c0c0 !important;
|
||||
}
|
||||
|
||||
&.add-code td:nth-child(3), &.add-code td:nth-child(4),
|
||||
td.add-code{
|
||||
background-color: #d6fcd6 !important;
|
||||
border-color: #c1e9c1 !important;
|
||||
&.add-code td:nth-child(3), &.add-code td:nth-child(4),
|
||||
td.add-code{
|
||||
background-color: #d6fcd6 !important;
|
||||
border-color: #c1e9c1 !important;
|
||||
}
|
||||
|
||||
td:nth-child(3) {
|
||||
border-left-width: 1px;
|
||||
border-left-style: solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.file-content {
|
||||
|
|
@ -1263,11 +1276,11 @@
|
|||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.dividing.header .stackable.grid .button {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
}
|
||||
.dividing.header .stackable.grid .button {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.settings {
|
||||
|
|
@ -1698,14 +1711,14 @@ tbody.commit-list {
|
|||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.ui.stackable.menu {
|
||||
&.mobile--margin-between-items > .item {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
&.mobile--no-negative-margins {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.ui.stackable.menu {
|
||||
&.mobile--margin-between-items > .item {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
&.mobile--no-negative-margins {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
394
public/swagger.v1.json
vendored
394
public/swagger.v1.json
vendored
|
|
@ -1830,6 +1830,12 @@
|
|||
"description": "page number of requested issues",
|
||||
"name": "page",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "search string",
|
||||
"name": "q",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
|
|
@ -3225,6 +3231,37 @@
|
|||
},
|
||||
"/repos/{owner}/{repo}/releases": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "List a repo's releases",
|
||||
"operationId": "repoListReleases",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/ReleaseList"
|
||||
}
|
||||
}
|
||||
},
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
|
|
@ -3267,6 +3304,44 @@
|
|||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/releases/{id}": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Get a release",
|
||||
"operationId": "repoGetRelease",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release to get",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/Release"
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"tags": [
|
||||
"repository"
|
||||
|
|
@ -3351,6 +3426,247 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/releases/{id}/assets": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "List release's attachments",
|
||||
"operationId": "repoListReleaseAttachments",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/AttachmentList"
|
||||
}
|
||||
}
|
||||
},
|
||||
"post": {
|
||||
"consumes": [
|
||||
"multipart/form-data"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Create a release attachment",
|
||||
"operationId": "repoCreateReleaseAttachment",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the attachment",
|
||||
"name": "name",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"description": "attachment to upload",
|
||||
"name": "attachment",
|
||||
"in": "formData",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"$ref": "#/responses/Attachment"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Get a release attachment",
|
||||
"operationId": "repoGetReleaseAttachment",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the attachment to get",
|
||||
"name": "attachment_id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/Attachment"
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Delete a release attachment",
|
||||
"operationId": "repoDeleteReleaseAttachment",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the attachment to delete",
|
||||
"name": "attachment_id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"$ref": "#/responses/empty"
|
||||
}
|
||||
}
|
||||
},
|
||||
"patch": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"repository"
|
||||
],
|
||||
"summary": "Edit a release attachment",
|
||||
"operationId": "repoEditReleaseAttachment",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "owner of the repo",
|
||||
"name": "owner",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"description": "name of the repo",
|
||||
"name": "repo",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the release",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "id of the attachment to edit",
|
||||
"name": "attachment_id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/EditAttachmentOptions"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"$ref": "#/responses/Attachment"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/repos/{owner}/{repo}/stargazers": {
|
||||
"get": {
|
||||
"produces": [
|
||||
|
|
@ -4994,6 +5310,45 @@
|
|||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"Attachment": {
|
||||
"description": "Attachment a generic attachment",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"browser_download_url": {
|
||||
"type": "string",
|
||||
"x-go-name": "DownloadURL"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"x-go-name": "Created"
|
||||
},
|
||||
"download_count": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"x-go-name": "DownloadCount"
|
||||
},
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"x-go-name": "ID"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"x-go-name": "Name"
|
||||
},
|
||||
"size": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"x-go-name": "Size"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string",
|
||||
"x-go-name": "UUID"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"Branch": {
|
||||
"description": "Branch represents a repository branch",
|
||||
"type": "object",
|
||||
|
|
@ -5202,6 +5557,11 @@
|
|||
"uniqueItems": true,
|
||||
"x-go-name": "Key"
|
||||
},
|
||||
"read_only": {
|
||||
"description": "Describe if the key has only read access or read/write",
|
||||
"type": "boolean",
|
||||
"x-go-name": "ReadOnly"
|
||||
},
|
||||
"title": {
|
||||
"description": "Title of the key to add",
|
||||
"type": "string",
|
||||
|
|
@ -5540,6 +5900,17 @@
|
|||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"EditAttachmentOptions": {
|
||||
"description": "EditAttachmentOptions options for editing attachments",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"x-go-name": "Name"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/vendor/code.gitea.io/sdk/gitea"
|
||||
},
|
||||
"EditHookOption": {
|
||||
"description": "EditHookOption options when modify one hook",
|
||||
"type": "object",
|
||||
|
|
@ -6459,6 +6830,13 @@
|
|||
"description": "Release represents a repository release",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"assets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Attachment"
|
||||
},
|
||||
"x-go-name": "Attachments"
|
||||
},
|
||||
"author": {
|
||||
"$ref": "#/definitions/User"
|
||||
},
|
||||
|
|
@ -6848,6 +7226,19 @@
|
|||
"AccessTokenList": {
|
||||
"description": "AccessTokenList represents a list of API access token."
|
||||
},
|
||||
"Attachment": {
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Attachment"
|
||||
}
|
||||
},
|
||||
"AttachmentList": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Attachment"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Branch": {
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Branch"
|
||||
|
|
@ -7131,7 +7522,7 @@
|
|||
},
|
||||
"parameterBodies": {
|
||||
"schema": {
|
||||
"$ref": "#/definitions/MigrateRepoForm"
|
||||
"$ref": "#/definitions/EditAttachmentOptions"
|
||||
},
|
||||
"headers": {
|
||||
"AddCollaboratorOption": {},
|
||||
|
|
@ -7152,6 +7543,7 @@
|
|||
"CreateTeamOption": {},
|
||||
"CreateUserOption": {},
|
||||
"DeleteEmailOption": {},
|
||||
"EditAttachmentOptions": {},
|
||||
"EditHookOption": {},
|
||||
"EditIssueCommentOption": {},
|
||||
"EditIssueOption": {},
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ const (
|
|||
syncRepositoryUpdateHook
|
||||
reinitMissingRepository
|
||||
syncExternalUsers
|
||||
gitFsck
|
||||
)
|
||||
|
||||
// Dashboard show admin panel dashboard
|
||||
|
|
@ -161,6 +162,9 @@ func Dashboard(ctx *context.Context) {
|
|||
case syncExternalUsers:
|
||||
success = ctx.Tr("admin.dashboard.sync_external_users_started")
|
||||
go models.SyncExternalUsers()
|
||||
case gitFsck:
|
||||
success = ctx.Tr("admin.dashboard.git_fsck_started")
|
||||
go models.GitFsck()
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -469,9 +469,18 @@ func RegisterRoutes(m *macaron.Macaron) {
|
|||
m.Group("/releases", func() {
|
||||
m.Combo("").Get(repo.ListReleases).
|
||||
Post(reqToken(), reqRepoWriter(), context.ReferencesGitRepo(), bind(api.CreateReleaseOption{}), repo.CreateRelease)
|
||||
m.Combo("/:id").Get(repo.GetRelease).
|
||||
Patch(reqToken(), reqRepoWriter(), context.ReferencesGitRepo(), bind(api.EditReleaseOption{}), repo.EditRelease).
|
||||
Delete(reqToken(), reqRepoWriter(), repo.DeleteRelease)
|
||||
m.Group("/:id", func() {
|
||||
m.Combo("").Get(repo.GetRelease).
|
||||
Patch(reqToken(), reqRepoWriter(), context.ReferencesGitRepo(), bind(api.EditReleaseOption{}), repo.EditRelease).
|
||||
Delete(reqToken(), reqRepoWriter(), repo.DeleteRelease)
|
||||
m.Group("/assets", func() {
|
||||
m.Combo("").Get(repo.ListReleaseAttachments).
|
||||
Post(reqToken(), reqRepoWriter(), repo.CreateReleaseAttachment)
|
||||
m.Combo("/:asset").Get(repo.GetReleaseAttachment).
|
||||
Patch(reqToken(), reqRepoWriter(), bind(api.EditAttachmentOptions{}), repo.EditReleaseAttachment).
|
||||
Delete(reqToken(), reqRepoWriter(), repo.DeleteReleaseAttachment)
|
||||
})
|
||||
})
|
||||
})
|
||||
m.Post("/mirror-sync", reqToken(), reqRepoWriter(), repo.MirrorSync)
|
||||
m.Get("/editorconfig/:filename", context.RepoRef(), repo.GetEditorconfig)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import (
|
|||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/indexer"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
)
|
||||
|
|
@ -43,6 +44,10 @@ func ListIssues(ctx *context.APIContext) {
|
|||
// in: query
|
||||
// description: page number of requested issues
|
||||
// type: integer
|
||||
// - name: q
|
||||
// in: query
|
||||
// description: search string
|
||||
// type: string
|
||||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/IssueList"
|
||||
|
|
@ -56,12 +61,30 @@ func ListIssues(ctx *context.APIContext) {
|
|||
isClosed = util.OptionalBoolFalse
|
||||
}
|
||||
|
||||
issues, err := models.Issues(&models.IssuesOptions{
|
||||
RepoIDs: []int64{ctx.Repo.Repository.ID},
|
||||
Page: ctx.QueryInt("page"),
|
||||
PageSize: setting.UI.IssuePagingNum,
|
||||
IsClosed: isClosed,
|
||||
})
|
||||
var issues []*models.Issue
|
||||
|
||||
keyword := strings.Trim(ctx.Query("q"), " ")
|
||||
if strings.IndexByte(keyword, 0) >= 0 {
|
||||
keyword = ""
|
||||
}
|
||||
var issueIDs []int64
|
||||
var err error
|
||||
if len(keyword) > 0 {
|
||||
issueIDs, err = indexer.SearchIssuesByKeyword(ctx.Repo.Repository.ID, keyword)
|
||||
}
|
||||
|
||||
// Only fetch the issues if we either don't have a keyword or the search returned issues
|
||||
// This would otherwise return all issues if no issues were found by the search.
|
||||
if len(keyword) == 0 || len(issueIDs) > 0 {
|
||||
issues, err = models.Issues(&models.IssuesOptions{
|
||||
RepoIDs: []int64{ctx.Repo.Repository.ID},
|
||||
Page: ctx.QueryInt("page"),
|
||||
PageSize: setting.UI.IssuePagingNum,
|
||||
IsClosed: isClosed,
|
||||
IssueIDs: issueIDs,
|
||||
})
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
ctx.Error(500, "Issues", err)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
// GetRelease get a single release of a repository
|
||||
func GetRelease(ctx *context.APIContext) {
|
||||
// swagger:operation GET /repos/{owner}/{repo}/releases repository repoGetRelease
|
||||
// swagger:operation GET /repos/{owner}/{repo}/releases/{id} repository repoGetRelease
|
||||
// ---
|
||||
// summary: Get a release
|
||||
// produces:
|
||||
|
|
@ -29,7 +29,7 @@ func GetRelease(ctx *context.APIContext) {
|
|||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release to get
|
||||
// type: integer
|
||||
|
|
|
|||
322
routers/api/v1/repo/release_attachment.go
Normal file
322
routers/api/v1/repo/release_attachment.go
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package repo
|
||||
|
||||
import (
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
api "code.gitea.io/sdk/gitea"
|
||||
"errors"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// GetReleaseAttachment gets a single attachment of the release
|
||||
func GetReleaseAttachment(ctx *context.APIContext) {
|
||||
// swagger:operation GET /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} repository repoGetReleaseAttachment
|
||||
// ---
|
||||
// summary: Get a release attachment
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
// description: owner of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// in: path
|
||||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release
|
||||
// type: integer
|
||||
// required: true
|
||||
// - name: attachment_id
|
||||
// in: path
|
||||
// description: id of the attachment to get
|
||||
// type: integer
|
||||
// required: true
|
||||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/Attachment"
|
||||
releaseID := ctx.ParamsInt64(":id")
|
||||
attachID := ctx.ParamsInt64(":asset")
|
||||
attach, err := models.GetAttachmentByID(attachID)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetAttachmentByID", err)
|
||||
return
|
||||
}
|
||||
if attach.ReleaseID != releaseID {
|
||||
ctx.Status(404)
|
||||
return
|
||||
}
|
||||
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests
|
||||
ctx.JSON(200, attach.APIFormat())
|
||||
}
|
||||
|
||||
// ListReleaseAttachments lists all attachments of the release
|
||||
func ListReleaseAttachments(ctx *context.APIContext) {
|
||||
// swagger:operation GET /repos/{owner}/{repo}/releases/{id}/assets repository repoListReleaseAttachments
|
||||
// ---
|
||||
// summary: List release's attachments
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
// description: owner of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// in: path
|
||||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release
|
||||
// type: integer
|
||||
// required: true
|
||||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/AttachmentList"
|
||||
releaseID := ctx.ParamsInt64(":id")
|
||||
release, err := models.GetReleaseByID(releaseID)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetReleaseByID", err)
|
||||
return
|
||||
}
|
||||
if release.RepoID != ctx.Repo.Repository.ID {
|
||||
ctx.Status(404)
|
||||
return
|
||||
}
|
||||
if err := release.LoadAttributes(); err != nil {
|
||||
ctx.Error(500, "LoadAttributes", err)
|
||||
return
|
||||
}
|
||||
ctx.JSON(200, release.APIFormat().Attachments)
|
||||
}
|
||||
|
||||
// CreateReleaseAttachment creates an attachment and saves the given file
|
||||
func CreateReleaseAttachment(ctx *context.APIContext) {
|
||||
// swagger:operation POST /repos/{owner}/{repo}/releases/{id}/assets repository repoCreateReleaseAttachment
|
||||
// ---
|
||||
// summary: Create a release attachment
|
||||
// produces:
|
||||
// - application/json
|
||||
// consumes:
|
||||
// - multipart/form-data
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
// description: owner of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// in: path
|
||||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release
|
||||
// type: integer
|
||||
// required: true
|
||||
// - name: name
|
||||
// in: query
|
||||
// description: name of the attachment
|
||||
// type: string
|
||||
// required: false
|
||||
// - name: attachment
|
||||
// in: formData
|
||||
// description: attachment to upload
|
||||
// type: file
|
||||
// required: true
|
||||
// responses:
|
||||
// "201":
|
||||
// "$ref": "#/responses/Attachment"
|
||||
|
||||
// Check if attachments are enabled
|
||||
if !setting.AttachmentEnabled {
|
||||
ctx.Error(404, "AttachmentEnabled", errors.New("attachment is not enabled"))
|
||||
return
|
||||
}
|
||||
|
||||
// Check if release exists an load release
|
||||
releaseID := ctx.ParamsInt64(":id")
|
||||
release, err := models.GetReleaseByID(releaseID)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetReleaseByID", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Get uploaded file from request
|
||||
file, header, err := ctx.GetFile("attachment")
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetFile", err)
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
buf := make([]byte, 1024)
|
||||
n, _ := file.Read(buf)
|
||||
if n > 0 {
|
||||
buf = buf[:n]
|
||||
}
|
||||
|
||||
// Check if the filetype is allowed by the settings
|
||||
fileType := http.DetectContentType(buf)
|
||||
|
||||
allowedTypes := strings.Split(setting.AttachmentAllowedTypes, ",")
|
||||
allowed := false
|
||||
for _, t := range allowedTypes {
|
||||
t := strings.Trim(t, " ")
|
||||
if t == "*/*" || t == fileType {
|
||||
allowed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !allowed {
|
||||
ctx.Error(400, "DetectContentType", errors.New("File type is not allowed"))
|
||||
return
|
||||
}
|
||||
|
||||
var filename = header.Filename
|
||||
if query := ctx.Query("name"); query != "" {
|
||||
filename = query
|
||||
}
|
||||
|
||||
// Create a new attachment and save the file
|
||||
attach, err := models.NewAttachment(filename, buf, file)
|
||||
if err != nil {
|
||||
ctx.Error(500, "NewAttachment", err)
|
||||
return
|
||||
}
|
||||
attach.ReleaseID = release.ID
|
||||
if err := models.UpdateAttachment(attach); err != nil {
|
||||
ctx.Error(500, "UpdateAttachment", err)
|
||||
return
|
||||
}
|
||||
ctx.JSON(201, attach.APIFormat())
|
||||
}
|
||||
|
||||
// EditReleaseAttachment updates the given attachment
|
||||
func EditReleaseAttachment(ctx *context.APIContext, form api.EditAttachmentOptions) {
|
||||
// swagger:operation PATCH /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} repository repoEditReleaseAttachment
|
||||
// ---
|
||||
// summary: Edit a release attachment
|
||||
// produces:
|
||||
// - application/json
|
||||
// consumes:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
// description: owner of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// in: path
|
||||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release
|
||||
// type: integer
|
||||
// required: true
|
||||
// - name: attachment_id
|
||||
// in: path
|
||||
// description: id of the attachment to edit
|
||||
// type: integer
|
||||
// required: true
|
||||
// - name: body
|
||||
// in: body
|
||||
// schema:
|
||||
// "$ref": "#/definitions/EditAttachmentOptions"
|
||||
// responses:
|
||||
// "201":
|
||||
// "$ref": "#/responses/Attachment"
|
||||
|
||||
// Check if release exists an load release
|
||||
releaseID := ctx.ParamsInt64(":id")
|
||||
attachID := ctx.ParamsInt64(":attachment")
|
||||
attach, err := models.GetAttachmentByID(attachID)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetAttachmentByID", err)
|
||||
return
|
||||
}
|
||||
if attach.ReleaseID != releaseID {
|
||||
ctx.Status(404)
|
||||
return
|
||||
}
|
||||
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests
|
||||
if form.Name != "" {
|
||||
attach.Name = form.Name
|
||||
}
|
||||
|
||||
if err := models.UpdateAttachment(attach); err != nil {
|
||||
ctx.Error(500, "UpdateAttachment", attach)
|
||||
}
|
||||
ctx.JSON(201, attach.APIFormat())
|
||||
}
|
||||
|
||||
// DeleteReleaseAttachment delete a given attachment
|
||||
func DeleteReleaseAttachment(ctx *context.APIContext) {
|
||||
// swagger:operation DELETE /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id} repository repoDeleteReleaseAttachment
|
||||
// ---
|
||||
// summary: Delete a release attachment
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: owner
|
||||
// in: path
|
||||
// description: owner of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: repo
|
||||
// in: path
|
||||
// description: name of the repo
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: id
|
||||
// in: path
|
||||
// description: id of the release
|
||||
// type: integer
|
||||
// required: true
|
||||
// - name: attachment_id
|
||||
// in: path
|
||||
// description: id of the attachment to delete
|
||||
// type: integer
|
||||
// required: true
|
||||
// responses:
|
||||
// "204":
|
||||
// "$ref": "#/responses/empty"
|
||||
|
||||
// Check if release exists an load release
|
||||
releaseID := ctx.ParamsInt64(":id")
|
||||
attachID := ctx.ParamsInt64(":attachment")
|
||||
attach, err := models.GetAttachmentByID(attachID)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetAttachmentByID", err)
|
||||
return
|
||||
}
|
||||
if attach.ReleaseID != releaseID {
|
||||
ctx.Status(404)
|
||||
return
|
||||
}
|
||||
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests
|
||||
|
||||
if err := models.DeleteAttachment(attach, true); err != nil {
|
||||
ctx.Error(500, "DeleteAttachment", err)
|
||||
return
|
||||
}
|
||||
ctx.Status(204)
|
||||
}
|
||||
|
|
@ -63,4 +63,6 @@ type swaggerParameterBodies struct {
|
|||
EditUserOption api.EditUserOption
|
||||
|
||||
MigrateRepoForm auth.MigrateRepoForm
|
||||
|
||||
EditAttachmentOptions api.EditAttachmentOptions
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,3 +90,15 @@ type swaggerResponseWatchInfo struct {
|
|||
type swaggerResponseSearchResults struct {
|
||||
Body api.SearchResults `json:"body"`
|
||||
}
|
||||
|
||||
// swagger:response AttachmentList
|
||||
type swaggerResponseAttachmentList struct {
|
||||
//in: body
|
||||
Body []api.Attachment `json:"body"`
|
||||
}
|
||||
|
||||
// swagger:response Attachment
|
||||
type swaggerResponseAttachment struct {
|
||||
//in: body
|
||||
Body api.Attachment `json:"body"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ func UploadAttachment(ctx *context.Context) {
|
|||
}
|
||||
|
||||
if !allowed {
|
||||
log.Info("Attachment with type %s blocked from upload", fileType)
|
||||
ctx.Error(400, ErrFileTypeForbidden.Error())
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@
|
|||
<td>{{.i18n.Tr "admin.dashboard.sync_external_users"}}</td>
|
||||
<td><i class="fa fa-caret-square-o-right"></i> <a href="{{AppSubUrl}}/admin?op=8">{{.i18n.Tr "admin.dashboard.operation_run"}}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{.i18n.Tr "admin.dashboard.git_fsck"}}</td>
|
||||
<td><i class="fa fa-caret-square-o-right"></i> <a href="{{AppSubUrl}}/admin?op=9">{{.i18n.Tr "admin.dashboard.operation_run"}}</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@
|
|||
{{if .Repository.UnitEnabled $.UnitTypeWiki}}
|
||||
<div class="ui small modal" id="delete-wiki-modal">
|
||||
<div class="header">
|
||||
{{.i18n.Tr "repo.settings.wiki-delete"}}
|
||||
{{.i18n.Tr "repo.settings.wiki_delete"}}
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="ui warning message text left">
|
||||
|
|
@ -428,7 +428,7 @@
|
|||
|
||||
<div class="text right actions">
|
||||
<div class="ui cancel button">{{.i18n.Tr "settings.cancel"}}</div>
|
||||
<button class="ui red button">{{.i18n.Tr "repo.settings.confirm_delete"}}</button>
|
||||
<button class="ui red button">{{.i18n.Tr "repo.settings.confirm_wiki_delete"}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
28
vendor/code.gitea.io/sdk/gitea/admin_user.go
generated
vendored
28
vendor/code.gitea.io/sdk/gitea/admin_user.go
generated
vendored
|
|
@ -12,7 +12,7 @@ import (
|
|||
|
||||
// CreateUserOption create user options
|
||||
type CreateUserOption struct {
|
||||
SourceID int64 `json:"source_id"`
|
||||
SourceID int64 `json:"source_id"`
|
||||
LoginName string `json:"login_name"`
|
||||
// required: true
|
||||
Username string `json:"username" binding:"Required;AlphaDashDot;MaxSize(35)"`
|
||||
|
|
@ -21,8 +21,8 @@ type CreateUserOption struct {
|
|||
// swagger:strfmt email
|
||||
Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
|
||||
// required: true
|
||||
Password string `json:"password" binding:"Required;MaxSize(255)"`
|
||||
SendNotify bool `json:"send_notify"`
|
||||
Password string `json:"password" binding:"Required;MaxSize(255)"`
|
||||
SendNotify bool `json:"send_notify"`
|
||||
}
|
||||
|
||||
// AdminCreateUser create a user
|
||||
|
|
@ -37,20 +37,20 @@ func (c *Client) AdminCreateUser(opt CreateUserOption) (*User, error) {
|
|||
|
||||
// EditUserOption edit user options
|
||||
type EditUserOption struct {
|
||||
SourceID int64 `json:"source_id"`
|
||||
SourceID int64 `json:"source_id"`
|
||||
LoginName string `json:"login_name"`
|
||||
FullName string `json:"full_name" binding:"MaxSize(100)"`
|
||||
FullName string `json:"full_name" binding:"MaxSize(100)"`
|
||||
// required: true
|
||||
// swagger:strfmt email
|
||||
Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
|
||||
Password string `json:"password" binding:"MaxSize(255)"`
|
||||
Website string `json:"website" binding:"MaxSize(50)"`
|
||||
Location string `json:"location" binding:"MaxSize(50)"`
|
||||
Active *bool `json:"active"`
|
||||
Admin *bool `json:"admin"`
|
||||
AllowGitHook *bool `json:"allow_git_hook"`
|
||||
AllowImportLocal *bool `json:"allow_import_local"`
|
||||
MaxRepoCreation *int `json:"max_repo_creation"`
|
||||
Email string `json:"email" binding:"Required;Email;MaxSize(254)"`
|
||||
Password string `json:"password" binding:"MaxSize(255)"`
|
||||
Website string `json:"website" binding:"MaxSize(50)"`
|
||||
Location string `json:"location" binding:"MaxSize(50)"`
|
||||
Active *bool `json:"active"`
|
||||
Admin *bool `json:"admin"`
|
||||
AllowGitHook *bool `json:"allow_git_hook"`
|
||||
AllowImportLocal *bool `json:"allow_import_local"`
|
||||
MaxRepoCreation *int `json:"max_repo_creation"`
|
||||
}
|
||||
|
||||
// AdminEditUser modify user informations
|
||||
|
|
|
|||
91
vendor/code.gitea.io/sdk/gitea/attachment.go
generated
vendored
91
vendor/code.gitea.io/sdk/gitea/attachment.go
generated
vendored
|
|
@ -3,15 +3,90 @@
|
|||
// license that can be found in the LICENSE file.
|
||||
|
||||
package gitea // import "code.gitea.io/sdk/gitea"
|
||||
import "time"
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Attachment a generic attachment
|
||||
// swagger:model
|
||||
type Attachment struct {
|
||||
ID int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Size int64 `json:"size"`
|
||||
DownloadCount int64 `json:"download_count"`
|
||||
Created time.Time `json:"created_at"`
|
||||
UUID string `json:"uuid"`
|
||||
DownloadURL string `json:"browser_download_url"`
|
||||
ID int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Size int64 `json:"size"`
|
||||
DownloadCount int64 `json:"download_count"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
UUID string `json:"uuid"`
|
||||
DownloadURL string `json:"browser_download_url"`
|
||||
}
|
||||
|
||||
// ListReleaseAttachments list release's attachments
|
||||
func (c *Client) ListReleaseAttachments(user, repo string, release int64) ([]*Attachment, error) {
|
||||
attachments := make([]*Attachment, 0, 10)
|
||||
err := c.getParsedResponse("GET",
|
||||
fmt.Sprintf("/repos/%s/%s/releases/%d/assets", user, repo, release),
|
||||
nil, nil, &attachments)
|
||||
return attachments, err
|
||||
}
|
||||
|
||||
// ListReleaseAttachments list release's attachments
|
||||
func (c *Client) GetReleaseAttachment(user, repo string, release int64, id int64) (*Attachment, error) {
|
||||
a := new(Attachment)
|
||||
err := c.getParsedResponse("GET",
|
||||
fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, id),
|
||||
nil, nil, &a)
|
||||
return a, err
|
||||
}
|
||||
|
||||
// CreateReleaseAttachment creates an attachment for the given release
|
||||
func (c *Client) CreateReleaseAttachment(user, repo string, release int64, file io.Reader, filename string) (*Attachment, error) {
|
||||
// Write file to body
|
||||
body := new(bytes.Buffer)
|
||||
writer := multipart.NewWriter(body)
|
||||
part, err := writer.CreateFormFile("attachment", filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if _, err = io.Copy(part, file); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err = writer.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Send request
|
||||
attachment := new(Attachment)
|
||||
err = c.getParsedResponse("POST",
|
||||
fmt.Sprintf("/repos/%s/%s/releases/%d/assets", user, repo, release),
|
||||
http.Header{"Content-Type": {writer.FormDataContentType()}}, body, &attachment)
|
||||
return attachment, err
|
||||
}
|
||||
|
||||
// EditReleaseAttachment updates the given attachment with the given options
|
||||
func (c *Client) EditReleaseAttachment(user, repo string, release int64, attachment int64, form EditAttachmentOptions) (*Attachment, error) {
|
||||
body, err := json.Marshal(&form)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
attach := new(Attachment)
|
||||
return attach, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, attachment), jsonHeader, bytes.NewReader(body), attach)
|
||||
}
|
||||
|
||||
// DeleteReleaseAttachment deletes the given attachment including the uploaded file
|
||||
func (c *Client) DeleteReleaseAttachment(user, repo string, release int64, id int64) error {
|
||||
_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/releases/%d/assets/%d", user, repo, release, id), nil, nil)
|
||||
return err
|
||||
}
|
||||
|
||||
// EditAttachmentOptions options for editing attachments
|
||||
// swagger:model
|
||||
type EditAttachmentOptions struct {
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
|
|
|||
3
vendor/code.gitea.io/sdk/gitea/gitea.go
generated
vendored
3
vendor/code.gitea.io/sdk/gitea/gitea.go
generated
vendored
|
|
@ -7,6 +7,7 @@ package gitea
|
|||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
|
@ -69,6 +70,8 @@ func (c *Client) getResponse(method, path string, header http.Header, body io.Re
|
|||
return nil, errors.New("403 Forbidden")
|
||||
case 404:
|
||||
return nil, errors.New("404 Not Found")
|
||||
case 422:
|
||||
return nil, fmt.Errorf("422 Unprocessable Entity: %s", string(data))
|
||||
}
|
||||
|
||||
if resp.StatusCode/100 != 2 {
|
||||
|
|
|
|||
26
vendor/code.gitea.io/sdk/gitea/hook.go
generated
vendored
26
vendor/code.gitea.io/sdk/gitea/hook.go
generated
vendored
|
|
@ -21,16 +21,16 @@ var (
|
|||
|
||||
// Hook a hook is a web hook when one repository changed
|
||||
type Hook struct {
|
||||
ID int64 `json:"id"`
|
||||
Type string `json:"type"`
|
||||
URL string `json:"-"`
|
||||
Config map[string]string `json:"config"`
|
||||
Events []string `json:"events"`
|
||||
Active bool `json:"active"`
|
||||
ID int64 `json:"id"`
|
||||
Type string `json:"type"`
|
||||
URL string `json:"-"`
|
||||
Config map[string]string `json:"config"`
|
||||
Events []string `json:"events"`
|
||||
Active bool `json:"active"`
|
||||
// swagger:strfmt date-time
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Updated time.Time `json:"updated_at"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
Created time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
// HookList represents a list of API hook.
|
||||
|
|
@ -67,7 +67,7 @@ type CreateHookOption struct {
|
|||
Type string `json:"type" binding:"Required"`
|
||||
// required: true
|
||||
Config map[string]string `json:"config" binding:"Required"`
|
||||
Events []string `json:"events"`
|
||||
Events []string `json:"events"`
|
||||
// default: false
|
||||
Active bool `json:"active"`
|
||||
}
|
||||
|
|
@ -95,8 +95,8 @@ func (c *Client) CreateRepoHook(user, repo string, opt CreateHookOption) (*Hook,
|
|||
// EditHookOption options when modify one hook
|
||||
type EditHookOption struct {
|
||||
Config map[string]string `json:"config"`
|
||||
Events []string `json:"events"`
|
||||
Active *bool `json:"active"`
|
||||
Events []string `json:"events"`
|
||||
Active *bool `json:"active"`
|
||||
}
|
||||
|
||||
// EditOrgHook modify one hook of an organization, with hook id and options
|
||||
|
|
@ -140,7 +140,7 @@ type Payloader interface {
|
|||
// PayloadUser represents the author or committer of a commit
|
||||
type PayloadUser struct {
|
||||
// Full name of the commit author
|
||||
Name string `json:"name"`
|
||||
Name string `json:"name"`
|
||||
// swagger:strfmt email
|
||||
Email string `json:"email"`
|
||||
UserName string `json:"username"`
|
||||
|
|
@ -159,7 +159,7 @@ type PayloadCommit struct {
|
|||
Committer *PayloadUser `json:"committer"`
|
||||
Verification *PayloadCommitVerification `json:"verification"`
|
||||
// swagger:strfmt date-time
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
}
|
||||
|
||||
// PayloadCommitVerification represents the GPG verification of a commit
|
||||
|
|
|
|||
20
vendor/code.gitea.io/sdk/gitea/issue.go
generated
vendored
20
vendor/code.gitea.io/sdk/gitea/issue.go
generated
vendored
|
|
@ -43,12 +43,12 @@ type Issue struct {
|
|||
//
|
||||
// type: string
|
||||
// enum: open,closed
|
||||
State StateType `json:"state"`
|
||||
Comments int `json:"comments"`
|
||||
State StateType `json:"state"`
|
||||
Comments int `json:"comments"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
Created time.Time `json:"created_at"`
|
||||
// swagger:strfmt date-time
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Updated time.Time `json:"updated_at"`
|
||||
|
||||
PullRequest *PullRequestMeta `json:"pull_request"`
|
||||
}
|
||||
|
|
@ -86,15 +86,15 @@ func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, error) {
|
|||
// CreateIssueOption options to create one issue
|
||||
type CreateIssueOption struct {
|
||||
// required:true
|
||||
Title string `json:"title" binding:"Required"`
|
||||
Body string `json:"body"`
|
||||
Title string `json:"title" binding:"Required"`
|
||||
Body string `json:"body"`
|
||||
// username of assignee
|
||||
Assignee string `json:"assignee"`
|
||||
Assignee string `json:"assignee"`
|
||||
// milestone id
|
||||
Milestone int64 `json:"milestone"`
|
||||
Milestone int64 `json:"milestone"`
|
||||
// list of label ids
|
||||
Labels []int64 `json:"labels"`
|
||||
Closed bool `json:"closed"`
|
||||
Labels []int64 `json:"labels"`
|
||||
Closed bool `json:"closed"`
|
||||
}
|
||||
|
||||
// CreateIssue create a new issue for a given repository
|
||||
|
|
|
|||
16
vendor/code.gitea.io/sdk/gitea/issue_comment.go
generated
vendored
16
vendor/code.gitea.io/sdk/gitea/issue_comment.go
generated
vendored
|
|
@ -13,16 +13,16 @@ import (
|
|||
|
||||
// Comment represents a comment on a commit or issue
|
||||
type Comment struct {
|
||||
ID int64 `json:"id"`
|
||||
HTMLURL string `json:"html_url"`
|
||||
PRURL string `json:"pull_request_url"`
|
||||
IssueURL string `json:"issue_url"`
|
||||
Poster *User `json:"user"`
|
||||
Body string `json:"body"`
|
||||
ID int64 `json:"id"`
|
||||
HTMLURL string `json:"html_url"`
|
||||
PRURL string `json:"pull_request_url"`
|
||||
IssueURL string `json:"issue_url"`
|
||||
Poster *User `json:"user"`
|
||||
Body string `json:"body"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
Created time.Time `json:"created_at"`
|
||||
// swagger:strfmt date-time
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Updated time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
// ListIssueComments list comments on an issue.
|
||||
|
|
|
|||
6
vendor/code.gitea.io/sdk/gitea/issue_label.go
generated
vendored
6
vendor/code.gitea.io/sdk/gitea/issue_label.go
generated
vendored
|
|
@ -13,8 +13,8 @@ import (
|
|||
// Label a label to an issue or a pr
|
||||
// swagger:model
|
||||
type Label struct {
|
||||
ID int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
ID int64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
// example: 00aabb
|
||||
Color string `json:"color"`
|
||||
URL string `json:"url"`
|
||||
|
|
@ -36,7 +36,7 @@ func (c *Client) GetRepoLabel(owner, repo string, id int64) (*Label, error) {
|
|||
// CreateLabelOption options for creating a label
|
||||
type CreateLabelOption struct {
|
||||
// required:true
|
||||
Name string `json:"name" binding:"Required"`
|
||||
Name string `json:"name" binding:"Required"`
|
||||
// required:true
|
||||
// example: #00aabb
|
||||
Color string `json:"color" binding:"Required;Size(7)"`
|
||||
|
|
|
|||
22
vendor/code.gitea.io/sdk/gitea/issue_milestone.go
generated
vendored
22
vendor/code.gitea.io/sdk/gitea/issue_milestone.go
generated
vendored
|
|
@ -13,16 +13,16 @@ import (
|
|||
|
||||
// Milestone milestone is a collection of issues on one repository
|
||||
type Milestone struct {
|
||||
ID int64 `json:"id"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
State StateType `json:"state"`
|
||||
OpenIssues int `json:"open_issues"`
|
||||
ClosedIssues int `json:"closed_issues"`
|
||||
ID int64 `json:"id"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
State StateType `json:"state"`
|
||||
OpenIssues int `json:"open_issues"`
|
||||
ClosedIssues int `json:"closed_issues"`
|
||||
// swagger:strfmt date-time
|
||||
Closed *time.Time `json:"closed_at"`
|
||||
Closed *time.Time `json:"closed_at"`
|
||||
// swagger:strfmt date-time
|
||||
Deadline *time.Time `json:"due_on"`
|
||||
Deadline *time.Time `json:"due_on"`
|
||||
}
|
||||
|
||||
// ListRepoMilestones list all the milestones of one repository
|
||||
|
|
@ -39,10 +39,10 @@ func (c *Client) GetMilestone(owner, repo string, id int64) (*Milestone, error)
|
|||
|
||||
// CreateMilestoneOption options for creating a milestone
|
||||
type CreateMilestoneOption struct {
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
// swagger:strfmt date-time
|
||||
Deadline *time.Time `json:"due_on"`
|
||||
Deadline *time.Time `json:"due_on"`
|
||||
}
|
||||
|
||||
// CreateMilestone create one milestone with options
|
||||
|
|
|
|||
2
vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
generated
vendored
2
vendor/code.gitea.io/sdk/gitea/issue_tracked_time.go
generated
vendored
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
// TrackedTime worked time for an issue / pr
|
||||
type TrackedTime struct {
|
||||
ID int64 `json:"id"`
|
||||
ID int64 `json:"id"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created"`
|
||||
// Time in seconds
|
||||
|
|
|
|||
8
vendor/code.gitea.io/sdk/gitea/org.go
generated
vendored
8
vendor/code.gitea.io/sdk/gitea/org.go
generated
vendored
|
|
@ -42,11 +42,11 @@ func (c *Client) GetOrg(orgname string) (*Organization, error) {
|
|||
// CreateOrgOption options for creating an organization
|
||||
type CreateOrgOption struct {
|
||||
// required: true
|
||||
UserName string `json:"username" binding:"Required"`
|
||||
FullName string `json:"full_name"`
|
||||
UserName string `json:"username" binding:"Required"`
|
||||
FullName string `json:"full_name"`
|
||||
Description string `json:"description"`
|
||||
Website string `json:"website"`
|
||||
Location string `json:"location"`
|
||||
Website string `json:"website"`
|
||||
Location string `json:"location"`
|
||||
}
|
||||
|
||||
// EditOrgOption options for editing an organization
|
||||
|
|
|
|||
6
vendor/code.gitea.io/sdk/gitea/org_team.go
generated
vendored
6
vendor/code.gitea.io/sdk/gitea/org_team.go
generated
vendored
|
|
@ -10,7 +10,7 @@ type Team struct {
|
|||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
// enum: none,read,write,admin,owner
|
||||
Permission string `json:"permission"`
|
||||
Permission string `json:"permission"`
|
||||
}
|
||||
|
||||
// CreateTeamOption options for creating a team
|
||||
|
|
@ -19,7 +19,7 @@ type CreateTeamOption struct {
|
|||
Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
|
||||
Description string `json:"description" binding:"MaxSize(255)"`
|
||||
// enum: read,write,admin
|
||||
Permission string `json:"permission"`
|
||||
Permission string `json:"permission"`
|
||||
}
|
||||
|
||||
// EditTeamOption options for editing a team
|
||||
|
|
@ -28,5 +28,5 @@ type EditTeamOption struct {
|
|||
Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
|
||||
Description string `json:"description" binding:"MaxSize(255)"`
|
||||
// enum: read,write,admin
|
||||
Permission string `json:"permission"`
|
||||
Permission string `json:"permission"`
|
||||
}
|
||||
|
|
|
|||
4
vendor/code.gitea.io/sdk/gitea/pull.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/pull.go
generated
vendored
|
|
@ -29,8 +29,8 @@ type PullRequest struct {
|
|||
DiffURL string `json:"diff_url"`
|
||||
PatchURL string `json:"patch_url"`
|
||||
|
||||
Mergeable bool `json:"mergeable"`
|
||||
HasMerged bool `json:"merged"`
|
||||
Mergeable bool `json:"mergeable"`
|
||||
HasMerged bool `json:"merged"`
|
||||
// swagger:strfmt date-time
|
||||
Merged *time.Time `json:"merged_at"`
|
||||
MergedCommitID *string `json:"merge_commit_sha"`
|
||||
|
|
|
|||
27
vendor/code.gitea.io/sdk/gitea/release.go
generated
vendored
27
vendor/code.gitea.io/sdk/gitea/release.go
generated
vendored
|
|
@ -13,21 +13,22 @@ import (
|
|||
|
||||
// Release represents a repository release
|
||||
type Release struct {
|
||||
ID int64 `json:"id"`
|
||||
TagName string `json:"tag_name"`
|
||||
Target string `json:"target_commitish"`
|
||||
Title string `json:"name"`
|
||||
Note string `json:"body"`
|
||||
URL string `json:"url"`
|
||||
TarURL string `json:"tarball_url"`
|
||||
ZipURL string `json:"zipball_url"`
|
||||
IsDraft bool `json:"draft"`
|
||||
IsPrerelease bool `json:"prerelease"`
|
||||
ID int64 `json:"id"`
|
||||
TagName string `json:"tag_name"`
|
||||
Target string `json:"target_commitish"`
|
||||
Title string `json:"name"`
|
||||
Note string `json:"body"`
|
||||
URL string `json:"url"`
|
||||
TarURL string `json:"tarball_url"`
|
||||
ZipURL string `json:"zipball_url"`
|
||||
IsDraft bool `json:"draft"`
|
||||
IsPrerelease bool `json:"prerelease"`
|
||||
// swagger:strfmt date-time
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
// swagger:strfmt date-time
|
||||
PublishedAt time.Time `json:"published_at"`
|
||||
Publisher *User `json:"author"`
|
||||
PublishedAt time.Time `json:"published_at"`
|
||||
Publisher *User `json:"author"`
|
||||
Attachments []*Attachment `json:"assets"`
|
||||
}
|
||||
|
||||
// ListReleases list releases of a repository
|
||||
|
|
|
|||
14
vendor/code.gitea.io/sdk/gitea/repo.go
generated
vendored
14
vendor/code.gitea.io/sdk/gitea/repo.go
generated
vendored
|
|
@ -41,10 +41,10 @@ type Repository struct {
|
|||
OpenIssues int `json:"open_issues_count"`
|
||||
DefaultBranch string `json:"default_branch"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
Created time.Time `json:"created_at"`
|
||||
// swagger:strfmt date-time
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Permissions *Permission `json:"permissions,omitempty"`
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Permissions *Permission `json:"permissions,omitempty"`
|
||||
}
|
||||
|
||||
// ListMyRepos lists all repositories for the authenticated user that has access to.
|
||||
|
|
@ -122,15 +122,15 @@ func (c *Client) DeleteRepo(owner, repo string) error {
|
|||
// MigrateRepoOption options for migrating a repository from an external service
|
||||
type MigrateRepoOption struct {
|
||||
// required: true
|
||||
CloneAddr string `json:"clone_addr" binding:"Required"`
|
||||
CloneAddr string `json:"clone_addr" binding:"Required"`
|
||||
AuthUsername string `json:"auth_username"`
|
||||
AuthPassword string `json:"auth_password"`
|
||||
// required: true
|
||||
UID int `json:"uid" binding:"Required"`
|
||||
// required: true
|
||||
RepoName string `json:"repo_name" binding:"Required"`
|
||||
Mirror bool `json:"mirror"`
|
||||
Private bool `json:"private"`
|
||||
RepoName string `json:"repo_name" binding:"Required"`
|
||||
Mirror bool `json:"mirror"`
|
||||
Private bool `json:"private"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
|
|
|
|||
8
vendor/code.gitea.io/sdk/gitea/repo_key.go
generated
vendored
8
vendor/code.gitea.io/sdk/gitea/repo_key.go
generated
vendored
|
|
@ -13,10 +13,10 @@ import (
|
|||
|
||||
// DeployKey a deploy key
|
||||
type DeployKey struct {
|
||||
ID int64 `json:"id"`
|
||||
Key string `json:"key"`
|
||||
URL string `json:"url"`
|
||||
Title string `json:"title"`
|
||||
ID int64 `json:"id"`
|
||||
Key string `json:"key"`
|
||||
URL string `json:"url"`
|
||||
Title string `json:"title"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
ReadOnly bool `json:"read_only"`
|
||||
|
|
|
|||
4
vendor/code.gitea.io/sdk/gitea/status.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/status.go
generated
vendored
|
|
@ -38,9 +38,9 @@ type Status struct {
|
|||
Context string `json:"context"`
|
||||
Creator *User `json:"creator"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at"`
|
||||
Created time.Time `json:"created_at"`
|
||||
// swagger:strfmt date-time
|
||||
Updated time.Time `json:"updated_at"`
|
||||
Updated time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
// CombinedStatus holds the combined state of several statuses for a single commit
|
||||
|
|
|
|||
8
vendor/code.gitea.io/sdk/gitea/user.go
generated
vendored
8
vendor/code.gitea.io/sdk/gitea/user.go
generated
vendored
|
|
@ -13,13 +13,13 @@ import (
|
|||
// swagger:model
|
||||
type User struct {
|
||||
// the user's id
|
||||
ID int64 `json:"id"`
|
||||
ID int64 `json:"id"`
|
||||
// the user's username
|
||||
UserName string `json:"login"`
|
||||
UserName string `json:"login"`
|
||||
// the user's full name
|
||||
FullName string `json:"full_name"`
|
||||
FullName string `json:"full_name"`
|
||||
// swagger:strfmt email
|
||||
Email string `json:"email"`
|
||||
Email string `json:"email"`
|
||||
// URL to the user's avatar
|
||||
AvatarURL string `json:"avatar_url"`
|
||||
}
|
||||
|
|
|
|||
4
vendor/code.gitea.io/sdk/gitea/user_gpgkey.go
generated
vendored
4
vendor/code.gitea.io/sdk/gitea/user_gpgkey.go
generated
vendored
|
|
@ -24,9 +24,9 @@ type GPGKey struct {
|
|||
CanEncryptStorage bool `json:"can_encrypt_storage"`
|
||||
CanCertify bool `json:"can_certify"`
|
||||
// swagger:strfmt date-time
|
||||
Created time.Time `json:"created_at,omitempty"`
|
||||
Created time.Time `json:"created_at,omitempty"`
|
||||
// swagger:strfmt date-time
|
||||
Expires time.Time `json:"expires_at,omitempty"`
|
||||
Expires time.Time `json:"expires_at,omitempty"`
|
||||
}
|
||||
|
||||
// GPGKeyEmail an email attached to a GPGKey
|
||||
|
|
|
|||
14
vendor/code.gitea.io/sdk/gitea/user_search.go
generated
vendored
Normal file
14
vendor/code.gitea.io/sdk/gitea/user_search.go
generated
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package gitea
|
||||
|
||||
import "fmt"
|
||||
|
||||
type searchUsersResponse struct {
|
||||
Users []*User `json:"data"`
|
||||
}
|
||||
|
||||
// SearchUsers finds users by query
|
||||
func (c *Client) SearchUsers(query string, limit int) ([]*User, error) {
|
||||
resp := new(searchUsersResponse)
|
||||
err := c.getParsedResponse("GET", fmt.Sprintf("/users/search?q=%s&limit=%d", query, limit), nil, nil, &resp)
|
||||
return resp.Users, err
|
||||
}
|
||||
6
vendor/vendor.json
vendored
6
vendor/vendor.json
vendored
|
|
@ -9,10 +9,10 @@
|
|||
"revisionTime": "2018-02-10T03:05:43Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "Qtq0kW+BnpYMOriaoCjMa86WGG8=",
|
||||
"checksumSHA1": "PWaIU7g1YSkETxka2DIS1EYsPK0=",
|
||||
"path": "code.gitea.io/sdk/gitea",
|
||||
"revision": "79eee8f12c7fc1cc5b802c5cdc5b494ef3733866",
|
||||
"revisionTime": "2017-12-20T06:57:50Z"
|
||||
"revision": "cdbef997666132599cc92dc22aa94de3db04adeb",
|
||||
"revisionTime": "2018-03-02T14:48:43Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "bOODD4Gbw3GfcuQPU2dI40crxxk=",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user