Compare commits

..

No commits in common. "fe8b6cbd91ccfac8ce2bccac8b8785aa7358a243" and "7692240daa79502218fd3abfcf30c40f5f2db156" have entirely different histories.

69 changed files with 1475 additions and 1685 deletions

View File

@ -726,7 +726,7 @@ steps:
# TODO: We should probably build all dependencies into a test image
- name: test-e2e
image: mcr.microsoft.com/playwright:v1.31.2-focal
image: mcr.microsoft.com/playwright:v1.29.2-focal
commands:
- curl -sLO https://go.dev/dl/go1.20.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
- groupadd --gid 1001 gitea && useradd -m --gid 1001 --uid 1001 gitea

View File

@ -471,8 +471,6 @@ var migrations = []Migration{
NewMigration("Rename Webhook org_id to owner_id", v1_20.RenameWebhookOrgToOwner),
// v246 -> v247
NewMigration("Add missed column owner_id for project table", v1_20.AddNewColumnForProject),
// v247 -> v248
NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType),
}
// GetCurrentDBVersion returns the current db version

View File

@ -1,50 +0,0 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_20 //nolint
import (
"code.gitea.io/gitea/modules/log"
"xorm.io/xorm"
)
// FixIncorrectProjectType: set individual project's type from 3(TypeOrganization) to 1(TypeIndividual)
func FixIncorrectProjectType(x *xorm.Engine) error {
type User struct {
ID int64 `xorm:"pk autoincr"`
Type int
}
const (
UserTypeIndividual int = 0
TypeIndividual uint8 = 1
TypeOrganization uint8 = 3
)
type Project struct {
OwnerID int64 `xorm:"INDEX"`
Type uint8
Owner *User `xorm:"extends"`
}
sess := x.NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
return err
}
count, err := sess.Table("project").
Where("type = ? AND owner_id IN (SELECT id FROM `user` WHERE type = ?)", TypeOrganization, UserTypeIndividual).
Update(&Project{
Type: TypeIndividual,
})
if err != nil {
return err
}
log.Debug("Updated %d projects to belong to a user instead of an organization", count)
return sess.Commit()
}

View File

