Compare commits

...

9 Commits

Author SHA1 Message Date
GiteaBot
fe8b6cbd91 [skip ci] Updated translations via Crowdin 2023-03-18 00:16:14 +00:00
Zettat123
46addc1f93
Return repository in npm package metadata endpoint (#23539)
Close #23444 

Add `Repository` to npm package `Metadata` struct so the `repository` in
`package.json` can be stored and be returned in the endpoint.

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
2023-03-17 14:39:19 -04:00
silverwind
d0f48187f9
Fix diff detail buttons wrapping, use tippy for review box (#23271)
Fix visual regression introduced by
https://github.com/go-gitea/gitea/pull/22986.

Before:
<img width="1277" alt="image"
src="https://user-images.githubusercontent.com/115237/222792814-d70c2173-0c7c-4db2-8839-95be63cdc8ee.png">
<img width="649" alt="image"
src="https://user-images.githubusercontent.com/115237/222792989-9b1f5e12-becd-40cc-b02c-e9f59a8e72a4.png">

After: 
<img width="1274" alt="image"
src="https://user-images.githubusercontent.com/115237/222792769-e7a9702f-4b6a-46c4-9385-da103ed4dff0.png">
<img width="565" alt="image"
src="https://user-images.githubusercontent.com/115237/222793084-6de6482b-11dc-4d38-b514-15884d20e140.png">
2023-03-17 12:24:00 -05:00
yp05327
8e45fcb63a
Do not store user projects as organization projects (#23353)
A part of https://github.com/go-gitea/gitea/pull/22865

At first, I think we do not need 3 ProjectTypes, as we can check user
type, but it seems that it is not database friendly.

---------

Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: 6543 <6543@obermui.de>
2023-03-17 21:07:23 +08:00
Hester Gong
8120c0c20c
Imrove scroll behavior to hash issuecomment(scroll position, auto expand if file is folded, and on refreshing) (#23513)
Close #23466

Right now on pull request "files Changed" tab, if a file is viewed, when
the comments' links are visited, the comment will not be shown as the
file is folded after viewed. This PR is to improve the behavior, to make
the comment seen even the related file is folded, like on github.

And right now scroll position will be remembered and hence it won’t
scroll to hashed comment after refreshing, this PR also adjust the
scroll position remembering behavior: When there is hash comment in url,
do not remember the scroll position.

Before:

https://user-images.githubusercontent.com/17645053/225512079-6cf79581-9346-44cf-95d6-06919642e6a8.mov

After:

https://user-images.githubusercontent.com/17645053/225523753-3f6728f2-977b-4ed0-a65c-63dcef2ace80.mov

Update - long comment's behavior after using `scrollTop ` (Comment div
scroll to the position which is 30px below the diff header, or 30px
below top on conversation tab):

https://user-images.githubusercontent.com/17645053/225614460-0602c1a6-229c-41f4-84d2-334e78251486.mov
2023-03-17 18:24:18 +08:00
silverwind
6aca9287a2
Increase horizontal page padding (#23507)
Add a bit more empty space on left and right side of page content for a
more pleasant viewing experience. Also tweaked the mobile navbar to
match.

Before:
<img width="1276" alt="Screenshot 2023-03-16 at 00 58 23"
src="https://user-images.githubusercontent.com/115237/225473942-f544106f-1b61-456a-99fb-3ba136cabc8d.png">

After:
<img width="1270" alt="Screenshot 2023-03-16 at 00 58 37"
src="https://user-images.githubusercontent.com/115237/225473959-8b555359-a08d-48e1-9476-2710aabb1166.png">

Mobile Navbar:
<img width="673" alt="Screenshot 2023-03-16 at 01 05 12"
src="https://user-images.githubusercontent.com/115237/225473966-adccef2b-4d34-44ed-8c75-d4ca46d96cf3.png">
2023-03-17 02:23:23 -04:00
silverwind
96be0cb6e3
Update JS dependencies, Require Node.js 16 (#23528)
- Update all JS dependencies
- Require Node.js 16 as dictated by `esbuild-loader`
- Regenerate SVG
- Adapt to `esbuild-loader` breaking changes
- Minor refactor in `webpack.config.js`
- Tested build, monaco and swagger-ui

---------

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
2023-03-17 01:45:45 -04:00
silverwind
12ddc48c5c
Use octicon-verified for gpg signatures (#23529)
Before:
<img width="292" alt="Screenshot 2023-03-16 at 23 40 47"
src="https://user-images.githubusercontent.com/115237/225768871-43e11ced-e340-4c88-b756-25f9f7076fd2.png">
<img width="288" alt="Screenshot 2023-03-16 at 23 51 05"
src="https://user-images.githubusercontent.com/115237/225770071-b51f3ed6-ef14-421b-a5bc-6a26e808d404.png">


After:
<img width="291" alt="Screenshot 2023-03-16 at 23 40 37"
src="https://user-images.githubusercontent.com/115237/225768864-ea4956c7-8c57-4148-9d89-c818991a7538.png">
<img width="281" alt="image"
src="https://user-images.githubusercontent.com/115237/225769978-0b9c6c52-9a13-4c23-b13e-8a8a692abf43.png">
2023-03-17 01:12:40 -04:00
yp05327
06c067bb0f
Remove stars in dashboard repo list (#23530)
Discussion is here: https://github.com/go-gitea/gitea/pull/22816
2023-03-17 00:43:58 -04:00
69 changed files with 1685 additions and 1475 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.29.2-focal
image: mcr.microsoft.com/playwright:v1.31.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,6 +471,8 @@ 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

@ -0,0 +1,50 @@
// 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 TypeRepository, TypeOrganization:
case TypeIndividual, TypeRepository, TypeOrganization:
return true
default:
return false

View File

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

View File

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

View File

@ -26,6 +26,10 @@ 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}))
@ -242,6 +246,7 @@ func TestParsePackage(t *testing.T) {
Dist: PackageDistribution{
Integrity: integrity,
},
Repository: repository,
},
},
},
@ -272,5 +277,7 @@ 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,4 +21,5 @@ 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,7 +1423,6 @@ 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,7 +1310,6 @@ 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,7 +1331,6 @@ 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,7 +1330,6 @@ 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,7 +1213,6 @@ 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,7 +936,6 @@ 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,7 +1195,6 @@ 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,7 +881,6 @@ 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,7 +752,6 @@ 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,7 +823,6 @@ 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,7 +1315,6 @@ 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,6 +821,7 @@ remove_account_link=連携アカウントの削除
remove_account_link_desc=連携アカウントを削除し、Giteaアカウントへのアクセス権を取り消します。 続行しますか?
remove_account_link_success=連携アカウントを削除しました。
hooks.desc=このユーザーが所有する<strong>すべてのリポジトリ</strong>でトリガーされるWebhookを追加します。
orgs_none=あなたはどの組織のメンバーでもありません。
repos_none=あなたはリポジトリを所有していません。
@ -1368,7 +1369,7 @@ issues.context.reference_issue=新しいイシューから参照
issues.context.edit=編集
issues.context.delete=削除
issues.no_content=まだ内容がありません
issues.close_issue=クローズする
issues.close=イシューをクローズ
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=コメントしてクローズ
@ -1653,6 +1654,7 @@ 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>も確認できます。`
@ -2289,6 +2291,8 @@ 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=プレリリース
@ -2418,6 +2422,7 @@ 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>で使用可能なイシューラベルを追加します。
@ -2930,6 +2935,8 @@ 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=ミラー更新タイムアウト
@ -3234,6 +3241,9 @@ 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,7 +787,6 @@ 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,7 +1461,6 @@ 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,7 +1315,6 @@ 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,7 +1208,6 @@ 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,7 +1369,6 @@ 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,7 +1369,6 @@ 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,7 +1274,6 @@ 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,7 +1164,6 @@ 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,7 +1049,6 @@ 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,7 +1000,6 @@ 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,7 +1373,6 @@ 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,7 +1221,6 @@ 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,7 +1368,6 @@ 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,7 +442,6 @@ 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_issue=關閉
issues.close=關閉問題
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,6 +1654,7 @@ 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": ">= 14.0.0"
"node": ">= 16.0.0"
},
"dependencies": {
"@citation-js/core": "0.6.5",
"@citation-js/plugin-bibtex": "0.6.5",
"@citation-js/plugin-csl": "0.6.5",
"@citation-js/plugin-bibtex": "0.6.6",
"@citation-js/plugin-csl": "0.6.7",
"@citation-js/plugin-software-formats": "0.6.0",
"@claviska/jquery-minicolors": "2.3.6",
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
"@primer/octicons": "17.10.2",
"@vue/compiler-sfc": "3.2.45",
"@primer/octicons": "18.2.0",
"@vue/compiler-sfc": "3.2.47",
"add-asset-webpack-plugin": "2.0.1",
"ansi-to-html": "0.7.2",
"asciinema-player": "3.0.1",
"asciinema-player": "3.2.0",
"css-loader": "6.7.3",
"dropzone": "6.0.0-beta.2",
"easymde": "2.18.0",
"esbuild-loader": "2.21.0",
"esbuild-loader": "3.0.1",
"escape-goat": "4.0.0",
"fast-glob": "3.2.12",
"font-awesome": "4.7.0",
"jquery": "3.6.3",
"jquery": "3.6.4",
"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.34.1",
"monaco-editor": "0.36.1",
"monaco-editor-webpack-plugin": "7.0.1",
"pretty-ms": "8.0.0",
"sortablejs": "1.15.0",
"swagger-ui-dist": "4.15.5",
"swagger-ui-dist": "4.18.1",
"tippy.js": "6.3.7",
"tributejs": "5.1.3",
"uint8-to-base64": "0.2.0",
"vue": "3.2.45",
"vue": "3.2.47",
"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.0.1"
"wrap-ansi": "8.1.0"
},
"devDependencies": {
"@playwright/test": "1.29.2",
"@playwright/test": "1.31.2",
"@rollup/pluginutils": "5.0.2",
"@stoplight/spectral-cli": "6.6.0",
"eslint": "8.32.0",
"eslint": "8.36.0",
"eslint-plugin-import": "2.27.5",
"eslint-plugin-jquery": "1.5.1",
"eslint-plugin-sonarjs": "0.18.0",
"eslint-plugin-unicorn": "45.0.2",
"eslint-plugin-unicorn": "46.0.0",
"eslint-plugin-vue": "9.9.0",
"jsdom": "21.0.0",
"jsdom": "21.1.1",
"markdownlint-cli": "0.33.0",
"stylelint": "15.2.0",
"stylelint": "15.3.0",
"stylelint-declaration-strict-value": "1.9.2",
"svgo": "3.0.2",
"updates": "13.2.7",
"vitest": "0.27.2"
"updates": "13.2.9",
"vitest": "0.29.3"
},
"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 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>
<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>

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 261 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 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>
<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>

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 258 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 817 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 790 B

View File

@ -0,0 +1 @@
<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>

After

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="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>
<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>

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 440 B

View File

@ -0,0 +1 @@
<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>

After

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 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>
<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>

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 413 B

View File

@ -1 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 413 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 400 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 331 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 329 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 330 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 329 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 814 B

View File

@ -0,0 +1 @@
<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>

After

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="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>
<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>

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 438 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 414 B

View File

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 320 B

View File

@ -45,6 +45,7 @@ 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,12 +51,18 @@ 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: project_model.TypeOrganization,
Type: projectType,
})
if err != nil {
ctx.ServerError("FindProjects", err)
@ -66,7 +72,7 @@ func Projects(ctx *context.Context) {
opTotal, err := project_model.CountProjects(ctx, project_model.SearchOptions{
OwnerID: ctx.ContextUser.ID,
IsClosed: util.OptionalBoolOf(!isShowClosed),
Type: project_model.TypeOrganization,
Type: projectType,
})
if err != nil {
ctx.ServerError("CountProjects", err)
@ -143,14 +149,21 @@ func NewProjectPost(ctx *context.Context) {
return
}
if err := project_model.NewProject(&project_model.Project{
newProject := project_model.Project{
OwnerID: ctx.ContextUser.ID,
Title: form.Title,
Description: form.Content,
CreatorID: ctx.Doer.ID,
BoardType: form.BoardType,
Type: project_model.TypeOrganization,
}); err != nil {
}
if ctx.ContextUser.IsOrganization() {
newProject.Type = project_model.TypeOrganization
} else {
newProject.Type = project_model.TypeIndividual
}
if err := project_model.NewProject(&newProject); 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-shield-check" 16 "gt-mr-3"}}
{{svg "octicon-verified" 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-shield-lock" 16 "gt-mr-3"}}
{{svg "octicon-unverified" 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-shield" 16 "gt-mr-3"}}
{{svg "octicon-unverified" 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-shield" 16 "gt-mr-3"}}
{{svg "octicon-verified" 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-shield" 16 "gt-mr-3"}}
{{svg "octicon-verified" 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 gt-w-100">
<div class="diff-detail-actions gt-df gt-ac">
{{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 gt-hidden">
<div class="review-box-panel tippy-target">
<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-shield-check"}} <strong>{{$.locale.Tr "settings.gpg_key_verified"}}</strong></span>
<span class="tooltip" data-content="{{$.locale.Tr "settings.gpg_key_verified_long"}}">{{svg "octicon-verified"}} <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-shield-check"}} <strong>{{$.locale.Tr "settings.ssh_key_verified"}}</strong></span>
<span class="tooltip" data-content="{{$.locale.Tr "settings.ssh_key_verified_long"}}">{{svg "octicon-verified"}} <strong>{{$.locale.Tr "settings.ssh_key_verified"}}</strong></span>
{{end}}
<strong>{{.Name}}</strong>
<div class="print meta">

View File

@ -37,6 +37,8 @@ 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"
@ -62,6 +64,10 @@ func TestPackageNpm(t *testing.T) {
"dist": {
"integrity": "sha512-yA4FJsVhetynGfOC1jFf79BuS+jrHbm0fhh+aHzCQkOaOBXKf9oBnC4a6DnLLnEsHQDRLYd00cwj8sCXpC+wIg==",
"shasum": "aaa7eaf852a948b0aa05afeda35b1badca155d90"
},
"repository": {
"type": "` + repoType + `",
"url": "` + repoURL + `"
}
}
},
@ -169,6 +175,8 @@ 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 - 3em);
width: calc(100vw - 64px);
}
}
@ -1285,7 +1285,14 @@ a.ui.card:hover,
.following.bar #navbar {
width: 100vw;
min-height: 52px;
padding: 0 0.5rem;
padding: 0 16px;
}
@media (max-width: 767px) {
.following.bar #navbar {
padding-left: 4px;
padding-right: 0;
}
}
.following.bar #navbar .brand {
@ -1491,7 +1498,7 @@ a.ui.card:hover,
}
.ui.container.fluid.padded {
padding: 0 10px;
padding: 0 32px;
}
.ui.form .ui.button {

View File

@ -214,6 +214,10 @@ 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 {
@ -249,14 +253,6 @@ 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,17 +72,13 @@
<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 gt-mr-2">
<div class="item-name gt-df gt-ac gt-f1">
<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,8 +4,9 @@ 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} from '../modules/tippy.js';
import {initTooltip, showTemporaryTooltip, createTippy} from '../modules/tippy.js';
import {hideElem, showElem, toggleElem} from '../utils/dom.js';
import {setFileFolding} from './file-fold.js';
const {appSubUrl, csrfToken} = window.config;
@ -437,17 +438,36 @@ 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');
commentDiv[0].scrollIntoView();
// 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'
});
}
}
}
@ -492,12 +512,23 @@ export function initRepoPullRequestReview() {
return;
}
$('.js-btn-review').on('click', function (e) {
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) => {
e.preventDefault();
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'));
tippy.hide();
});
$(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 {ESBuildMinifyPlugin} = EsBuildLoader;
const {SourceMapDevToolPlugin} = webpack;
const {EsbuildPlugin} = EsBuildLoader;
const {SourceMapDevToolPlugin, DefinePlugin} = 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 ESBuildMinifyPlugin({
new EsbuildPlugin({
target: 'es2015',
minify: true,
css: true,
@ -130,7 +130,8 @@ export default {
{
loader: 'esbuild-loader',
options: {
target: 'es2015'
loader: 'js',
target: 'es2015',
},
},
],
@ -173,7 +174,7 @@ export default {
],
},
plugins: [
new webpack.DefinePlugin({
new 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
}),