@ -172,7 +172,7 @@ func GetCardConfig() []CardConfig {
// IsTypeValid checks if a project type is valid
func IsTypeValid(p Type) bool {
switch p {
case TypeIndividual, TypeRepository, TypeOrganization:
case TypeRepository, TypeOrganization:
return true
default:
return false

View File

@ -20,7 +20,7 @@ func TestIsProjectTypeValid(t *testing.T) {
typ Type
valid bool
}{
{TypeIndividual, true},
{TypeIndividual, false},
{TypeRepository, true},
{TypeOrganization, true},
{UnknownType, false},

View File

@ -223,7 +223,6 @@ func ParsePackage(r io.Reader) (*Package, error) {
OptionalDependencies: meta.OptionalDependencies,
Bin: meta.Bin,
Readme: meta.Readme,
Repository: meta.Repository,
},
}

View File

@ -26,10 +26,6 @@ func TestParsePackage(t *testing.T) {
packageDescription := "Test Description"
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
integrity := "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg=="
repository := Repository{
Type: "gitea",
URL: "http://localhost:3000/gitea/test.git",
}
t.Run("InvalidUpload", func(t *testing.T) {
p, err := ParsePackage(bytes.NewReader([]byte{0}))
@ -246,7 +242,6 @@ func TestParsePackage(t *testing.T) {
Dist: PackageDistribution{
Integrity: integrity,
},
Repository: repository,
},
},
},
@ -277,7 +272,5 @@ func TestParsePackage(t *testing.T) {
assert.Equal(t, "https://gitea.io/", p.Metadata.ProjectURL)
assert.Contains(t, p.Metadata.Dependencies, "package")
assert.Equal(t, "1.2.0", p.Metadata.Dependencies["package"])
assert.Equal(t, repository.Type, p.Metadata.Repository.Type)
assert.Equal(t, repository.URL, p.Metadata.Repository.URL)
})
}

View File

@ -21,5 +21,4 @@ type Metadata struct {
OptionalDependencies map[string]string `json:"optional_dependencies,omitempty"`
Bin map[string]string `json:"bin,omitempty"`
Readme string `json:"readme,omitempty"`
Repository Repository `json:"repository,omitempty"`
}

View File

@ -1423,6 +1423,7 @@ issues.context.reference_issue=Odkázat v novém úkolu
issues.context.edit=Upravit
issues.context.delete=Smazat
issues.no_content=Není zde žádný obsah.
issues.close_issue=Zavřít
issues.pull_merged_at=`sloučil/a commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> do <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`sloučil/a commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> do <b>%[3]s</b> ručně %[4]s`
issues.close_comment_issue=Okomentovat a zavřít

View File

@ -1310,6 +1310,7 @@ issues.context.reference_issue=In neuem Issue referenzieren
issues.context.edit=Bearbeiten
issues.context.delete=Löschen
issues.no_content=Hier gibt es bis jetzt noch keinen Inhalt.
issues.close_issue=Schließen
issues.pull_merged_at=`mergte den Commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> %[4]s in <b>%[3]s</b>`
issues.manually_pull_merged_at=`mergte den Commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> %[4]s manuell in <b>%[3]s</b>`
issues.close_comment_issue=Kommentieren und schließen

View File

@ -1331,6 +1331,7 @@ issues.context.reference_issue=Αναφορά σε νέο ζήτημα
issues.context.edit=Επεξεργασία
issues.context.delete=Διαγραφή
issues.no_content=Δεν υπάρχει ακόμα περιεχόμενο.
issues.close_issue=Κλείσιμο
issues.pull_merged_at=`συγχώνευσε την υποβολή <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> σε <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`συγχώνευσε την υποβολή <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> σε <b>%[3]s</b> %[4]s`
issues.close_comment_issue=Σχόλιο και κλείσιμο

View File

@ -1330,6 +1330,7 @@ issues.context.reference_issue=Referencia en una nueva incidencia
issues.context.edit=Editar
issues.context.delete=Eliminar
issues.no_content=Aún no existe contenido.
issues.close_issue=Cerrar
issues.pull_merged_at=`fusionado commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> en <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`fusionado manualmente commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> en <b>%[3]s</b> %[4]s`
issues.close_comment_issue=Comentar y cerrar

View File

@ -1213,6 +1213,7 @@ issues.context.reference_issue=مرجع در شماره جدید
issues.context.edit=ویرایش
issues.context.delete=حذف
issues.no_content=هنوز محتوایی ایجاد نشده.
issues.close_issue=ببند
issues.pull_merged_at=`ادغام شده commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> در <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`ادغام شده commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> در <b>%[3]s</b> بصورت دستی %[4]s`
issues.close_comment_issue=ثبت دیدگاه و بستن

View File

@ -936,6 +936,7 @@ issues.context.reference_issue=Viittaa uudesa ongelmassa
issues.context.edit=Muokkaa
issues.context.delete=Poista
issues.no_content=Sisältöä ei vielä ole.
issues.close_issue=Sulje
issues.close_comment_issue=Kommentoi ja sulje
issues.reopen_issue=Avaa uudelleen
issues.reopen_comment_issue=Kommentoi ja avaa uudelleen

View File

@ -1195,6 +1195,7 @@ issues.context.reference_issue=Référencer dans un nouveau ticket
issues.context.edit=Éditer
issues.context.delete=Supprimer
issues.no_content=Il n'existe pas encore de contenu.
issues.close_issue=Fermer
issues.pull_merged_at=`révision fusionnée <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> dans <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`révision fusionnée <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> dans <b>%[3]s</b> manuellement %[4]s`
issues.close_comment_issue=Commenter et Fermer

View File

@ -881,6 +881,7 @@ issues.context.quote_reply=Válasz idézettel
issues.context.edit=Szerkesztés
issues.context.delete=Törlés
issues.no_content=Még nincs tartalom.
issues.close_issue=Lezárás
issues.close_comment_issue=Hozzászólás és lezárás
issues.reopen_issue=Újranyitás
issues.reopen_comment_issue=Hozzászólás és újranyitás

View File

@ -752,6 +752,7 @@ issues.context.quote_reply=Kutip Balasan
issues.context.edit=Sunting
issues.context.delete=Hapus
issues.no_content=Belum ada konten.
issues.close_issue=Tutup
issues.close_comment_issue=Komentar dan Tutup
issues.reopen_issue=Buka kembali
issues.reopen_comment_issue=Komentar dan Buka Kembali

View File

@ -823,6 +823,7 @@ issues.num_comments=%d ummæli
issues.commented_at=`gerði ummæli <a href="#%s">%s</a>`
issues.context.edit=Breyta
issues.context.delete=Eyða
issues.close_issue=Loka
issues.manually_pull_merged_at=`sameinaði framlag <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> inni í <b>%[3]s</b> handvirkt %[4]s`
issues.close_comment_issue=Senda ummæli og Loka
issues.reopen_issue=Enduropna

View File

@ -1315,6 +1315,7 @@ issues.context.reference_issue=Fai riferimento in un nuovo problema
issues.context.edit=Modifica
issues.context.delete=Elimina
issues.no_content=Non ci sono ancora contenuti.
issues.close_issue=Chiudi
issues.pull_merged_at=`merged commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> in <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`merged commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> in <b>%[3]s</b> manualmente %[4]s`
issues.close_comment_issue=Commenta e Chiudi

View File

@ -821,7 +821,6 @@ remove_account_link=連携アカウントの削除
remove_account_link_desc=連携アカウントを削除し、Giteaアカウントへのアクセス権を取り消します。 続行しますか?
remove_account_link_success=連携アカウントを削除しました。
hooks.desc=このユーザーが所有する<strong>すべてのリポジトリ</strong>でトリガーされるWebhookを追加します。
orgs_none=あなたはどの組織のメンバーでもありません。
repos_none=あなたはリポジトリを所有していません。
@ -1369,7 +1368,7 @@ issues.context.reference_issue=新しいイシューから参照
issues.context.edit=編集
issues.context.delete=削除
issues.no_content=まだ内容がありません
issues.close=イシューをクローズ
issues.close_issue=クローズする
issues.pull_merged_at=`がコミット <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> を <b>%[3]s</b> にマージ %[4]s`
issues.manually_pull_merged_at=`がコミット <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> を <b>%[3]s</b> に手動マージ %[4]s`
issues.close_comment_issue=コメントしてクローズ
@ -1654,7 +1653,6 @@ pulls.update_branch_rebase=リベースでブランチを更新
pulls.update_branch_success=ブランチの更新が成功しました
pulls.update_not_allowed=ブランチを更新する権限がありません
pulls.outdated_with_base_branch=このブランチはベースブランチに対して最新ではありません
pulls.close=プルリクエストをクローズ
pulls.closed_at=`がプルリクエストをクローズ <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`がプルリクエストを再オープン <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.merge_instruction_hint=`<a class="show-instruction">コマンドラインの手順</a>も確認できます。`
@ -2291,8 +2289,6 @@ release.edit_subheader=リリースで、プロジェクトのバージョンを
release.tag_name=タグ名
release.target=ターゲット
release.tag_helper=既存のタグを選択するか、新しいタグを作成します。
release.tag_helper_new=新しいタグです。 このタグはターゲットから作成されます。
release.tag_helper_existing=存在するタグです。
release.title=タイトル
release.content=内容
release.prerelease_desc=プレリリース
@ -2422,7 +2418,6 @@ settings.delete_prompt=組織は恒久的に削除され、元に戻すことは
settings.confirm_delete_account=削除を確認
settings.delete_org_title=組織の削除
settings.delete_org_desc=組織を恒久的に削除します。 続行しますか?
settings.hooks_desc=この組織の<strong>すべてのリポジトリ</strong>でトリガーされるWebhookを追加します。
settings.labels_desc=この組織の<strong>すべてのリポジトリ</strong>で使用可能なイシューラベルを追加します。
@ -2935,8 +2930,6 @@ config.git_disable_diff_highlight=Diffのシンタックスハイライトが無
config.git_max_diff_lines=最大の差分行数(1ファイルあたり)
config.git_max_diff_line_characters=最大の差分文字数(1行あたり)
config.git_max_diff_files=差分を表示する最大ファイル数
config.git_enable_reflogs=Reflog有効
config.git_reflog_expiry_time=有効期間
config.git_gc_args=GC引数
config.git_migrate_timeout=移行タイムアウト
config.git_mirror_timeout=ミラー更新タイムアウト
@ -3241,9 +3234,6 @@ rubygems.required.ruby=必要なRubyバージョン
rubygems.required.rubygems=必要なRubyGemバージョン
rubygems.documentation=RubyGemsレジストリの詳細については、<a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/rubygems/">ドキュメント</a> を参照してください。
swift.registry=このレジストリをコマンドラインからセットアップします:
swift.install=あなたの <code>Package.swift</code> ファイルにパッケージを追加します:
swift.install2=そして次のコマンドを実行します:
swift.documentation=Swift レジストリの詳細については、 <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/swift/">ドキュメント</a> を参照してください。
vagrant.install=Vagrant ボックスを追加するには、次のコマンドを実行します。
vagrant.documentation=Vagrantレジストリの詳細については <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/packages/vagrant/">ドキュメント</a>を参照してください。
settings.link=このパッケージをリポジトリにリンク

View File

@ -787,6 +787,7 @@ issues.delete_comment_confirm=이 댓글을 정말 삭제하시겠습니까?
issues.context.edit=수정하기
issues.context.delete=삭제
issues.no_content=아직 콘텐츠가 없습니다.
issues.close_issue=닫기
issues.close_comment_issue=클로즈 및 코멘트
issues.reopen_issue=다시 열기
issues.reopen_comment_issue=다시 오픈 및 코멘트

View File

@ -1461,6 +1461,7 @@ issues.context.reference_issue=Atsaukties uz šo jaunā problēmā
issues.context.edit=Labot
issues.context.delete=Dzēst
issues.no_content=Vēl nav satura.
issues.close_issue=Aizvērt
issues.pull_merged_at=`sapludināja revīziju <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> atzarā <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`manuāli sapludināja revīziju <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> atzarā <b>%[3]s</b> %[4]s`
issues.close_comment_issue=Komentēt un aizvērt

View File

@ -1315,6 +1315,7 @@ issues.context.reference_issue=Verwijs in nieuw issue
issues.context.edit=Bewerken
issues.context.delete=Verwijder
issues.no_content=Er is nog geen inhoud.
issues.close_issue=Sluit
issues.pull_merged_at=`commit samengevoegd <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> in <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`commit <a class="ui sha" href="%[1]s"> handmatig samengevoegd <code>%[2]s</code></a> in <b>%[3]s</b> %[4]s`
issues.close_comment_issue=Reageer en sluit

View File

@ -1208,6 +1208,7 @@ issues.context.quote_reply=Cytuj odpowiedź
issues.context.edit=Edytuj
issues.context.delete=Usuń
issues.no_content=Nie ma jeszcze treści.
issues.close_issue=Zamknij
issues.close_comment_issue=Skomentuj i zamknij
issues.reopen_issue=Otwórz ponownie
issues.reopen_comment_issue=Skomentuj i otwórz ponownie

View File

@ -1369,6 +1369,7 @@ issues.context.reference_issue=Referência em uma nova issue
issues.context.edit=Editar
issues.context.delete=Excluir
issues.no_content=Ainda não há conteúdo.
issues.close_issue=Fechar
issues.pull_merged_at=`aplicou o merge do commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> em <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`aplicou o merge do commit <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> em <b>%[3]s</b> manualmente %[4]s`
issues.close_comment_issue=Comentar e fechar

View File

@ -1369,6 +1369,7 @@ issues.context.reference_issue=Criar uma nova questão referindo esta
issues.context.edit=Editar
issues.context.delete=Eliminar
issues.no_content=Ainda não há conteúdo.
issues.close_issue=Fechar
issues.pull_merged_at=`integrou o cometimento <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> no ramo <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`integrou o cometimento <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> no ramo <b>%[3]s</b> manualmente %[4]s`
issues.close_comment_issue=Comentar e fechar

View File

@ -1274,6 +1274,7 @@ issues.context.reference_issue=Ссылка в новой задаче
issues.context.edit=Редактировать
issues.context.delete=Удалить
issues.no_content=Пока нет содержимого.
issues.close_issue=Закрыть
issues.pull_merged_at=`объединил(а) коммит <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> в <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`%[4]s вручную объединил(а) коммит <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> в <b>%[3]s</b>`
issues.close_comment_issue=Прокомментировать и закрыть

View File

@ -1164,6 +1164,7 @@ issues.context.reference_issue=නව නිකුතුවක යොමු ක
issues.context.edit=සංස්කරණය
issues.context.delete=මකන්න
issues.no_content=තවම අන්තර්ගතයක් නැත.
issues.close_issue=වසන්න
issues.pull_merged_at=`ඒකාබද්ධ කැප <a class="ui sha" href="%[1]s"><code>%[2]ගේ</code></a> <b>%[3]ගේ</b> %[4]දින
issues.manually_pull_merged_at=`ඒකාබද්ධ කැප <a class="ui sha" href="%[1]s"><code>%[2]ගේ</code></a> <b>%[3]ගේ</b> අත්පොත%[4]s`
issues.close_comment_issue=අදහස් දක්වා වසන්න

View File

@ -1049,6 +1049,7 @@ issues.action_milestone=Míľnik
issues.action_assignee=Príjemca
issues.open_title=Otvoriť
issues.context.reference_issue=Odkázať v novom úkole
issues.close_issue=Zavrieť
issues.closed_at=`uzavrel/a tento úkol <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`znovuotvoril/a tento úkol <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.commit_ref_at=`odkázal na tento úkol z commitu <a id="%[1]s" href="#%[1]s">%[2]s</a>`

View File

@ -1000,6 +1000,7 @@ issues.context.reference_issue=Referens i nytt ärende
issues.context.edit=Redigera
issues.context.delete=Ta bort
issues.no_content=Det finns inget innehåll än.
issues.close_issue=Stäng
issues.close_comment_issue=Kommentera och stäng
issues.reopen_issue=Återöppna
issues.reopen_comment_issue=Kommentera och återöppna

View File

@ -1373,6 +1373,7 @@ issues.context.reference_issue=Yeni konuda referans
issues.context.edit=Düzenle
issues.context.delete=Sil
issues.no_content=Henüz bir içerik yok.
issues.close_issue=Kapat
issues.pull_merged_at=`<a class="ui sha" href="%[1]s"><code>%[2]s</code></a> işlemesini <b>%[3]s</b> %[4]s ile birleştirdi`
issues.manually_pull_merged_at=`<a class="ui sha" href="%[1]s"><code>%[2]s</code></a> işlemesini <b>%[3]s</b> %[4]s ile elle birleştirdi`
issues.close_comment_issue=Yorum Yap ve Kapat

View File

@ -1221,6 +1221,7 @@ issues.context.reference_issue=Посилання в новій задачі
issues.context.edit=Редагувати
issues.context.delete=Видалити
issues.no_content=Тут ще немає жодного змісту.
issues.close_issue=Закрити
issues.pull_merged_at=`Злиті коміти <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> в <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`%[4]s вручну злив коміти <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> в <b>%[3]s</b>`
issues.close_comment_issue=Прокоментувати і закрити

View File

@ -1368,6 +1368,7 @@ issues.context.reference_issue=在新工单中引用
issues.context.edit=编辑
issues.context.delete=刪除
issues.no_content=这个人很懒,什么都没留下。
issues.close_issue=关闭
issues.pull_merged_at=`于 %[4]s 合并了提交 <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> 到 <b>%[3]s</b>`
issues.manually_pull_merged_at=`于 %[4]s 手动合并了提交 <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> 到 <b>%[3]s</b>`
issues.close_comment_issue=评论并关闭

View File

@ -442,6 +442,7 @@ issues.commented_at=` 評論 <a href="#%s"> %s</a>`
issues.delete_comment_confirm=您確定要刪除該條評論嗎?
issues.context.edit=編輯
issues.no_content=尚未有任何內容
issues.close_issue=關閉
issues.reopen_issue=重新開啟
issues.create_comment=評論
issues.commit_ref_at=`在代碼提交 <a id="%[1]s" href="#%[1]s">%[2]s</a> 中引用了該問題`

View File

@ -1369,7 +1369,7 @@ issues.context.reference_issue=新增問題並參考
issues.context.edit=編輯
issues.context.delete=刪除
issues.no_content=尚未有任何內容
issues.close=關閉問題
issues.close_issue=關閉
issues.pull_merged_at=`合併了提交 <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> 至 <b>%[3]s</b> %[4]s`
issues.manually_pull_merged_at=`手動合併了提交 <a class="ui sha" href="%[1]s"><code>%[2]s</code></a> 至 <b>%[3]s</b> %[4]s`
issues.close_comment_issue=留言並關閉
@ -1654,7 +1654,6 @@ pulls.update_branch_rebase=以 Rebase 更新分支
pulls.update_branch_success=分支更新成功
pulls.update_not_allowed=您無權更新分支
pulls.outdated_with_base_branch=相對於基底分支,此分支已過時
pulls.close=關閉合併請求
pulls.closed_at=`關閉了這個合併請求 <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.reopened_at=`重新開放了這個合併請求 <a id="%[1]s" href="#%[1]s">%[2]s</a>`
pulls.merge_instruction_hint=`您也可以查看<a class="show-instruction">命令列指南</a>。`

2854
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -4,42 +4,42 @@
"private": true,
"type": "module",
"engines": {
"node": ">= 16.0.0"
"node": ">= 14.0.0"
},
"dependencies": {
"@citation-js/core": "0.6.5",
"@citation-js/plugin-bibtex": "0.6.6",
"@citation-js/plugin-csl": "0.6.7",
"@citation-js/plugin-bibtex": "0.6.5",
"@citation-js/plugin-csl": "0.6.5",
"@citation-js/plugin-software-formats": "0.6.0",
"@claviska/jquery-minicolors": "2.3.6",
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
"@primer/octicons": "18.2.0",
"@vue/compiler-sfc": "3.2.47",
"@primer/octicons": "17.10.2",
"@vue/compiler-sfc": "3.2.45",
"add-asset-webpack-plugin": "2.0.1",
"ansi-to-html": "0.7.2",
"asciinema-player": "3.2.0",
"asciinema-player": "3.0.1",
"css-loader": "6.7.3",
"dropzone": "6.0.0-beta.2",
"easymde": "2.18.0",
"esbuild-loader": "3.0.1",
"esbuild-loader": "2.21.0",
"escape-goat": "4.0.0",
"fast-glob": "3.2.12",
"font-awesome": "4.7.0",
"jquery": "3.6.4",
"jquery": "3.6.3",
"jquery.are-you-sure": "1.9.0",
"katex": "0.16.4",
"license-checker-webpack-plugin": "0.2.1",
"mermaid": "10.0.2",
"mini-css-extract-plugin": "2.7.4",
"monaco-editor": "0.36.1",
"monaco-editor": "0.34.1",
"monaco-editor-webpack-plugin": "7.0.1",
"pretty-ms": "8.0.0",
"sortablejs": "1.15.0",
"swagger-ui-dist": "4.18.1",
"swagger-ui-dist": "4.15.5",
"tippy.js": "6.3.7",
"tributejs": "5.1.3",
"uint8-to-base64": "0.2.0",
"vue": "3.2.47",
"vue": "3.2.45",
"vue-bar-graph": "2.0.0",
"vue-loader": "17.0.1",
"vue3-calendar-heatmap": "2.0.0",
@ -48,25 +48,25 @@
"workbox-routing": "6.5.4",
"workbox-strategies": "6.5.4",
"worker-loader": "3.0.8",
"wrap-ansi": "8.1.0"
"wrap-ansi": "8.0.1"
},
"devDependencies": {
"@playwright/test": "1.31.2",
"@playwright/test": "1.29.2",
"@rollup/pluginutils": "5.0.2",
"@stoplight/spectral-cli": "6.6.0",
"eslint": "8.36.0",
"eslint": "8.32.0",
"eslint-plugin-import": "2.27.5",
"eslint-plugin-jquery": "1.5.1",
"eslint-plugin-sonarjs": "0.18.0",
"eslint-plugin-unicorn": "46.0.0",
"eslint-plugin-unicorn": "45.0.2",
"eslint-plugin-vue": "9.9.0",
"jsdom": "21.1.1",
"jsdom": "21.0.0",
"markdownlint-cli": "0.33.0",
"stylelint": "15.3.0",
"stylelint": "15.2.0",
"stylelint-declaration-strict-value": "1.9.2",
"svgo": "3.0.2",
"updates": "13.2.9",
"vitest": "0.29.3"
"updates": "13.2.7",
"vitest": "0.27.2"
},
"browserslist": [
"defaults",

View File

@ -1 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-chevron-down" width="16" height="16" aria-hidden="true"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"/></svg>
<svg viewBox="0 0 16 16" class="svg octicon-chevron-down" width="16" height="16" aria-hidden="true"><path d="M12.78 6.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.22 7.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L8 9.94l3.72-3.72a.75.75 0 0 1 1.06 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 279 B

View File

@ -1 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-chevron-up" width="16" height="16" aria-hidden="true"><path d="M3.22 10.53a.749.749 0 0 1 0-1.06l4.25-4.25a.749.749 0 0 1 1.06 0l4.25 4.25a.749.749 0 1 1-1.06 1.06L8 6.811 4.28 10.53a.749.749 0 0 1-1.06 0Z"/></svg>
<svg viewBox="0 0 16 16" class="svg octicon-chevron-up" width="16" height="16" aria-hidden="true"><path d="M3.22 9.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L8 6.06 4.28 9.78a.75.75 0 0 1-1.06 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 274 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-discussion-closed" width="16" height="16" aria-hidden="true"><path d="M0 2.75C0 1.783.784 1 1.75 1h8.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.457 1.457 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25Zm1.75-.25a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.189L6.22 8.72a.747.747 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25Zm12.5 2h-.5a.75.75 0 0 1 0-1.5h.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.457 1.457 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 1 1 1.06-1.06l2.22 2.219V11.25a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25Zm-5.47.28-3 3a.747.747 0 0 1-1.06 0l-1.5-1.5a.749.749 0 1 1 1.06-1.06l.97.969L7.72 3.72a.749.749 0 1 1 1.06 1.06Z"/></svg>

Before

Width:  |  Height:  |  Size: 817 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-discussion-duplicate" width="16" height="16" aria-hidden="true"><path d="M0 2.75C0 1.783.784 1 1.75 1h8.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.457 1.457 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25Zm1.75-.25a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.189L6.22 8.72a.747.747 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25Zm12.5 2h-.5a.75.75 0 0 1 0-1.5h.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.457 1.457 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 1 1 1.06-1.06l2.22 2.219V11.25a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25Zm-6.282.03L5.03 7.468a.749.749 0 1 1-1.06-1.061L6.907 3.47a.75.75 0 0 1 1.061 1.06Z"/></svg>

Before

Width:  |  Height:  |  Size: 790 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-discussion-outdated" width="16" height="16" aria-hidden="true"><path d="M0 2.75C0 1.783.784 1 1.75 1h8.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.457 1.457 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25Zm1.75-.25a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.189L6.22 8.72a.747.747 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25Zm12.5 2h-.5a.75.75 0 0 1 0-1.5h.5c.967 0 1.75.783 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.457 1.457 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 1 1 1.06-1.06l2.22 2.219V11.25a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM6.5 4v1.492l.466.187.036.015.812.375a.75.75 0 1 1-.628 1.362l-.795-.367-.92-.368A.75.75 0 0 1 5 6V4a.75.75 0 0 1 1.5 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 826 B

View File

@ -1 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-download" width="16" height="16" aria-hidden="true"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"/><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"/></svg>
<svg viewBox="0 0 16 16" class="svg octicon-download" width="16" height="16" aria-hidden="true"><path d="M7.47 10.78 3.72 7.03a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018l2.47 2.47V1.75a.75.75 0 0 1 1.5 0v6.69l2.47-2.47a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-3.75 3.75a.75.75 0 0 1-1.06 0ZM3.75 13h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 373 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-fiscal-host" width="16" height="16" aria-hidden="true"><path d="M10 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"/><path d="M4 9.25h-.75a.75.75 0 0 1 0-1.5H4v-1.5h-.75a.75.75 0 0 1 0-1.5H4V3.5a1 1 0 0 1 1-1h7.5a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1ZM5.5 4v.793a.75.75 0 0 1 0 1.414v1.586a.75.75 0 0 1 0 1.414V10H12V4Z"/><path d="M12.75 14.25V14h-9.5v.25a.75.75 0 0 1-1.5 0V14A1.75 1.75 0 0 1 0 12.25V1.75C0 .784.784 0 1.75 0h12.5C15.217 0 16 .784 16 1.75v10.5A1.75 1.75 0 0 1 14.25 14v.25a.75.75 0 0 1-1.5 0ZM1.75 1.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Z"/></svg>

Before

Width:  |  Height:  |  Size: 662 B

View File

@ -1 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-issue-tracked-by" width="16" height="16" aria-hidden="true"><path d="M1.5 8a6.5 6.5 0 0 1 13 0A.75.75 0 0 0 16 8a8 8 0 1 0-8 8 .75.75 0 0 0 0-1.5A6.5 6.5 0 0 1 1.5 8Z"/><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm3.573 5.823-2.896-2.896a.25.25 0 0 1 0-.354l2.896-2.896a.25.25 0 0 1 .427.177V11.5h3.25a.75.75 0 0 1 0 1.5H12v2.146a.25.25 0 0 1-.427.177Z"/></svg>
<svg viewBox="0 0 16 16" class="svg octicon-issue-tracked-by" width="16" height="16" aria-hidden="true"><path d="M1.5 8a6.5 6.5 0 0 1 13 0A.75.75 0 0 0 16 8a8 8 0 1 0-8 8 .75.75 0 0 0 0-1.5A6.5 6.5 0 0 1 1.5 8Z"/><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 1.75a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75Zm2.75 2.25a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5h-3Z"/></svg>

Before

Width:  |  Height:  |  Size: 413 B

After

Width:  |  Height:  |  Size: 404 B

View File

@ -0,0 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-issue-tracked-in" width="16" height="16" aria-hidden="true"><path d="M1.5 8a6.5 6.5 0 0 1 13 0A.75.75 0 0 0 16 8a8 8 0 1 0-8 8 .75.75 0 0 0 0-1.5A6.5 6.5 0 0 1 1.5 8Z"/><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm3.573 5.823-2.896-2.896a.25.25 0 0 1 0-.354l2.896-2.896a.25.25 0 0 1 .427.177V11.5h3.25a.75.75 0 0 1 0 1.5H12v2.146a.25.25 0 0 1-.427.177Z"/></svg>

After

Width:  |  Height:  |  Size: 413 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-issue-tracks" width="16" height="16" aria-hidden="true"><path d="M1.5 8a6.5 6.5 0 0 1 13 0A.75.75 0 0 0 16 8a8 8 0 1 0-8 8 .75.75 0 0 0 0-1.5A6.5 6.5 0 0 1 1.5 8Z"/><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm1.5 1.75a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75Zm2.75 2.25a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5h-3Z"/></svg>

Before

Width:  |  Height:  |  Size: 400 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-move-to-bottom" width="16" height="16" aria-hidden="true"><path d="M7.47 10.78a.749.749 0 0 0 1.06 0l3.75-3.75a.749.749 0 1 0-1.06-1.06L8.75 8.439V1.75a.75.75 0 0 0-1.5 0v6.689L4.78 5.97a.749.749 0 1 0-1.06 1.06l3.75 3.75ZM3.75 13a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5h-8.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 331 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-move-to-end" width="16" height="16" aria-hidden="true"><path d="m10.78 8.53-3.75 3.75a.749.749 0 1 1-1.06-1.06l2.469-2.47H1.75a.75.75 0 0 1 0-1.5h6.689L5.97 4.78a.749.749 0 1 1 1.06-1.06l3.75 3.75a.749.749 0 0 1 0 1.06ZM13 12.25v-8.5a.75.75 0 0 1 1.5 0v8.5a.75.75 0 0 1-1.5 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-move-to-start" width="16" height="16" aria-hidden="true"><path d="M5.22 7.47a.749.749 0 0 0 0 1.06l3.75 3.75a.749.749 0 1 0 1.06-1.06L7.561 8.75h6.689a.75.75 0 0 0 0-1.5H7.561l2.469-2.47a.749.749 0 1 0-1.06-1.06L5.22 7.47ZM3 3.75a.75.75 0 0 0-1.5 0v8.5a.75.75 0 0 0 1.5 0v-8.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 330 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-move-to-top" width="16" height="16" aria-hidden="true"><path d="M8.53 1.22a.749.749 0 0 0-1.06 0L3.72 4.97a.749.749 0 1 0 1.06 1.06l2.47-2.469v6.689a.75.75 0 0 0 1.5 0V3.561l2.47 2.469a.749.749 0 1 0 1.06-1.06L8.53 1.22ZM3.75 13a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5h-8.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-passkey-fill" width="16" height="16" aria-hidden="true"><path d="M2.743 4.757a3.757 3.757 0 1 1 5.851 3.119 5.991 5.991 0 0 1 2.15 1.383c.17.17.257.405.258.646.003.598.001 1.197 0 1.795L11 12.778v.721a.5.5 0 0 1-.5.5H1.221a.749.749 0 0 1-.714-.784 6.004 6.004 0 0 1 3.899-5.339 3.754 3.754 0 0 1-1.663-3.119Z"/><path d="M15.75 6.875c0 .874-.448 1.643-1.127 2.09a.265.265 0 0 0-.123.22v.59c0 .067-.026.13-.073.177l-.356.356a.125.125 0 0 0 0 .177l.356.356c.047.047.073.11.073.176v.231c0 .067-.026.13-.073.177l-.356.356a.125.125 0 0 0 0 .177l.356.356c.047.047.073.11.073.177v.287a.247.247 0 0 1-.065.168l-.8.88a.52.52 0 0 1-.77 0l-.8-.88a.247.247 0 0 1-.065-.168V9.185a.264.264 0 0 0-.123-.22 2.5 2.5 0 1 1 3.873-2.09ZM14 6.5a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 814 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-sparkle-fill" width="16" height="16" aria-hidden="true"><path d="M7.53 1.282a.5.5 0 0 1 .94 0l.478 1.306a7.492 7.492 0 0 0 4.464 4.464l1.305.478a.5.5 0 0 1 0 .94l-1.305.478a7.492 7.492 0 0 0-4.464 4.464l-.478 1.305a.5.5 0 0 1-.94 0l-.478-1.305a7.492 7.492 0 0 0-4.464-4.464L1.282 8.47a.5.5 0 0 1 0-.94l1.306-.478a7.492 7.492 0 0 0 4.464-4.464Z"/></svg>

Before

Width:  |  Height:  |  Size: 396 B

View File

@ -1 +1 @@
<svg viewBox="0 0 16 16" class="svg octicon-upload" width="16" height="16" aria-hidden="true"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"/><path d="M11.78 4.72a.749.749 0 1 1-1.06 1.06L8.75 3.811V9.5a.75.75 0 0 1-1.5 0V3.811L5.28 5.78a.749.749 0 1 1-1.06-1.06l3.25-3.25a.749.749 0 0 1 1.06 0l3.25 3.25Z"/></svg>
<svg viewBox="0 0 16 16" class="svg octicon-upload" width="16" height="16" aria-hidden="true"><path d="m8.53 1.22 3.75 3.75a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8.75 3.56v6.69a.75.75 0 0 1-1.5 0V3.56L4.78 6.03a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75a.75.75 0 0 1 1.06 0ZM3.75 13h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Z"/></svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 369 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-zoom-in" width="16" height="16" aria-hidden="true"><path d="M3.75 7.5a.75.75 0 0 1 .75-.75h2.25V4.5a.75.75 0 0 1 1.5 0v2.25h2.25a.75.75 0 0 1 0 1.5H8.25v2.25a.75.75 0 0 1-1.5 0V8.25H4.5a.75.75 0 0 1-.75-.75Z"/><path d="M7.5 0a7.5 7.5 0 0 1 5.807 12.247l2.473 2.473a.749.749 0 1 1-1.06 1.06l-2.473-2.473A7.5 7.5 0 1 1 7.5 0Zm-6 7.5a6 6 0 1 0 12 0 6 6 0 0 0-12 0Z"/></svg>

Before

Width:  |  Height:  |  Size: 414 B

View File

@ -1 +0,0 @@
<svg viewBox="0 0 16 16" class="svg octicon-zoom-out" width="16" height="16" aria-hidden="true"><path d="M4.5 6.75h6a.75.75 0 0 1 0 1.5h-6a.75.75 0 0 1 0-1.5Z"/><path d="M0 7.5a7.5 7.5 0 1 1 13.307 4.747l2.473 2.473a.749.749 0 1 1-1.06 1.06l-2.473-2.473A7.5 7.5 0 0 1 0 7.5Zm7.5-6a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z"/></svg>

Before

Width:  |  Height:  |  Size: 320 B

View File

@ -45,7 +45,6 @@ func createPackageMetadataResponse(registryURL string, pds []*packages_model.Pac
Author: npm_module.User{Name: metadata.Author},
License: metadata.License,
Versions: versions,
Repository: metadata.Repository,
}
}

View File

@ -51,18 +51,12 @@ func Projects(ctx *context.Context) {
page = 1
}
var projectType project_model.Type
if ctx.ContextUser.IsOrganization() {
projectType = project_model.TypeOrganization
} else {
projectType = project_model.TypeIndividual
}
projects, total, err := project_model.FindProjects(ctx, project_model.SearchOptions{
OwnerID: ctx.ContextUser.ID,
Page: page,
IsClosed: util.OptionalBoolOf(isShowClosed),
SortType: sortType,
Type: projectType,
Type: project_model.TypeOrganization,
})
if err != nil {
ctx.ServerError("FindProjects", err)
@ -72,7 +66,7 @@ func Projects(ctx *context.Context) {
opTotal, err := project_model.CountProjects(ctx, project_model.SearchOptions{
OwnerID: ctx.ContextUser.ID,
IsClosed: util.OptionalBoolOf(!isShowClosed),
Type: projectType,
Type: project_model.TypeOrganization,
})
if err != nil {
ctx.ServerError("CountProjects", err)
@ -149,21 +143,14 @@ func NewProjectPost(ctx *context.Context) {
return
}
newProject := project_model.Project{
if err := project_model.NewProject(&project_model.Project{
OwnerID: ctx.ContextUser.ID,
Title: form.Title,
Description: form.Content,
CreatorID: ctx.Doer.ID,
BoardType: form.BoardType,
}
if ctx.ContextUser.IsOrganization() {
newProject.Type = project_model.TypeOrganization
} else {
newProject.Type = project_model.TypeIndividual
}
if err := project_model.NewProject(&newProject); err != nil {
Type: project_model.TypeOrganization,
}); err != nil {
ctx.ServerError("NewProject", err)
return
}

View File

@ -216,7 +216,7 @@
<div class="gt-df gt-ac">
{{if .Verification.Verified}}
{{if ne .Verification.SigningUser.ID 0}}
{{svg "octicon-verified" 16 "gt-mr-3"}}
{{svg "octicon-shield-check" 16 "gt-mr-3"}}
{{if .Verification.SigningSSHKey}}
<span class="ui text gt-mr-3">{{.locale.Tr "repo.commits.ssh_key_fingerprint"}}:</span>
{{.Verification.SigningSSHKey.Fingerprint}}
@ -225,7 +225,7 @@
{{.Verification.SigningKey.PaddedKeyID}}
{{end}}
{{else}}
{{svg "octicon-unverified" 16 "gt-mr-3"}}
{{svg "octicon-shield-lock" 16 "gt-mr-3"}}
{{if .Verification.SigningSSHKey}}
<span class="ui text gt-mr-3 tooltip" data-content="{{.locale.Tr "gpg.default_key"}}">{{.locale.Tr "repo.commits.ssh_key_fingerprint"}}:</span>
{{.Verification.SigningSSHKey.Fingerprint}}
@ -235,7 +235,7 @@
{{end}}
{{end}}
{{else if .Verification.Warning}}
{{svg "octicon-unverified" 16 "gt-mr-3"}}
{{svg "octicon-shield" 16 "gt-mr-3"}}
{{if .Verification.SigningSSHKey}}
<span class="ui text gt-mr-3">{{.locale.Tr "repo.commits.ssh_key_fingerprint"}}:</span>
{{.Verification.SigningSSHKey.Fingerprint}}
@ -246,14 +246,14 @@
{{else}}
{{if .Verification.SigningKey}}
{{if ne .Verification.SigningKey.KeyID ""}}
{{svg "octicon-verified" 16 "gt-mr-3"}}
{{svg "octicon-shield" 16 "gt-mr-3"}}
<span class="ui text gt-mr-3">{{.locale.Tr "repo.commits.gpg_key_id"}}:</span>
{{.Verification.SigningKey.PaddedKeyID}}
{{end}}
{{end}}
{{if .Verification.SigningSSHKey}}
{{if ne .Verification.SigningSSHKey.Fingerprint ""}}
{{svg "octicon-verified" 16 "gt-mr-3"}}
{{svg "octicon-shield" 16 "gt-mr-3"}}
<span class="ui text gt-mr-3">{{.locale.Tr "repo.commits.ssh_key_fingerprint"}}:</span>
{{.Verification.SigningSSHKey.Fingerprint}}
{{end}}

View File

@ -24,7 +24,7 @@
{{svg "octicon-diff" 16 "gt-mr-2"}}{{.locale.Tr "repo.diff.stats_desc" .Diff.NumFiles .Diff.TotalAddition .Diff.TotalDeletion | Str2html}}
</div>
</div>
<div class="diff-detail-actions gt-df gt-ac">
<div class="diff-detail-actions gt-df gt-ac gt-w-100">
{{if and .PageIsPullFiles $.SignedUserID (not .IsArchived)}}
<progress id="viewed-files-summary" class="gt-mr-2" value="{{.Diff.NumViewedFiles}}" max="{{.Diff.NumFiles}}"></progress>
<label for="viewed-files-summary" id="viewed-files-summary-label" class="gt-mr-3 gt-f1" data-text-changed-template="{{.locale.Tr "repo.pulls.viewed_files_label"}}">

View File

@ -4,7 +4,7 @@
<span class="ui small label review-comments-counter" data-pending-comment-number="{{.PendingCodeCommentNumber}}">{{.PendingCodeCommentNumber}}</span>
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
</button>
<div class="review-box-panel tippy-target">
<div class="review-box-panel gt-hidden">
<div class="ui segment">
<form class="ui form" action="{{.Link}}/reviews/submit" method="post">
{{.CsrfTokenHtml}}

View File

@ -58,7 +58,7 @@
</div>
<div class="content">
{{if .Verified}}
<span class="tooltip" data-content="{{$.locale.Tr "settings.gpg_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{$.locale.Tr "settings.gpg_key_verified"}}</strong></span>
<span class="tooltip" data-content="{{$.locale.Tr "settings.gpg_key_verified_long"}}">{{svg "octicon-shield-check"}} <strong>{{$.locale.Tr "settings.gpg_key_verified"}}</strong></span>
{{end}}
{{if gt (len .Emails) 0}}
<span class="tooltip" data-content="{{$.locale.Tr "settings.gpg_key_matched_identities_long"}}">{{svg "octicon-mail"}} {{$.locale.Tr "settings.gpg_key_matched_identities"}} {{range .Emails}}<strong>{{.Email}} </strong>{{end}}</span>

View File

@ -51,7 +51,7 @@
</div>
<div class="content">
{{if .Verified}}
<span class="tooltip" data-content="{{$.locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{$.locale.Tr "settings.ssh_key_verified"}}</strong></span>
<span class="tooltip" data-content="{{$.locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-shield-check"}} <strong>{{$.locale.Tr "settings.ssh_key_verified"}}</strong></span>
{{end}}
<strong>{{.Name}}</strong>
<div class="print meta">

View File

@ -37,8 +37,6 @@ func TestPackageNpm(t *testing.T) {
packageDescription := "Test Description"
packageBinName := "cli"
packageBinPath := "./cli.sh"
repoType := "gitea"
repoURL := "http://localhost:3000/gitea/test.git"
data := "H4sIAAAAAAAA/ytITM5OTE/VL4DQelnF+XkMVAYGBgZmJiYK2MRBwNDcSIHB2NTMwNDQzMwAqA7IMDUxA9LUdgg2UFpcklgEdAql5kD8ogCnhwio5lJQUMpLzE1VslJQcihOzi9I1S9JLS7RhSYIJR2QgrLUouLM/DyQGkM9Az1D3YIiqExKanFyUWZBCVQ2BKhVwQVJDKwosbQkI78IJO/tZ+LsbRykxFXLNdA+HwWjYBSMgpENACgAbtAACAAA"
@ -64,10 +62,6 @@ func TestPackageNpm(t *testing.T) {
"dist": {
"integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
"shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
},
"repository": {
"type": "` + repoType + `",
"url": "` + repoURL + `"
}
}
},
@ -175,8 +169,6 @@ func TestPackageNpm(t *testing.T) {
assert.Equal(t, "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==", pmv.Dist.Integrity)
assert.Equal(t, "aaa7eaf852a948b0aa05afeda35b1badca155d90", pmv.Dist.Shasum)
assert.Equal(t, fmt.Sprintf("%s%s/-/%s/%s", setting.AppURL, root[1:], packageVersion, filename), pmv.Dist.Tarball)
assert.Equal(t, repoType, result.Repository.Type)
assert.Equal(t, repoURL, result.Repository.URL)
})
t.Run("AddTag", func(t *testing.T) {

View File

@ -1231,7 +1231,7 @@ a.ui.card:hover,
/* enable fluid page widths for medium size viewports */
@media (min-width: 768px) and (max-width: 1200px) {
.ui.ui.ui.container:not(.fluid) {
width: calc(100vw - 64px);
width: calc(100vw - 3em);
}
}
@ -1285,14 +1285,7 @@ a.ui.card:hover,
.following.bar #navbar {
width: 100vw;
min-height: 52px;
padding: 0 16px;
}
@media (max-width: 767px) {
.following.bar #navbar {
padding-left: 4px;
padding-right: 0;
}
padding: 0 0.5rem;
}
.following.bar #navbar .brand {
@ -1498,7 +1491,7 @@ a.ui.card:hover,
}
.ui.container.fluid.padded {
padding: 0 32px;
padding: 0 10px;
}
.ui.form .ui.button {

View File

@ -214,10 +214,6 @@ a.blob-excerpt:hover {
color: var(--color-primary-contrast);
}
.review-box-panel .ui.segment {
border: none;
}
/* See the comment of createCommentEasyMDE() for the review editor */
/* EasyMDE's options can not handle minHeight & maxHeight together correctly, we have to set minHeight in JS code */
.review-box-panel .CodeMirror-scroll {
@ -253,6 +249,14 @@ a.blob-excerpt:hover {
position: relative;
}
.review-box-panel {
position: absolute;
min-width: max-content;
top: 45px;
right: -5px;
z-index: 2;
}
#review-box .review-comments-counter {
background-color: var(--color-primary-light-4);
color: var(--color-primary-contrast);

View File

@ -72,13 +72,17 @@
<ul class="repo-owner-name-list">
<li v-for="repo in repos" :class="{'private': repo.private || repo.internal}" :key="repo.id">
<a class="repo-list-link gt-df gt-ac gt-sb" :href="repo.link">
<div class="item-name gt-df gt-ac gt-f1">
<div class="item-name gt-df gt-ac gt-f1 gt-mr-2">
<svg-icon :name="repoIcon(repo)" :size="16" class-name="gt-mr-2"/>
<div class="text gt-bold truncate gt-ml-1">{{ repo.full_name }}</div>
<span v-if="repo.archived">
<svg-icon name="octicon-archive" :size="16" class-name="gt-ml-2"/>
</span>
</div>
<div class="text light grey gt-df gt-ac" v-if="isStarsEnabled">
{{ repo.stars_count }}
<svg-icon name="octicon-star" :size="16" class-name="gt-ml-2"/>
</div>
</a>
</li>
</ul>

View File

@ -4,9 +4,8 @@ import {attachTribute} from './tribute.js';
import {createCommentEasyMDE, getAttachedEasyMDE} from './comp/EasyMDE.js';
import {initEasyMDEImagePaste} from './comp/ImagePaste.js';
import {initCompMarkupContentPreviewTab} from './comp/MarkupContentPreview.js';
import {initTooltip, showTemporaryTooltip, createTippy} from '../modules/tippy.js';
import {initTooltip, showTemporaryTooltip} from '../modules/tippy.js';
import {hideElem, showElem, toggleElem} from '../utils/dom.js';
import {setFileFolding} from './file-fold.js';
const {appSubUrl, csrfToken} = window.config;
@ -438,36 +437,17 @@ export async function handleReply($el) {
export function initRepoPullRequestReview() {
if (window.location.hash && window.location.hash.startsWith('#issuecomment-')) {
// set scrollRestoration to 'manual' when there is a hash in url, so that the scroll position will not be remembered after refreshing
if (window.history.scrollRestoration !== 'manual') {
window.history.scrollRestoration = 'manual';
}
const commentDiv = $(window.location.hash);
if (commentDiv) {
// get the name of the parent id
const groupID = commentDiv.closest('div[id^="code-comments-"]').attr('id');
if (groupID && groupID.startsWith('code-comments-')) {
const id = groupID.slice(14);
const ancestorDiffBox = commentDiv.closest('.diff-file-box');
// on pages like conversation, there is no diff header
const diffHeader = ancestorDiffBox.find('.diff-file-header');
// offset is for scrolling
let offset = 30;
if (diffHeader[0]) {
offset += $('.diff-detail-box').outerHeight() + diffHeader.outerHeight();
}
$(`#show-outdated-${id}`).addClass('gt-hidden');
$(`#code-comments-${id}`).removeClass('gt-hidden');
$(`#code-preview-${id}`).removeClass('gt-hidden');
$(`#hide-outdated-${id}`).removeClass('gt-hidden');
// if the comment box is folded, expand it
if (ancestorDiffBox.attr('data-folded') && ancestorDiffBox.attr('data-folded') === 'true') {
setFileFolding(ancestorDiffBox[0], ancestorDiffBox.find('.fold-file')[0], false);
}
window.scrollTo({
top: commentDiv.offset().top - offset,
behavior: 'instant'
});
commentDiv[0].scrollIntoView();
}
}
}
@ -512,23 +492,12 @@ export function initRepoPullRequestReview() {
return;
}
const $reviewBtn = $('.js-btn-review');
const $panel = $reviewBtn.parent().find('.review-box-panel');
const $closeBtn = $panel.find('.close');
const tippy = createTippy($reviewBtn[0], {
content: $panel[0],
placement: 'bottom',
trigger: 'click',
role: 'menu',
maxWidth: 'none',
interactive: true,
hideOnClick: true,
});
$closeBtn.on('click', (e) => {
$('.js-btn-review').on('click', function (e) {
e.preventDefault();
tippy.hide();
toggleElem($(this).parent().find('.review-box-panel'));
}).parent().find('.review-box-panel .close').on('click', function (e) {
e.preventDefault();
hideElem($(this).closest('.review-box-panel'));
});
$(document).on('click', 'a.add-code-comment', async function (e) {

View File

@ -11,8 +11,8 @@ import webpack from 'webpack';
import {fileURLToPath} from 'node:url';
import {readFileSync} from 'node:fs';
const {EsbuildPlugin} = EsBuildLoader;
const {SourceMapDevToolPlugin, DefinePlugin} = webpack;
const {ESBuildMinifyPlugin} = EsBuildLoader;
const {SourceMapDevToolPlugin} = webpack;
const formatLicenseText = (licenseText) => wrapAnsi(licenseText || '', 80).trim();
const glob = (pattern) => fastGlob.sync(pattern, {
@ -90,7 +90,7 @@ export default {
optimization: {
minimize: isProduction,
minimizer: [
new EsbuildPlugin({
new ESBuildMinifyPlugin({
target: 'es2015',
minify: true,
css: true,
@ -130,8 +130,7 @@ export default {
{
loader: 'esbuild-loader',
options: {
loader: 'js',
target: 'es2015',
target: 'es2015'
},
},
],
@ -174,7 +173,7 @@ export default {
],
},
plugins: [
new DefinePlugin({
new webpack.DefinePlugin({
__VUE_OPTIONS_API__: true, // at the moment, many Vue components still use the Vue Options API
__VUE_PROD_DEVTOOLS__: false, // do not enable devtools support in production
}),