Update zh tw languages and fix some broken links (#455)

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: silverwind <2021+silverwind@noreply.gitea.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/455
Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
Lunny Xiao
2026-07-09 23:41:46 +00:00
parent c0f8a04185
commit 965c269495
652 changed files with 30864 additions and 30792 deletions

View File

@@ -977,7 +977,7 @@ Release attachment has its own config options in `[repository.release]` section.
- `PATH`: **attachments**: Path to store attachments only available when STORAGE_TYPE is `local`, relative paths will be resolved to `{AppDataPath}/{attachment.PATH}`.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#storage_minio), you can override some configurations like below.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#minio-storage-configuration-storage_minio), you can override some configurations like below.
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
@@ -1496,7 +1496,7 @@ is `data/lfs` and the default of `MINIO_BASE_PATH` is `lfs/`.
- `PATH`: **./data/lfs**: Where to store LFS files, only available when `STORAGE_TYPE` is `local`. If not set it fall back to deprecated LFS_CONTENT_PATH value in [server] section.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#storage_minio), you can also define configurations like below to override derived or default values.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#minio-storage-configuration-storage_minio), you can also define configurations like below to override derived or default values.
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket only available when STORAGE_TYPE is `minio`
@@ -1647,7 +1647,7 @@ is `data/repo-archive` and the default of `MINIO_BASE_PATH` is `repo-archive/`.
- `PATH`: **./data/repo-archive**: Where to store archive files, only available when `STORAGE_TYPE` is `local`.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#storage_minio), you can override some configurations like below.
For `STORAGE_TYPE = minio`, the configurations can be found at [Storage Minio](#minio-storage-configuration-storage_minio), you can override some configurations like below.
- `MINIO_BASE_PATH`: **repo-archive/**: Minio base path on the bucket only available when `STORAGE_TYPE` is `minio`

View File

@@ -12,7 +12,7 @@
"message": "Actions"
},
"sidebar.docs.category.packages": {
"message": "軟體包"
"message": "套件"
},
"sidebar.docs.category.Development": {
"message": "開發"

View File

@@ -13,19 +13,19 @@ aliases:
## 獲取頁面
Gitea 源碼附帶了例頁面,位於 `contrib/legal` 目錄中。將它們複製到 `custom/public/assets/` 目錄下。例如,如果要添加隱私政策:
Gitea 源程式碼附帶了例頁面,位於 `contrib/legal` 目錄中。將它們複製到 `custom/public/assets/` 目錄下。例如,如果要添加隱私政策:
```
wget -O /path/to/custom/public/assets/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
```
現在,你需要編輯該頁面以滿足你的需求。特別是,你必須更改電子郵件地址、網址以及與 "Your Gitea Instance" 相關的引用,以匹配你的情況。
現在,你需要編輯該頁面以滿足你的需求。特別是,你必須更改電子電子郵件地址、網址以及與 "Your Gitea Instance" 相關的引用,以匹配你的情況。
請務必不要放置會暗示 Gitea 項目對你的服器負責的一般服務條款或隱私聲明。
請務必不要放置會暗示 Gitea 專案對你的服器負責的一般服務條款或隱私聲明。
## 使其可見
建或追加到 `/path/to/custom/templates/custom/extra_links_footer.tmpl` 文件中:
或追加到 `/path/to/custom/templates/custom/extra_links_footer.tmpl` 文件中:
```go
<a class="item" href="{{AppSubUrl}}/assets/privacy.html">隱私政策</a>

View File

@@ -6,208 +6,208 @@ aliases:
- /zh-tw/authentication
---
# 认证
# 認證
## 轻量级目录访问协议Lightweight Directory Access ProtocolLDAP
## 輕量級目錄訪問協議Lightweight Directory Access ProtocolLDAP
通过 BindDN 的 LDAP 和简单认证方式 LDAP 共享以下字段:
透過 BindDN 的 LDAP 和簡單認證方式 LDAP 共享以下欄位:
- 认证名称 **(必)**
- 認證名稱 **(必)**
- 分配新授方法的名
- 分配新授方法的名
-**(必)**
-**(必)**
- LDAP 服的主地址.
- LDAP 服的主地址.
- 例如:`mydomain.com`
- 端口 **(必)**
- 端口 **(必)**
- LDAP 服的端口.
- LDAP 服的端口.
- 例如: LDAP `389`/ LDAPs `636`
- 安全协议 (可)
- 安全協議 (可)
- 接 LDAP 服务器时是否使用 TLS 协议
- 接 LDAP 伺服器時是否使用 TLS 協議
- 管理员过滤规则 (可)
- 管理員過濾規則 (可)
- LDAP 过滤器,用指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
- 例:`(objectClass=adminAccount)`
- 适用于 Microsoft Active DirectoryAD例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- LDAP 過濾器,用指定哪些使用者應該被賦予管理員特權。如果使用者帳戶符合過濾器條件,則該使用者將被授予管理員權限。
- 例:`(objectClass=adminAccount)`
- 適用於 Microsoft Active DirectoryAD例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- 用户名属性(可
- 使用者名稱屬性(可
- 用户 LDAP 记录中包含用户名称的属性。在第一次成功登录后,将使用指定的性值作新的 Gitea 账户用户名。若留空,使用登录表单上提供的用户名
- 提供的登录名与多个属性匹配时,这一选项非常有用,但是有一特定属性应该用于 Gitea 账户名称,请参阅"用户过滤器"。
- 例:uid
- 适用于 Microsoft Active DirectoryAD例:`sAMAccountName`
- 使用者 LDAP 記錄中包含使用者名稱稱的屬性。在第一次成功登入後,將使用指定的性值作新的 Gitea 帳號名稱。若留空,使用登入表單上提供的使用者名稱
- 提供的登入名與多個屬性匹配時,這一選項非常有用,但是有一特定屬性應該用於 Gitea 帳號名稱,請參閱"使用者過濾器"。
- 例:uid
- 適用於 Microsoft Active DirectoryAD例:`sAMAccountName`
- 名字性(可
- 名字性(可
- 用户 LDAP 记录中包含用户名字的性。将用于填充他们的账户信息
- 例:givenName
- 使用者 LDAP 記錄中包含使用者名稱字的性。將用於填充他們的帳號資訊
- 例:givenName
- 姓氏性(可
- 姓氏性(可
- 用户 LDAP 记录中包含用户姓氏的性。将用于填充他们的账户信息
- 例:`sn`
- 使用者 LDAP 記錄中包含使用者姓氏的性。將用於填充他們的帳號資訊
- 例:`sn`
- 电子邮件属**(必)**
- 用户 LDAP 记录中包含用户电子邮件地址的性。将用于填充他们的账户信息
- 例:`mail`
- 電子郵件屬**(必)**
- 使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。將用於填充他們的帳號資訊
- 例:`mail`
### LDAP(via BindDN)
需要额外设置以下字段:
需要額外設定以下欄位:
- 定 DN (可)
- 定 DN (可)
- 搜索用户时绑定到 LDAP 服器的 DN。可以留空以行匿名搜索。
- 例: `cn=Search,dc=mydomain,dc=com`
- 搜索使用者時綁定到 LDAP 服器的 DN。可以留空以行匿名搜索。
- 例: `cn=Search,dc=mydomain,dc=com`
- 定密 (可)
- 定密 (可)
- 上述指定的 Bind DN绑定区别名)的密,如果有的。注意:该密码在服务器上使用 SECRET_KEY 行加密存。仍然建议确保 Bind DN 具有可能少的限。
- 上述指定的 Bind DN綁定區別名)的密,如果有的。注意:該密碼在伺服器上使用 SECRET_KEY 行加密存。仍然建議確保 Bind DN 具有可能少的限。
- 用户搜索基 **(必)**
- 使用者搜索基 **(必)**
- 是用搜索用户帐户的 LDAP 基础路径.
- 例: `ou=Users,dc=mydomain,dc=com`
- 是用搜索使用者帳戶的 LDAP 基礎路徑.
- 例: `ou=Users,dc=mydomain,dc=com`
- 用户过滤规则 **(必)**
- LDAP 过滤器声明如何查找试图进行身份验证的用户记录
`%[1]s`匹配参数将替换为登录表单中给出的登
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替换,应使用 `%[1]s`,例如在提供的登录名与多个属性(如用户标识符、电子邮件甚至电话号码)进行匹配
- 例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 启用用户同步
- 这个选项启用了一个周期性任,用于将 Gitea 用户与 LDAP 服务器进行同步。默认的同步期是每 24 小
但您可以在 app.ini 文件中行更改。
此部分的详细说明,请参阅[sample
- 使用者過濾規則 **(必)**
- LDAP 過濾器聲明如何查找試圖進行身份驗證的使用者記錄
`%[1]s`匹配參數將替換為登入表單中給出的登
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替換,應使用 `%[1]s`,例如在提供的登入名與多個屬性(如使用者標識符、電子郵件甚至電話號碼)進行匹配
- 例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 啟用使用者同步
- 這個選項啟用了一個週期性任,用於將 Gitea 使用者與 LDAP 伺服器進行同步。預設的同步期是每 24 小
但您可以在 app.ini 文件中行更改。
此部分的詳細說明,請參閱[sample
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
的*cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
在初始行任务时,将根据给定的设置创建所有 LDAP 匹配的用户,因此在使用大型企 LDAP 目录时需要小心。
的*cron.sync_external_users* 部分的註釋。前面提到的*User Search Base*和*User Filter*
設定將限制哪些使用者可以使用 Gitea 以及哪些使用者將被同步。
在初始行任務時,將根據給定的設定建立所有 LDAP 匹配的使用者,因此在使用大型企 LDAP 目錄時需要小心。
### LDAP(simple auth)
需要额外设置以下字段:
需要額外設定以下欄位:
- 用户 DN **(必)**
- 使用者 DN **(必)**
- 用作用户 DN 的模板。匹配参数 `%s` 将替换为登录表单中的登名。
- 例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 用作使用者 DN 的模板。匹配參數 `%s` 將替換為登入表單中的登名。
- 例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 用户搜索基 (可)
- 使用者搜索基 (可)
- 用户搜索基准声明哪些用户帐户将被搜索.
- 例: `ou=Users,dc=mydomain,dc=com`
- 使用者搜索基準聲明哪些使用者帳戶將被搜索.
- 例: `ou=Users,dc=mydomain,dc=com`
- 用户过滤规则 **(必)**
- LDAP 过滤器声明何时允许用户登录
`%[1]s`匹配参数将替换为登录表单中给出的登名。
- 例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 使用者過濾規則 **(必)**
- LDAP 過濾器聲明何時允許使用者登入
`%[1]s`匹配參數將替換為登入表單中給出的登名。
- 例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
### 使用 LDAP 验证分组成员
### 使用 LDAP 驗證分組成員
使用以下字段:
使用以下欄位:
-搜索基 DN(可)
-搜索基 DN(可)
- 使用的 LDAP DN。
- 例: `ou=group,dc=mydomain,dc=com`
- 使用的 LDAP DN。
- 例: `ou=group,dc=mydomain,dc=com`
- 组名过滤器 (可)
- 組名過濾器 (可)
- LDAP 过滤器,明如何在上述 DN 中查找有效
- 例: `(|(cn=gitea_users)(cn=admins))`
- LDAP 過濾器,明如何在上述 DN 中查找有效
- 例: `(|(cn=gitea_users)(cn=admins))`
- 中的用户属性 (可)
- 中的使用者屬性 (可)
- 中列出了哪个用户的 LDAP 性。
- 例: `uid`
- 中列出了哪個使用者的 LDAP 性。
- 例: `uid`
- 用户组属性 (可)
-个组的 LDAP 性包含一个高于用户属性名称的数组
- 例: `memberUid`
- 使用者組屬性 (可)
-個組的 LDAP 性包含一個高於使用者屬性名稱的數組
- 例: `memberUid`
## 可插拔式认证模块(Pluggable Authentication Module,PAM)
## 可插拔式認證模組(Pluggable Authentication Module,PAM)
这个过程启用了 PAMPluggable Authentication Modules认证。用户仍然可以通过用户管理手添加到系中。
PAM 提供了一种机制,通过对用户进行 PAM 认证来自动将其添加到当前数据库中。为了与普通的 Linux 密一起使用,
行 Gitea 的用户还必须具有`/etc/shadow`读取权限,以便在使用公钥登录时检查账户的有效性。
這個過程啟用了 PAMPluggable Authentication Modules認證。使用者仍然可以透過使用者管理手添加到系中。
PAM 提供了一種機制,通過對使用者進行 PAM 認證來自動將其添加到當前資料庫中。為了與普通的 Linux 密一起使用,
行 Gitea 的使用者還必須具有`/etc/shadow`讀取權限,以便在使用公鑰登入時檢查帳號的有效性。
**注意**:如果用户已将 SSH 公添加到 Gitea 中,使用些密可能会绕过登录检查系。因此,
如果您希望禁用使用 PAM 行身份验证的用户,应该在 Gitea 中手禁用该账户,使用置的用户管理功能。
**注意**:如果使用者已將 SSH 公添加到 Gitea 中,使用些密可能會繞過登入檢查系。因此,
如果您希望禁用使用 PAM 行身份驗證的使用者,應該在 Gitea 中手禁用該帳號,使用置的使用者管理功能。
1. 配置和安装准备.
-议您创建一个管理用户.
-取消自动注册.
1. 一旦数据库已初始化完成,使用新建的管理员账户登录.
1. 航至用户设置(右上角的图标),然后选择
`Site Administration` -> `Authentication Sources`, 并选择
1. 設定和安裝準備.
-議您建立一個管理使用者.
-取消自動註冊.
1. 一旦資料庫已初始化完成,使用新建的管理員帳號登入.
1. 航至使用者設定(右上角的圖標),然後選擇
`Site Administration` -> `Authentication Sources`, 並選擇
`Add Authentication Source`.
1.写字段如下:
- 认证类型:`PAM`
-:任何有效的值都可以,如果您意,可以使用"System Authentication"。
- PAM 服务名称:从/etc/pam.d/目录下选择适用于所需认证的正文件[^1]。
- PAM 电子邮件域:用户认证时要附加的电子邮件后缀。例如,如果登录系统期望一个名为 gituse 的用户
并且将此字段设置为 mail.com Gitea 在验证一个 GIT 例的用户时将期望 user emai 字段为gituser@mail.com[^2]。
1.寫欄位如下:
- 認證類型:`PAM`
-:任何有效的值都可以,如果您意,可以使用"System Authentication"。
- PAM 服務名稱:從/etc/pam.d/目錄下選擇適用於所需認證的正文件[^1]。
- PAM 電子郵件域:使用者認證時要附加的電子郵件後綴。例如,如果登入系統期望一個名為 gituse 的使用者
並且將此欄位設定為 mail.com Gitea 在驗證一個 GIT 例的使用者時將期望 user emai 欄位為gituser@mail.com[^2]。
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
而官方提供的二制文件通常不会默认启用此功能。PAM 需要保系上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
**Note**: PAM 支援通過[build-time flags](installation/from-source.md)添加,
而官方提供的二制文件通常不會預設啟用此功能。PAM 需要保系上有必要的 libpam 動態庫,並且編譯器可以訪問必要的 PAM 開發頭文件。
[^1]:
例如,在 Debian "Bullseye"上使用标准 Linux 登,可以使用`common-session-noninteractive`这个值对于其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用行版的文档以确认
例如,在 Debian "Bullseye"上使用標準 Linux 登,可以使用`common-session-noninteractive`這個值對於其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的請查閱您所使用行版的文件以確認
[^2]: **PAM 的必选项** 注意:在上面的例中,用户将作为`gituser`而不是`gituser@mail.com`到 Gitea 的 Web 面。
[^2]: **PAM 的必選項** 注意:在上面的例中,使用者將作為`gituser`而不是`gituser@mail.com`到 Gitea 的 Web 面。
## 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
## 簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)
选项允许 Gitea 以 Gitea 用户身份登 SMTP 主机。请设置以下字段:
選項允許 Gitea 以 Gitea 使用者身份登 SMTP 主機。請設定以下欄位:
- 身份验证名称 **(必)**
- 身份驗證名稱 **(必)**
- 分配新授方法的名
- 分配新授方法的名
- SMTP 验证类**(必)**
- SMTP 驗證類**(必)**
-于连接 SMTP 主机的验证类plain 或 login
-於連接 SMTP 主機的驗證類plain 或 login
-**(必)**
-**(必)**
- SMTP 服的主地址
- SMTP 服的主地址
- 例如:`smtp.mydomain.com`
- 端口 **(必)**
- 端口 **(必)**
- SMTP 服的端口
- SMTP 服的端口
- 例如: `587`
-的域名
-的域名
- 如果使用公共 SMTP 主或有多域的 SMTP 主,限制哪些域可以登
限制哪些域可以登
- 例: `gitea.com,mydomain.com,mydomain2.com`
- 如果使用公共 SMTP 主或有多域的 SMTP 主,限制哪些域可以登
限制哪些域可以登
- 例: `gitea.com,mydomain.com,mydomain2.com`
- 制使用 SMTPS
- 默认情况下将使用 SMTPS 接到端口 465.如果您希望 smtp 用其他端口,自行设置
-,如果服器提供' STARTTLS '展名,则将使用此展名
- TLS 验证
- 禁用 TLS 验证身份.
- 该认证源处于激活状态
- 用或禁用此身份验证
- 制使用 SMTPS
- 預設情況下將使用 SMTPS 接到端口 465.如果您希望 smtp 用其他端口,自行設定
-,如果服器提供' STARTTLS '展名,則將使用此展名
- TLS 驗證
- 禁用 TLS 驗證身份.
- 該認證源處於激活狀態
- 用或禁用此身份驗證
## FreeIPA
- 要使用 FreeIPA 凭据登录 Gitea需要 Gitea 创建一个绑定帐户
创建一个绑定帐户:
- 在 FreeIPA 服务器上创建一个 gitea.ldif 文件,并将`dc=example,dc=com`换为您的`dn`,然提供一个适当安全的密
- 要使用 FreeIPA 憑據登入 Gitea需要 Gitea 建立一個綁定帳戶
建立一個綁定帳戶:
- 在 FreeIPA 伺服器上建立一個 gitea.ldif 文件,並將`dc=example,dc=com`換為您的`dn`,然提供一個適當安全的密
```sh
dn: uid=gitea,cn=sysaccounts,cn=etc,dc=example,dc=com
@@ -220,76 +220,76 @@ PAM 提供了一种机制,通过对用户进行 PAM 认证来自动将其添
nsIdleTimeout: 0
```
- 入 LDIF 文件(如果需要,请将 localhost 更改 IPA 服器)。系统会提示您入 Directory Manager 的密。:
- 入 LDIF 文件(如果需要,請將 localhost 更改 IPA 服器)。系統會提示您入 Directory Manager 的密。:
```sh
ldapmodify -h localhost -p 389 -x -D \
"cn=Directory Manager" -W -f gitea.ldif
```
- `gitea_users`添加 IPA :
- `gitea_users`添加 IPA :
```sh
ipa group-add --desc="Gitea Users" gitea_users
```
- **提示**:对于 IPA 凭证错误,运行' kinit admin '提供域管理帐户密码.
- 以管理身份登 Gitea点击 Admin Panel 下的`Authentication`。然后单击`Add New Source`并填写详细信息,更改所有适当的地方。
- **提示**:對於 IPA 憑證錯誤,運行' kinit admin '提供域管理帳戶密碼.
- 以管理身份登 Gitea點擊 Admin Panel 下的`Authentication`。然後單擊`Add New Source`並填寫詳細資訊,更改所有適當的地方。
## SPNEGO with SSPI (Kerberos/NTLM, for Windows only)
Gitea 支持通过 Windows 置的安全支提供程序接口Security Support Provider InterfaceSSPI实现 SPNEGO 单点登录认证(由 RFC4559 定的方案),用于服务器的 Web 部分。SSPI 在 Windows 境中工作,即当服务器和客端都在 Windows 操作系统上运行时
Gitea 支援通過 Windows 置的安全支提供程式介面Security Support Provider InterfaceSSPI實現 SPNEGO 單點登入認證(由 RFC4559 定的方案),用於伺服器的 Web 部分。SSPI 在 Windows 境中工作,即當伺服器和客端都在 Windows 操作系統上運行時
在激活 SSPI 单点登录认证SSO之前您需要准备您的境:
在激活 SSPI 單點登入認證SSO之前您需要準備您的境:
- 在 Active Directory 中创建一个单独的用户账户gitea.exe 进程将在该账户下运行(例如,在 domain.local 域下创建一个名为 user 的账户:
- 为运行 gitea.exe 的主机创建一个服务主体名称Service Principal NameSPN类别为 HTTP:
- 在 Active Directory 中建立一個單獨的使用者帳號gitea.exe 進程將在該帳號下運行(例如,在 domain.local 域下建立一個名為 user 的帳號:
- 為運行 gitea.exe 的主機建立一個服務主體名稱Service Principal NameSPN類別為 HTTP:
- 以特权域用户(例如域管理)的身份启动“命令提示符”或“PowerShell”。
- 行下面的命令, host.domain.local 替换为 Web 用程序将运行的服务器的完全限定域名FQDN domain\user 替换为在前一步中创建的账户名称:
- 以特權域使用者(例如域管理)的身份啟動“命令提示符”或“PowerShell”。
- 行下面的命令, host.domain.local 替換為 Web 用程式將運行的伺服器的完全限定域名FQDN domain\user 替換為在前一步中建立的帳號名稱:
```sh
setspn -A HTTP/host.domain.local domain\user
```
在遵循上述步之前,请确保您按照以下流程行操作:
在遵循上述步之前,請確保您按照以下流程行操作:
1. 用之前创建的用户登录(如果已经登录,请先注销)。
2. 保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`设置为 Web 用程序将运行的服务器的完全限定域名FQDN之前创建服务主体名称时使用的一致(例如,`host.domain.local`)。
3. 启动 Web 服器(行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一 `SPNEGO with SSPI` 认证源,以用 SSPI 认证
5. 在域中的客户端计算机上,使用任何域用户登录(与运行`gitea.exe`的服器不同)。
6. 如果您使用 Chrome 或 Edge 浏览器,请将 Web 用程的 URL 添加到“本地站”(`Internet选项 -> 安全 -> 本地站 -> 站`)。
7. 启动 Chrome 或 Edge 浏览器,航到 Gitea 的 FQDN URL例如`http://host.domain.local:3000`)。
8. 在控制面板中点击“Sign In”按,然后选择 SSPI将会自动使用前登录到计算机的用户进行登
9. 如果法正常工作,请确保:
- 您不是在行`gitea.exe`的同一台服务器上行 Web 浏览器。应该在与服务器不同的域加入计算机(客端)上行 Web 浏览器。如果客端和服器都在同一台计算机上运行, NTLM 将优先于 Kerberos。
- 主上只有一`HTTP/...`的 SPN。
- SPN 中只包含主名,不包含端口
- Web 用程的 URL 添加到"本地站"。
- 服器和客端的时钟差异不超 5 分(取决于组策略)。
- 在 Internet Explorer 中用了"集成 Windows 身份验证"(在"高级设置"下)。
1. 用之前建立的使用者登入(如果已經登入,請先註銷)。
2. 保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`設定為 Web 用程式將運行的伺服器的完全限定域名FQDN之前建立服務主體名稱時使用的一致(例如,`host.domain.local`)。
3. 啟動 Web 服器(行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一 `SPNEGO with SSPI` 認證源,以用 SSPI 認證
5. 在域中的客戶端計算機上,使用任何域使用者登入(與運行`gitea.exe`的服器不同)。
6. 如果您使用 Chrome 或 Edge 瀏覽器,請將 Web 用程的 URL 添加到“本地站”(`Internet選項 -> 安全 -> 本地站 -> 站`)。
7. 啟動 Chrome 或 Edge 瀏覽器,航到 Gitea 的 FQDN URL例如`http://host.domain.local:3000`)。
8. 在控制面板中點擊“Sign In”按,然後選擇 SSPI將會自動使用前登入到計算機的使用者進行登
9. 如果法正常工作,請確保:
- 您不是在行`gitea.exe`的同一臺伺服器上行 Web 瀏覽器。應該在與伺服器不同的域加入計算機(客端)上行 Web 瀏覽器。如果客端和服器都在同一臺計算機上運行, NTLM 將優先於 Kerberos。
- 主上只有一`HTTP/...`的 SPN。
- SPN 中只包含主名,不包含端口
- Web 用程的 URL 添加到"本地站"。
- 服器和客端的時鐘差異不超 5 分(取決於組策略)。
- 在 Internet Explorer 中用了"整合 Windows 身份驗證"(在"高級設定"下)。
遵循些步,您应该能够成功用和使用 SSPI 单点登录认证SSO
遵循些步,您應該能夠成功用和使用 SSPI 單點登入認證SSO
## 反向代理认证
## 反向代理認證
Gitea 支持通过读取反向代理传递的 HTTP 中的登名或者 email 地址来支持反向代理来认证。默认是不用的,你可以用以下配置启用。
Gitea 支援通過讀取反向代理傳遞的 HTTP 中的登名或者 email 地址來支援反向代理來認證。預設是不用的,你可以用以下設定啟用。
```ini
[service]
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
```
默认的登录用户名的 HTTP 是 `X-WEBAUTH-USER`,你可以通过修改 `REVERSE_PROXY_AUTHENTICATION_USER` 来变更它。如果用户不存在,可以自动创建用户,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。
預設的登入使用者名稱的 HTTP 是 `X-WEBAUTH-USER`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_USER` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。
默认的登录用户 Email 的 HTTP 是 `X-WEBAUTH-EMAIL`,你可以通过修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 来变更它。如果用户不存在,可以自动创建用户,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。你也可以通过修改 `ENABLE_REVERSE_PROXY_EMAIL` 来启用或停用这个 HTTP
預設的登入使用者 Email 的 HTTP 是 `X-WEBAUTH-EMAIL`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。你也可以透過修改 `ENABLE_REVERSE_PROXY_EMAIL` 來啟用或停用這個 HTTP
如果设置了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`则用户的全名会从 `X-WEBAUTH-FULLNAME` 取,这样在自动创建用户时将使用这个字段作为用户全名,你也可以通过修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 来变更 HTTP
如果設定了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`則使用者的全名會從 `X-WEBAUTH-FULLNAME` 取,這樣在自動建立使用者時將使用這個欄位作為使用者全名,你也可以透過修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 來變更 HTTP
你也可以通过修改 `REVERSE_PROXY_TRUSTED_PROXIES` 来设置反向代理的 IP 地址范围,加安全性,默认值是 `127.0.0.0/8,::1/128`。 通 `REVERSE_PROXY_LIMIT` 可以设置最多信任几级反向代理。
你也可以透過修改 `REVERSE_PROXY_TRUSTED_PROXIES` 來設定反向代理的 IP 地址範圍,加安全性,預設值是 `127.0.0.0/8,::1/128`。 通 `REVERSE_PROXY_LIMIT` 可以設定最多信任幾級反向代理。
你可以通过以下配置为 API 用此认证方法:
你可以透過以下設定為 API 用此認證方法:
```ini
[service]
@@ -297,5 +297,5 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION_API = true
```
:::note
此方法用 API ,反向代理负责处理 CSRF 保
此方法用 API ,反向代理負責處理 CSRF 保
:::

View File

@@ -7,19 +7,19 @@ aliases:
- /zh-tw/backup-and-restore
---
# 备份与恢复
# 備份與恢復
Gitea 已经实现`dump` 命令可以用来备份所有需要的文件到一 zip 压缩文件。该压缩文件可以被用来进行数据恢复
Gitea 已經實現`dump` 命令可以用來備份所有需要的文件到一 zip 壓縮文件。該壓縮文件可以被用來進行資料恢復
## 份一致性
## 份一致性
为了确保 Gitea 例的一致性,在份期间必须关闭它。
為了確保 Gitea 例的一致性,在份期間必須關閉它。
Gitea 包括数据库、文件和 Git 仓库,当它被使用所有些都会发生变化。例如,当迁移正在进行时,在数据库中创建一个事务,而 Git 仓库正在被制。如果备份发生在移的中Git 仓库可能是不完整的,尽管数据库声称它是完整的,因它是在之后被转储的。避免这种竞争条件的唯一方法是在份期停止 Gitea 例。
Gitea 包括資料庫、文件和 Git 儲存庫,當它被使用所有些都會發生變化。例如,當遷移正在進行時,在資料庫中建立一個事務,而 Git 儲存庫正在被制。如果備份發生在移的中Git 儲存庫可能是不完整的,儘管資料庫聲稱它是完整的,因它是在之後被轉儲的。避免這種競爭條件的唯一方法是在份期停止 Gitea 例。
## 份命令 (`dump`)
## 份命令 (`dump`)
到 git 用户的权限: `su git`. 再 Gitea 目录运`./gitea dump`。一般会显示类似如下的出:
到 git 使用者的權限: `su git`. 再 Gitea 目錄運`./gitea dump`。一般會顯示類似如下的出:
```
2016/12/27 22:32:09 Creating tmp work dir: /tmp/gitea-dump-417443001
@@ -30,20 +30,20 @@ Gitea 包括数据库、文件和 Git 仓库,当它被使用时所有这些都
2016/12/27 22:32:34 Finish dumping in file gitea-dump-1482906742.zip
```
生成的 `gitea-dump-1482906742.zip` 文件将会包含如下容:
生成的 `gitea-dump-1482906742.zip` 文件將會包含如下容:
- `app.ini` - 如果原先存储在默认的 custom/ 目之外,则是配置文件的可副本
- `custom/` - 所有保存在 `custom/`下的配置和自定义的文件。
- `data/` - 数据目录APP_DATA_PATH如果使用文件会话,则不包括会话。该目录包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 包括 SQLite 文件。
- `repos/` - 仓库目录的完整副本。
- `gitea-db.sql` - 数据库 dump 出的 SQL。
- `log/` - Logs 文件,如果用作移不是必的。
- `app.ini` - 如果原先儲存在預設的 custom/ 目之外,則是設定文件的可副本
- `custom/` - 所有保存在 `custom/`下的設定和自訂的文件。
- `data/` - 資料目錄APP_DATA_PATH如果使用文件會話,則不包括會話。該目錄包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 包括 SQLite 文件。
- `repos/` - 儲存庫目錄的完整副本。
- `gitea-db.sql` - 資料庫 dump 出的 SQL。
- `log/` - Logs 文件,如果用作移不是必的。
间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
間備份文件將會在臨時目錄進行建立,如果您要重新指定臨時目錄,可以用 `--tempdir` 參數,或者用 `TMPDIR` 環境變量。
## 备份数据库
## 備份資料庫
`gitea dump` 建的 SQL 转储使用 XORMGitea 管理可能更喜使用本地的 MySQL 和 PostgreSQL 转储工具。使用 XORM 转储数据库时仍然存在一些问题,可能会导致在尝试恢复时出现问题
`gitea dump`的 SQL 轉儲使用 XORMGitea 管理可能更喜使用本地的 MySQL 和 PostgreSQL 轉儲工具。使用 XORM 轉儲資料庫時仍然存在一些問題,可能會導致在嘗試恢復時出現問題
```sh
# mysql
@@ -54,23 +54,23 @@ pg_dump -U $USER $DATABASE > gitea-db.sql
### 使用 Docker `dump`
在使用 Docker ,使用 `dump` 命令有一些注意事
在使用 Docker ,使用 `dump` 命令有一些注意事
`gitea/conf/app.ini` 中指定的 `RUN_USER = <OS_USERNAME>` 执行该命令;且,为了让备份文件夹的压缩过程能够顺利执行,`docker exec` 命令必`--tempdir` 内部执行。
`gitea/conf/app.ini` 中指定的 `RUN_USER = <OS_USERNAME>` 執行該命令;且,為了讓備份文件夾的壓縮過程能夠順利執行,`docker exec` 命令必`--tempdir` 內部執行。
例:
例:
```none
docker exec -u <OS_USERNAME> -it -w <--tempdir> $(docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$') bash -c '/usr/local/bin/gitea dump -c </path/to/app.ini>'
```
\*注意:`--tempdir` 指的是 Gitea 使用的 Docker 境的临时目录;如果您有指定自定义`--tempdir`,那 Gitea 使用 `/tmp` 或 Docker 容器的 `TMPDIR` 环境变量。对于 `--tempdir`请相应调整您的 `docker exec` 命令选项
\*注意:`--tempdir` 指的是 Gitea 使用的 Docker 境的臨時目錄;如果您有指定自`--tempdir`,那 Gitea 使用 `/tmp` 或 Docker 容器的 `TMPDIR` 環境變量。對於 `--tempdir`請相應調整您的 `docker exec` 命令選項
结果应该是一文件,存在指定的 `--tempdir` 中,类似于`gitea-dump-1482906742.zip`
結果應該是一文件,存在指定的 `--tempdir` 中,類似於`gitea-dump-1482906742.zip`
## 恢命令 (`restore`)
## 恢命令 (`restore`)
当前还没有恢命令,恢需要人工行。主要是把文件和数据库进行恢
當前還沒有恢命令,恢需要人工行。主要是把文件和資料庫進行恢
例如:
@@ -93,54 +93,54 @@ psql -U $USER -d $DATABASE < gitea-db.sql
service gitea restart
```
如果安方式生了化(例如 二制 -> Docker或者 Gitea 安到了之前安不同的目录,则需要重新生成仓库 Git 子。
如果安方式生了化(例如 二制 -> Docker或者 Gitea 安到了之前安不同的目錄,則需要重新生成儲存庫 Git 子。
在 Gitea 运行时,并从 Gitea 二制文件所在的目录执行:`./gitea admin regenerate hooks`
在 Gitea 運行時,並從 Gitea 二制文件所在的目錄執行:`./gitea admin regenerate hooks`
这样可以确保仓库 Git 子中的用程序和配置文件路径与当前安一致。如果些路径没有更新,仓库`push` 操作将失败
這樣可以確保儲存庫 Git 子中的用程式和設定文件路徑與當前安一致。如果些路徑沒有更新,儲存庫`push` 操作將失敗
### 使用 Docker (`restore`)
在基 Docker 的 Gitea 例中,也有恢命令的支。恢复过程与前面描述的步相同,但路不同。
在基 Docker 的 Gitea 例中,也有恢命令的支。恢復過程與前面描述的步相同,但路不同。
例:
例:
```sh
# 在容器中打 bash 会话
# 在容器中打 bash 會話
docker exec --user git -it 2a83b293548e bash
# 在容器内解压您的份文件
# 在容器內解壓您的份文件
unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
# 恢 Gitea 数据
# 恢 Gitea 數據
mv data/* /data/gitea
# 恢复仓库本身
# 恢復倉庫本身
mv repos/* /data/git/repositories/
# 整文件
# 調整文件
chown -R git:git /data
# 重新生成 Git
# 重新生成 Git
/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks
```
Gitea 容器中的默认用户`git`1000:1000用您的 Gitea 容器 ID 或名称替换 `2a83b293548e`
Gitea 容器中的預設使用者`git`1000:1000用您的 Gitea 容器 ID 或名稱替換 `2a83b293548e`
### 使用 Docker-rootless (`restore`)
在 Docker-rootless 容器中的恢工作流程只是要使用的目不同:
在 Docker-rootless 容器中的恢工作流程只是要使用的目不同:
```sh
# 在容器中打 bash 会话
# 在容器中打 bash 會話
docker exec --user git -it 2a83b293548e bash
# 在容器内解压您的份文件
# 在容器內解壓您的份文件
unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
# 恢 app.ini
# 恢 app.ini
mv data/conf/app.ini /etc/gitea/app.ini
# 恢 Gitea 数据
# 恢 Gitea 數據
mv data/* /var/lib/gitea
# 恢复仓库本身
# 恢復倉庫本身
mv repos/* /var/lib/gitea/git/repositories
# 整文件
# 調整文件
chown -R git:git /etc/gitea/app.ini /var/lib/gitea
# 重新生成 Git
# 重新生成 Git
/usr/local/bin/gitea -c '/etc/gitea/app.ini' admin regenerate hooks
```

View File

@@ -7,37 +7,37 @@ aliases:
- /zh-tw/cmd-embedded
---
# 嵌入源提取工具
# 嵌入源提取工具
Gitea 的可行文件包含了行所需的所有源:模板、片、式表和翻文件。你可以通过`custom`下的相应路径中放置替文件来覆盖其中的任何源(详见 [定义 Gitea 配置](../administration/customizing-gitea.md))。
Gitea 的可行文件包含了行所需的所有源:模板、片、式表和翻文件。你可以透過`custom`下的相應路徑中放置替文件來覆蓋其中的任何源(詳見 [ Gitea 設定](../administration/customizing-gitea.md))。
取嵌入源的副本以进行编辑,可以使用 CLI 中的 `embedded` 命令,通操作系的 shell 行。
取嵌入源的副本以進行編輯,可以使用 CLI 中的 `embedded` 命令,通操作系的 shell 行。
**注意:** 嵌入源提取工具包含在 Gitea 1.12 及以上版本中。
**注意:** 嵌入源提取工具包含在 Gitea 1.12 及以上版本中。
## 源列表
## 源列表
要列出嵌入在 Gitea 可行文件中的源,使用以下法:
要列出嵌入在 Gitea 可行文件中的源,使用以下法:
```sh
gitea embedded list [--include-vendored] [patterns...]
```
`--include-vendored` 标志使命令包括被供的文件,些文件通常被排除在外;即自外部的文件,些文件是 Gitea 所需的(例如 [octicons](https://octicons.github.com/) 等)。
`--include-vendored` 標誌使命令包括被供的文件,些文件通常被排除在外;即自外部的文件,些文件是 Gitea 所需的(例如 [octicons](https://octicons.github.com/) 等)。
可以提供一系列文件搜索模式。Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。以下是一些例:
可以提供一系列文件搜索模式。Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。以下是一些例:
- 列出所有模板文件,无论在哪个虚拟目录下:`**.tmpl`
- 列出所有件模板文件:`templates/mail/**.tmpl`
列出 `public/assets/img`下的所有文件:`public/assets/img/**`
- 列出所有模板文件,無論在哪個虛擬目錄下:`**.tmpl`
- 列出所有件模板文件:`templates/mail/**.tmpl`
列出 `public/assets/img`下的所有文件:`public/assets/img/**`
不要忘记为模式使用引,因空格、`*` 和其他字符可能命令行解器有特殊含
不要忘記為模式使用引,因空格、`*` 和其他字符可能命令行解器有特殊含
如果未提供模式,列出所有文件。
如果未提供模式,列出所有文件。
### 例:列出所有嵌入文件
### 例:列出所有嵌入文件
列出所有路中包含 `openid` 的嵌入文件:
列出所有路中包含 `openid` 的嵌入文件:
```sh
$ gitea embedded list '**openid**'
@@ -51,33 +51,33 @@ templates/user/auth/signup_openid_register.tmpl
templates/user/settings/security_openid.tmpl
```
## 提取
## 提取
要提取嵌入在 Gitea 可行文件中的源,使用以下法:
要提取嵌入在 Gitea 可行文件中的源,使用以下法:
```sh
gitea [--config {file}] embedded extract [--destination {dir}|--custom] [--overwrite|--rename] [--include-vendored] {patterns...}
```
`--config` 选项用于告知 Gitea `app.ini` 配置文件的位置(如果不在默认位置)。此选项仅在使用 `--custom` 标志时使用。
`--config` 選項用於告知 Gitea `app.ini` 設定文件的位置(如果不在預設位置)。此選項僅在使用 `--custom` 標誌時使用。
`--destination` 选项用于指定提取文件的目标目录。默认为当前目
`--destination` 選項用於指定提取文件的目標目錄。預設為當前目
`--custom` 标志告知 Gitea 直接文件提取到 `custom`中。使其正常工作,命令需要知道 `app.ini` 配置文件的位置(通 `--config` 指定),且根据配置的不同,需要 Gitea 通常启动的目录运行。有关详细信息,请参阅 [定义 Gitea 配置](../administration/customizing-gitea.md)。
`--custom` 標誌告知 Gitea 直接文件提取到 `custom`中。使其正常工作,命令需要知道 `app.ini` 設定文件的位置(通 `--config` 指定),且根據設定的不同,需要 Gitea 通常啟動的目錄運行。有關詳細資訊,請參閱 [ Gitea 設定](../administration/customizing-gitea.md)。
`--overwrite` 标志允许覆盖目标目录中的任何有文件。
`--overwrite` 標誌允許覆蓋目標目錄中的任何有文件。
`--rename` 标志告知 Gitea 将目标目录中的任何有文件重命名 `filename.bak`。之前的 `.bak` 文件被覆
`--rename` 標誌告知 Gitea 將目標目錄中的任何有文件重命名 `filename.bak`。之前的 `.bak` 文件被覆
至少需要提供一文件搜索模式;有模式的法和例,请参阅上述 `list` 子命令。
至少需要提供一文件搜索模式;有模式的法和例,請參閱上述 `list` 子命令。
### 重要提示
请确保**只提取需要自定义的文件**。位 `custom`中的文件不受到 Gitea 的升级过程的影响。当 Gitea 升到新版本(通过替换可执行文件)时,许多嵌入文件将发生变化。Gitea 尊重使用在 `custom`中找到的任何文件,即使些文件是的和不容的。
請確保**只提取需要自的文件**。位 `custom`中的文件不受到 Gitea 的升級過程的影響。當 Gitea 升到新版本(通過替換可執行文件)時,許多嵌入文件將發生變化。Gitea 尊重使用在 `custom`中找到的任何文件,即使些文件是的和不容的。
### 例:提取件模板
### 例:提取件模板
将邮件模板提取到临时目录
將郵件模板提取到臨時目錄
```sh
$ mkdir tempdir

View File

@@ -11,523 +11,523 @@ aliases:
## 用法
`gitea [全局选项] 命令 [命令或全局选项] [参数...]`
`gitea [全域選項] 命令 [命令或全域選項] [參數...]`
## 全局选项
## 全域選項
所有全局选项均可被放置在命令级别
所有全域選項均可被放置在命令級別
- `--help``-h`显示帮助文本退出。可
- `--version``-v`示版本信息并退出。可。 (例:`Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`)。
- `--custom-path path``-C path`Gitea 自定义文件的路。可。 (默认值:`AppWorkPath`/custom 或 `$GITEA_CUSTOM`)。
- `--config path``-c path`Gitea 配置文件的路。可。 (默认值:`custom`/conf/app.ini)。
- `--work-path path``-w path`Gitea 的 `AppWorkPath`。可。 (默认LOCATION_OF_GITEA_BINARY 或 `$GITEA_WORK_DIR`)
- `--help``-h`顯示幫助文本退出。可
- `--version``-v`示版本資訊並退出。可。 (例:`Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`)。
- `--custom-path path``-C path`Gitea 自文件的路。可。 (預設值:`AppWorkPath`/custom 或 `$GITEA_CUSTOM`)。
- `--config path``-c path`Gitea 設定文件的路。可。 (預設值:`custom`/conf/app.ini)。
- `--work-path path``-w path`Gitea 的 `AppWorkPath`。可。 (預設LOCATION_OF_GITEA_BINARY 或 `$GITEA_WORK_DIR`)
注意:默认的 custom-path、config 和 work-path 也可以在构建时更改(如果需要)。
注意:預設的 custom-path、config 和 work-path 也可以在構建時更改(如果需要)。
## 命令
### web
启动服务器:
啟動伺服器:
- 选项
- `--port number``-p number`:端口。可。 (默认3000)。覆盖配置文件中的设置
- `--install-port number`行安装页面的端口。可。 (默认3000)。覆盖配置文件中的设置
- `--pid path``-P path`Pid 文件的路。可
- `--quiet``-q`:只在控制台上输出 Fatal 日,用于在设置日志之前出的日
- `--verbose`:在控制台上输出跟踪日志,用于在设置日志之前出的日
- 例:
- 選項
- `--port number``-p number`:端口。可。 (預設3000)。覆蓋設定文件中的設定
- `--install-port number`行安裝頁面的端口。可。 (預設3000)。覆蓋設定文件中的設定
- `--pid path``-P path`Pid 文件的路。可
- `--quiet``-q`:只在控制檯上輸出 Fatal 日,用於在設定日誌之前出的日
- `--verbose`:在控制檯上輸出跟蹤日誌,用於在設定日誌之前出的日
- 例:
- `gitea web`
- `gitea web --port 80`
- `gitea web --config /etc/gitea.ini --pid /some/custom/gitea.pid`
- 注意:
- Gitea 不以 root 用户身份行。要定到低 1024 的端口,您可以在 Linux 上使用 setcap 命令:`sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`。每次更新 Gitea 都需要重新行此操作。
- Gitea 不以 root 使用者身份行。要定到低 1024 的端口,您可以在 Linux 上使用 setcap 命令:`sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`。每次更新 Gitea 都需要重新行此操作。
### admin
管理操作:
管理操作:
- 命令:
- `user`
- `list`
- 选项
- `--admin`列出管理员用户。可
- 描述:列出所有现有用户
- 例:
- 選項
- `--admin`列出管理員使用者。可
- 描述:列出所有現有使用者
- 例:
- `gitea admin user list`
- `delete`
- 选项
- `--email`:要除的用户的电子邮件。
- `--username`:要除的用户的用户名
- `--id`:要除的用户的 ID。
-提供 `--id``--username``--email` 中的一。如果提供多个,则所有件必匹配。
- 例:
- 選項
- `--email`:要除的使用者的電子郵件。
- `--username`:要除的使用者的使用者名稱
- `--id`:要除的使用者的 ID。
-提供 `--id``--username``--email` 中的一。如果提供多個,則所有件必匹配。
- 例:
- `gitea admin user delete --id 1`
- `create`
- 选项
- `--name value`用户名。必填。自 Gitea 1.9.0 版本起,改用 `--username` 标志
- `--username value`用户名。必填。Gitea 1.9.0 新增。
- `--password value`:密。必填。
- `--email value`箱。必填。
- `--admin`:如果提供此选项,将创建一个管理员用户。可
- `--access-token`:如果提供,将为用户创建访问令牌。可。(默认false
- `--must-change-password`:如果提供,创建的用户将在初始登录后需要选择一个新密。可。(默认true
- `--random-password`:如果提供,使用随机生成的密码作为创建用户的密`--password` 的值被忽略。可
- `--random-password-length`:如果提供,将用于配置随机生成密码的长度。可。(默认12
- 例:
- 選項
- `--name value`使用者名稱。必填。自 Gitea 1.9.0 版本起,改用 `--username` 標誌
- `--username value`使用者名稱。必填。Gitea 1.9.0 新增。
- `--password value`:密。必填。
- `--email value`箱。必填。
- `--admin`:如果提供此選項,將建立一個管理員使用者。可
- `--access-token`:如果提供,將為使用者建立存取權杖。可。(預設false
- `--must-change-password`:如果提供,建立的使用者將在初始登入後需要選擇一個新密。可。(預設true
- `--random-password`:如果提供,使用隨機生成的密碼作為建立使用者的密`--password` 的值被忽略。可
- `--random-password-length`:如果提供,將用於設定隨機生成密碼的長度。可。(預設12
- 例:
- `gitea admin user create --username myname --password asecurepassword --email me@example.com`
- `change-password`
- 选项
- `--username value``-u value`用户名。必填。
- `--password value``-p value`:新密。必填。
- 例:
- 選項
- `--username value``-u value`使用者名稱。必填。
- `--password value``-p value`:新密。必填。
- 例:
- `gitea admin user change-password --username myname --password asecurepassword`
- `must-change-password`
- 参数
- `[username...]`:需要更改密码的用户
- 选项
- `--all``-A`制所有用户更改密
- `--exclude username``-e username`:排除定的用户。可以多次设置
- `--unset`:撤销对给定用户的强制密更改
- 參數
- `[username...]`:需要更改密碼的使用者
- 選項
- `--all``-A`制所有使用者更改密
- `--exclude username``-e username`:排除定的使用者。可以多次設定
- `--unset`:撤銷對給定使用者的強制密更改
- `regenerate`
- 选项
- `hooks`:重新生成所有仓库的 Git Hooks。
- 選項
- `hooks`:重新生成所有儲存庫的 Git Hooks。
- `keys`:重新生成 authorized_keys 文件。
- 例:
- 例:
- `gitea admin regenerate hooks`
- `gitea admin regenerate keys`
- `auth`
- `list`
- 描述:列出所有存在的外部认证源。
- 例:
- 描述:列出所有存在的外部認證源。
- 例:
- `gitea admin auth list`
- `delete`
- 选项
- `--id`:要除的源的 ID。必填。
- 例:
- 選項
- `--id`:要除的源的 ID。必填。
- 例:
- `gitea admin auth delete --id 1`
- `add-oauth`
- 选项
- `--name`用程序名称
- 選項
- `--name`用程式名稱
- `--provider`OAuth2 提供者。
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自动发现 URL在使用 OpenID Connect 作提供程序时需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自定义 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自定义租户 ID。
- `--custom-auth-url`:使用自定义授权 URLGitLab/GitHub 的选项)。
- `--custom-token-url`:使用自定义令牌 URLGitLab/GitHub 的选项)。
- `--custom-profile-url`:使用自定义配置文件 URLGitLab/GitHub 的选项)。
- `--custom-email-url`:使用自定义电子邮件 URLGitHub 的选项)。
- `--icon-url`OAuth2 登源的自定义图标 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加范围。(可
- `--required-claim-name`:必须设置的声明名,以允许用户使用此源登。(可
- `--required-claim-value`:必须设置的声明值,以允许用户使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理员用户的组声明值。(可
- `--restricted-group`:受限用户的组声明值。(可
- `--group-team-map`组与组织团队之间的 JSON 映射。(可
- `--group-team-map-removal`:根据组自动激活团队成员资格的除。(可
- 例:
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自動發現 URL在使用 OpenID Connect 作提供程式時需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自訂租戶 ID。
- `--custom-auth-url`:使用自訂授權 URLGitLab/GitHub 的選項)。
- `--custom-token-url`:使用自令牌 URLGitLab/GitHub 的選項)。
- `--custom-profile-url`:使用自訂設定文件 URLGitLab/GitHub 的選項)。
- `--custom-email-url`:使用自訂電子郵件 URLGitHub 的選項)。
- `--icon-url`OAuth2 登源的自訂圖標 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加範圍。(可
- `--required-claim-name`:必須設定的聲明名,以允許使用者使用此源登。(可
- `--required-claim-value`:必須設定的聲明值,以允許使用者使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理員使用者的組聲明值。(可
- `--restricted-group`:受限使用者的組聲明值。(可
- `--group-team-map`組與組織團隊之間的 JSON 映射。(可
- `--group-team-map-removal`:根據組自動激活團隊成員資格的除。(可
- 例:
- `gitea admin auth add-oauth --name external-github --provider github --key OBTAIN_FROM_SOURCE --secret OBTAIN_FROM_SOURCE`
- `update-oauth`
- 选项
- 選項
- `--id`:要更新的源的 ID。必填。
- `--name`用程序名称
- `--name`用程式名稱
- `--provider`OAuth2 提供者。
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自动发现 URL在使用 OpenID Connect 作提供程序时需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自定义 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自定义租户 ID。
- `--custom-auth-url`:使用自定义授权 URLGitLab/GitHub 的选项)。
- `--custom-token-url`:使用自定义令牌 URLGitLab/GitHub 的选项)。
- `--custom-profile-url`:使用自定义配置文件 URLGitLab/GitHub 的选项)。
- `--custom-email-url`:使用自定义电子邮件 URLGitHub 的选项)。
- `--icon-url`OAuth2 登源的自定义图标 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加范围
- `--required-claim-name`:必须设置的声明名,以允许用户使用此源登。(可
- `--required-claim-value`:必须设置的声明值,以允许用户使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理员用户的组声明值。(可
- `--restricted-group`:受限用户的组声明值。(可
- 例:
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自動發現 URL在使用 OpenID Connect 作提供程式時需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自訂租戶 ID。
- `--custom-auth-url`:使用自訂授權 URLGitLab/GitHub 的選項)。
- `--custom-token-url`:使用自令牌 URLGitLab/GitHub 的選項)。
- `--custom-profile-url`:使用自訂設定文件 URLGitLab/GitHub 的選項)。
- `--custom-email-url`:使用自訂電子郵件 URLGitHub 的選項)。
- `--icon-url`OAuth2 登源的自訂圖標 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加範圍
- `--required-claim-name`:必須設定的聲明名,以允許使用者使用此源登。(可
- `--required-claim-value`:必須設定的聲明值,以允許使用者使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理員使用者的組聲明值。(可
- `--restricted-group`:受限使用者的組聲明值。(可
- 例:
- `gitea admin auth update-oauth --id 1 --name external-github-updated`
- `add-smtp`
- 选项
- `--name`用程序名称。必填。
- `--auth-type`SMTP 认证类PLAIN/LOGIN/CRAM-MD5默认为 PLAIN。
- `--host`SMTP 主。必填。
- 選項
- `--name`用程式名稱。必填。
- `--auth-type`SMTP 認證類PLAIN/LOGIN/CRAM-MD5預設為 PLAIN。
- `--host`SMTP 主。必填。
- `--port`SMTP 端口。必填。
- `--force-smtps`SMTPS 始在端口 465 上使用。设置此选项以强制在其他端口上使用 SMTPS。
- `--skip-verify`:跳 TLS 验证
- `--helo-hostname`送 HELO 使用的主名。留空以发送当前主名。
- `--force-smtps`SMTPS 始在端口 465 上使用。設定此選項以強制在其他端口上使用 SMTPS。
- `--skip-verify`:跳 TLS 驗證
- `--helo-hostname`送 HELO 使用的主名。留空以發送當前主名。
- `--disable-helo`:禁用 SMTP helo。
- `--allowed-domains`:留空以允所有域。使用逗',')分隔多域。
- `--skip-local-2fa`:跳 2FA 登
- `--active`用此认证源。
备注
`--force-smtps``--skip-verify``--disable-helo``--skip-local-2fs``--active` 选项可以用以下形式使用:
- `--option``--option=true`启用选项
- `--option=false` 以禁用选项
如果未指定这些选项,则`update-smtp` 中不更改值,或者在 `add-smtp`使用默认`false` 值。
- 例:
- `--allowed-domains`:留空以允所有域。使用逗',')分隔多域。
- `--skip-local-2fa`:跳 2FA 登
- `--active`用此認證源。
備註
`--force-smtps``--skip-verify``--disable-helo``--skip-local-2fs``--active` 選項可以用以下形式使用:
- `--option``--option=true`啟用選項
- `--option=false` 以禁用選項
如果未指定這些選項,則`update-smtp` 中不更改值,或者在 `add-smtp`使用預設`false` 值。
- 例:
- `gitea admin auth add-smtp --name ldap --host smtp.mydomain.org --port 587 --skip-verify --active`
- `update-smtp`
- 选项
- 選項
- `--id`:要更新的源的 ID。必填。
- 其他选项与 `add-smtp` 共享
- 例:
- 其他選項與 `add-smtp` 共享
- 例:
- `gitea admin auth update-smtp --id 1 --host smtp.mydomain.org --port 587 --skip-verify=false`
- `gitea admin auth update-smtp --id 1 --active=false`
- `add-ldap`:添加新的 LDAP Bind DN认证
- 选项
- `--name value`认证名称。必填。
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称。必填。
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 服务器时使用的端口。必填。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径。必填。
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。必填。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。必填。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--bind-dn value`:在搜索用户时绑定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中获取属性。
- `--synchronize-users`启用用户同步。
- `--page-size value`:搜索面大小。
- 例:
- `add-ldap`:添加新的 LDAP Bind DN認證
- 選項
- `--name value`認證名稱。必填。
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱。必填。
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 伺服器時使用的端口。必填。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑。必填。
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。必填。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。必填。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--bind-dn value`:在搜索使用者時綁定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中獲取屬性。
- `--synchronize-users`啟用使用者同步。
- `--page-size value`:搜索面大小。
- 例:
- `gitea admin auth add-ldap --name ldap --security-protocol unencrypted --host mydomain.org --port 389 --user-search-base "ou=Users,dc=mydomain,dc=org" --user-filter "(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))" --email-attribute mail`
- `update-ldap`:更新有的 LDAP Bind DN认证
- 选项
- `--id value`认证源的 ID。必填。
- `--name value`认证名称
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 服务器时使用的端口。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--bind-dn value`:在搜索用户时绑定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中获取属性。
- `--synchronize-users`启用用户同步。
- `--page-size value`:搜索面大小。
- 例:
- `update-ldap`:更新有的 LDAP Bind DN認證
- 選項
- `--id value`認證源的 ID。必填。
- `--name value`認證名稱
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 伺服器時使用的端口。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--bind-dn value`:在搜索使用者時綁定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中獲取屬性。
- `--synchronize-users`啟用使用者同步。
- `--page-size value`:搜索面大小。
- 例:
- `gitea admin auth update-ldap --id 1 --name "my ldap auth source"`
- `gitea admin auth update-ldap --id 1 --username-attribute uid --firstname-attribute givenName --surname-attribute sn`
- `add-ldap-simple`:添加新的 LDAP简单身份验证)认证
- 选项
- `--name value`认证名称。必填。
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称。必填。
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 服务器时使用的端口。必填。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。必填。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。必填。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--user-dn value`用户的 DN。必填。
- 例:
- `add-ldap-simple`:添加新的 LDAP簡單身份驗證)認證
- 選項
- `--name value`認證名稱。必填。
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱。必填。
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 伺服器時使用的端口。必填。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。必填。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。必填。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--user-dn value`使用者的 DN。必填。
- 例:
- `gitea admin auth add-ldap-simple --name ldap --security-protocol unencrypted --host mydomain.org --port 389 --user-dn "cn=%s,ou=Users,dc=mydomain,dc=org" --user-filter "(&(objectClass=posixAccount)(cn=%s))" --email-attribute mail`
- `update-ldap-simple`:更新有的 LDAP简单身份验证)认证
- 选项
- `--id value`认证源的 ID。必填。
- `--name value`认证名称
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 服务器时使用的端口。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--user-dn value`用户的 DN。
- 例:
- `update-ldap-simple`:更新有的 LDAP簡單身份驗證)認證
- 選項
- `--id value`認證源的 ID。必填。
- `--name value`認證名稱
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 伺服器時使用的端口。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--user-dn value`使用者的 DN。
- 例:
- `gitea admin auth update-ldap-simple --id 1 --name "my ldap auth source"`
- `gitea admin auth update-ldap-simple --id 1 --username-attribute uid --firstname-attribute givenName --surname-attribute sn`
### cert
生成自名的 SSL 证书。将输出到前目下的`cert.pem``key.pem`文件中,并且会覆盖任何有文件。
生成自名的 SSL 證書。將輸出到前目下的`cert.pem``key.pem`文件中,並且會覆蓋任何有文件。
- 选项
- `--host value`:逗分隔的主名和 IP 地址列表,此证书适用于这些主。支使用通配符。必填。
- `--ecdsa-curve value`:用生成密的 ECDSA 曲线。可。有效选项为 P224、P256、P384、P521。
- `--rsa-bits value`:要生成的 RSA 密的大小。可。如果设置了--ecdsa-curve忽略此选项。(默认3072
- `--start-date value`证书的创建日期。可。(格式:`Jan 1 15:04:05 2011`)。
- `--duration value`证书有效期。可。(默认8760h0m0s
- `--ca`:如果提供此选项,则证书将生成自己的证书颁发机构。可
- 例:
- 選項
- `--host value`:逗分隔的主名和 IP 地址列表,此證書適用於這些主。支使用通配符。必填。
- `--ecdsa-curve value`:用生成密的 ECDSA 曲。可。有效選項為 P224、P256、P384、P521。
- `--rsa-bits value`:要生成的 RSA 密的大小。可。如果設定了--ecdsa-curve忽略此選項。(預設3072
- `--start-date value`證書的建立日期。可。(格式:`Jan 1 15:04:05 2011`)。
- `--duration value`證書有效期。可。(預設8760h0m0s
- `--ca`:如果提供此選項,則證書將生成自己的證書頒發機構。可
- 例:
- `gitea cert --host git.example.com,example.com,www.example.com --ca`
### dump
所有文件和数据库导出到一 zip 文件中。出文件保存在前目下,类似于`gitea-dump-1482906742.zip`
所有文件和資料庫導出到一 zip 文件中。出文件保存在前目下,類似於`gitea-dump-1482906742.zip`
- 选项
- `--file name``-f name`:指定要创建的导出文件的名。可。(默认gitea-dump-[timestamp].zip
- `--tempdir path``-t path`:指定临时目录的路。可。(默认值:/tmp
- `--skip-repository``-R`:跳过仓库的导出。可
- `--skip-custom-dir`:跳过自定义目录的导出。可
- `--skip-lfs-data`:跳 LFS 数据的导出。可
- `--skip-attachment-data`:跳附件数据的导出。可
- `--skip-package-data`:跳过包数据的导出。可
- `--skip-log`:跳过日志数据的导出。可
- `--database``-d`:指定数据库的 SQL 法。可
- `--verbose``-V`:如果提供此选项,显示附加详细信息。可
- `--type`设置导出的格式。可。(默认zip
- 例:
- 選項
- `--file name``-f name`:指定要建立的導出文件的名。可。(預設gitea-dump-[timestamp].zip
- `--tempdir path``-t path`:指定臨時目錄的路。可。(預設值:/tmp
- `--skip-repository``-R`:跳過儲存庫的導出。可
- `--skip-custom-dir`:跳過自訂目錄的導出。可
- `--skip-lfs-data`:跳 LFS 資料的導出。可
- `--skip-attachment-data`:跳附件資料的導出。可
- `--skip-package-data`:跳過包資料的導出。可
- `--skip-log`:跳過日誌資料的導出。可
- `--database``-d`:指定資料庫的 SQL 法。可
- `--verbose``-V`:如果提供此選項,顯示附加詳細資訊。可
- `--type`設定導出的格式。可。(預設zip
- 例:
- `gitea dump`
- `gitea dump --verbose`
### generate
于在配置文件中生成随机值和令牌。对于自动部署生成值非常有用。
於在設定文件中生成隨機值和令牌。對於自動部署生成值非常有用。
- 命令:
- `secret`:
- 选项:
- `INTERNAL_TOKEN`: 用于内部 API 用身份验证的令牌。
- `JWT_SECRET`: 用 LFS 和 OAUTH2 JWT 身份验证的密LFS_JWT_SECRET 是此选项的别名,用于向后兼容)。
- `SECRET_KEY`: 全局密钥
- 例:
- 選項:
- `INTERNAL_TOKEN`: 用於內部 API 調用身份驗證的令牌。
- `JWT_SECRET`: 用 LFS 和 OAUTH2 JWT 身份驗證的密LFS_JWT_SECRET 是此選項的別名,用於向後相容)。
- `SECRET_KEY`: 全域密鑰
- 例:
- `gitea generate secret INTERNAL_TOKEN`
- `gitea generate secret JWT_SECRET`
- `gitea generate secret SECRET_KEY`
### keys
提供一 SSHD AuthorizedKeysCommand。需要在 sshd 配置文件中进行配置:
提供一 SSHD AuthorizedKeysCommand。需要在 sshd 設定文件中進行設定:
```ini
...
# -e 的值和 AuthorizedKeysCommandUser 应与运行 Gitea 的用名匹配
# -e 的值和 AuthorizedKeysCommandUser 應與運行 Gitea 的用名匹配
AuthorizedKeysCommandUser git
AuthorizedKeysCommand /path/to/gitea keys -e git -u %u -t %t -k %k
```
命令返回适用于提供的密的合 authorized_keys 行。您还应`app.ini``[server]` 部分设置`SSH_CREATE_AUTHORIZED_KEYS_FILE=false`
命令返回適用於提供的密的合 authorized_keys 行。您還應`app.ini``[server]` 部分設定`SSH_CREATE_AUTHORIZED_KEYS_FILE=false`
注意: opensshd 要求 Gitea 程由 root 有,且不可由或其他人入。程序必须使用绝对路径指定。
注意: Gitea 必须在运行此命令时处于运行状态才能成功。
注意: opensshd 要求 Gitea 程由 root 有,且不可由或其他人入。程式必須使用絕對路徑指定。
注意: Gitea 必須在運行此命令時處於運行狀態才能成功。
### migrate
迁移数据库。该命令可用在首次启动服务器之前行其他命令。此命令是等的。
遷移資料庫。該命令可用在首次啟動伺服器之前行其他命令。此命令是等的。
### doctor check
Gitea 实例进行诊断,可以修一些可修复的问题
默认只运行部分查,外的查可以考:
Gitea 實例進行診斷,可以修一些可修復的問題
預設只運行部分查,外的查可以考:
- `gitea doctor check --list` - 列出所有可用的
- `gitea doctor check --all` - 行所有可用的
- `gitea doctor check --default` - 运行默认的检
- `gitea doctor check --run [check(s),]...` - 行指定的名字的
- `gitea doctor check --list` - 列出所有可用的
- `gitea doctor check --all` - 行所有可用的
- `gitea doctor check --default` - 運行預設的檢
- `gitea doctor check --run [check(s),]...` - 行指定的名字的
有些问题可以通过设置 `--fix` 选项进行自动修复
外的日可以通过 `--log-file=...` 进行设置
有些問題可以透過設定 `--fix` 選項進行自動修復
外的日可以透過 `--log-file=...` 進行設定
#### doctor recreate-table
,在迁移时,旧的列和默认值可能会在数据库模式中保持不变。这可能会导致警告,如下所示:
,在遷移時,舊的列和預設值可能會在資料庫模式中保持不變。這可能會導致警告,如下所示:
```
2020/08/02 11:32:29 ...rm/session_schema.go:360:Sync() [W] Table user Column keep_activity_private db default is , struct default is 0
```
您可以通过以下方式 Gitea 重新创建这些表,并将旧数据复制到新表中,并适当设置默认值:
您可以透過以下方式 Gitea 重新建立這些表,並將舊資料複製到新表中,並適當設定預設值:
```
gitea doctor recreate-table user
```
您可以使用以下方式 Gitea 重新创建多个表:
您可以使用以下方式 Gitea 重新建立多個表:
```
gitea doctor recreate-table table1 table2 ...
```
如果您希望 Gitea 重新建所有表,直接用:
如果您希望 Gitea 重新建所有表,直接調用:
```
gitea doctor recreate-table
```
烈建议在运行这些命令之前份您的数据库
烈建議在運行這些命令之前份您的資料庫
### doctor convert
将现有的 MySQL 数据库从 utf8 转换为 utf8mb4或者把 MSSQL 数据库从 varchar 转换为 nvarchar。
將現有的 MySQL 資料庫從 utf8 轉換為 utf8mb4或者把 MSSQL 資料庫從 varchar 轉換為 nvarchar。
### manager
管理行中的服器操作:
管理行中的服器操作:
- 命令:
- `shutdown`: 雅地关闭运行中的
- `restart`: 雅地重新启动运行中的程(对于 Windows 服器尚未实现
- `flush-queues`: 刷新行中的程中的
- 选项:
- `--timeout value`: 刷新程的超时时间(默认值: 1m0s
- `--non-blocking`: 设置为 true以在返回之前不等待刷新完成
- `logging`: 整日命令
- `shutdown`: 雅地關閉運行中的
- `restart`: 雅地重新啟動運行中的程(對於 Windows 服器尚未實現
- `flush-queues`: 刷新行中的程中的
- 選項:
- `--timeout value`: 刷新程的超時時間(預設值: 1m0s
- `--non-blocking`: 設定為 true以在返回之前不等待刷新完成
- `logging`: 調整日命令
- 命令:
- `pause`: 停日志记录
- `pause`: 停日誌記錄
- 注意:
- 如果日志级别低于此级别,日志级别将被临时提升 INFO。
- Gitea 在一定程度上缓冲日志,并在超过该点后丢弃日志
- `resume`: 恢复日志记录
- `release-and-reopen`: 使 Gitea 放和重新打开用于日志记录的文件和接(相当于向 Gitea 送 SIGUSR1 信)。
- `remove name`: 除指定的日志记录
- 选项:
- `--group group`, `-g group`: 从中删除子记录器的组(默认为`default`
- `add`: 添加日志记录
- 如果日誌級別低於此級別,日誌級別將被臨時提升 INFO。
- Gitea 在一定程度上緩衝日誌,並在超過該點後丟棄日誌
- `resume`: 恢復日誌記錄
- `release-and-reopen`: 使 Gitea 放和重新打開用於日誌記錄的文件和接(相當於向 Gitea 送 SIGUSR1 信)。
- `remove name`: 除指定的日誌記錄
- 選項:
- `--group group`, `-g group`: 從中刪除子記錄器的組(預設為`default`
- `add`: 添加日誌記錄
- 命令:
- `console`: 添加控制台日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--stderr`: 控制台日志输出到 stderr - 仅适用于控制
- `file`: 添加文件日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--filename value`, `-f value`: 日志记录器的文件名
- `--rotate`, `-r`: 轮转日志
- `--max-size value`, `-s value`: 在轮转之前的最大大小(以字节为单位)
- `--daily`, `-d`: 每天轮转日志
- `--max-days value`, `-D value`: 保留的每日日的最大
- `--compress`, `-z`: 压缩轮转的日
- `--compression-level value`, `-Z value`: 使用的压缩级别
- `conn`: 添加网络连接日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--reconnect-on-message`, `-R`: 对于每个消息重新接主
- `--reconnect`, `-r`: 接中断时重新接主
- `--protocol value`, `-P value`: 设置要使用的协议tcp、unix 或 udp默认为 tcp
- `--address value`, `-a value`: 要接到的主地址和端口(默认为:7020
- `smtp`: 添加 SMTP 日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--username value`, `-u value`: 邮件服务器用户名
- `--password value`, `-P value`: 邮件服务器密
- `--host value`, `-H value`: 邮件服务器主机(默认为: 127.0.0.1:25
- `--send-to value`, `-s value`: 要送到的电子邮件地址
- `--subject value`, `-S value`: 发送电子邮件的主题标题
- `processes`: 示 Gitea 程和 Goroutine 信息
- 选项:
- `--flat`: 以平面表格形式显示进程,而不是树形结构
- `--no-system`: 不示系统进
- `--stacktraces`: 显示与进程关联的 Goroutine 的堆栈跟踪
- `--json`: 输出为 JSON 格式
- `--cancel PID`: 向具有 PID 的进程发送取消命令(仅适用于非系统进程)
- `console`: 添加控制檯日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--stderr`: 控制檯日誌輸出到 stderr - 僅適用於控制
- `file`: 添加文件日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--filename value`, `-f value`: 日誌記錄器的文件名
- `--rotate`, `-r`: 輪轉日誌
- `--max-size value`, `-s value`: 在輪轉之前的最大大小(以位元組為單位)
- `--daily`, `-d`: 每天輪轉日誌
- `--max-days value`, `-D value`: 保留的每日日的最大
- `--compress`, `-z`: 壓縮輪轉的日
- `--compression-level value`, `-Z value`: 使用的壓縮級別
- `conn`: 添加網路連接日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--reconnect-on-message`, `-R`: 對於每個消息重新接主
- `--reconnect`, `-r`: 接中斷時重新接主
- `--protocol value`, `-P value`: 設定要使用的協議tcp、unix 或 udp預設為 tcp
- `--address value`, `-a value`: 要接到的主地址和端口(預設為:7020
- `smtp`: 添加 SMTP 日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--username value`, `-u value`: 郵件伺服器使用者名稱
- `--password value`, `-P value`: 郵件伺服器密
- `--host value`, `-H value`: 郵件伺服器主機(預設為: 127.0.0.1:25
- `--send-to value`, `-s value`: 要送到的電子電子郵件地址
- `--subject value`, `-S value`: 發送電子郵件的主題標題
- `processes`: 示 Gitea 程和 Goroutine 資訊
- 選項:
- `--flat`: 以平面表格形式顯示進程,而不是樹形結構
- `--no-system`: 不示系統進
- `--stacktraces`: 顯示與進程關聯的 Goroutine 的堆棧跟蹤
- `--json`: 輸出為 JSON 格式
- `--cancel PID`: 向具有 PID 的進程發送取消命令(僅適用於非系統進程)
### dump-repo
`dump-repo` Git/GitHub/Gitea/GitLab 中转储存储库数据
`dump-repo` Git/GitHub/Gitea/GitLab 中轉儲儲存庫資料
- 选项
- `--git_service service`Git 服,可以是 `git``github``gitea``gitlab`。如果 `clone_addr` 可以被识别,则可以忽略此选项
- `--repo_dir dir``-r dir`存储数据的存储库目录路径
- `--clone_addr addr`被克隆的 URL目前可以是 git/github/gitea/gitlab 的 http/https URL。例如https://github.com/lunny/tango.git
- `--auth_username lunny`访问 `clone_addr`用户名
- `--auth_password <password>`访问 `clone_addr` 的密
- `--auth_token <token>`访问 `clone_addr`人令牌。
- `--owner_name lunny`:如果非空,数据将存储在具有所有者名的目中。
- `--repo_name tango`:如果非空,数据将存储在具有存储库名称的目中。
- `--units <units>`:要移的项目,一或多个项目应以逗分隔。允许的项目有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有项目
- 選項
- `--git_service service`Git 服,可以是 `git``github``gitea``gitlab`。如果 `clone_addr` 可以被識別,則可以忽略此選項
- `--repo_dir dir``-r dir`儲存資料的儲存庫目錄路徑
- `--clone_addr addr`被克隆的 URL目前可以是 git/github/gitea/gitlab 的 http/https URL。例如https://github.com/lunny/tango.git
- `--auth_username lunny`訪問 `clone_addr`使用者名稱
- `--auth_password <password>`訪問 `clone_addr` 的密
- `--auth_token <token>`訪問 `clone_addr`人令牌。
- `--owner_name lunny`:如果非空,資料將儲存在具有所有者名的目中。
- `--repo_name tango`:如果非空,資料將儲存在具有儲存庫名稱的目中。
- `--units <units>`:要移的專案,一或多個專案應以逗分隔。允許的專案有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有專案
### restore-repo
`restore-repo` 从磁盘目录中还原存储库数据
`restore-repo` 從磁盤目錄中還原儲存庫資料
- 选项
- `--repo_dir dir``-r dir`还原数据的存储库目录路径
- `--owner_name lunny`原目所有者名
- `--repo_name tango`原目标存储库名称
- `--units <units>`:要原的项目,一或多个项目应以逗分隔。允许的项目有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有项目
- 選項
- `--repo_dir dir``-r dir`還原資料的儲存庫目錄路徑
- `--owner_name lunny`原目所有者名
- `--repo_name tango`原目標儲存庫名稱
- `--units <units>`:要原的專案,一或多個專案應以逗分隔。允許的專案有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有專案
### actions generate-runner-token
生成一供 Runner 使用的新令牌,用于向服务器注册
生成一供 Runner 使用的新令牌,用於向伺服器註冊
- 选项
- `--scope {owner}[/{repo}]``-s {owner}[/{repo}]`:限制 Runner 的范围,没有范围表示 Runner 可用所有仓库,但你也可以其限制特定的仓库或所有者。
- 選項
- `--scope {owner}[/{repo}]``-s {owner}[/{repo}]`:限制 Runner 的範圍,沒有範圍表示 Runner 可用所有儲存庫,但你也可以其限制特定的儲存庫或所有者。
注册全局 Runner
註冊全域 Runner
```
gitea actions generate-runner-token
```
注册特定组织的 Runner例如 `org`
註冊特定組織的 Runner例如 `org`
```
gitea actions generate-runner-token -s org
```
注册特定仓库的 Runner例如 `username/test-repo`
註冊特定儲存庫的 Runner例如 `username/test-repo`
```
gitea actions generate-runner-token -s username/test-repo

View File

@@ -7,77 +7,77 @@ aliases:
- /zh-tw/customizing-gitea
---
# 自定义 Gitea 配置
# 自 Gitea 設定
Gitea 引用 `custom`中的自定义配置文件来覆盖配置、模板等默认配置
Gitea 引用 `custom`中的自訂設定文件來覆蓋設定、模板等預設設定
如果从二进制部署 Gitea 所有默认路径都将相对于该 gitea 二制文件;如果从发行版安装,则可能会将这些路修改 Linux 文件系统标准。Gitea
将会自动创建包括 `custom/`的必要用目录,应用本身的配置存放在
`custom/conf/app.ini` 中。在行版中可能`/etc/gitea/` 的形式 `custom` 设置一个符号链接,查看配置详情请移步:
如果從二進制部署 Gitea 所有預設路徑都將相對於該 gitea 二制文件;如果從發行版安裝,則可能會將這些路修改 Linux 文件系統標準。Gitea
將會自動建立包括 `custom/`的必要用目錄,應用本身的設定存放在
`custom/conf/app.ini` 中。在行版中可能`/etc/gitea/` 的形式 `custom` 設定一個符號鏈接,查看設定詳情請移步:
- [快速备忘单](../administration/config-cheat-sheet.md)
- [完整配置清单](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
- [快速備忘單](../administration/config-cheat-sheet.md)
- [完整設定清單](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
如果您在 binary 同目录下无法找到 `custom` 文件夹,请检查您的 `GITEA_CUSTOM`
环境变量配置它可能被配置到了其他地方(可能被一些启动脚本设置指定了目)。
如果您在 binary 同目錄下無法找到 `custom` 文件夾,請檢查您的 `GITEA_CUSTOM`
環境變量設定它可能被設定到了其他地方(可能被一些啟動腳本設定指定了目)。
- [环境变量清](../administration/environment-variables.md)
- [環境變量清](../administration/environment-variables.md)
**注:**完全重 Gitea 以使配置生效。
**注:**完全重 Gitea 以使設定生效。
## 使用自定义 /robots.txt
## 使用自 /robots.txt
[想要展示的](http://www.robotstxt.org/) 存放在 `custom`中的
`robots.txt` 文件来让 Gitea 使用自定义`/robots.txt` 默认:空 404
[想要展示的](http://www.robotstxt.org/) 存放在 `custom`中的
`robots.txt` 文件來讓 Gitea 使用自`/robots.txt` 預設:空 404
## 使用自定义的公共文件
## 使用自的公共文件
将自定义的公共文件(比如面和片)作 webroot 放在 `custom/public/`来让 Gitea 提供些自定义内容(符号链接将被追)。
將自訂的公共文件(比如面和片)作 webroot 放在 `custom/public/`來讓 Gitea 提供些自訂內容(符號鏈接將被追)。
举例说明:`image.png` 存放在 `custom/public/assets/`中,那它可以通过链接 http://gitea.domain.tld/assets/image.png 访问
舉例說明:`image.png` 存放在 `custom/public/assets/`中,那它可以透過鏈接 http://gitea.domain.tld/assets/image.png 訪問
## 修改默认头
## 修改預設頭
以下目中的 png 片: `custom/public/assets/img/avatar\_default.png`
以下目中的 png 片: `custom/public/assets/img/avatar\_default.png`
## 自定义 Gitea
## 自 Gitea
您可以改 Gitea `custom/templates` 的每个单页面。您可以在 Gitea 源`templates`中找到用于覆盖的模板文件,应用将根据
`custom/templates`下的路径结构进行匹配和覆
您可以改 Gitea `custom/templates` 的每個單頁面。您可以在 Gitea 源`templates`中找到用於覆蓋的模板文件,應用將根據
`custom/templates`下的路徑結構進行匹配和覆
包含在 `{{``}}` 中的任何句都是 Gitea 的模板法,如果您不完全理解这些组件,不建议您对它们进行修改。
包含在 `{{``}}` 中的任何句都是 Gitea 的模板法,如果您不完全理解這些元件,不建議您對它們進行修改。
### 添加接和页签
### 添加接和頁籤
如果您只是想添加外的接到顶部导航栏或额外的选项卡到存储库视图,您可以将它们放在您 `custom/templates/custom/`下的 `extra_links.tmpl``extra_tabs.tmpl` 文件中。
如果您只是想添加外的接到頂部導航欄或額外的選項卡到儲存庫視圖,您可以將它們放在您 `custom/templates/custom/`下的 `extra_links.tmpl``extra_tabs.tmpl` 文件中。
举例说明:假您需要在站放置一个静态的“关于”页面,您只需将该页面放在您的
"custom/public/"目下(比如 `custom/public/impressum.html`并且将它与 `custom/templates/custom/extra_links.tmpl` 接起即可。
舉例說明:假您需要在站放置一個靜態的“關於”頁面,您只需將該頁面放在您的
"custom/public/"目下(比如 `custom/public/impressum.html`並且將它與 `custom/templates/custom/extra_links.tmpl` 接起即可。
这个链接应当使用一个名为“item”的 class 匹配当前样式,您可以使用 `{{AppSubUrl}}` 来获取 base URL:
這個鏈接應當使用一個名為“item”的 class 匹配當前樣式,您可以使用 `{{AppSubUrl}}` 來獲取 base URL:
`<a class="item" href="{{AppSubUrl}}/assets/impressum.html">Impressum</a>`
同理,您可以将页签添加到 `extra_tabs.tmpl` 中,使用同的方式添加页签。它的具体样式需要
`templates/repo/header.tmpl` 中已有的其他选项卡的式匹配
同理,您可以將頁籤添加到 `extra_tabs.tmpl` 中,使用同的方式添加頁籤。它的具體樣式需要
`templates/repo/header.tmpl` 中已有的其他選項卡的式匹配
([source in GitHub](https://github.com/go-gitea/gitea/blob/main/templates/repo/header.tmpl))
### 面的其他新增
### 面的其他新增
除了 `extra_links.tmpl``extra_tabs.tmpl`,您可以在您的 `custom/templates/custom/`中存放一些其他有用的模板,例如:
除了 `extra_links.tmpl``extra_tabs.tmpl`,您可以在您的 `custom/templates/custom/`中存放一些其他有用的模板,例如:
- `header.tmpl`,在 `<head>` 标记结束之前的模板,例如添加自定义 CSS 文件
- `body_outer_pre.tmpl`,在 `<body>` 标记开始处的模板
- `body_inner_pre.tmpl`,在顶部导航栏之前,但在主 container 部的模板,例如添加一 `<div class="full height">`
- `body_inner_post.tmpl`,在主 container 结束处的模板
- `header.tmpl`,在 `<head>` 標記結束之前的模板,例如添加自 CSS 文件
- `body_outer_pre.tmpl`,在 `<body>` 標記開始處的模板
- `body_inner_pre.tmpl`,在頂部導航欄之前,但在主 container 部的模板,例如添加一 `<div class="full height">`
- `body_inner_post.tmpl`,在主 container 結束處的模板
- `body_outer_post.tmpl`,在底部 `<footer>` 元素之前.
- `footer.tmpl`,在 `<body>` 标签结束处的模板,可以在这里填写一些附加的 Javascript 本。
- `footer.tmpl`,在 `<body>` 標籤結束處的模板,可以在這裡填寫一些附加的 Javascript 本。
## 自定义 gitignoreslabels licenses locales 以及 readmes
## 自 gitignoreslabels licenses locales 以及 readmes
将自定义文件放在 `custom/options` 下相子的文件中即可
將自訂文件放在 `custom/options` 下相子的文件中即可
## 更改 Gitea 外
## 更改 Gitea 外
置主是“gitea-light”、“gitea-dark”和“gitea-auto”动适应操作系统设置)。
置主是“gitea-light”、“gitea-dark”和“gitea-auto”動適應操作系統設定)。
默认主题可以通过 `app.ini` 的 [ui](../administration/config-cheat-sheet.md#界面) 部分中的 `DEFAULT_THEME` 行更改。
預設主題可以透過 `app.ini` 的 [ui](../administration/config-cheat-sheet.md) 部分中的 `DEFAULT_THEME` 行更改。

View File

@@ -7,17 +7,17 @@ aliases:
- /zh-tw/email-setup
---
# Email 设置
# Email 設定
Gitea 具有件功能,用于发送事务性邮件(例如注册确认邮件)。它可以配置为使用 Sendmail容的 MTA例如 Postfix 和 msmtp或直接使用 SMTP 服器。
Gitea 具有件功能,用於發送事務性郵件(例如註冊確認郵件)。它可以設定為使用 Sendmail容的 MTA例如 Postfix 和 msmtp或直接使用 SMTP 服器。
## 使用 Sendmail
使用 `sendmail` 命令作为邮件传输代理mailer
使用 `sendmail` 命令作為郵件傳輸代理mailer
注意:对于在官方 Gitea Docker 像中使用,使用 SMTP 版本进行配置(请参考下一)。
注意:對於在官方 Gitea Docker 像中使用,使用 SMTP 版本進行設定(請參考下一)。
注意:对于面向互联网的网站,请查阅您的 MTA 文档以了解通 TLS 发送邮件的明。同时设置 SPF、DMARC 和 DKIM DNS 记录,以使送的件被各个电子邮件提供商接受合法件。
注意:對於面向互聯網的網站,請查閱您的 MTA 文件以瞭解通 TLS 發送郵件的明。同時設定 SPF、DMARC 和 DKIM DNS 記錄,以使送的件被各個電子郵件提供商接受合法件。
```ini title="app.ini"
[mailer]
@@ -25,12 +25,12 @@ ENABLED = true
FROM = gitea@mydomain.com
PROTOCOL = sendmail
SENDMAIL_PATH = /usr/sbin/sendmail
SENDMAIL_ARGS = "--" ; 大多 "sendmail" 程序都接受选项,使用 "--" 防止电子邮件地址被解释为选项
SENDMAIL_ARGS = "--" ; 大多 "sendmail" 程序都接受選項,使用 "--" 防止電子郵件地址被解釋為選項
```
## 使用 SMTP
直接使用 SMTP 服务器作为中继。如果您不想在例上设置 MTA但在电子邮件提供商那有一个帐户,这个选项非常有用。
直接使用 SMTP 伺服器作為中繼。如果您不想在例上設定 MTA但在電子郵件提供商那有一個帳戶,這個選項非常有用。
```ini title="app.ini"
[mailer]
@@ -43,29 +43,29 @@ USER = gitea@mydomain.com
PASSWD = `password`
```
Gitea 以使配置更改生效。
Gitea 以使設定更改生效。
发送测试邮件以验证设置,请转到 Gitea > 站管理 > 配置 > SMTP 邮件配置
發送測試郵件以驗證設定,請轉到 Gitea > 站管理 > 設定 > SMTP 郵件設定
所有选项的完整列表,查看[配置速查表](../administration/config-cheat-sheet.md)。
所有選項的完整列表,查看[設定速查表](../administration/config-cheat-sheet.md)。
注意:只有在使用 TLS 或 `HOST=localhost` 加密 SMTP 服器通信才支身份验证。TLS 加密可以通过以下方式行:
注意:只有在使用 TLS 或 `HOST=localhost` 加密 SMTP 服器通信才支身份驗證。TLS 加密可以透過以下方式行:
- 通端口 587 的 STARTTLS称为 Opportunistic TLS。初始接是明文的,但如果服务器支持,则可以升级为 TLS。
- 通过默认端口 465 的 SMTPS 接。接到服务器从一开始就使用 TLS。
- 使用 `PROTOCOL=smtps` 进行强制的 SMTPS 接。(这两种方式都被称为 Implicit TLS
是由 Go 内部库对 STRIPTLS 攻的保护机制。
- 通端口 587 的 STARTTLS稱為 Opportunistic TLS。初始接是明文的,但如果伺服器支援,則可以升級為 TLS。
- 通過預設端口 465 的 SMTPS 接。接到伺服器從一開始就使用 TLS。
- 使用 `PROTOCOL=smtps` 進行強制的 SMTPS 接。(這兩種方式都被稱為 Implicit TLS
是由 Go 內部庫對 STRIPTLS 攻的保護機制。
注意,自 2018 年起,[RFC8314](https://tools.ietf.org/html/rfc8314#section-3) 推使用 Implicit TLS。
注意,自 2018 年起,[RFC8314](https://tools.ietf.org/html/rfc8314#section-3) 推使用 Implicit TLS。
### Gmail
以下配置应该适用于 Gmail 的 SMTP 服器:
以下設定應該適用於 Gmail 的 SMTP 服器:
```ini title="app.ini"
[mailer]
ENABLED = true
HOST = smtp.gmail.com:465 ; 对于 Gitea >= 1.18.0除此行
HOST = smtp.gmail.com:465 ; 對於 Gitea >= 1.18.0除此行
SMTP_ADDR = smtp.gmail.com
SMTP_PORT = 465
FROM = example.user@gmail.com
@@ -74,4 +74,4 @@ PASSWD = `***`
PROTOCOL = smtps
```
注意,您需要创建并使用一 [用密](https://support.google.com/accounts/answer/185833?hl=en) 在您的 Google 帐户上启用 2FA。您将无法直接使用您的 Google 帐户密码
注意,您需要建立並使用一 [用密](https://support.google.com/accounts/answer/185833?hl=en) 在您的 Google 帳戶上啟用 2FA。您將無法直接使用您的 Google 帳戶密碼

View File

@@ -7,43 +7,43 @@ aliases:
- /zh-tw/environment-variables
---
# 环境变量清
# 環境變量清
这里是用控制 Gitea 行为表现的的环境变量清,您需要在行如下 Gitea 启动命令前设置它们来确保配置生效:
這裡是用控制 Gitea 行為表現的的環境變量清,您需要在行如下 Gitea 啟動命令前設定它們來確保設定生效:
```
GITEA_CUSTOM=/home/gitea/custom ./gitea web
```
## Go 的配置
## Go 的設定
Gitea 使用 Go 语言编写,因此它使用了一些相的 Go 的配置参数
Gitea 使用 Go 語言編寫,因此它使用了一些相的 Go 的設定參數
- `GOOS`
- `GOARCH`
- [`GOPATH`](https://go.dev/cmd/go/#hdr-GOPATH_environment_variable)
您可以在[官方文](https://go.dev/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息
您可以在[官方文](https://go.dev/cmd/go/#hdr-Environment_variables)中查閱這些設定參數的詳細資訊
## Gitea 的文件目
## Gitea 的文件目
- `GITEA_WORK_DIR`:工作目录的绝对路径
- `GITEA_CUSTOM`默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 _custom_
- `GOGS_WORK_DIR`废弃,请使用 `GITEA_WORK_DIR` 替代
- `GOGS_CUSTOM`废弃,请使用 `GITEA_CUSTOM` 替代
- `GITEA_WORK_DIR`:工作目錄的絕對路徑
- `GITEA_CUSTOM`預設情況下 Gitea 使用預設目錄 `GITEA_WORK_DIR`/custom您可以使用這個參數來設定 _custom_
- `GOGS_WORK_DIR`廢棄,請使用 `GITEA_WORK_DIR` 替代
- `GOGS_CUSTOM`廢棄,請使用 `GITEA_CUSTOM` 替代
## 操作系统配置
## 操作系統設定
- `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
- `USERNAME` 如果没有配置 `USER` Gitea 使用 `USERNAME`
- `HOME` 用户的 home 目,在 Windows 中使用 `USERPROFILE` 环境变
- `USER`Gitea 運行時使用的系統使用者,它將作為一些 repository 的訪問地址的一部分
- `USERNAME` 如果沒有設定 `USER` Gitea 使用 `USERNAME`
- `HOME` 使用者的 home 目,在 Windows 中使用 `USERPROFILE` 環境變
### 仅限于 Windows 的配置
### 僅限於 Windows 的設定
- `USERPROFILE` 用户的主目,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
- `HOMEDRIVE`: 用于访问 home 目的主驱动器路C
- `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
- `USERPROFILE` 使用者的主目,如果未設定則會使用 `HOMEDRIVE` + `HOMEPATH`
- `HOMEDRIVE`: 用於訪問 home 目的主驅動器路C
- `HOMEPATH`:在指定主驅動器下的 home 目錄相對路徑
## Miscellaneous
- `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不以 service 的形式行。
- `SKIP_MINWINSVC`:如果設定為 1在 Windows 上不以 service 的形式行。

View File

@@ -9,18 +9,18 @@ aliases:
# 外部渲染器
Gitea 通外部二制文件支持自定义文件渲染(例如 Jupyter notebooks、asciidoc 等),只需要行以下步
Gitea 通外部二制文件支援自訂文件渲染(例如 Jupyter notebooks、asciidoc 等),只需要行以下步
-外部二制文件
- 在您的 `app.ini` 文件中添加一些配置
- 重新启动 Gitea
-外部二制文件
- 在您的 `app.ini` 文件中添加一些設定
- 重新啟動 Gitea
此功能支持整个文件的渲染。如果您想要在 Markdown 中渲染代码块,您需要使用 JavaScript 行一些操作。请参阅 [定义 Gitea 配置](../administration/customizing-gitea.md) 面上的一些例。
此功能支援整個文件的渲染。如果您想要在 Markdown 中渲染程式碼塊,您需要使用 JavaScript 行一些操作。請參閱 [ Gitea 設定](../administration/customizing-gitea.md) 面上的一些例。
## 安外部二制文件
## 安外部二制文件
了通外部二制文件行文件渲染,必须安装它们的关联软件包
如果您正在使用 Docker 像,您的 `Dockerfile` 应该包含以下容:
了通外部二制文件行文件渲染,必須安裝它們的關聯套件
如果您正在使用 Docker 像,您的 `Dockerfile` 應該包含以下容:
```docker
FROM docker.gitea.com/gitea:@dockerVersion@
@@ -30,22 +30,22 @@ COPY custom/app.ini /data/gitea/conf/app.ini
[...]
RUN apk --no-cache add asciidoctor freetype freetype-dev gcc g++ libpng libffi-dev pandoc python3-dev py3-pyzmq pipx
# 安其他您需要的外部渲染器的件包
# 安其他您需要的外部渲染器的件包
RUN pipx install jupyter docutils --include-deps
# 在上面添加您需要安的任何其他 Python 件包
# 在上面添加您需要安的任何其他 Python 件包
```
## `app.ini` 文件配置
## `app.ini` 文件設定
在您的自定义 `app.ini` 文件中为每个外部渲染器添加一 `[markup.XXXXX]` 部分:
在您的自 `app.ini` 文件中為每個外部渲染器添加一 `[markup.XXXXX]` 部分:
```ini
[markup.asciidoc]
ENABLED = true
FILE_EXTENSIONS = .adoc,.asciidoc
RENDER_COMMAND = "asciidoctor -s -a showtitle --out-file=- -"
; 入不是标准输入而是文件
; 入不是標準輸入而是文件
IS_INPUT_FILE = false
[markup.jupyter]
@@ -61,12 +61,12 @@ RENDER_COMMAND = "timeout 30s pandoc +RTS -M512M -RTS -f rst"
IS_INPUT_FILE = false
```
如果您的外部标记语言依赖于在生成的 HTML 元素上的额外类和属性,您可能需要用自定义的清理策略。Gitea 使用 [`bluemonday`](https://godoc.org/github.com/microcosm-cc/bluemonday) 包作为我们的 HTML 清理器。下面的例可以用于支持从 [`pandoc`](https://pandoc.org/) 出的服器端 [KaTeX](https://katex.org/) 渲染果。
如果您的外部標記語言依賴於在生成的 HTML 元素上的額外類和屬性,您可能需要用自的清理策略。Gitea 使用 [`bluemonday`](https://godoc.org/github.com/microcosm-cc/bluemonday) 包作為我們的 HTML 清理器。下面的例可以用於支援從 [`pandoc`](https://pandoc.org/) 出的服器端 [KaTeX](https://katex.org/) 渲染果。
```ini
[markup.sanitizer.TeX]
; Pandoc 渲染 TeX 段落为带有 "math" 的 <span> 元素,根上下文可能还带有 "inline" 或 "display"
; - 注意,这与我们的 Markdown 解析器中置的数学支持不同,者使用 <code> 元素。
; Pandoc 渲染 TeX 段落為帶有 "math" 的 <span> 元素,根上下文可能還帶有 "inline" 或 "display"
; - 注意,這與我們的 Markdown 解析器中置的數學支持不同,者使用 <code> 元素。
ELEMENT = span
ALLOW_ATTR = class
REGEXP = ^\s*((math(\s+|$)|inline(\s+|$)|display(\s+|$)))+
@@ -77,19 +77,19 @@ FILE_EXTENSIONS = .md,.markdown
RENDER_COMMAND = pandoc -f markdown -t html --katex
```
您必在每部分中定 `ELEMENT``ALLOW_ATTR`
您必在每部分中定 `ELEMENT``ALLOW_ATTR`
要定义多个条目,添加唯一的字母数字后缀(例如,`[markup.sanitizer.1]``[markup.sanitizer.something]`)。
要定義多個條目,添加唯一的字母數字後綴(例如,`[markup.sanitizer.1]``[markup.sanitizer.something]`)。
仅为特定的外部渲染器用清理规则,它们必须使用渲染器名,例如 `[markup.sanitizer.asciidoc.rule-1]``[markup.sanitizer.<renderer>.rule-1]`
僅為特定的外部渲染器用清理規則,它們必須使用渲染器名,例如 `[markup.sanitizer.asciidoc.rule-1]``[markup.sanitizer.<renderer>.rule-1]`
**注意**:如果规则在渲染器 ini 部分之前定,或者名称与渲染器不匹配,它将应用于所有渲染器。
**注意**:如果規則在渲染器 ini 部分之前定,或者名稱與渲染器不匹配,它將應用於所有渲染器。
完成配置更改后,请重新启动 Gitea 以使更改生效。
完成設定更改後,請重新啟動 Gitea 以使更改生效。
**注意**:在 Gitea 1.12 之前,存在一个名为 `markup.sanitiser`单个部分,其中的被重新定义为多个规则,但是,这种配置方法存在重大问题,需要通过多个部分进行配置
**注意**:在 Gitea 1.12 之前,存在一個名為 `markup.sanitiser`單個部分,其中的被重新定義為多個規則,但是,這種設定方法存在重大問題,需要通過多個部分進行設定
### HTML
### HTML
直接渲染 HTML 文件:
@@ -98,7 +98,7 @@ RENDER_COMMAND = pandoc -f markdown -t html --katex
ENABLED = true
FILE_EXTENSIONS = .html,.htm
RENDER_COMMAND = cat
; 入不是标准输入,而是文件
; 入不是標準輸入,而是文件
IS_INPUT_FILE = true
[markup.sanitizer.html.1]
@@ -110,13 +110,13 @@ ELEMENT = a
ALLOW_ATTR = class
```
注意:此例中的配置将允许渲染 HTML 文件,使用 `cat` 命令文件内容输出为 HTML。此外配置中的两个清理规则将允许 `<div>``<a>` 元素使用 `class` 性。
注意:此例中的設定將允許渲染 HTML 文件,使用 `cat` 命令文件內容輸出為 HTML。此外設定中的兩個清理規則將允許 `<div>``<a>` 元素使用 `class` 性。
进行配置更改后,请重新启动 Gitea 以使更改生效。
進行設定更改後,請重新啟動 Gitea 以使更改生效。
### Office DOCX
### Office DOCX
使用 [`pandoc`](https://pandoc.org/) 示 Office DOCX 文件:
使用 [`pandoc`](https://pandoc.org/) 示 Office DOCX 文件:
```ini
[markup.docx]
@@ -128,17 +128,17 @@ RENDER_COMMAND = "pandoc --from docx --to html --self-contained --template /path
ALLOW_DATA_URI_IMAGES = true
```
在此例中,配置将允许显示 Office DOCX 文件,使用 `pandoc` 命令文件转换为 HTML 格式。同,清理规则中的 `ALLOW_DATA_URI_IMAGES` 设置为 `true`,允使用 Data URI 格式的片。
在此例中,設定將允許顯示 Office DOCX 文件,使用 `pandoc` 命令文件轉換為 HTML 格式。同,清理規則中的 `ALLOW_DATA_URI_IMAGES` 設定為 `true`,允使用 Data URI 格式的片。
模板文件的容如下:
模板文件的容如下:
```
$body$
```
### Jupyter Notebook
### Jupyter Notebook
使用 [`nbconvert`](https://github.com/jupyter/nbconvert) 示 Jupyter Notebook 文件:
使用 [`nbconvert`](https://github.com/jupyter/nbconvert) 示 Jupyter Notebook 文件:
```ini
[markup.jupyter]
@@ -150,15 +150,15 @@ RENDER_COMMAND = "jupyter-nbconvert --stdin --stdout --to html --template basic"
ALLOW_DATA_URI_IMAGES = true
```
在此例中,配置将允许显示 Jupyter Notebook 文件,使用 `nbconvert` 命令文件转换为 HTML 格式。同,清理规则中的 `ALLOW_DATA_URI_IMAGES` 设置为 `true`,允使用 Data URI 格式的片。
在此例中,設定將允許顯示 Jupyter Notebook 文件,使用 `nbconvert` 命令文件轉換為 HTML 格式。同,清理規則中的 `ALLOW_DATA_URI_IMAGES` 設定為 `true`,允使用 Data URI 格式的片。
进行配置更改后,请重新启动 Gitea 以使更改生效。
進行設定更改後,請重新啟動 Gitea 以使更改生效。
## 自定义 CSS
## 自 CSS
`.ini` 文件中,可以使用 `[markup.XXXXX]` 的格式指定外部渲染器,且由外部渲染器生成的 HTML 被包在一个带`markup``XXXXX` `<div>` 中。`markup` 提供了预定义的样式(如果 `XXXXX``markdown`使用 `markdown` )。否,您可以使用这些类来针对渲染的 HTML 内容进行定制样式。
`.ini` 文件中,可以使用 `[markup.XXXXX]` 的格式指定外部渲染器,且由外部渲染器生成的 HTML 被包在一個帶`markup``XXXXX` `<div>` 中。`markup` 提供了預定義的樣式(如果 `XXXXX``markdown`使用 `markdown` )。否,您可以使用這些類來針對渲染的 HTML 內容進行定製樣式。
因此,您可以编写一些 CSS 式:
因此,您可以編寫一些 CSS 式:
```css
.markup.XXXXX html {
@@ -185,10 +185,10 @@ ALLOW_DATA_URI_IMAGES = true
}
```
您的式表添加到自定义目录中,例如 `custom/public/assets/css/my-style-XXXXX.css`使用自定义的头文件 `custom/templates/custom/header.tmpl` 进行导入:
您的式表添加到自訂目錄中,例如 `custom/public/assets/css/my-style-XXXXX.css`使用自訂的頭文件 `custom/templates/custom/header.tmpl` 進行導入:
```html
<link rel="stylesheet" href="{{AppSubUrl}}/assets/css/my-style-XXXXX.css" />
```
以上步,您可以将自定义的 CSS 样式应用到特定的外部渲染器,使其具有所需的式效果。
以上步,您可以將自訂的 CSS 樣式應用到特定的外部渲染器,使其具有所需的式效果。

View File

@@ -7,13 +7,13 @@ aliases:
- /zh-tw/fail2ban-setup
---
# 设置 Fail2ban
# 設定 Fail2ban
**Fail2ban 查客端登录日志,将多次登录失败的客户端识别为攻击者并在一段时间内阻止其访问服务。如果你的例是公的,这一点尤其重要。管理员仔细设置 fail2ban错误的配置将导致防火阻止你访问自己的服器。**
**Fail2ban 查客端登入日誌,將多次登入失敗的客戶端識別為攻擊者並在一段時間內阻止其訪問服務。如果你的例是公的,這一點尤其重要。管理員仔細設定 fail2ban錯誤的設定將導致防火阻止你訪問自己的服器。**
Gitea 在日文件 `log/gitea.log`记录登录失败的 CLI、SSH 或 HTTP 客端 IP 地址,而你需要 Gitea 的日志输出模式从默认`console` 更改 `file`表示将日志输出到文件,使得 fail2ban 可以定期描日志内容。
Gitea 在日文件 `log/gitea.log`記錄登入失敗的 CLI、SSH 或 HTTP 客端 IP 地址,而你需要 Gitea 的日誌輸出模式從預設`console` 更改 `file`表示將日誌輸出到文件,使得 fail2ban 可以定期描日誌內容。
当用户的身份验证失败时,日志中会记录此类信息
當使用者的身份驗證失敗時,日誌中會記錄此類資訊
```log
2018/04/26 18:15:54 [I] Failed authentication attempt for user from xxx.xxx.xxx.xxx
@@ -23,9 +23,9 @@ Gitea 会在日志文件 `log/gitea.log` 中记录登录失败的 CLI、SSH 或
2020/10/15 16:08:44 [E] invalid credentials from xxx.xxx.xxx.xxx
```
## 配置规则
## 設定規則
添加日志过滤器规则到配置文件 `/etc/fail2ban/filter.d/gitea.conf`:
添加日誌過濾器規則到設定文件 `/etc/fail2ban/filter.d/gitea.conf`:
```ini
[Definition]
@@ -33,7 +33,7 @@ failregex = .*(Failed authentication attempt|invalid credentials|Attempted acce
ignoreregex =
```
添加监狱规则到配置文件 `/etc/fail2ban/jail.d/gitea.conf`:
添加監獄規則到設定文件 `/etc/fail2ban/jail.d/gitea.conf`:
```ini
[gitea]
@@ -46,9 +46,9 @@ bantime = 900
action = iptables-allports
```
如果你的 Gitea 实例运行在 Docker 容器中,且直接容器端口暴露到外部网络
需要添加 `chain="FORWARD"`监狱规则配置文件 `/etc/fail2ban/jail.d/gitea-docker.conf`
适应 Docker 的网络转发规则。但如果你在容器的宿主上使用 Nginx 反向代理接到 Gitea 则无需这样配置
如果你的 Gitea 實例運行在 Docker 容器中,且直接容器端口暴露到外部網路
需要添加 `chain="FORWARD"`監獄規則設定文件 `/etc/fail2ban/jail.d/gitea-docker.conf`
適應 Docker 的網路轉發規則。但如果你在容器的宿主上使用 Nginx 反向代理接到 Gitea 則無需這樣設定
```ini
[gitea-docker]
@@ -61,26 +61,26 @@ bantime = 900
action = iptables-allports[chain="FORWARD"]
```
后,运`systemctl restart fail2ban` 即可用更改。在,你可以使用 `systemctl status fail2ban` 查 fail2ban 运行状态
後,運`systemctl restart fail2ban` 即可用更改。在,你可以使用 `systemctl status fail2ban` 查 fail2ban 運行狀態
上述规则规定客端在 1 小时内,如果登录失败的次数达到 10 次,则通过 iptables 锁定该客户端 IP 地址 15 分
上述規則規定客端在 1 小時內,如果登入失敗的次數達到 10 次,則通過 iptables 鎖定該客戶端 IP 地址 15 分
## 设置反向代理
## 設定反向代理
如果你使用 Nginx 反向代理到 Gitea 例,你需要设置 Nginx 的 HTTP 部值 `X-Real-IP` 将真实的客端 IP 地址传递给 Gitea。否 Gitea 程序会将客户端地址错误解析反向代理服器的地址,例如回环地址 `127.0.0.1`
如果你使用 Nginx 反向代理到 Gitea 例,你需要設定 Nginx 的 HTTP 部值 `X-Real-IP` 將真實的客端 IP 地址傳遞給 Gitea。否 Gitea 程式會將客戶端地址錯誤解析反向代理服器的地址,例如迴環地址 `127.0.0.1`
```
proxy_set_header X-Real-IP $remote_addr;
```
外注意,在 Gitea 的配置文件 `app.ini` 中存在下列默认值:
外注意,在 Gitea 的設定文件 `app.ini` 中存在下列預設值:
```
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = 127.0.0.0/8,::1/128
```
`REVERSE_PROXY_LIMIT` 限制反向代理服务器的层数,设置为 `0` 表示不使用这些标头
`REVERSE_PROXY_TRUSTED_PROXIES` 表示受信任的反向代理服务器网络地址,
经过该网络地址转发来的流量会经过解析 `X-Real-IP` 部得到真实客户端地址。
考 [configuration cheat sheet](../administration/config-cheat-sheet.md#安全性)
`REVERSE_PROXY_LIMIT` 限制反向代理伺服器的層數,設定為 `0` 表示不使用這些標頭
`REVERSE_PROXY_TRUSTED_PROXIES` 表示受信任的反向代理伺服器網路地址,
經過該網路地址轉發來的流量會經過解析 `X-Real-IP` 部得到真實客戶端地址。
考 [configuration cheat sheet](../administration/config-cheat-sheet.md)

View File

@@ -7,18 +7,18 @@ aliases:
- /zh-tw/git-lfs-setup
---
# Git LFS 设置
# Git LFS 設定
要使用 Gitea 置的 LFS 支,您需要更新 `app.ini` 文件:
要使用 Gitea 置的 LFS 支,您需要更新 `app.ini` 文件:
```ini
[server]
; 用 git-lfs 支持。true 或 false认为 false。
; 用 git-lfs 支持。true 或 false認為 false。
LFS_START_SERVER = true
[lfs]
; 存放 LFS 文件的路,默认为 data/lfs。
; 存放 LFS 文件的路,默認為 data/lfs。
PATH = /home/gitea/data/lfs
```
**注意**LFS 服器支需要服器上安 Git v2.1.2 以上版本。
**注意**LFS 服器支需要服器上安 Git v2.1.2 以上版本。

View File

@@ -5,16 +5,16 @@ sidebar_position: 12
---
# HTTPS配置
# HTTPS設定
## 使用内置服务
## 使用內置伺服
用HTTPS之前保您有有效的SSL/TLS证书
议在测试和评估情下使用自签名证书,请运`gitea cert --host [HOST]` 以生成自签名证书
用HTTPS之前保您有有效的SSL/TLS證書
議在測試和評估情下使用自簽名證書,請運`gitea cert --host [HOST]` 以生成自簽名證書
如果您在服器上使用阿帕奇Apache或Nginx议参考 [反向代理指南](reverse-proxies.md)。
如果您在服器上使用阿帕奇Apache或Nginx議參考 [反向代理指南](reverse-proxies.md)。
要使用Gitea置HTTPS支,您必须编辑`app.ini`文件。
要使用Gitea置HTTPS支,您必須編輯`app.ini`文件。
```ini
[server]
@@ -25,13 +25,13 @@ CERT_FILE = cert.pem
KEY_FILE = key.pem
```
注意,如果您的证书由第三方证书颁发机构签名(即不是自名的), cert.pem 包含证书链。服务器证书必须是 cert.pem 中的第一个条目,跟中介(如果有)。不必包含根证书,因为连接客端必须已经拥有根证书才能建立信任关系。要了解有关配置值的更多信息,请查看 [配置备忘单](../administration/config-cheat-sheet#server-server)。
注意,如果您的證書由第三方證書頒發機構簽名(即不是自名的), cert.pem 包含證書鏈。伺服器證書必須是 cert.pem 中的第一個條目,跟中介(如果有)。不必包含根證書,因為連接客端必須已經擁有根證書才能建立信任關係。要了解有關設定值的更多資訊,請查看 [設定備忘單](../administration/config-cheat-sheet.md)。
对于“CERT_FILE”或“KEY_FILE”字段,当文件路是相对路径时,文件路径相对于“GITEA_CUSTOM”环境变量。它也可以是绝对路径
對於“CERT_FILE”或“KEY_FILE”欄位,當文件路是相對路徑時,文件路徑相對於“GITEA_CUSTOM”環境變量。它也可以是絕對路徑
### 设置HTTP重定向
### 設定HTTP重定向
Gitea服务器仅支持监听一个端口要重定向HTTP求致HTTPS端口您需要用HTTP重定向服
Gitea伺服器僅支援監聽一個端口要重定向HTTP求致HTTPS端口您需要用HTTP重定向服
```ini
[server]
@@ -40,13 +40,13 @@ REDIRECT_OTHER_PORT = true
PORT_TO_REDIRECT = 3080
```
如果您使用Docker保端口已配置`docker-compose.yml` 文件
如果您使用Docker保端口已設定`docker-compose.yml` 文件
## 使用 ACME (默认: Let's Encrypt)
## 使用 ACME (預設: Let's Encrypt)
[ACME](https://tools.ietf.org/html/rfc8555) 是一种证书颁发机构标准协议,允您自动请求和续订 SSL/TLS 证书。[Let`s Encrypt](https://letsencrypt.org/) 是使用此标准的免费公开信任的证书颁发机构服务器。仅实施“HTTP-01”和“TLS-ALPN-01”挑战。为了使 ACME 质询通过并验证您的域所有“80”端口“HTTP-01”或“443”端口“TLS-ALPN-01”上 gitea 域的外部流量必由 gitea 例提供服。可能需要设置 [HTTP 重定向](#设置http重定向) 和端口转发才能正路由外部流量。否到端口“80”的正常流量将自动重定向到 HTTPS。**您必同意**ACME提供商的服务条款(默认为Let's Encrypt的 [务条](https://letsencrypt.org/documents/LE-SA-v1.2-2017年11月15日.pdf)。
[ACME](https://tools.ietf.org/html/rfc8555) 是一種證書頒發機構標準協議,允您自動請求和續訂 SSL/TLS 證書。[Let`s Encrypt](https://letsencrypt.org/) 是使用此標準的免費公開信任的證書頒發機構伺服器。僅實施“HTTP-01”和“TLS-ALPN-01”挑戰。為了使 ACME 質詢通過並驗證您的域所有“80”端口“HTTP-01”或“443”端口“TLS-ALPN-01”上 gitea 域的外部流量必由 gitea 例提供服。可能需要設定 [HTTP 重定向](#設定http重定向) 和端口轉發才能正路由外部流量。否到端口“80”的正常流量將自動重定向到 HTTPS。**您必同意**ACME提供商的服務條款(預設為Let's Encrypt的 [務條](https://letsencrypt.org/documents/LE-SA-v1.2-2017年11月15日.pdf)。
使用默认 Let's Encrypt 的最小配置如下:
使用預設 Let's Encrypt 的最小設定如下:
```ini
[server]
@@ -59,7 +59,7 @@ ACME_DIRECTORY=https
ACME_EMAIL=email@example.com
```
小型配置请使用 [smallstep CA](https://github.com/smallstep/certificates), 点击 [](https://smallstep.com/docs/tutorials/acme-challenge) 解更多信息
小型設定請使用 [smallstep CA](https://github.com/smallstep/certificates), 點擊 [](https://smallstep.com/docs/tutorials/acme-challenge) 解更多資訊
```ini
[server]
@@ -74,16 +74,16 @@ ACME_DIRECTORY=https
ACME_EMAIL=email@example.com
```
要了解关于配置, 请访问 [配置备忘单](../administration/config-cheat-sheet.md#server-server)取更多信息
要了解關於設定, 請前往 [設定備忘單](../administration/config-cheat-sheet.md)取更多資訊
## 使用反向代理服
## 使用反向代理服器
按照 [reverse proxy guide](reverse-proxies.md) 的规则设置你的反向代理服
按照 [reverse proxy guide](reverse-proxies.md) 的規則設定你的反向代理服器
,按照下面的向导启用 HTTPS
,按照下面的嚮導啟用 HTTPS
- [nginx](https://nginx.org/en/docs/http/configuring_https_servers.html)
- [apache2/httpd](https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html)
- [caddy](https://caddyserver.com/docs/tls)
注意:在代理层启用 HTTPS 被称为 [TLS 止代理](https://en.wikipedia.org/wiki/TLS_termination_proxy)。代理服器接受入的 TLS 接,解密容,然后将现在未加密的内容传递给 Gitea。只要代理和 Gitea 例在同一台计算机上或在私有网络中的不同计算机上(代理暴露外部网络通常是可以接受的。如果您的 Gitea 实例与代理隔在公共网络上,或者如果您想要全端到端的加密,您可以直接在 Gitea 中 [启用内置服务器的 HTTPS 支](#使用内置服务器),并将连接转发到 HTTPS 上。
注意:在代理層啟用 HTTPS 被稱為 [TLS 止代理](https://en.wikipedia.org/wiki/TLS_termination_proxy)。代理服器接受入的 TLS 接,解密容,然後將現在未加密的內容傳遞給 Gitea。只要代理和 Gitea 例在同一臺計算機上或在私有網路中的不同計算機上(代理暴露外部網路通常是可以接受的。如果您的 Gitea 實例與代理隔在公共網路上,或者如果您想要全端到端的加密,您可以直接在 Gitea 中 [啟用內置伺服器的 HTTPS 支](#使用內置伺服器),並將連接轉發到 HTTPS 上。

View File

@@ -6,44 +6,44 @@ aliases:
- /zh-tw/logging-configuration
---
# 日志配置
# 日誌設定
Gitea 的日志配置主要由以下三种类型的组件组成:
Gitea 的日誌設定主要由以下三種類型的元件組成:
- `[log]` 部分用一般配置
- `[log.<mode-name>]` 部分用于配置不同的日志输出方式,也称为 "writer mode",模式名称同时也作 "writer name"
- `[log]` 部分可以包含遵循 `logger.<logger-name>.<CONFIG-KEY>` 模式的子日志记录器的配置
- `[log]` 部分用一般設定
- `[log.<mode-name>]` 部分用於設定不同的日誌輸出方式,也稱為 "writer mode",模式名稱同時也作 "writer name"
- `[log]` 部分可以包含遵循 `logger.<logger-name>.<CONFIG-KEY>` 模式的子日誌記錄器的設定
默认情况下,已有一完全功能的日志输出,因此不需要重新定
預設情況下,已有一完全功能的日誌輸出,因此不需要重新定
## 收集日志以获取帮
## 收集日誌以獲取幫
要收集日志以获取帮助和报告问题,请参阅 [需要](help/support.md)。
要收集日誌以獲取幫助和報告問題,請參閱 [需要](help/support.md)。
## `[log]` 部分
在 Gitea 中,日志设施的配置`[log]` 部分及其子部分。
在 Gitea 中,日誌設施的設定`[log]` 部分及其子部分。
顶层`[log]` 部分,可以放置以下配置项
頂層`[log]` 部分,可以放置以下設定項
- `ROOT_PATH`默认值:**%(GITEA_WORK_DIR)/log**):日文件的基本路
- `MODE`默认值:**console**):要用于默认日志记录器的日志输出列表。
- `LEVEL`默认值:**Info**):要持久化的最重的日事件,不分大小。可能的值`Trace``Debug``Info``Warn``Error``Fatal`
- `STACKTRACE_LEVEL`默认值:**None**对于此类及更重的事件,将在记录时打印堆栈跟踪
- `ROOT_PATH`預設值:**%(GITEA_WORK_DIR)/log**):日文件的基本路
- `MODE`預設值:**console**):要用於預設日誌記錄器的日誌輸出列表。
- `LEVEL`預設值:**Info**):要持久化的最重的日事件,不分大小。可能的值`Trace``Debug``Info``Warn``Error``Fatal`
- `STACKTRACE_LEVEL`預設值:**None**對於此類及更重的事件,將在記錄時打印堆棧跟蹤
可以包含以下子日志记录器:
可以包含以下子日誌記錄器:
- `logger.router.MODE`默认值:**,**):用路由器日志记录器的日志输出列表。
- `logger.access.MODE`默认值:**_empty_**):用于访问日志记录器的日志输出列表。默认情况下,访问日志记录器被禁用。
- `logger.xorm.MODE`默认值:**,**):用 XORM 日志记录器的日志输出列表。
- `logger.router.MODE`預設值:**,**):用路由器日誌記錄器的日誌輸出列表。
- `logger.access.MODE`預設值:**_empty_**):用於訪問日誌記錄器的日誌輸出列表。預設情況下,訪問日誌記錄器被禁用。
- `logger.xorm.MODE`預設值:**,**):用 XORM 日誌記錄器的日誌輸出列表。
子日志记录器的模式设置为逗号`,`)表示使用默认的全 `MODE`
子日誌記錄器的模式設定為逗號`,`)表示使用預設的全 `MODE`
## 快速
## 快速
### 默认(空)配置
### 預設(空)設定
配置等同于默认配置
設定等同於預設設定
```ini
[log]
@@ -55,7 +55,7 @@ logger.router.MODE = ,
logger.xorm.MODE = ,
logger.access.MODE =
; 是“控制”模式的配置选项(由上面的 MODE=console 使用)
; 是“控制”模式的配置選項(由上面的 MODE=console 使用)
[log.console]
MODE = console
FLAGS = stdflags
@@ -63,13 +63,13 @@ PREFIX =
COLORIZE = true
```
等同于将所有日志发送到控制台,并将默认的 Golang 日志也发送到控制台日志中。
等同於將所有日誌發送到控制檯,並將預設的 Golang 日誌也發送到控制檯日誌中。
只是一个示例,默认情况下不需要将其写入配置文件中。
只是一個範例,預設情況下不需要將其寫入設定文件中。
### 禁用路由日志并将一些访问日志记录到文件中
### 禁用路由日誌並將一些訪問日誌記錄到文件中
禁用路由日志,将访问日志>=Warn记录`access.log` 中:
禁用路由日誌,將訪問日誌>=Warn記錄`access.log` 中:
```ini
[log]
@@ -82,16 +82,16 @@ LEVEL = Warn
FILE_NAME = access.log
```
### 不同的模式设置不同的日志级别
### 不同的模式設定不同的日誌級別
将默认日志>=Warn记录`gitea.log` 中,将错误日志记录`file-error.log` 中:
將預設日誌>=Warn記錄`gitea.log` 中,將錯誤日誌記錄`file-error.log` 中:
```ini
[log]
LEVEL = Warn
MODE = file, file-error
; 默认情况下,"file" 模式会将日志记录到 %(log.ROOT_PATH)/gitea.log因此我不需要置它
; 默認情況下,"file" 模式會將日誌記錄到 %(log.ROOT_PATH)/gitea.log因此我不需要置它
; [log.file]
[log.file-error]
@@ -99,165 +99,165 @@ LEVEL = Error
FILE_NAME = file-error.log
```
## 日志输出(模式和入器)
## 日誌輸出(模式和入器)
Gitea 提供以下日志写入器:
Gitea 提供以下日誌寫入器:
- `console` - 出日`stdout`(或 `stderr`,如果已在配置中设置
- `file` - 出日到文件
- `conn` - 出日到套接字(网络或 Unix 套接字)
- `console` - 出日`stdout`(或 `stderr`,如果已在設定中設定
- `file` - 出日到文件
- `conn` - 出日到套接字(網路或 Unix 套接字)
### 公共配置
### 公共設定
某些配置适用于所有日志输出模式:
某些設定適用於所有日誌輸出模式:
- `MODE` 是日志输出写入器的模式。它将默认为 ini 部分的模式名。因此,`[log.console]` 将默认为 `MODE = console`
- `LEVEL` 是此输出将记录的最低日志级别
- `STACKTRACE_LEVEL` 是此输出将打印堆栈跟踪的最低日志级别
- `COLORIZE` 对于 `console`默认为 `true`,否则默认为 `false`
- `MODE` 是日誌輸出寫入器的模式。它將預設為 ini 部分的模式名。因此,`[log.console]` 將預設為 `MODE = console`
- `LEVEL` 是此輸出將記錄的最低日誌級別
- `STACKTRACE_LEVEL` 是此輸出將打印堆棧跟蹤的最低日誌級別
- `COLORIZE` 對於 `console`預設為 `true`,否則預設為 `false`
#### `EXPRESSION`
`EXPRESSION` 表示日事件必匹配才能被输出写入器记录的正则表达式。
消息(去除色)或 `longfilename:linenumber:functionname`匹配其中之一。
注意:整消息或字符串不需要完全匹配。
`EXPRESSION` 表示日事件必匹配才能被輸出寫入器記錄的正則表達式。
消息(去除色)或 `longfilename:linenumber:functionname`匹配其中之一。
注意:整消息或字符串不需要完全匹配。
注意,此表达式将在写入器的 goroutine 中行,而不是在日事件的 goroutine 中行。
注意,此表達式將在寫入器的 goroutine 中行,而不是在日事件的 goroutine 中行。
#### `FLAGS`
`FLAGS` 表示在每消息之前打印的前置日上下文信息
它是一个逗号分隔的字符串集。值的顺序无关紧要。
`FLAGS` 表示在每消息之前打印的前置日上下文資訊
它是一個逗號分隔的字符串集。值的順序無關緊要。
默认值为 `stdflags`= `date,time,medfile,shortfuncname,levelinitial`)。
預設值為 `stdflags`= `date,time,medfile,shortfuncname,levelinitial`)。
可能的值
可能的值
- `none``,` - 无标志
- `date` - 当地时区的日期:`2009/01/23`
- `time` - 当地时区的时间`01:23:23`
- `microseconds` - 微秒精度:`01:23:23.123123`。假定有时间
- `longfile` - 完整的文件名和行`/a/b/c/d.go:23`
- `shortfile` - 文件名的最后一个部分和行`d.go:23`
- `funcname` - 用者的函名:`runtime.Caller()`
- `shortfuncname` - 函名的最一部分。覆 `funcname`
- `utc` - 如果设置了日期或时间,则使用 UTC 而不是本地时区
- `levelinitial` - 提供的级别的初始字符,放在方括号内,例如 `[I]` 表示 info。
- `level` - 在方括号内的级别,例如 `[INFO]`
- `none``,` - 無標誌
- `date` - 當地時區的日期:`2009/01/23`
- `time` - 當地時區的時間`01:23:23`
- `microseconds` - 微秒精度:`01:23:23.123123`。假定有時間
- `longfile` - 完整的文件名和行`/a/b/c/d.go:23`
- `shortfile` - 文件名的最後一個部分和行`d.go:23`
- `funcname` - 調用者的函名:`runtime.Caller()`
- `shortfuncname` - 函名的最一部分。覆 `funcname`
- `utc` - 如果設定了日期或時間,則使用 UTC 而不是本地時區
- `levelinitial` - 提供的級別的初始字符,放在方括號內,例如 `[I]` 表示 info。
- `level` - 在方括號內的級別,例如 `[INFO]`
- `gopid` - 上下文的 Goroutine-PID。
- `medfile` - 文件名的最 20 字符 - 相当于 `shortfile,longfile`
- `stdflags` - 相当于 `date,time,medfile,shortfuncname,levelinitial`
- `medfile` - 文件名的最 20 字符 - 相當於 `shortfile,longfile`
- `stdflags` - 相當於 `date,time,medfile,shortfuncname,levelinitial`
### Console 模式
在此模式下,日志记录器将将日志消息转发到 Gitea 程附加的 stdout 和 stderr 流。
在此模式下,日誌記錄器將將日誌消息轉發到 Gitea 程附加的 stdout 和 stderr 流。
对于 console 模式的日志记录器,如果不在 Windows 上,或者 Windows 端可以设置为 ANSI 模式,或者是 cygwin 或 Msys 管道, `COLORIZE` 默认为 `true`
對於 console 模式的日誌記錄器,如果不在 Windows 上,或者 Windows 端可以設定為 ANSI 模式,或者是 cygwin 或 Msys 管道, `COLORIZE` 預設為 `true`
设置
設定
- `STDERR`**false**:日志记录器是否应将日志打印到 `stderr` 而不是 `stdout`
- `STDERR`**false**:日誌記錄器是否應將日誌打印到 `stderr` 而不是 `stdout`
### File 模式
在此模式下,日志记录器将将日志消息保存到文件中。
在此模式下,日誌記錄器將將日誌消息保存到文件中。
设置
設定
- `FILE_NAME`:要将日志事件入的文件,相对于 `ROOT_PATH`默认为 `%(ROOT_PATH)/gitea.log`常情况:访问日志默认为 `%(ROOT_PATH)/access.log`
- `MAX_SIZE_SHIFT`**28**单个文件的最大大小位移。28 表示 256Mb。详细信息见下文。
- `LOG_ROTATE` **true**:是否轮转日志文件。
- `DAILY_ROTATE`**true**:是否每天旋转日志
- `MAX_DAYS`**7**:在此天数之后删除旋的日文件。
- `COMPRESS`**true**默认情况下是否使用 gzip 压缩旧的日文件。
- `COMPRESSION_LEVEL`**-1**压缩级别。详细信息见下文。
- `FILE_NAME`:要將日誌事件入的文件,相對於 `ROOT_PATH`預設為 `%(ROOT_PATH)/gitea.log`常情況:訪問日誌預設為 `%(ROOT_PATH)/access.log`
- `MAX_SIZE_SHIFT`**28**單個文件的最大大小位移。28 表示 256Mb。詳細資訊見下文。
- `LOG_ROTATE` **true**:是否輪轉日誌文件。
- `DAILY_ROTATE`**true**:是否每天旋轉日誌
- `MAX_DAYS`**7**:在此天數之後刪除旋的日文件。
- `COMPRESS`**true**預設情況下是否使用 gzip 壓縮舊的日文件。
- `COMPRESSION_LEVEL`**-1**壓縮級別。詳細資訊見下文。
`MAX_SIZE_SHIFT`过将给定次左移 1 (`1 << x`) 来定义文件的最大大小。
在 v1.17.3 版本时的确切行可以在[这里](https://github.com/go-gitea/gitea/blob/v1.17.3/modules/setting/log.go#L185)中查看。
`MAX_SIZE_SHIFT`過將給定次左移 1 (`1 << x`) 來定義文件的最大大小。
在 v1.17.3 版本時的確切行可以在[這裡](https://github.com/go-gitea/gitea/blob/v1.17.3/modules/setting/log.go#L185)中查看。
`COMPRESSION_LEVEL` 的有用值范围从 1 到包括9其中高的字表示更好的压缩
注意,更好的压缩可能会带来更高的源使用。
在前面加上 `-`
`COMPRESSION_LEVEL` 的有用值範圍從 1 到包括9其中高的字表示更好的壓縮
注意,更好的壓縮可能會帶來更高的源使用。
在前面加上 `-`
### Conn 模式
在此模式下,日志记录器将通过网络套接字送日消息。
在此模式下,日誌記錄器將通過網路套接字送日消息。
设置
設定
- `ADDR`**:7020**设置要连接的地址。
- `PROTOCOL`**tcp**设置协议,可以是 "tcp"、"unix" 或 "udp"。
- `RECONNECT`**false**:在连接丢失时尝试重新接。
- `RECONNECT_ON_MSG`**false**为每条消息重新接主
- `ADDR`**:7020**設定要連接的地址。
- `PROTOCOL`**tcp**設定協議,可以是 "tcp"、"unix" 或 "udp"。
- `RECONNECT`**false**:在連接丟失時嘗試重新接。
- `RECONNECT_ON_MSG`**false**為每條消息重新接主
### "Router" 日志记录
### "Router" 日誌記錄
Gitea 的路由理程工作Router 日志记录器记录以下消息型:
Gitea 的路由理程工作Router 日誌記錄器記錄以下消息型:
- `started` 消息以 TRACE 级别记录
- `polling`/`completed` 路由以 INFO 级别记录。异常情"/assets" 静态资源请求也以 TRACE 级别记录
- `slow` 路由以 WARN 级别记录
- `failed` 路由以 WARN 级别记录
- `started` 消息以 TRACE 級別記錄
- `polling`/`completed` 路由以 INFO 級別記錄。異常情"/assets" 靜態資源請求也以 TRACE 級別記錄
- `slow` 路由以 WARN 級別記錄
- `failed` 路由以 WARN 級別記錄
### "XORM" 日志记录
### "XORM" 日誌記錄
了使 XORM 出 SQL 日志,还应将 `[database]` 部分中的 `LOG_SQL` 设置为 `true`
了使 XORM 出 SQL 日誌,還應將 `[database]` 部分中的 `LOG_SQL` 設定為 `true`
### "Access" 日志记录
### "Access" 日誌記錄
"Access" 日志记录器是自 Gitea 1.9 版本以的新日志记录器。它提供了符合 NCSA Common Log 标准的日格式。然它具有高度可配置性,但在更改其模板时应谨慎。此日志记录器的主要好Gitea 在可以使用标准日志格式记录访问日志,因此可以使用标准工具行分析。
"Access" 日誌記錄器是自 Gitea 1.9 版本以的新日誌記錄器。它提供了符合 NCSA Common Log 標準的日格式。然它具有高度可設定性,但在更改其模板時應謹慎。此日誌記錄器的主要好Gitea 在可以使用標準日誌格式記錄訪問日誌,因此可以使用標準工具行分析。
您可以通过使用 `logger.access.MODE = ...` 来启用此日志记录器。
您可以透過使用 `logger.access.MODE = ...` 來啟用此日誌記錄器。
如果需要,可以通过更改 `ACCESS_LOG_TEMPLATE` 的值更改 "Access" 日志记录器的格式。
如果需要,可以透過更改 `ACCESS_LOG_TEMPLATE` 的值更改 "Access" 日誌記錄器的格式。
注意,访问日志记录器将`INFO` 级别记录,将此日志记录器的 `LEVEL` 设置为 `WARN` 或更高级别将导致不记录访问日志
注意,訪問日誌記錄器將`INFO` 級別記錄,將此日誌記錄器的 `LEVEL` 設定為 `WARN` 或更高級別將導致不記錄訪問日誌
#### ACCESS_LOG_TEMPLATE
此值表示一 Go 模板。其默认值为
此值表示一 Go 模板。其預設值為
```tmpl
{{.Ctx.RemoteHost}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.URL.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}" "{{.Ctx.Req.UserAgent}}"`
```
模板接收以下选项
模板接收以下選項
- `Ctx``context.Context`
- `Identity``SignedUserName`,如果用户未登录,则为 "-"
- `Start`求的开始时间
- `Identity``SignedUserName`,如果使用者未登入,則為 "-"
- `Start`求的開始時間
- `ResponseWriter``http.ResponseWriter`
更改此模板时必须小心,因它在标准的 panic 恢陷阱之外行。此模板应该尽可能简单,因为它会为每个请求运行一次。
更改此模板時必須小心,因它在標準的 panic 恢陷阱之外行。此模板應該儘可能簡單,因為它會為每個請求運行一次。
## 放和重新打开、暂停和恢复日志记录
## 放和重新打開、暫停和恢復日誌記錄
如果您在 Unix 上行,您可能希望放和重新打开日志以使用 `logrotate` 或其他工具。
可以通过向运行中的进程发`SIGUSR1`号或运`gitea manager logging release-and-reopen` 命令来强制 Gitea 释放并重新打其日文件和接。
如果您在 Unix 上行,您可能希望放和重新打開日誌以使用 `logrotate` 或其他工具。
可以透過向運行中的進程發`SIGUSR1`號或運`gitea manager logging release-and-reopen` 命令來強制 Gitea 釋放並重新打其日文件和接。
或者,您可能希望停和恢复日志记录 - 可以通过使用 `gitea manager logging pause``gitea manager logging resume` 命令来实现。请注意,日志记录暂停时,低 INFO 级别的日事件将不会存储,并且只会存储有限量的事件。在暂停时,日志记录可能阻塞,管是暂时性的,但大大慢 Gitea 的行速度,因此建议仅暂停很短的时间
或者,您可能希望停和恢復日誌記錄 - 可以透過使用 `gitea manager logging pause``gitea manager logging resume` 命令來實現。請注意,日志記錄暫停時,低 INFO 級別的日事件將不會儲存,並且只會儲存有限量的事件。在暫停時,日誌記錄可能阻塞,管是暫時性的,但大大慢 Gitea 的行速度,因此建議僅暫停很短的時間
### 在 Gitea 运行时添加和除日志记录
### 在 Gitea 運行時添加和除日誌記錄
可以使用 `gitea manager logging add``remove` 子命令在 Gitea 运行时添加和除日志记录
此功能只能整正在行的日志系统,不能用于启动未初始化的访问或路由日志记录器。如果您希望启动这些系,建议调整 app.ini 并(优雅地)重新启动 Gitea 服
可以使用 `gitea manager logging add``remove` 子命令在 Gitea 運行時添加和除日誌記錄
此功能只能調整正在行的日誌系統,不能用於啟動未初始化的訪問或路由日誌記錄器。如果您希望啟動這些系,建議調整 app.ini 並(優雅地)重新啟動 Gitea 服
些命令的主要目的是在行中的系统上轻松添加临时日志记录器,以便调查问题,因重新启动可能会导致问题消失。
些命令的主要目的是在行中的系統上輕鬆添加臨時日誌記錄器,以便調查問題,因重新啟動可能會導致問題消失。
## 使用 `logrotate` 而不是置的日志轮转
## 使用 `logrotate` 而不是置的日誌輪轉
Gitea 包含置的日志轮转功能,对于大多部署来说应该已经足够了。但是,如果您想使用 `logrotate` 工具:
Gitea 包含置的日誌輪轉功能,對於大多部署來說應該已經足夠了。但是,如果您想使用 `logrotate` 工具:
-`app.ini` `LOG_ROTATE` 设置为 `false`,禁用置的日志轮转
- `logrotate`
-部署要求配置 `logrotate`,有关配置语法细节,请参阅 `man 8 logrotate`
`postrotate/endscript` 中通 `kill -USR1``kill -10``gitea` 程本身`USR1`
或者`gitea manager logging release-and-reopen`(使用适当的环境设置)。
确保配置适用于由 Gitea 日志记录器生成的所有文件,如上述部分所述。
-使用 `logrotate /etc/logrotate.conf --debug` 来测试您的配置
- 如果您正在使用 Docker 并从容器外部行,您可以使用
-`app.ini` `LOG_ROTATE` 設定為 `false`,禁用置的日誌輪轉
- `logrotate`
-部署要求設定 `logrotate`,有關設定語法細節,請參閱 `man 8 logrotate`
`postrotate/endscript` 中通 `kill -USR1``kill -10``gitea` 程本身`USR1`
或者`gitea manager logging release-and-reopen`(使用適當的環境設定)。
確保設定適用於由 Gitea 日誌記錄器生成的所有文件,如上述部分所述。
-使用 `logrotate /etc/logrotate.conf --debug` 來測試您的設定
- 如果您正在使用 Docker 並從容器外部行,您可以使用
`docker exec -u $OS_USER $CONTAINER_NAME sh -c 'gitea manager logging release-and-reopen'`
`docker exec $CONTAINER_NAME sh -c '/bin/s6-svc -1 /etc/s6/gitea/'`,或直接向 Gitea 程本身`USR1`
`docker exec $CONTAINER_NAME sh -c '/bin/s6-svc -1 /etc/s6/gitea/'`,或直接向 Gitea 程本身`USR1`
下一 `logrotate`业将包括您的配置,因此不需要重新启动
可以立即使用 `logrotate /etc/logrotate.conf --force` 重新加 `logrotate`
下一 `logrotate`業將包括您的設定,因此不需要重新啟動
可以立即使用 `logrotate /etc/logrotate.conf --force` 重新加 `logrotate`

View File

@@ -6,110 +6,110 @@ aliases:
- /zh-tw/mail-templates
---
# 件模板
# 件模板
了定特定操作的电子邮件主题和内容,可以使用模板来自定义 Gitea。些功能的模板位 [`custom` 目](../administration/customizing-gitea.md) 下。
如果有自定义的替代方案Gitea 使用部模板作为默认模板。
了定特定操作的電子郵件主題和內容,可以使用模板來自訂 Gitea。些功能的模板位 [`custom` 目](../administration/customizing-gitea.md) 下。
如果有自的替代方案Gitea 使用部模板作為預設模板。
定义模板在 Gitea 启动时加载。对它们的更改在 Gitea 重新启动之前不会被识别
模板在 Gitea 啟動時加載。對它們的更改在 Gitea 重新啟動之前不會被識別
## 支模板的件通知
## 支模板的件通知
目前,以下通知事件使用模板:
| 操作名 | 用途 |
| 操作名 | 用途 |
| ---------- | ---------------------------------------------------------------------- |
| `new` | 建了新的工或合并请求。 |
| `comment` | 在有工或合并请求中创建了新的评论。 |
| `close` | 关闭了工或合并请求。 |
| `reopen` | 重新打了工或合并请求。 |
| `review` | 在合并请求中进行审查的首要评论。 |
| `approve` | 对合并请求进行批准的首要评论。 |
| `reject` | 对合并请求提出更改求的查的首要评论。 |
| `code` | 关于合并请求的代码的单个评论。 |
| `assigned` | 用户被分配到工或合并请求。 |
| `default` | 未包括在上述类别中的任何操作,或者当对应类别的模板不存在使用的模板。 |
| `new` | 建了新的工或合併請求。 |
| `comment` | 在有工或合併請求中建立了新的評論。 |
| `close` | 關閉了工或合併請求。 |
| `reopen` | 重新打了工或合併請求。 |
| `review` | 在合併請求中進行審查的首要評論。 |
| `approve` | 對合併請求進行批准的首要評論。 |
| `reject` | 對合併請求提出更改求的查的首要評論。 |
| `code` | 關於合併請求的程式碼的單個評論。 |
| `assigned` | 使用者被分配到工或合併請求。 |
| `default` | 未包括在上述類別中的任何操作,或者當對應類別的模板不存在使用的模板。 |
特定消息型的模板路径为
特定消息型的模板路徑為
```sh
custom/templates/mail/{操作}/{操作名}.tmpl
custom/templates/mail/{操作}/{操作名}.tmpl
```
其中 `{操作型}``issue``pull`针对合并请求),`{操作名}` 是上述列出的操作名之一。
其中 `{操作型}``issue``pull`針對合併請求),`{操作名}` 是上述列出的操作名之一。
例如,有关合并请求中的评论的电子邮件的特定模板是:
例如,有關合併請求中的評論的電子郵件的特定模板是:
```sh
custom/templates/mail/pull/comment.tmpl
```
然而,不需要为每个操作型/名称组合创建模板。
使用回退系统来选择适当的模板。在此列表中,使用 _第一存在的_ 模板:
然而,不需要為每個操作型/名稱組合建立模板。
使用回退系統來選擇適當的模板。在此列表中,使用 _第一存在的_ 模板:
- 所需**操作型**和**操作名**的特定模板。
- 操作类型为 `issue` 和所需**操作名**的模板。
- 所需**操作型**和操作名称为 `default` 的模板。
- 操作类型为` issue` 和操作名称为 `default` 的模板。
- 所需**操作型**和**操作名**的特定模板。
- 操作類型為 `issue` 和所需**操作名**的模板。
- 所需**操作型**和操作名稱為 `default` 的模板。
- 操作類型為` issue` 和操作名稱為 `default` 的模板。
唯一必需的模板是操作类型为 `issue` 操作名称为 `default` 的模板,除非用户`custom`中覆了它。
唯一必需的模板是操作類型為 `issue` 操作名稱為 `default` 的模板,除非使用者`custom`中覆了它。
## 模板
## 模板
件模板是 UTF-8 编码的文本文件,需要遵循以下格式之一:
件模板是 UTF-8 編碼的文本文件,需要遵循以下格式之一:
```
于主题行的文本和宏
於主題行的文本和宏
------------
于邮件正文的文本和宏
於郵件正文的文本和宏
```
或者
```
于邮件正文的文本和宏
於郵件正文的文本和宏
```
指定 __ 部分是可的(因此也是虚线分隔符)。在使用_主_ 和 _件正文_ 模板之的分隔符需要至少三个虚线;分隔符行中不允使用其他字符。
指定 __ 部分是可的(因此也是虛線分隔符)。在使用_主_ 和 _件正文_ 模板之的分隔符需要至少三個虛線;分隔符行中不允使用其他字符。
___件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,提供了为每个通知组装_数据上下文_。上下文包含以下元素:
___件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,提供了為每個通知組裝_資料上下文_。上下文包含以下元素:
| 名 | 型 | 可用性 | 用途 |
| 名 | 型 | 可用性 | 用途 |
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 在正文中可用 | 解析__。 |
| `.Body` | string | 始可用 | 工、合并请求或评论的消息, Markdown 解析 HTML 并进行了清理。请勿与 _件正文_ 混淆。 |
| `.Link` | string | 始可用 | 源工、合并请求或评论的地址。 |
| `.Issue` | models.Issue | 始可用 | 生通知的工(或合并请求)。要取特定于合并请求的数据(例如 `HasMerged`),可以使用 `.Issue.PullRequest`,但需要注意,如果工 _不是_并请求,则该字段将为 `nil`。 |
| `.Comment` | models.Comment | 如果用 | 如果通知是针对添加到工或合并请求的评论,则其中包含有关评论的信息。 |
| `.IsPull` | bool | 始可用 | 如果件通知与合并请求关联(即 `.Issue.PullRequest` `nil` 则为 `true`。 |
| `.Repo` | string | 始可用 | 仓库的名,包括所有者名(例如 `mike/stuff` |
| `.User` | models.User | 始可用 | 事件来源仓库的所有者。要获取用户名(例如 `mike`),可以使用 `.User.Name`。 |
| `.Doer` | models.User | 始可用 | 执行触发通知事件的操作的用户。要获取用户名(例如 `rhonda`),可以使用 `.Doer.Name`。 |
| `.IsMention` | bool | 始可用 | 如果此通知是因为在评论中提到了用户而生成的,且收件人未订阅源,则为 `true`。如果收件人已订阅工单或仓库,则为 `false`。 |
| `.SubjectPrefix` | string | 始可用 | 如果通知是关于除工或合并请求创建之外的其他容,则为 `Re`;否则为空字符串。 |
| `.ActionType` | string | 始可用 | `"issue"``"pull"`。它将与实际_操作_ 对应,与选择的模板无关。 |
| `.ActionName` | string | 始可用 | 它是上述操作型之一(`new` `comment` 等),并与选择的模板对应。 |
| `.ReviewComments` | []models.Comment | 始可用 | 查中的代码评论列表。评论文本`.RenderedContent` 中,引用的代码将`.Patch` 中。 |
| `.FallbackSubject` | string | 始可用 | 預設主題行。參見下文。 |
| `.Subject` | string | 在正文中可用 | 解析__。 |
| `.Body` | string | 始可用 | 工、合併請求或評論的消息, Markdown 解析 HTML 並進行了清理。請勿與 _件正文_ 混淆。 |
| `.Link` | string | 始可用 | 源工、合併請求或評論的地址。 |
| `.Issue` | models.Issue | 始可用 | 生通知的工(或合併請求)。要取特定於合併請求的資料(例如 `HasMerged`),可以使用 `.Issue.PullRequest`,但需要注意,如果工 _不是_併請求,則該欄位將為 `nil`。 |
| `.Comment` | models.Comment | 如果用 | 如果通知是針對添加到工或合併請求的評論,則其中包含有關評論的資訊。 |
| `.IsPull` | bool | 始可用 | 如果件通知與合併請求關聯(即 `.Issue.PullRequest` `nil` 則為 `true`。 |
| `.Repo` | string | 始可用 | 儲存庫的名,包括所有者名(例如 `mike/stuff` |
| `.User` | models.User | 始可用 | 事件來源儲存庫的所有者。要獲取使用者名稱(例如 `mike`),可以使用 `.User.Name`。 |
| `.Doer` | models.User | 始可用 | 執行觸發通知事件的操作的使用者。要獲取使用者名稱(例如 `rhonda`),可以使用 `.Doer.Name`。 |
| `.IsMention` | bool | 始可用 | 如果此通知是因為在評論中提到了使用者而生成的,且收件人未訂閱源,則為 `true`。如果收件人已訂閱工單或儲存庫,則為 `false`。 |
| `.SubjectPrefix` | string | 始可用 | 如果通知是關於除工或合併請求建立之外的其他容,則為 `Re`;否則為空字符串。 |
| `.ActionType` | string | 始可用 | `"issue"``"pull"`。它將與實際_操作_ 對應,與選擇的模板無關。 |
| `.ActionName` | string | 始可用 | 它是上述操作型之一(`new` `comment` 等),並與選擇的模板對應。 |
| `.ReviewComments` | []models.Comment | 始可用 | 查中的程式碼評論列表。評論文本`.RenderedContent` 中,引用的程式碼將`.Patch` 中。 |
所有名称区分大小
所有名稱區分大小
### 模板中的主部分
### 模板中的主部分
于邮件主的模板引擎是 Golang 的 [`text/template`](https://go.dev/pkg/text/template/)。
关语法的详细信息,请参阅链接的文
於郵件主的模板引擎是 Golang 的 [`text/template`](https://go.dev/pkg/text/template/)。
關語法的詳細資訊,請參閱鏈接的文
题构建的步如下:
題構建的步如下:
-通知型和可用的模板选择一个模板。
- 解析解析模板(例如, `{{.Issue.Index}}` 转换为工单或合并请求的编号)。
- 所有空格字符(例如 `TAB``LF` 等)转换为普通空格。
- 除所有前、尾和多的空格。
- 字符串截断为前 256 字母(字符)。
-通知型和可用的模板選擇一個模板。
- 解析解析模板(例如, `{{.Issue.Index}}` 轉換為工單或合併請求的編號)。
- 所有空格字符(例如 `TAB``LF` 等)轉換為普通空格。
- 除所有前、尾和多的空格。
- 字符串截斷為前 256 字母(字符)。
如果最终结果为空字符串,**或者**有可用的主模板(即所模板不包含主部分),使用 Gitea 的**内部默认值**。
如果最終結果為空字符串,**或者**有可用的主模板(即所模板不包含主部分),使用 Gitea 的**內部預設值**。
内部默认(回退)主题相当于
內部預設(回退)主題相當於
```
{{.SubjectPrefix}}[{{.Repo}}] {{.Issue.Title}} (#{{.Issue.Index}})
@@ -117,51 +117,51 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
例如:`Re: [mike/stuff] New color palette (#38)`
即使存在有效的主模板Gitea 的默认主题也可以在模板的元数据中作 `.FallbackSubject` 找到。
即使存在有效的主模板Gitea 的預設主題也可以在模板的元資料中作 `.FallbackSubject` 找到。
### 模板中的件正文部分
### 模板中的件正文部分
于邮件正文的模板引擎是 Golang 的 [`html/template`](https://go.dev/pkg/html/template/)。
关语法的详细信息,请参阅链接的文
於郵件正文的模板引擎是 Golang 的 [`html/template`](https://go.dev/pkg/html/template/)。
關語法的詳細資訊,請參閱鏈接的文
件正文在件主题之后进行解析,因此有一个额外的 _数据_ 字段,即在考所有情况之后实际呈现的主
件正文在件主題之後進行解析,因此有一個額外的 _資料_ 欄位,即在考所有情況之後實際呈現的主
期望的果是 HTML包括结构元素,如`<html>``<body>`等)。可以通过 `<style>` `class``style` 属性进行样式设置。但是,`html/template` 会进行一些 [动转义](https://go.dev/pkg/html/template/#hdr-Contexts),需要考虑这一点
期望的果是 HTML包括結構元素,如`<html>``<body>`等)。可以透過 `<style>` `class``style` 屬性進行樣式設定。但是,`html/template` 會進行一些 [動轉義](https://go.dev/pkg/html/template/#hdr-Contexts),需要考慮這一點
不支附件(例如像或外部式表)。但是,也可以引用其他模板,例如以集中方式提供 `<style>` 元素的容。外部模板必放置在 `custom/mail` 下,并相对于该目录引用。例如,可以使用 `{{template styles/base}}` 包含 `custom/mail/styles/base.tmpl`
不支附件(例如像或外部式表)。但是,也可以引用其他模板,例如以集中方式提供 `<style>` 元素的容。外部模板必放置在 `custom/mail` 下,並相對於該目錄引用。例如,可以使用 `{{template styles/base}}` 包含 `custom/mail/styles/base.tmpl`
件以 `Content-Type: multipart/alternative` 送,因此正文以 HTML 和文本格式送。通过剥离 HTML 标记来获取文本版本。
件以 `Content-Type: multipart/alternative` 送,因此正文以 HTML 和文本格式送。通過剝離 HTML 標記來獲取文本版本。
## 故障排除
件的呈方式直接取决于邮件应用程的功能。许多邮件客端甚至不支 HTML因此示生成件中包含的文本版本。
件的呈方式直接取決於郵件應用程的功能。許多郵件客端甚至不支 HTML因此示生成件中包含的文本版本。
如果模板法呈现,则只有在发送邮件时才会注意到。
如果主模板失败,将使用默认主题,如果 _件正文_ 中成功呈了任何容,则将使用该内容,忽略其他容。
如果模板法呈現,則只有在發送郵件時纔會注意到。
如果主模板失敗,將使用預設主題,如果 _件正文_ 中成功呈了任何容,則將使用該內容,忽略其他容。
如果遇到问题,请检查 [Gitea 的日](../administration/logging-config.md) 以获取错误消息。
如果遇到問題,請檢查 [Gitea 的日](../administration/logging-config.md) 以獲取錯誤消息。
##
##
`custom/templates/mail/issue/default.tmpl`:
```html
[{{.Repo}}] @{{.Doer.Name}}
{{if eq .ActionName "new"}}
建了
建了
{{else if eq .ActionName "comment"}}
评论
評論
{{else if eq .ActionName "close"}}
关闭
關閉
{{else if eq .ActionName "reopen"}}
重新打
重新打
{{else}}
更新了
{{end}}
{{if eq .ActionType "issue"}}
{{else}}
并请
併請
{{end}}
#{{.Issue.Index}}: {{.Issue.Title}}
------------
@@ -175,7 +175,7 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
<body>
{{if .IsMention}}
<p>
您收到此件是因 @{{.Doer.Name}} 提到了您。
您收到此件是因 @{{.Doer.Name}} 提到了您。
</p>
{{end}}
<p>
@@ -185,18 +185,18 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
({{.Doer.FullName}})
{{end}}
{{if eq .ActionName "new"}}
建了
建了
{{else if eq .ActionName "close"}}
关闭
關閉
{{else if eq .ActionName "reopen"}}
重新打
重新打
{{else}}
更新了
{{end}}
<a href="{{.Link}}">{{.Repo}}#{{.Issue.Index}}</a>
</p>
{{if not (eq .Body "")}}
<h3>消息容:</h3>
<h3>消息容:</h3>
<hr>
{{.Body}}
{{end}}
@@ -209,17 +209,17 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
</html>
```
模板生成以下容:
模板生成以下容:
### 主
### 主
> [mike/stuff] @rhonda 在合并请求 #38 上行了评论New color palette
> [mike/stuff] @rhonda 在合併請求 #38 上行了評論New color palette
### 件正文
### 件正文
> [@rhonda](#)Rhonda Myers更新了 [mike/stuff#38](#)。
>
> #### 消息
> #### 消息
>
> \_**************\*\*\*\***************\_**************\*\*\*\***************
>
@@ -229,25 +229,25 @@ _主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text
>
> [在 Gitea 上查看](#)。
## 高用法
## 高用法
模板系包含一些函,可用于进一步理和格式化消息。以下是其中一些函的列表:
模板系包含一些函,可用於進一步理和格式化消息。以下是其中一些函的列表:
| 函名 | 参数 | 可用 | 用法 |
| 函名 | 參數 | 可用 | 用法 |
| ---------------- | ----------- | ---------- | ------------------------------------------------ |
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | `app.ini`设置,通常 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主名 |
| `EllipsisString` | string, int | 任何地方 | 字符串截断为指定度;根需要添加省略 |
| `SanitizeHTML` | string | 正文部分 | 通过删除其中的危 HTML 标签对文本行清理 |
| `SafeHTML` | string | 正文部分 | 将输入作 HTML 理;可用于输出原始的 HTML 容 |
| `AppName` | - | 任何地方 | `app.ini`設定,通常 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主名 |
| `EllipsisString` | string, int | 任何地方 | 字符串截斷為指定度;根需要添加省略 |
| `SanitizeHTML` | string | 正文部分 | 通過刪除其中的危 HTML 標籤對文本行清理 |
| `SafeHTML` | string | 正文部分 | 將輸入作 HTML 理;可用於輸出原始的 HTML 容 |
些都是 __,而不是元数据,因此必按以下方式使用:
些都是 __,而不是元資料,因此必按以下方式使用:
```html
这样使用: {{SanitizeHTML "Escape<my
>text"}} 或者这样使用: {{"Escape<my
>text" | SanitizeHTML}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
這樣使用: {{SanitizeHTML "Escape<my
>text"}} 或者這樣使用: {{"Escape<my
>text" | SanitizeHTML}} 或者這樣使用: {{AppUrl}} 但不要像這樣使用:
{{.AppUrl}}</my
></my
>

View File

@@ -6,11 +6,11 @@ aliases:
- /zh-tw/repo-indexer
---
# 仓库索引器
# 儲存庫索引器
## 设置仓库索引器
## 設定儲存庫索引器
在您的 [`app.ini`](../administration/config-cheat-sheet.md) 中用此功能Gitea 可以通过仓库的文件行搜索:
在您的 [`app.ini`](../administration/config-cheat-sheet.md) 中用此功能Gitea 可以透過儲存庫的文件行搜索:
```ini
[indexer]
@@ -22,29 +22,29 @@ REPO_INDEXER_INCLUDE =
REPO_INDEXER_EXCLUDE = resources/bin/**
```
请记住,索引容可能消耗大量系统资源,特是在首次建索引或全更新索引(例如升 Gitea 之)。
請記住,索引容可能消耗大量系統資源,特是在首次建索引或全更新索引(例如升 Gitea 之)。
### 按大小选择要索引的文件
### 按大小選擇要索引的文件
`MAX_FILE_SIZE` 选项将使索引器跳所有大指定值的文件。
`MAX_FILE_SIZE` 選項將使索引器跳所有大指定值的文件。
### 按路径选择要索引的文件
### 按路徑選擇要索引的文件
Gitea 使用 [`gobwas/glob` ](https://github.com/gobwas/glob) 中的 glob 模式匹配来选择要包含在索引中的文件。
Gitea 使用 [`gobwas/glob` ](https://github.com/gobwas/glob) 中的 glob 模式匹配來選擇要包含在索引中的文件。
限制文件列表可以防止索引被派生或无关的文件(例如 lss、sym、map 等)污染,而使搜索果更相关。这还有助于减小索引的大小。
限制文件列表可以防止索引被派生或無關的文件(例如 lss、sym、map 等)污染,而使搜索果更相關。這還有助於減小索引的大小。
`REPO_INDEXER_EXCLUDE_VENDORED`默认值为 true排除供商文件不包含在索引中。
`REPO_INDEXER_EXCLUDE_VENDORED`預設值為 true排除供商文件不包含在索引中。
`REPO_INDEXER_INCLUDE`默认值为空)是一个逗号分隔的 glob 模式列表,用在索引中**包含**的文件。空列表表示“_包含所有文件_”。
`REPO_INDEXER_EXCLUDE`默认值为空)是一个逗号分隔的 glob 模式列表,用于从索引中**排除**的文件。与该列表匹配的文件将不会被索引。`REPO_INDEXER_EXCLUDE` 优先于 `REPO_INDEXER_INCLUDE`
`REPO_INDEXER_INCLUDE`預設值為空)是一個逗號分隔的 glob 模式列表,用在索引中**包含**的文件。空列表表示“_包含所有文件_”。
`REPO_INDEXER_EXCLUDE`預設值為空)是一個逗號分隔的 glob 模式列表,用於從索引中**排除**的文件。與該列表匹配的文件將不會被索引。`REPO_INDEXER_EXCLUDE` 優先於 `REPO_INDEXER_INCLUDE`
模式匹配工作方式如下:
- 要匹配所有`.txt` 展名的文件,无论在哪个目录中,使用 `**.txt`
- 要匹配仅在仓库的根级别中具有 `.txt` 展名的所有文件,使用 `*.txt`
- 要匹配 `resources/bin`及其子目中的所有文件,使用 `resources/bin/**`
- 要匹配位 `resources/bin`下的所有文件,使用 `resources/bin/*`
- 要匹配所有名 `Makefile` 的文件,使用 `**Makefile`
- 匹配目录没有效果;模式 `resources/bin`包含/排除该目录中的文件;`resources/bin/**`
- 所有文件和模式都规范化为小写,因此 `**Makefile``**makefile``**MAKEFILE` 是等效的。
- 要匹配所有`.txt` 展名的文件,無論在哪個目錄中,使用 `**.txt`
- 要匹配僅在儲存庫的根級別中具有 `.txt` 展名的所有文件,使用 `*.txt`
- 要匹配 `resources/bin`及其子目中的所有文件,使用 `resources/bin/**`
- 要匹配位 `resources/bin`下的所有文件,使用 `resources/bin/*`
- 要匹配所有名 `Makefile` 的文件,使用 `**Makefile`
- 匹配目錄沒有效果;模式 `resources/bin`包含/排除該目錄中的文件;`resources/bin/**`
- 所有文件和模式都規範化為小寫,因此 `**Makefile``**makefile``**MAKEFILE` 是等效的。

View File

@@ -8,30 +8,30 @@ aliases:
# 反向代理
## 通用配置
## 通用設定
1. 在您的 `app.ini` 文件中添加配置 `[server] ROOT_URL = https://git.example.com/`
2. `https://git.example.com/foo` 反向代理到 `http://gitea:3000/foo`
3. 保反向代理不会解码 URI。`https://git.example.com/a%2Fb`请求应该被传递给 `http://gitea:3000/a%2Fb`
4. `Host``X-Forwarded-Proto` 被正确的传递给 Gitea使 Gitea 可以看到正在访问的真 URL。
1. 在您的 `app.ini` 文件中添加設定 `[server] ROOT_URL = https://git.example.com/`
2. `https://git.example.com/foo` 反向代理到 `http://gitea:3000/foo`
3. 保反向代理不會解碼 URI。`https://git.example.com/a%2Fb`請求應該被傳遞給 `http://gitea:3000/a%2Fb`
4. `Host``X-Forwarded-Proto` 被正確的傳遞給 Gitea使 Gitea 可以看到正在訪問的真 URL。
## 使用子路
## 使用子路
通常,**不推** Gitea 放到子路。人很少使用此配置,并且在极少数情况下可能会出现一些问题
通常,**不推** Gitea 放到子路。人很少使用此設定,並且在極少數情況下可能會出現一些問題
为了让 Gitea 在子路工作(例如:`https://common.example.com/gitea/`),需要在上面的通用配置之外行一些外的配置
為了讓 Gitea 在子路工作(例如:`https://common.example.com/gitea/`),需要在上面的通用設定之外行一些外的設定
1.`app.ini` 文件中使用配置 `[server] ROOT_URL = https://common.example.com/gitea/`
2. `https://common.example.com/gitea/foo` 反向代理到 `http://gitea:3000/foo`
3. 容器映像注册表需要在根目录级别有一固定的子路 `v2`,您必做下列配置
- `https://common.example.com/v2` 反向代理到 `http://gitea:3000/v2`
- 保 URI 和标头也被正确的传递(见上面的通用配置
1.`app.ini` 文件中使用設定 `[server] ROOT_URL = https://common.example.com/gitea/`
2. `https://common.example.com/gitea/foo` 反向代理到 `http://gitea:3000/foo`
3. 容器映像註冊表需要在根目錄級別有一固定的子路 `v2`,您必做下列設定
- `https://common.example.com/v2` 反向代理到 `http://gitea:3000/v2`
- 保 URI 和標頭也被正確的傳遞(見上面的通用設定
## 使用 Nginx 作反向代理服
## 使用 Nginx 作反向代理服
如果您想使用 Nginx 作 Gitea 的反向代理服,您可以照以下 `nginx.conf` 配置`server``http` 部分。
如果您想使用 Nginx 作 Gitea 的反向代理服,您可以照以下 `nginx.conf` 設定`server``http` 部分。
`client_max_body_size`大,否在上大文件时会出现 "client_max_body_size" 错误
`client_max_body_size`大,否在上大文件時會出現 "client_max_body_size" 錯誤
```nginx
server {
@@ -49,9 +49,9 @@ server {
}
```
## 使用 Nginx 作反向代理服务并将 Gitea 路由至一子路
## 使用 Nginx 作反向代理服務並將 Gitea 路由至一子路
如果您已有一域名且想 Gitea 共享域名,您可以增加以下 `nginx.conf` 配置`server``http` 部分, Gitea 添加路由规则
如果您已有一域名且想 Gitea 共享域名,您可以增加以下 `nginx.conf` 設定`server``http` 部分, Gitea 添加路由規則
```nginx
server {
@@ -59,12 +59,12 @@ server {
location ~ ^/(gitea|v2)($|/) {
client_max_body_size 512M;
# 保 nginx 使用未转义 URI 按原保持 "%2F"。 保 nginx 去除 "/gitea" 子路径前缀 按原样传递 "/v2"。
# 保 nginx 使用未轉義 URI 按原保持 "%2F"。 保 nginx 去除 "/gitea" 子路徑前綴 按原樣傳遞 "/v2"。
rewrite ^ $request_uri;
rewrite ^(/gitea)?(/.*) $2 break;
proxy_pass http://127.0.0.1:3000$uri;
# 其他的常 HTTP 表头,见上面“使用 Nginx 作反向代理服”小的配置
# 其他的常 HTTP 表頭,見上面“使用 Nginx 作反向代理服”小的配置
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
@@ -75,27 +75,27 @@ server {
}
```
您**必**在 Gitea 的配置文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`配置项
您**必**在 Gitea 的設定文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`設定項
## 使用 Nginx 直接提供静态资
## 使用 Nginx 直接提供靜態資
可以通过将资源分为静态和动态两种类型来调节性能。
可以透過將資源分為靜態和動態兩種類型來調節性能。
CSS 文件、JavaScript 文件、片和字体是静态内容。首页、仓库视图和工列表是动态内容。
CSS 文件、JavaScript 文件、片和字體是靜態內容。首頁、儲存庫視圖和工列表是動態內容。
Nginx 可以直接提供静态资源,且只代理动态资源请求给 Gitea。
Nginx 提供静态内容进行了化,而代理大响应可能与这一优化行相反。
[https://serverfault.com/q/587386](https://serverfault.com/q/587386)
Nginx 可以直接提供靜態資源,且只代理動態資源請求給 Gitea。
Nginx 提供靜態內容進行了化,而代理大響應可能與這一優化行相反。
[https://serverfault.com/q/587386](https://serverfault.com/q/587386)
Gitea 源代码仓库的一快照下`/path/to/gitea`
在此之,在本地仓库目录运`make frontend` 生成静态资源。在这个情况下,我们只对 `public/`录感兴趣,您可以除剩下的其他目
了生成静态资源,您需要安装一个[ npm 的 Node ](https://nodejs.org/en/download/)和 `make`
Gitea 源程式碼儲存庫的一快照下`/path/to/gitea`
在此之,在本地儲存庫目錄運`make frontend` 生成靜態資源。在這個情況下,我們只對 `public/`錄感興趣,您可以除剩下的其他目
了生成靜態資源,您需要安裝一個[ npm 的 Node ](https://nodejs.org/en/download/)和 `make`
决于您的用户量的大小,您可以流量分离到两个不同的服器,或者为静态资源配置一个 cdn。
決於您的使用者量的大小,您可以流量分離到兩個不同的服器,或者為靜態資源設定一個 cdn。
### 单服务器节点,单域名
### 單伺服器節點,單域名
`[server] STATIC_URL_PREFIX = /_/static` 入您的 Gitea 配置文件,并配置 nginx
`[server] STATIC_URL_PREFIX = /_/static` 入您的 Gitea 設定文件,並設定 nginx
```nginx
server {
@@ -112,12 +112,12 @@ server {
}
```
### 双服务器节点,双域名
### 雙伺服器節點,雙域名
`[server] STATIC_URL_PREFIX = http://cdn.example.com/gitea` 入您的 Gitea 配置文件,并配置 nginx
`[server] STATIC_URL_PREFIX = http://cdn.example.com/gitea` 入您的 Gitea 設定文件,並設定 nginx
```nginx
# 行 Gitea 的服
# 行 Gitea 的服
server {
listen 80;
server_name git.example.com;
@@ -129,7 +129,7 @@ server {
```
```nginx
# 提供静态资源的服
# 提供靜態資源的服
server {
listen 80;
server_name cdn.example.com;
@@ -144,9 +144,9 @@ server {
}
```
## 使用 Apache HTTPD 作反向代理服
## 使用 Apache HTTPD 作反向代理服
如果您想使用 Apache HTTPD 作 Gitea 的反向代理服,您可以您的 Apache HTTPD 作如下配置(在 Ubuntu 中,配置文件通常在 `/etc/apache2/httpd.conf`下):
如果您想使用 Apache HTTPD 作 Gitea 的反向代理服,您可以您的 Apache HTTPD 作如下設定(在 Ubuntu 中,設定文件通常在 `/etc/apache2/httpd.conf`下):
```apacheconf
<VirtualHost *:80>
@@ -159,11 +159,11 @@ server {
</VirtualHost>
```
注:必须启用以下 Apache HTTPD 件:`proxy` `proxy_http`
注:必須啟用以下 Apache HTTPD 件:`proxy` `proxy_http`
## 使用 Apache HTTPD 作反向代理服务并将 Gitea 路由至一子路
## 使用 Apache HTTPD 作反向代理服務並將 Gitea 路由至一子路
如果您已有一域名且想 Gitea 共享域名,您可以增加以下配置为 Gitea 添加路由规则(在 Ubuntu 中,配置文件通常在 `/etc/apache2/httpd.conf`下):
如果您已有一域名且想 Gitea 共享域名,您可以增加以下設定為 Gitea 添加路由規則(在 Ubuntu 中,設定文件通常在 `/etc/apache2/httpd.conf`下):
```
<VirtualHost *:80>
@@ -173,7 +173,7 @@ server {
Allow from all
</Proxy>
AllowEncodedSlashes NoDecode
# 注意: 路和 URL 面都不要写路径符号 '/'
# 注意: 路和 URL 面都不要寫路徑符號 '/'
ProxyPass /git http://localhost:3000 nocanon
</VirtualHost>
```
@@ -186,20 +186,20 @@ server {
Allow from all
</Proxy>
AllowEncodedSlashes NoDecode
# 注意: 路和 URL 面都不要写路径符号 '/'
# 注意: 路和 URL 面都不要寫路徑符號 '/'
ProxyPass /git http://localhost:3000 nocanon
ProxyPreserveHost On
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
```
您**必**在 Gitea 的配置文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`配置项
您**必**在 Gitea 的設定文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`設定項
注:必须启用以下 Apache HTTPD 件:`proxy` `proxy_http`
注:必須啟用以下 Apache HTTPD 件:`proxy` `proxy_http`
## 使用 Caddy 作反向代理服
## 使用 Caddy 作反向代理服
如果您想使用 Caddy 作 Gitea 的反向代理服,您可以在 `Caddyfile` 中添加如下配置
如果您想使用 Caddy 作 Gitea 的反向代理服,您可以在 `Caddyfile` 中添加如下設定
```
git.example.com {
@@ -207,9 +207,9 @@ git.example.com {
}
```
## 使用 Caddy 作反向代理服务并将 Gitea 路由至一子路
## 使用 Caddy 作反向代理服務並將 Gitea 路由至一子路
如果您已有一域名且想 Gitea 共享域名,您可以在您的 `Caddyfile` 文件中增加以下配置,为 Gitea 添加路由规则
如果您已有一域名且想 Gitea 共享域名,您可以在您的 `Caddyfile` 文件中增加以下設定,為 Gitea 添加路由規則
```
git.example.com {
@@ -220,23 +220,23 @@ git.example.com {
}
```
您**必**在 Gitea 的配置文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`配置项
您**必**在 Gitea 的設定文件中正的添加`[server] ROOT_URL = http://git.example.com/git/`設定項
## 使用 IIS 作反向代理服
## 使用 IIS 作反向代理服
如果您想使用 IIS 作 Gitea 的反向代理服,你需要 IIS 设置 URL 重写来作为反向代理。
如果您想使用 IIS 作 Gitea 的反向代理服,你需要 IIS 設定 URL 重寫來作為反向代理。
1. 在 IIS 中设置一个空网页,比如命名 `Gitea Proxy`
2.[软社区中为 IIS 设置 URL 重的指南](https://techcommunity.microsoft.com/t5/iis-support-blog/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world/ba-p/846222#M343)的前两步进行配置,也就是:
1. 在 IIS 中設定一個空網頁,比如命名 `Gitea Proxy`
2.[軟社區中為 IIS 設定 URL 重的指南](https://techcommunity.microsoft.com/t5/iis-support-blog/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world/ba-p/846222#M343)的前兩步進行設定,也就是:
- 使用 Microsoft Web Platform Installer 5.1 (WebPI) 安 Application Request Routing简称 ARR或者在 [IIS.net](https://www.iis.net/downloads/microsoft/application-request-routing) 下载这个插件
- 一但这个模块被安到 IIS 上,你将会在 IIS 管理控制看到一叫做 URL Rewrite 的新图标
- IIS 管理控制,在左的列表中点击 `Gitea Proxy` 网页。在中间选中并且双击 URL Rewrite 的图标来加载 URL 重的面板。
- 在管理控制的右边选择 `Add Rule` 操作,且在 `Inbound and Outbound Rules`类中选择 `Reverse Proxy Rule`
- 在 Inbound Rules 中, server name 设置为 Gitea 正在行的主以及对应端口。例如,如果你在 localhost 的 3000 端口上行 Gitea则设置为 `127.0.0.1:3000`
- 用 SSL Offloading
- 在 Outbound Rules 中,确保设置`Rewrite the domain names of the links in HTTP response`并且将 `From:` 设置为上面的 server name `To:` 设置为你的外部访问名称,例如:`git.example.com`
- 在,根下面的内容为您的网页编辑 `web.config` `127.0.0.1:3000``git.example.com`为适当的值)
- 使用 Microsoft Web Platform Installer 5.1 (WebPI) 安 Application Request Routing簡稱 ARR或者在 [IIS.net](https://www.iis.net/downloads/microsoft/application-request-routing) 下載這個外掛
- 一但這個模組被安到 IIS 上,你將會在 IIS 管理控制看到一叫做 URL Rewrite 的新圖標
- IIS 管理控制,在左的列表中點擊 `Gitea Proxy` 網頁。在中間選中並且雙擊 URL Rewrite 的圖標來加載 URL 重的面板。
- 在管理控制的右邊選擇 `Add Rule` 操作,且在 `Inbound and Outbound Rules`類中選擇 `Reverse Proxy Rule`
- 在 Inbound Rules 中, server name 設定為 Gitea 正在行的主以及對應端口。例如,如果你在 localhost 的 3000 端口上行 Gitea則設定為 `127.0.0.1:3000`
- 用 SSL Offloading
- 在 Outbound Rules 中,確保設定`Rewrite the domain names of the links in HTTP response`並且將 `From:` 設定為上面的 server name `To:` 設定為你的外部訪問名稱,例如:`git.example.com`
- 在,根下面的內容為您的網頁編輯 `web.config` `127.0.0.1:3000``git.example.com`為適當的值)
```xml
<?xml version="1.0" encoding="UTF-8"?>
@@ -305,11 +305,11 @@ git.example.com {
</configuration>
```
## 使用 HAProxy 作反向代理服
## 使用 HAProxy 作反向代理服
如果您想使用 HAProxy 作 Gitea 的反向代理服,您可以下面的容加入您的 HAProxy 配置
如果您想使用 HAProxy 作 Gitea 的反向代理服,您可以下面的容加入您的 HAProxy 設定
在 frontend 部分加入一 acl 来将对 gitea.example.com 的求重定向到正确的后端。
在 frontend 部分加入一 acl 來將對 gitea.example.com 的求重定向到正確的後端。
```
frontend http-in
@@ -319,18 +319,18 @@ frontend http-in
...
```
添加之前定好的 backend 部分
添加之前定好的 backend 部分
```
backend gitea
server localhost:3000 check
```
如果您 http 容重定向到 https上面的配置文件也能使用。只需要住,在 HAProxy 和 Gitea 之间的连接将由 http 完成,所以你不需要在 Gitea 的配置文件中用 https。
如果您 http 容重定向到 https上面的設定文件也能使用。只需要住,在 HAProxy 和 Gitea 之間的連接將由 http 完成,所以你不需要在 Gitea 的設定文件中用 https。
## 使用 HAProxy 作反向代理服务并将 Gitea 路由至一子路
## 使用 HAProxy 作反向代理服務並將 Gitea 路由至一子路
如果您已有一域名且想 Gitea 共享域名,您可以在您的 HAProxy 中加入如下配置,为 Gitea 添加路由规则
如果您已有一域名且想 Gitea 共享域名,您可以在您的 HAProxy 中加入如下設定,為 Gitea 添加路由規則
```
frontend http-in
@@ -340,9 +340,9 @@ frontend http-in
...
```
这个配置http://example.com/gitea/ 被重定向到您的 Gitea 例。
這個設定http://example.com/gitea/ 被重定向到您的 Gitea 例。
接下来,对于 backend 部分:
接下來,對於 backend 部分:
```
backend gitea
@@ -350,13 +350,13 @@ backend gitea
server localhost:3000 check
```
添加的 http-request 在需要的时候会自动加入反斜/且通过将 http://example.com/gitea 正确设置为根来在内部路径中删除 /gitea使其能正常工作。
添加的 http-request 在需要的時候會自動加入反斜/且通過將 http://example.com/gitea 正確設定為根來在內部路徑中刪除 /gitea使其能正常工作。
您**必**在 Gitea 的配置文件中正的添加`[server] ROOT_URL = http://example.com/gitea/`配置项
您**必**在 Gitea 的設定文件中正的添加`[server] ROOT_URL = http://example.com/gitea/`設定項
## 使用 Traefik 作反向代理服
## 使用 Traefik 作反向代理服
如果您想使用 traefik 作 Gitea 的反向代理服,您可以在 `docker-compose.yaml` 中添加 label 部分(假使用 docker 作 traefik 的 provider
如果您想使用 traefik 作 Gitea 的反向代理服,您可以在 `docker-compose.yaml` 中添加 label 部分(假使用 docker 作 traefik 的 provider
```yaml
gitea:
@@ -368,11 +368,11 @@ gitea:
- "traefik.http.services.gitea-websecure.loadbalancer.server.port=3000"
```
这份配置假设您使用 traefik 来处理 HTTPS 服务,并在其和 Gitea 之使用 HTTP 行通信。
這份設定假設您使用 traefik 來處理 HTTPS 服務,並在其和 Gitea 之使用 HTTP 行通信。
## 使用 Traefik 作反向代理服务并将 Gitea 路由至一子路
## 使用 Traefik 作反向代理服務並將 Gitea 路由至一子路
如果您已有一域名且想 Gitea 共享域名,您可以在您的 `docker-compose.yaml` 文件中增加以下配置,为 Gitea 添加路由规则(假使用 docker 作 traefik 的 provider
如果您已有一域名且想 Gitea 共享域名,您可以在您的 `docker-compose.yaml` 文件中增加以下設定,為 Gitea 添加路由規則(假使用 docker 作 traefik 的 provider
```yaml
gitea:
@@ -386,6 +386,6 @@ gitea:
- "traefik.http.routers.gitea.middlewares=gitea-stripprefix"
```
这份配置假设您使用 traefik 来处理 HTTPS 服务,并在其和 Gitea 之使用 HTTP 行通信。
這份設定假設您使用 traefik 來處理 HTTPS 服務,並在其和 Gitea 之使用 HTTP 行通信。
您**必**在 Gitea 的配置文件中正的添加`[server] ROOT_URL = http://example.com/gitea/`配置项
您**必**在 Gitea 的設定文件中正的添加`[server] ROOT_URL = http://example.com/gitea/`設定項

View File

@@ -8,21 +8,21 @@ aliases:
# 搜索引擎索引
默认情况下,您的 Gitea 安装将被搜索引擎索引。
如果您不希望您的仓库对搜索引擎可见,请进一步阅读
預設情況下,您的 Gitea 安裝將被搜索引擎索引。
如果您不希望您的儲存庫對搜索引擎可見,請進一步閱讀
## 使用 robots.txt 阻止搜索引擎索引
了使 Gitea 为顶级安装提供自定义`robots.txt`默认为空的 404在 [`custom`文件`CustomPath`]administration/customizing-gitea.md创建一个名为 `public/robots.txt` 的文件。
了使 Gitea 為頂級安裝提供自`robots.txt`預設為空的 404在 [`custom`文件`CustomPath`]administration/customizing-gitea.md建立一個名為 `public/robots.txt` 的文件。
如何配置 `robots.txt`例,请参考 [https://moz.com/learn/seo/robotstxt](https://moz.com/learn/seo/robotstxt)。
如何設定 `robots.txt`例,請參考 [https://moz.com/learn/seo/robotstxt](https://moz.com/learn/seo/robotstxt)。
```txt
User-agent: *
Disallow: /
```
如果您 Gitea 安在子目中,需要在顶级目录中创建或编辑 `robots.txt`
如果您 Gitea 安在子目中,需要在頂級目錄中建立或編輯 `robots.txt`
```txt
User-agent: *

View File

@@ -6,36 +6,36 @@ aliases:
- /zh-tw/signing
---
# GPG 提交
# GPG 提交
Gitea 将通过检查提交是否由 Gitea 数据库中的密钥签名,或者提交是否 Git 的默认密钥匹配,来验证提供的中的 GPG 提交名。
Gitea 將通過檢查提交是否由 Gitea 資料庫中的密鑰簽名,或者提交是否 Git 的預設密鑰匹配,來驗證提供的中的 GPG 提交名。
钥不会被检查以定它是否已期或撤。密也不会与密钥服务器进行检查。
鑰不會被檢查以定它是否已期或撤。密也不會與密鑰伺服器進行檢查。
如果找不到用于验证提交的密,提交将被标记为灰色的未锁定图标。如果提交被标记为红色的未锁定图标,则表示它使用有 ID 的密钥签名。
如果找不到用於驗證提交的密,提交將被標記為灰色的未鎖定圖標。如果提交被標記為紅色的未鎖定圖標,則表示它使用有 ID 的密鑰簽名。
注意:提交的署者不必是提交的作者或提交者。
注意:提交的署者不必是提交的作者或提交者。
此功能要求 Git >= 1.7.9,但要实现全部功能,需要 Git >= 2.0.0。
此功能要求 Git >= 1.7.9,但要實現全部功能,需要 Git >= 2.0.0。
## 自动签
## 自動簽
多地方 Gitea 生成提交:
多地方 Gitea 生成提交:
- 仓库初始化
- 儲存庫初始化
- Wiki 更改
- 使用编辑器或 API 行的 CRUD 操作
- 从合并请求进行合
- 使用編輯器或 API 行的 CRUD 操作
- 從合併請求進行合
据配置和服务器信任,您可能希望 Gitea 对这些提交进行签名。
據設定和伺服器信任,您可能希望 Gitea 對這些提交進行簽名。
## 安和生成 Gitea 的 GPG 密
## 安和生成 Gitea 的 GPG 密
如何安装签名密钥由服务器管理员决定。Gitea 目前使用服器的 `git` 命令生成所有提交,因此使用服器的 `gpg` 进行签名(如果配置了)。管理员应该审查 GPG 的最佳实践 - 特是可能建议仅安装签名的子密,而不是主名和认证的密
如何安裝簽名密鑰由伺服器管理員決定。Gitea 目前使用服器的 `git` 命令生成所有提交,因此使用服器的 `gpg` 進行簽名(如果設定了)。管理員應該審查 GPG 的最佳實踐 - 特是可能建議僅安裝簽名的子密,而不是主名和認證的密
## 通用配置
## 通用設定
Gitea 的签名配置可以在 `app.ini``[repository.signing]` 部分找到:
Gitea 的簽名設定可以在 `app.ini``[repository.signing]` 部分找到:
```ini
...
@@ -53,84 +53,84 @@ MERGES = pubkey, twofa, basesigned, commitssigned
### `SIGNING_KEY`
首先讨论的选项`SIGNING_KEY`。有三主要选项
首先討論的選項`SIGNING_KEY`。有三主要選項
- `none` - 这将阻止 Gitea 任何提交进行签
- `default` - Gitea 使用 `git config`配置的默认密钥
- `KEYID` - Gitea 使用具有 ID `KEYID` 的 GPG 密钥对提交进行签名。在这种情况下,您应该提供 `SIGNING_NAME``SIGNING_EMAIL`,以便示此密钥的信息
- `none` - 這將阻止 Gitea 任何提交進行簽
- `default` - Gitea 使用 `git config`設定的預設密鑰
- `KEYID` - Gitea 使用具有 ID `KEYID` 的 GPG 密鑰對提交進行簽名。在這種情況下,您應該提供 `SIGNING_NAME``SIGNING_EMAIL`,以便示此密鑰的資訊
`default` 选项将读`git config` 中的 `commit.gpgsign` 选项 - 如果设置了该选项,它使用 `user.signingkey``user.name``user.email`果。
`default` 選項將讀`git config` 中的 `commit.gpgsign` 選項 - 如果設定了該選項,它使用 `user.signingkey``user.name``user.email`果。
在 Gitea 的仓库中调整 Git 的 `config` 文件,可以使用 `SIGNING_KEY=default` 为每个仓库提供不同的名密。然而,这显然不是一理想的用户界面,因此可能会发生更改。
在 Gitea 的儲存庫中調整 Git 的 `config` 文件,可以使用 `SIGNING_KEY=default` 為每個儲存庫提供不同的名密。然而,這顯然不是一理想的使用者介面,因此可能會發生更改。
:::warning
**自 1.17 起**Gitea 在自己的主目 `[git].HOME_PATH`默认为 `%(APP_DATA_PATH)/home`)中行 git使用自己的配置文件 `{[git].HOME_PATH}/.gitconfig`
**自 1.17 起**Gitea 在自己的主目 `[git].HOME_PATH`預設為 `%(APP_DATA_PATH)/home`)中行 git使用自己的設定文件 `{[git].HOME_PATH}/.gitconfig`
如果您有自己定的 Gitea git 配置,您应该将这些配置设置在系 git 配置文件中(例如 `/etc/gitconfig`)或者 Gitea 的部 git 配置文件 `{[git].HOME_PATH}/.gitconfig` 中。
如果您有自己定的 Gitea git 設定,您應該將這些設定設定在系 git 設定文件中(例如 `/etc/gitconfig`)或者 Gitea 的部 git 設定文件 `{[git].HOME_PATH}/.gitconfig` 中。
git 命令相的主目文件(如 `.gnupg`)也应该放在 Gitea 的 git 主目 `[git].HOME_PATH` 中。
如果您希望 `.gnupg`放在 `{[git].HOME_PATH}/` 之外的位置,请考虑设置 `$GNUPGHOME` 环境变量为您首的位置,否 Gitea 将会从 `{[git].HOME_PATH}/.gnupg` 查找私
git 命令相的主目文件(如 `.gnupg`)也應該放在 Gitea 的 git 主目 `[git].HOME_PATH` 中。
如果您希望 `.gnupg`放在 `{[git].HOME_PATH}/` 之外的位置,請考慮設定 `$GNUPGHOME` 環境變量為您首的位置,否 Gitea 將會從 `{[git].HOME_PATH}/.gnupg` 查找私
:::
### `INITIAL_COMMIT`
选项确定在创建仓库时Gitea 是否应该对初始提交进行签名。可能的取值有:
選項確定在建立儲存庫時Gitea 是否應該對初始提交進行簽名。可能的取值有:
- `never`从不签
- `pubkey`仅在用户拥有公钥时进行签
- `twofa`仅在用户使用 2FA 登录时进行签
- `always`:始终签
- `never`從不簽
- `pubkey`僅在使用者擁有公鑰時進行簽
- `twofa`僅在使用者使用 2FA 登入時進行簽
- `always`:始終簽
除了 `never``always` 之外的选项可以组合为逗号分隔的列表。如果所有选择的选项都为 true提交将被签名。
除了 `never``always` 之外的選項可以組合為逗號分隔的列表。如果所有選擇的選項都為 true提交將被簽名。
### `WIKI`
选项确定 Gitea 是否应该对 Wiki 的提交进行签名。可能的取值有:
選項確定 Gitea 是否應該對 Wiki 的提交進行簽名。可能的取值有:
- `never`从不签
- `pubkey`仅在用户拥有公钥时进行签
- `twofa`仅在用户使用 2FA 登录时进行签
- `parentsigned`在父提交已签名时进行签名。
- `always`:始终签
- `never`從不簽
- `pubkey`僅在使用者擁有公鑰時進行簽
- `twofa`僅在使用者使用 2FA 登入時進行簽
- `parentsigned`在父提交已簽名時進行簽名。
- `always`:始終簽
除了 `never``always` 之外的选项可以组合为逗号分隔的列表。如果所有选择的选项都为 true提交将被签名。
除了 `never``always` 之外的選項可以組合為逗號分隔的列表。如果所有選擇的選項都為 true提交將被簽名。
### `CRUD_ACTIONS`
选项确定 Gitea 是否应该对 Web 编辑器或 API CRUD 操作的提交进行签名。可能的取值有:
選項確定 Gitea 是否應該對 Web 編輯器或 API CRUD 操作的提交進行簽名。可能的取值有:
- `never`从不签
- `pubkey`仅在用户拥有公钥时进行签
- `twofa`仅在用户使用 2FA 登录时进行签
- `parentsigned`在父提交已签名时进行签名。
- `always`:始终签
- `never`從不簽
- `pubkey`僅在使用者擁有公鑰時進行簽
- `twofa`僅在使用者使用 2FA 登入時進行簽
- `parentsigned`在父提交已簽名時進行簽名。
- `always`:始終簽
除了 `never``always` 之外的选项可以组合为逗号分隔的列表。如果所有选择的选项都为 true更改将被签名。
除了 `never``always` 之外的選項可以組合為逗號分隔的列表。如果所有選擇的選項都為 true更改將被簽名。
### `MERGES`
选项确定 Gitea 是否应该对 PR 的合提交进行签名。可能的选项有:
選項確定 Gitea 是否應該對 PR 的合提交進行簽名。可能的選項有:
- `never`从不签
- `pubkey`仅在用户拥有公钥时进行签
- `twofa`仅在用户使用 2FA 登录时进行签
- `basesigned`在基础仓库中的父提交已签名时进行签名。
- `headsigned`仅在头分支中的提交已签名时进行签名。
- `commitssigned`仅在头分支中的所有提交到合并点的提交都已签名时进行签名。
- `approved`仅对已批准的合到受保分支的提交进行签名。
- `always`:始终签
- `never`從不簽
- `pubkey`僅在使用者擁有公鑰時進行簽
- `twofa`僅在使用者使用 2FA 登入時進行簽
- `basesigned`在基礎儲存庫中的父提交已簽名時進行簽名。
- `headsigned`僅在頭分支中的提交已簽名時進行簽名。
- `commitssigned`僅在頭分支中的所有提交到合併點的提交都已簽名時進行簽名。
- `approved`僅對已批准的合到受保分支的提交進行簽名。
- `always`:始終簽
除了 `never``always` 之外的选项可以组合为逗号分隔的列表。如果所有选择的选项都为 true则合并将被签名。
除了 `never``always` 之外的選項可以組合為逗號分隔的列表。如果所有選擇的選項都為 true則合併將被簽名。
## 获取签名密的公
## 獲取簽名密的公
于签署 Gitea 提交的公可以通过 API 取:
於簽署 Gitea 提交的公可以透過 API 取:
```sh
/api/v1/signing-key.gpg
```
在存在特定于仓库的密的情下,可以通过以下方式取:
在存在特定於儲存庫的密的情下,可以透過以下方式取:
```sh
/api/v1/repos/:username/:reponame/signing-key.gpg

View File

@@ -6,54 +6,54 @@ aliases:
- /zh-tw/guidelines-backend
---
# 后端开发指南
# 後端開發指南
## 背景
Gitea 使用 Golang 作为后端编程语言。它使用了多第三方包,且自己也编写了一些包。
例如Gitea 使用[Chi](https://github.com/go-chi/chi)作基本的 Web 框架。[Xorm](https://xorm.io)是一个用于与数据库交互的 ORM 框架。
因此,管理些包非常重要。在开始编写后端代码之前,请参考以下准则
Gitea 使用 Golang 作為後端編程語言。它使用了多第三方包,且自己也編寫了一些包。
例如Gitea 使用[Chi](https://github.com/go-chi/chi)作基本的 Web 框架。[Xorm](https://xorm.io)是一個用於與資料庫交互的 ORM 框架。
因此,管理些包非常重要。在開始編寫後端程式碼之前,請參考以下準則
## 包设计准则
## 包設計準則
### 包列表
了保持易理解的代码并避免循环依赖,拥有良好的代码结构是很重要的。Gitea 端分以下几个部分:
了保持易理解的程式碼並避免循環依賴,擁有良好的程式碼結構是很重要的。Gitea 端分以下幾個部分:
- `build`帮助构建 Gitea 的本。
- `cmd`:包含所有 Gitea 的实际子命令,包括 web、doctor、serv、hooks、admin 等。`web`将启动 Web 服`serv``hooks`被 Git 或 OpenSSH 用。其他子命令可以帮助维护 Gitea。
- `tests`:常用的测试函数
- `tests/integration`集成测试,用于测试后端回归
- `tests/e2e`:端到端测试,用于测试前端和端的容性和视觉回归
- `models`:包含由 xorm 用于构建数据库表的数据结构。它包含查和更新数据库的函数。应避免其他 Gitea 代码的依赖关系。在某些情下,比如日志记录时可以例外。
- `models/db`:基本的数据库操作。所有其他`models/xxx`包都应依赖于此包。`GetEngine`只能 models/中用。
- `models/fixtures`单元测试和集成测试中使用的示例数据。一`yml`文件表示一个将在测试开始时加载到数据库中的表。
- `models/migrations`:存不同版本之间的数据库迁移。修改数据库结构的 PR**必**包含一个迁移步
- `modules`:在 Gitea 中理特定功能的不同模。工作正在行中:其中一些模块应该移到`services`中,特是那些依赖于 models 的模,因为它们依赖于数据库
- `modules/setting`存储从 ini 文件中取的所有系统配置,并在各引用。但是在可能的情下,应将其作为函数参数使用。
- `modules/git`:用于与`Git`命令行或 Gogit 包交互的包。
- `public`编译后的前端文件JavaScript、像、CSS 等)
- `routers`处理服务器请求。由它使用其他 Gitea 包来处理请因此其他包models、modules 或 services不能依赖于 routers。
- `routers/api`:包含`/api/v1`路由,用于处理 RESTful API 求。
- `routers/install`:只能在系统处于安装模式INSTALL_LOCK=false时响应
- `routers/private`仅由内部子命令用,特`serv``hooks`
- `routers/web`处理来自 Web 浏览器或 Git SMART HTTP 协议的 HTTP 求。
- `services`:用于常见路由操作或命令行的支持函数。使用`models``modules`来处理请求。
- `templates`:用生成 HTML 出的 Golang 模板。
- `build`幫助構建 Gitea 的本。
- `cmd`:包含所有 Gitea 的實際子命令,包括 web、doctor、serv、hooks、admin 等。`web`將啟動 Web 服`serv``hooks`被 Git 或 OpenSSH 調用。其他子命令可以幫助維護 Gitea。
- `tests`:常用的測試函數
- `tests/integration`整合測試,用於測試後端迴歸
- `tests/e2e`:端到端測試,用於測試前端和端的容性和視覺迴歸
- `models`:包含由 xorm 用於構建資料庫表的資料結構。它包含查和更新資料庫的函數。應避免其他 Gitea 程式碼的依賴關係。在某些情下,比如日誌記錄時可以例外。
- `models/db`:基本的資料庫操作。所有其他`models/xxx`包都應依賴於此包。`GetEngine`只能 models/中調用。
- `models/fixtures`單元測試和整合測試中使用的範例資料。一`yml`文件表示一個將在測試開始時加載到資料庫中的表。
- `models/migrations`存不同版本之間的資料庫遷移。修改資料庫結構的 PR**必**包含一個遷移步
- `modules`:在 Gitea 中理特定功能的不同模。工作正在行中:其中一些模組應該移到`services`中,特是那些依賴於 models 的模,因為它們依賴於資料庫
- `modules/setting`儲存從 ini 文件中取的所有系統設定,並在各引用。但是在可能的情下,應將其作為函數參數使用。
- `modules/git`:用於與`Git`命令行或 Gogit 包交互的包。
- `public`編譯後的前端文件JavaScript、像、CSS 等)
- `routers`處理伺服器請求。由它使用其他 Gitea 包來處理請因此其他包models、modules 或 services不能依賴於 routers。
- `routers/api`:包含`/api/v1`路由,用於處理 RESTful API 求。
- `routers/install`:只能在系統處於安裝模式INSTALL_LOCK=false時響應
- `routers/private`僅由內部子命令調用,特`serv``hooks`
- `routers/web`處理來自 Web 瀏覽器或 Git SMART HTTP 協議的 HTTP 求。
- `services`:用於常見路由操作或命令行的支援函數。使用`models``modules`來處理請求。
- `templates`:用生成 HTML 出的 Golang 模板。
### 包依赖关系
### 包依賴關係
Golang 不支持导入循,我们必须仔细决定包之的依赖关系。这些包之有一些级别。以下是理想的包依赖关系方向。
Golang 不支援導入循,我們必須仔細決定包之的依賴關係。這些包之有一些級別。以下是理想的包依賴關係方向。
`cmd` -> `routers` -> `services` -> `models` -> `modules`
左到右,左的包可以依赖于右侧的包,但右的包不能依赖于左侧的包。在同一级别的子包中,可以根据该级别的规则进行依
左到右,左的包可以依賴於右側的包,但右的包不能依賴於左側的包。在同一級別的子包中,可以根據該級別的規則進行依
**注意事**
**注意事**
为什么我们需要在`models`之外使用数据库事务?以及如何使用?
某些操作在数据库记录插入/更新/除失败时应该允许回滚
因此,服务必须能够创建数据库事务。以下是一些例:
為什麼我們需要在`models`之外使用資料庫事務?以及如何使用?
某些操作在資料庫記錄插入/更新/除失敗時應該允許回滾
因此,服務必須能夠建立資料庫事務。以下是一些例:
```go
// services/repository/repository.go
@@ -70,8 +70,8 @@ func CreateXXXX() error {
}
```
`services`中**不应该**直接使用`db.GetEngine(ctx)`,而是应该`models/`编写一个函数
如果该函数将在事中使用,请将`context.Context`为函数的第一个参数
`services`中**不應該**直接使用`db.GetEngine(ctx)`,而是應該`models/`編寫一個函數
如果該函數將在事中使用,請將`context.Context`為函數的第一個參數
```go
// models/issues/issue.go
@@ -82,29 +82,29 @@ func UpdateIssue(ctx context.Context, repoID int64) error {
}
```
### 包名
### 包名
对于顶层包,使用复数作为包名,例如`services``models`对于子包,使用单数,例如`services/user``models/repository`
對於頂層包,使用複數作為包名,例如`services``models`對於子包,使用單數,例如`services/user``models/repository`
### 导入别
### 導入別
有一些使用相同包名的包,例如`modules/user``models/user``services/user`当这些包在一 Go 文件中被导入时,很知道我使用的是哪包以及它是量名还是导入名。因此,我们始终建议使用导入别名。为了与常见的驼峰命名法的包变量区分开,建使用**snake_case**作为导入别名的命名规则
有一些使用相同包名的包,例如`modules/user``models/user``services/user`當這些包在一 Go 文件中被導入時,很知道我使用的是哪包以及它是量名還是導入名。因此,我們始終建議使用導入別名。為了與常見的駝峰命名法的包變量區分開,建使用**snake_case**作為導入別名的命名規則
例如:`import user_service "code.gitea.io/gitea/services/user"`
### 重要注意事
### 重要注意事
-不要`x.Update(exemplar)`,而有明`WHERE`子句:
- 这将导致表中的所有行都被使用 exemplar 的非零值行更新,包括 ID。
- 通常应该写`x.ID(id).Update(exemplar)`
- 如果在迁移过程中使用`x.Insert(exemplar)`向表中插入记录,而 ID 是预设的:
- 对于 MSSQL 变体,你需要行`` SET IDENTITY_INSERT `table` ON ``(否则迁移将失败
- 对于 PostgreSQL需要更新 ID 序列,否则迁移将悄无声息地通,但后续的插入将失败
-不要`x.Update(exemplar)`,而有明`WHERE`子句:
- 這將導致表中的所有行都被使用 exemplar 的非零值行更新,包括 ID。
- 通常應該寫`x.ID(id).Update(exemplar)`
- 如果在遷移過程中使用`x.Insert(exemplar)`向表中插入記錄,而 ID 是預設的:
- 對於 MSSQL 變體,你需要行`` SET IDENTITY_INSERT `table` ON ``(否則遷移將失敗
- 對於 PostgreSQL需要更新 ID 序列,否則遷移將悄無聲息地通,但後續的插入將失敗
`` SELECT setval('table_name_id_seq', COALESCE((SELECT MAX(id)+1 FROM `table_name`), 1), false) ``
### 未的任
### 未的任
目前,我正在行一些重,以完成以下任
目前,我正在行一些重,以完成以下任
- 正不符合规则的代码
- `models`中的文件太多了,所以我正在其中的一些移到子包`models/xxx`中。
- 由于它们依赖于`models`,因此应将某些`modules`子包移到`services`中。
- 正不符合規則的程式碼
- `models`中的文件太多了,所以我正在其中的一些移到子包`models/xxx`中。
- 由於它們依賴於`models`,因此應將某些`modules`子包移到`services`中。

View File

@@ -6,114 +6,114 @@ aliases:
- /zh-tw/guidelines-frontend
---
# 前端开发指南
# 前端開發指南
## 背景
Gitea 在其前端中使用[Fomantic-UI](https://fomantic-ui.com/introduction/getting-started.html)(基[jQuery](https://api.jquery.com))和 [Vue3](https://vuejs.org/)。
Gitea 在其前端中使用[Fomantic-UI](https://fomantic-ui.com/introduction/getting-started.html)(基[jQuery](https://api.jquery.com))和 [Vue3](https://vuejs.org/)。
HTML 面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
HTML 面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
源文件可以在以下目中找到:
源文件可以在以下目中找到:
- **CSS 式** `web_src/css/`
- **CSS 式** `web_src/css/`
- **JavaScript 文件** `web_src/js/`
- **Vue 件** `web_src/js/components/`
- **Vue 件** `web_src/js/components/`
- **Go HTML 模板** `templates/`
## 通用准则
## 通用準則
们推荐使用[Google HTML/CSS Style Guide](https://google.github.io/styleguide/htmlcssguide.html)和[Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html)。
們推薦使用[Google HTML/CSS Style Guide](https://google.github.io/styleguide/htmlcssguide.html)和[Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html)。
## Gitea 特定准则
## Gitea 特定準則
1.功能Fomantic-UI/jQuery 模块)应放在单独的文件/目中。
2. HTML 的 id 和 class 使用 kebab-case最好包含 2-3 个与功能相关的关键词
3. 在 JavaScript 中使用的 HTML 的 id 和 class 在整个项目中是唯一的,并且应包含 2-3 个与功能相关的关键词。建议在仅在 JavaScript 中使用的 class 中使用 `js-`
4.应覆盖框架提供的 class 的 CSS 式。始使用具有 2-3 个与功能相关的关键词的新 class 名称来覆盖框架式。Gitea 中的助 CSS `helpers.less` 中。
5. 端可以通过使用`ctx.PageData["myModuleData"] = map[]{}`将复杂数据传递给前端,但不要将整个模型暴露前端,以避免泄露敏感数据
6. 简单页面和 SEO 相关的页面使用 Go HTML 模板渲染生成静态的 Fomantic-UI HTML 出。复杂页面可以使用 Vue3。
7.确变量类型,先使用`elem.disabled = true`而不是`elem.setAttribute('disabled', 'anything')`先使用`$el.prop('checked', var === 'yes')`而不是`$el.prop('checked', var)`
8. 使用语义化元素,先使用`<button class="ui button">`而不是`<div class="ui button">`
9. 避免在 CSS 中使用不必要的`!important`,如果法避免,添加注释解释为什么需要它。
10. 避免在一事件监听器中混合不同的事件,优先为每个事件使用立的事件监听器。
11.使用自定义事件名称前缀`ce-`
12.使用 Tailwind CSS它可以通过 `tw-`缀获得,例如 `tw-relative`. Gitea 自身的助手 CSS 使用 `gt-``gt-ellipsis`Gitea 自身的私有框架 CSS 使用 `g-``g-modal-confirm`)。
13. 量避免内联脚本和式,建议将 JS 代码放入 JS 文件中使用 CSS 。如果内联脚本和式不可避免,请解释无法避免的原因。
1.功能Fomantic-UI/jQuery 模組)應放在單獨的文件/目中。
2. HTML 的 id 和 class 使用 kebab-case最好包含 2-3 個與功能相關的關鍵詞
3. 在 JavaScript 中使用的 HTML 的 id 和 class 在整個專案中是唯一的,並且應包含 2-3 個與功能相關的關鍵詞。建議在僅在 JavaScript 中使用的 class 中使用 `js-`
4.應覆蓋框架提供的 class 的 CSS 式。始使用具有 2-3 個與功能相關的關鍵詞的新 class 名稱來覆蓋框架式。Gitea 中的助 CSS `helpers.less` 中。
5. 端可以透過使用`ctx.PageData["myModuleData"] = map[]{}`將複雜資料傳遞給前端,但不要將整個模型暴露前端,以避免泄露敏感資料
6. 簡單頁面和 SEO 相關的頁面使用 Go HTML 模板渲染生成靜態的 Fomantic-UI HTML 出。複雜頁面可以使用 Vue3。
7.確變量類型,先使用`elem.disabled = true`而不是`elem.setAttribute('disabled', 'anything')`先使用`$el.prop('checked', var === 'yes')`而不是`$el.prop('checked', var)`
8. 使用語義化元素,先使用`<button class="ui button">`而不是`<div class="ui button">`
9. 避免在 CSS 中使用不必要的`!important`,如果法避免,添加註釋解釋為什麼需要它。
10. 避免在一事件監聽器中混合不同的事件,優先為每個事件使用立的事件監聽器。
11.使用自事件名稱前綴`ce-`
12.使用 Tailwind CSS它可以透過 `tw-`綴獲得,例如 `tw-relative`. Gitea 自身的助手 CSS 使用 `gt-``gt-ellipsis`Gitea 自身的私有框架 CSS 使用 `g-``g-modal-confirm`)。
13. 量避免內聯腳本和式,建議將 JS 程式碼放入 JS 文件中使用 CSS 。如果內聯腳本和式不可避免,請解釋無法避免的原因。
### 可访问性 / ARIA
### 可訪問性 / ARIA
史上Gitea 大量使用了可访问性不友好的框架 Fomantic UI。
Gitea 使用一些丁使 Fomantic UI 更具可访问性(参见 `aria.md`
但仍然存在许多问题需要大量的工作和时间来修复
史上Gitea 大量使用了可訪問性不友好的框架 Fomantic UI。
Gitea 使用一些丁使 Fomantic UI 更具可訪問性(參見 `aria.md`
但仍然存在許多問題需要大量的工作和時間來修復
### 框架使用
不建混合使用不同的框架,这会使代码难以维护
JavaScript 模块应遵循一主要框架,遵循框架的最佳实践
不建混合使用不同的框架,這會使程式碼難以維護
JavaScript 模組應遵循一主要框架,遵循框架的最佳實踐
荐的实现方式:
薦的實現方式:
- Vue + Vanilla JS
- Fomantic-UIjQuery
- htmx (部分面重新加其他静态组件)
- htmx (部分面重新加其他靜態元件)
- Vanilla JS
不推荐的实现方式:
不推薦的實現方式:
- Vue + Fomantic-UIjQuery
- jQuery + Vanilla JS
- htmx + 任何其他需要大量 JavaScript 代码或不必要的功能,如 htmx 本 (`hx-on`)
- htmx + 任何其他需要大量 JavaScript 程式碼或不必要的功能,如 htmx 本 (`hx-on`)
了保持面一致Vue 件可以使用 Fomantic-UI 的 CSS
管不建混合使用不同的框架,
使用 htmx 进行简单的交互。您可以在此 [PR](https://github.com/go-gitea/gitea/pull/28908) 中查看一个简单交互的例,其中使用 htmx。如果您需要更高的反性,不要使用 htmx使用其他框架Vue/Vanilla JS
但如果混合使用是必要的,并且代码设计良好且易于维护,也可以工作。
了保持面一致Vue 件可以使用 Fomantic-UI 的 CSS
管不建混合使用不同的框架,
使用 htmx 進行簡單的交互。您可以在此 [PR](https://github.com/go-gitea/gitea/pull/28908) 中查看一個簡單交互的例,其中使用 htmx。如果您需要更高的反性,不要使用 htmx使用其他框架Vue/Vanilla JS
但如果混合使用是必要的,並且程式碼設計良好且易於維護,也可以工作。
### `async` 函
### `async` 函
只有当函数内部存在`await`用或返回`Promise`时,才将函数标记为`async`
只有當函數內部存在`await`調用或返回`Promise`時,纔將函數標記為`async`
不建使用`async`事件监听器,可能会导致问题
原因是`await`后的代码在事件分之外行。
https://github.com/github/eslint-plugin-github/blob/main/docs/rules/async-preventdefault.md
不建使用`async`事件監聽器,可能會導致問題
原因是`await`後的程式碼在事件分之外行。
https://github.com/github/eslint-plugin-github/blob/main/docs/rules/async-preventdefault.md
如果一事件监听器必`async`在任何`await`之前使用`e.preventDefault()`
议将其放在函数的开头
如果一事件監聽器必`async`在任何`await`之前使用`e.preventDefault()`
議將其放在函數的開頭
如果我想在非步上下文中`async`
使用`const _promise = asyncFoo()`来告诉读
是有意之的,我们想调用异步函数并忽略 Promise。
一些 lint 规则和 IDE 也在未理返回的 Promise 时发出警告。
如果我想在非步上下文中調`async`
使用`const _promise = asyncFoo()`來告訴讀
是有意之的,我們想調用異步函數並忽略 Promise。
一些 lint 規則和 IDE 也在未理返回的 Promise 時發出警告。
### 获取数据
### 獲取資料
获取数据,请使用`modules/fetch.js`中的包装函数`GET``POST`等。他
接受容的`data`选项,将自动设置 CSRF 令牌返回
獲取資料,請使用`modules/fetch.js`中的包裝函數`GET``POST`等。他
接受容的`data`選項,將自動設定 CSRF 令牌返回
[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)。
### HTML 性和 dataset
### HTML 性和 dataset
禁止使用`dataset`,它的峰命名行使得搜索属性变得困
然而,仍然存在一些特殊情,因此前的准则是:
禁止使用`dataset`,它的峰命名行使得搜索屬性變得困
然而,仍然存在一些特殊情,因此前的準則是:
- 对于旧代码
- 對於舊程式碼
- 应将`$.data()`构为`$.attr()`
-极少数情况下,可以使用`$.data()`一些非字符串数据绑定到元素上,但烈不推使用。
- 應將`$.data()`構為`$.attr()`
-極少數情況下,可以使用`$.data()`一些非字符串資料綁定到元素上,但烈不推使用。
- 对于新代码
-使用`node.dataset`,而使用`node.getAttribute`
- 不要任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系
- 對於新程式碼
-使用`node.dataset`,而使用`node.getAttribute`
- 不要任何使用者資料綁定到 DOM 節點上,使用合適的設計模式描述節點和資料之間的關係
### 示/藏元素
### 示/藏元素
-在 Vue 件中使用`v-if``v-show`来显示/藏元素。
- Go 模板代码应使用 `.tw-hidden``showElem()/hideElem()/toggleElem()` 来显示/藏元素,请参阅`.tw-hidden`注释以获取更多详细信息
-在 Vue 件中使用`v-if``v-show`來顯示/藏元素。
- Go 模板程式碼應使用 `.tw-hidden``showElem()/hideElem()/toggleElem()` 來顯示/藏元素,請參閱`.tw-hidden`註釋以獲取更多詳細資訊
### Go HTML 模板中的式和
### Go HTML 模板中的式和
使用以下方式:
使用以下方式:
```html
<div
@@ -134,16 +134,16 @@ Gitea 使用一些补丁使 Fomantic UI 更具可访问性(参见 `aria.md`
></div>
```
以使代码更易
以使程式碼更易
### 旧代码
### 舊程式碼
许多旧代码已经存在本文撰之前。建议重构旧代码以遵循指南。
許多舊程式碼已經存在本文撰之前。建議重構舊程式碼以遵循指南。
### Vue3 和 JSX
Gitea 在正在使用 Vue3。我们决定不引入 JSX以保持 HTML 代码和 JavaScript 代码分离
Gitea 在正在使用 Vue3。我們決定不引入 JSX以保持 HTML 程式碼和 JavaScript 程式碼分離
### UI
### UI
Gitea 使用一些自制的 UI 元素并自定义其他元素,以将它们更好地集成到通用 UI 方法中。当在开发模式(`RUN_MODE=dev`)下行 Gitea ,在 `http(s)://your-gitea-url:port/devtest`提供一包含一些标准化 UI 例的面。
Gitea 使用一些自制的 UI 元素並自訂其他元素,以將它們更好地整合到通用 UI 方法中。當在開發模式(`RUN_MODE=dev`)下行 Gitea ,在 `http(s)://your-gitea-url:port/devtest`提供一包含一些標準化 UI 例的面。

View File

@@ -6,35 +6,35 @@ aliases:
- /zh-tw/guidelines-refactoring
---
# 重指南
# 重指南
## 背景
自 2014 年 2 月 12 日编写了第一行代码以来Gitea 已经发展成为一个庞大的项目
因此,代码库变得越越大。代码库越大,维护就越困
存在许多过时的机制,多框架混合在一起,一些遗留代码可能会导致错误并阻碍新功能的开发
了使代码库更易于维护,使 Gitea 得更好,开发人员应牢记使用现代机制来重构旧代码
自 2014 年 2 月 12 日編寫了第一行程式碼以來Gitea 已經發展成為一個龐大的專案
因此,程式碼庫變得越越大。程式碼庫越大,維護就越困
存在許多過時的機制,多框架混合在一起,一些遺留程式碼可能會導致錯誤並阻礙新功能的開發
了使程式碼庫更易於維護,使 Gitea 得更好,開發人員應牢記使用現代機制來重構舊程式碼
本文档是关于重构代码库的指南集合。
本文件是關於重構程式碼庫的指南集合。
## 重构建议
## 重構建議
- 设计更多关于未来的内容,而不仅仅解决当前问题
- 少模糊性,减少冲突,提高可维护性。
- 描述重,例如:
- 为什么需要重
- 如何解决旧问题
-构的优点/缺是什
- 只做必要的更改,量保留旧逻辑
- 引入一些中间步骤,使重更容易查,完整的重构计划可以在几个 PR 中完成。
- 如果存在分歧,应该请 TOC术监督委员会)参与决策。
- 添加必要的测试以确保重的正性。
-错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题
- 設計更多關於未來的內容,而不僅僅解決當前問題
- 少模糊性,減少衝突,提高可維護性。
- 描述重,例如:
- 為什麼需要重
- 如何解決舊問題
-構的優點/缺是什
- 只做必要的更改,量保留舊邏輯
- 引入一些中間步驟,使重更容易查,完整的重構計劃可以在幾個 PR 中完成。
- 如果存在分歧,應該請 TOC術監督委員會)參與決策。
- 添加必要的測試以確保重的正性。
-錯誤重構優先在里程碑的開始時進行,這樣可以更容易地在發佈之前發現問題
## 查和合并建议
## 查和合併建議
-的 PR 不应该长时间保持打开状态(通常 7 天),应尽快进行审查。
-的 PR 应尽快合,不被其他 PR 阻塞。
- 如果 TOC 没有异议,重的 PR 可以在 7 天后由一名核心成(非作者)批准后合并
- 如果最终结果良好,容忍一些不完美/临时的步
- 如果重是必要的,容忍一些回归错误,并尽快修复错误
-的 PR 不應該長時間保持打開狀態(通常 7 天),應儘快進行審查。
-的 PR 應儘快合,不被其他 PR 阻塞。
- 如果 TOC 沒有異議,重的 PR 可以在 7 天后由一名核心成(非作者)批准後合併
- 如果最終結果良好,容忍一些不完美/臨時的步
- 如果重是必要的,容忍一些迴歸錯誤,並儘快修復錯誤

View File

@@ -8,18 +8,18 @@ aliases:
# 本地化
Gitea 的本地化是通过我们的[Crowdin 项目](https://crowdin.com/project/gitea)行的。
Gitea 的本地化是通過我們的[Crowdin 專案](https://crowdin.com/project/gitea)行的。
对于对**英语翻译**的更改,可以出 pull-request更改[语语言环](https://github.com/go-gitea/gitea/blob/main/options/locale/locale_en-US.ini)中合适的关键字。
對於對**英語翻譯**的更改,可以出 pull-request更改[語語言環](https://github.com/go-gitea/gitea/blob/main/options/locale/locale_en-US.ini)中合適的關鍵字。
关对**非英**翻的更改,请参阅上面的 Crowdin 项目
關對**非英**翻的更改,請參閱上面的 Crowdin 專案
## 支持的语
## 支援的語
上述 Crowdin 项目中列出的任何言一旦翻了 25% 或更多都得到支
上述 Crowdin 專案中列出的任何言一旦翻了 25% 或更多都得到支
被接受,它在下一次 Crowdin 同步反映在主存储库中,通常是在任何 PR 合并之后
被接受,它在下一次 Crowdin 同步反映在主儲存庫中,通常是在任何 PR 合併之後
在撰本文时,这意味更改的翻可能要到 Gitea 的下一版本才会出现
在撰本文時,這意味更改的翻可能要到 Gitea 的下一版本纔會出現
如果使用开发版本,在同步更改内容后,它应该会在更新立即示。
如果使用開發版本,在同步更改內容後,它應該會在更新立即示。

View File

@@ -8,34 +8,36 @@ aliases:
# API 使用指南
## 开启/配置 API 访问
## 開啟/設定 API 存取
通常情下, `ENABLE_SWAGGER` 默认开启并且参数 `MAX_RESPONSE_ITEMS` 默认为 50。您可以 [Config Cheat Sheet](../administration/config-cheat-sheet.md) 中取更多配置相关信息
通常情下, `ENABLE_SWAGGER` 預設開啟並且參數 `MAX_RESPONSE_ITEMS` 預設為 50。您可以 [Config Cheat Sheet](../administration/config-cheat-sheet.md) 中取更多設定相關資訊
## 通过 API 认证
<a id="authentication"></a>
<a id="通過-api-認證"></a>
## 透過 API 認證
Gitea 支以下几种 API 认证方式:
Gitea 支以下幾種 API 認證方式:
- HTTP basic authentication 方式
- 通过指定 `token=...` URL 查询参数方式
- 通过指定 `access_token=...` URL 查询参数方式
- 通过指定 `Authorization: token ...` HTTP header 方式
- 透過指定 `token=...` URL 查詢參數方式
- 透過指定 `access_token=...` URL 查詢參數方式
- 透過指定 `Authorization: token ...` HTTP header 方式
以上提及的认证方法接受相同的 apiKey token 型,您可以在编码时通过查阅代码更好地理解这一点
Gitea 用解析查询参数以及头部信息来获取 token 的代码可以在 [modules/auth/auth.go](https://github.com/go-gitea/gitea/blob/6efdcaed86565c91a3dc77631372a9cc45a58e89/modules/auth/auth.go#L47) 中找到。
以上提及的認證方法接受相同的 apiKey token 型,您可以在編碼時透過查閱程式碼更好地理解這一點
Gitea 調用解析查詢參數以及頭部資訊來獲取 token 的程式碼可以在 [modules/auth/auth.go](https://github.com/go-gitea/gitea/blob/6efdcaed86565c91a3dc77631372a9cc45a58e89/modules/auth/auth.go#L47) 中找到。
您可以通过您的 gitea web 界面来创建 apiKey token
您可以透過您的 gitea Web 介面來建立 apiKey token
`Settings | Applications | Generate New Token`.
### 关于 `Authorization:` header
### 關於 `Authorization:` header
一些史原因Gitea 需要在 header 的 apiKey token 引入前 `token`类似于如下形式:
一些史原因Gitea 需要在 header 的 apiKey token 引入前 `token`類似於如下形式:
```
Authorization: token 65eaa9c8ef52460d22a93307fe0aee76289dc675
```
`curl` 命令例,它以如下形式携带在请求中:
`curl` 命令例,它以如下形式攜帶在請求中:
```
curl "http://localhost:4000/api/v1/repos/test1/test1/issues" \
@@ -44,20 +46,20 @@ curl "http://localhost:4000/api/v1/repos/test1/test1/issues" \
-H "Content-Type: application/json" -d "{ \"body\": \"testing\", \"title\": \"test 20\"}" -i
```
正如上例所示,您也可以在 GET 求中使用同一 token `token=` 的查询参数形式携带 token 来进行认证
正如上例所示,您也可以在 GET 求中使用同一 token `token=` 的查詢參數形式攜帶 token 來進行認證
## 通过 API 列出您发布的令牌
## 透過 API 列出您發佈的令牌
`/users/:name/tokens` 是一特殊的接口,需要您使用 basic authentication 进行认证,具原因在 issue 中
`/users/:name/tokens` 是一特殊的介面,需要您使用 basic authentication 進行認證,具原因在 issue 中
[#3842](https://github.com/go-gitea/gitea/issues/3842#issuecomment-397743346) 有所提及,使用方法如下所示:
### 使用 Basic authentication 认证
### 使用 Basic authentication 認證
```
$ curl --url https://yourusername:yourpassword@gitea.your.host/api/v1/users/yourusername/tokens
[{"name":"test","sha1":"..."},{"name":"dev","sha1":"..."}]
```
## 使用 Sudo 方式求 API
## 使用 Sudo 方式求 API
此 API 允管理借用其他用户身份行 API 求。只需在求中指定查询参数 `sudo=` 或是指定 header 中的 `Sudo:` 需要使用的用户 username 即可。
此 API 允管理借用其他使用者身份行 API 求。只需在求中指定查詢參數 `sudo=` 或是指定 header 中的 `Sudo:` 需要使用的使用者 username 即可。

View File

@@ -6,38 +6,38 @@ aliases:
- /zh-tw/hacking-on-gitea
---
# 玩 Gitea
# 玩 Gitea
## 快速入
## 快速入
得快速工作的开发环境,您可以使用 Gitpod。
得快速工作的開發環境,您可以使用 Gitpod。
[![在 Gitpod 中打](/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/go-gitea/gitea)
[![在 Gitpod 中打](/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/go-gitea/gitea)
## 安 Golang
## 安 Golang
您需要 [ go](https://go.dev/doc/install) 并设置您的 go 境。
您需要 [ go](https://go.dev/doc/install) 並設定您的 go 境。
接下[使用 npm 安 Node.js](https://nodejs.org/en/download/) 这是构
JavaScript 和 CSS 文件的必要工具。最低支的 Node.js 版本是 @minNodeVersion@
且推使用最新的 LTS 版本。
接下[使用 npm 安 Node.js](https://nodejs.org/en/download/) 這是構
JavaScript 和 CSS 文件的必要工具。最低支的 Node.js 版本是 @minNodeVersion@
且推使用最新的 LTS 版本。
**注意** 当执行需要外部工具的 make 任务时,比如
`make watch-backend`Gitea 会自动下载并构建这些必要的件。了能使用些,你必
`"$GOPATH"/bin`加入到可行路上。如果你不把 go bin 目添加到可行路你必须手动
指定可行程序路径
**注意** 當執行需要外部工具的 make 任務時,比如
`make watch-backend`Gitea 會自動下載並構建這些必要的件。了能使用些,你必
`"$GOPATH"/bin`加入到可行路上。如果你不把 go bin 目添加到可行路你必須手動
指定可行程式路徑
**注意 2** Go 版本 @minGoVersion@ 或更高版本是必的。Gitea 使用 `gofmt`
格式化源代码。然而,`gofmt`果可能因 `go` 的版本而有差。因此推荐安装我们持续集成使用
的 Go 版本。截至上次更新Go 版本应该@goVersion@。
**注意 2** Go 版本 @minGoVersion@ 或更高版本是必的。Gitea 使用 `gofmt`
格式化源程式碼。然而,`gofmt`果可能因 `go` 的版本而有差。因此推薦安裝我們持續整合使用
的 Go 版本。截至上次更新Go 版本應該@goVersion@。
## 安 Make
## 安 Make
Gitea 大量使用 `Make` 来自动化任和改进开发。本指南涵了如何安 Make。
Gitea 大量使用 `Make` 來自動化任和改進開發。本指南涵了如何安 Make。
### 在 Linux 上
使用管理器安
使用套件管理器安
在 Ubuntu/Debian 上:
@@ -53,37 +53,37 @@ sudo yum install make
### 在 Windows 上
Make 的这三个发行版都可以在 Windows 上行:
Make 的這三個發行版都可以在 Windows 上行:
- [单个二进制构](http://www.equation.com/servlet/equation.cmd?fa=make)。复制到某处并添加到 `PATH`
- [單個二進制構](http://www.equation.com/servlet/equation.cmd?fa=make)。複製到某處並添加到 `PATH`
- [32 位版本](http://www.equation.com/ftpdir/make/32/make.exe)
- [64 位版本](http://www.equation.com/ftpdir/make/64/make.exe)
- [MinGW-w64](https://www.mingw-w64.org) / [MSYS2](https://www.msys2.org/)。
- MSYS2 是一工具和的集合,您提供一个易于使用的环境来构建、安装和运行本 Windows 件,它包括 MinGW-w64。
- 在 MingGW-w64 中,二制文件称为 `mingw32-make.exe` 而不是 `make.exe` `bin` 文件添加到 `PATH`
- 在 MSYS2 中,您可以直接使用 `make`请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
- 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函像 \_beginthread 一
- [Chocolatey 管理器](https://chocolatey.org/packages/make)。`choco install make`
- MSYS2 是一工具和的集合,您提供一個易於使用的環境來構建、安裝和運行本 Windows 件,它包括 MinGW-w64。
- 在 MingGW-w64 中,二制文件稱為 `mingw32-make.exe` 而不是 `make.exe` `bin` 文件添加到 `PATH`
- 在 MSYS2 中,您可以直接使用 `make`請參閱 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
- 要使用 CGO_ENABLED例如SQLite3編譯 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc MSYS2 gcc 標頭缺少一些 Windows -只有 CRT 函像 \_beginthread 一
- [Chocolatey 套件管理器](https://chocolatey.org/packages/make)。`choco install make`
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能遇到问题。建使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell可以使用 [set](https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`
**注意** :如果您嘗試在 Windows 命令提示符下使用 make 進行構建,您可能遇到問題。建使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell可以使用 [set](https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`
## 下载并克隆 Gitea 源代码
## 下載並克隆 Gitea 源程式碼
取源代码的推方法是使用 `git clone`
取源程式碼的推方法是使用 `git clone`
```bash
git clone https://github.com/go-gitea/gitea
```
(自 go modules 出现后,不再需要建 go 项目从 `$GOPATH`取,因此不再推使用 `go get` 方法。)
(自 go modules 出現後,不再需要建 go 專案從 `$GOPATH`取,因此不再推使用 `go get` 方法。)
## 派生 Gitea
如上所述下主要的 Gitea 源代码。然,派生 [Gitea 仓库](https://github.com/go-gitea/gitea)
并为您的本地仓库切换 git 程源,或添加另一个远程源:
如上所述下主要的 Gitea 源程式碼。然,派生 [Gitea 儲存庫](https://github.com/go-gitea/gitea)
併為您的本地儲存庫切換 git 程源,或添加另一個遠程源:
```bash
# 将原来的 Gitea origin 重命名 upstream
# 將原來的 Gitea origin 重命名 upstream
git remote rename origin upstream
git remote add origin "git@github.com:$GITHUB_USERNAME/gitea.git"
git fetch --all --prune
@@ -92,86 +92,86 @@ git fetch --all --prune
或者:
```bash
# 为我们的 fork 添加新的
# 為我們的 fork 添加新的
git remote add "$FORK_NAME" "git@github.com:$GITHUB_USERNAME/gitea.git"
git fetch --all --prune
```
了能够创建合并请求,应将分叉存储库添加 Gitea 本地仓库的远程,否则无法推送更改。
了能夠建立合併請求,應將分叉儲存庫添加 Gitea 本地儲存庫的遠程,否則無法推送更改。
## 建 Gitea基本
## 建 Gitea基本
看看我
[](installation/from-source.md)
关于如何[从源代码构](installation/from-source.md) 。
看看我
[](installation/from-source.md)
關於如何[從源程式碼構](installation/from-source.md) 。
从源代码构建的最简单推荐方法是:
從源程式碼構建的最簡單推薦方法是:
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make build
```
`build`标将同时执`frontend``backend` 子目。如果存在 `bindata` 标签,资源文件将被编译成二制文件。建议在进行前端开发时省略 `bindata` 标签,以便实时反映更改。
`build`標將同時執`frontend``backend` 子目。如果存在 `bindata` 標籤,資源文件將被編譯成二制文件。建議在進行前端開發時省略 `bindata` 標籤,以便實時反映更改。
所有可用的 `make`标,请参阅 `make help`。另请参阅 [`.drone.yml`](https://github.com/go-gitea/gitea/blob/main/.drone.yml) 以解我的持续集成是如何工作的。
所有可用的 `make`標,請參閱 `make help`。另請參閱 [`.drone.yml`](https://github.com/go-gitea/gitea/blob/main/.drone.yml) 以解我的持續整合是如何工作的。
## 持续构
## 持續構
要在源文件更改时运行并持续构建:
要在源文件更改時運行並持續構建:
```bash
# 对于前端和
# 對於前端和
make watch
# 或者只看前端文件html/js/css
make watch-frontend
# 或者:只看端文件 (go)
# 或者:只看端文件 (go)
make watch-backend
```
在 macOS 上,监视所有端源文件可能会达到默认的打文件限制,可以通过当前 shell 的 `ulimit -n 12288` 或所有未 shell 的 shell 启动文件增加。
在 macOS 上,監視所有端源文件可能會達到預設的打文件限制,可以透過當前 shell 的 `ulimit -n 12288` 或所有未 shell 的 shell 啟動文件增加。
### 格式化、代码分析和拼写检
### 格式化、程式碼分析和拼寫檢
的持续集成将拒绝未通过代码检查(包括格式查、代码分析和拼写检查)的 PR。
的持續整合將拒絕未通過程式碼檢查(包括格式查、程式碼分析和拼寫檢查)的 PR。
应该格式化你的代码
應該格式化你的程式碼
```bash
make fmt
```
并检查源代码
並檢查源程式碼
```bash
# lint 前端和端代
# lint 前端和端代
make lint
# lint 端代
# lint 端代
make lint-backend
```
**注意** `gofmt`果取决于 `go` 的版本。您应该运行与持续集成相同的 go 版本。
**注意** `gofmt`果取決於 `go` 的版本。您應該運行與持續整合相同的 go 版本。
### 理 JS 和 CSS
### 理 JS 和 CSS
前端开发应遵循 [Guidelines for Frontend Development](contributing/guidelines-frontend.md)。
前端開發應遵循 [Guidelines for Frontend Development](contributing/guidelines-frontend.md)。
要使用前端资源构建,使用上面提到的“watch-frontend”目或只建一次:
要使用前端資源構建,使用上面提到的“watch-frontend”目或只建一次:
```bash
make build && ./gitea
```
在提交之前,保 linters 通
在提交之前,保 linters 通
```bash
make lint-frontend
```
### 配置本地 ElasticSearch
### 設定本地 ElasticSearch
使用 docker 启动本地 ElasticSearch 例:
使用 docker 啟動本地 ElasticSearch 例:
```sh
mkdir -p $(pwd) /data/elasticsearch
@@ -179,7 +179,7 @@ sudo chown -R 1000:1000 $(pwd) /data/elasticsearch
docker run --rm --memory= "4g" -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -v "$(pwd)/data /elasticsearch:/usr/share/elasticsearch/data" docker.elastic.co/elasticsearch/elasticsearch:7.16.3
```
配置`app.ini`
設定`app.ini`
```ini
[indexer]
@@ -190,112 +190,112 @@ REPO_INDEXER_TYPE = elasticsearch
REPO_INDEXER_CONN_STR = http://elastic:changeme@localhost:9200
```
### 建和添加 SVGs
### 建和添加 SVGs
SVG 图标是使用 `make svg` 命令建的,命令将图标资源编译到输出目 `public/assets/img/svg` 中。可以在 `web_src/svg`中添加自定义图标
SVG 圖標是使用 `make svg` 命令建的,命令將圖標資源編譯到輸出目 `public/assets/img/svg` 中。可以在 `web_src/svg`中添加自訂圖標
### 建 Logo
### 建 Logo
Gitea Logo 的 PNG 和 SVG 版本是使用 `TAGS="gitea" make generate-images`标从单个 SVG 源文件 assets/logo.svg 建的。要行它Node.js 和 npm 必可用。
Gitea Logo 的 PNG 和 SVG 版本是使用 `TAGS="gitea" make generate-images`標從單個 SVG 源文件 assets/logo.svg 建的。要行它Node.js 和 npm 必可用。
更新 `assets/logo.svg` 并运`make generate-images`,同样的过程也可用于从 SVG 源文件生成自定义 Logo PNG。忽略 gitea 编译选项将仅更新用户指定的 LOGO 文件。
更新 `assets/logo.svg` 並運`make generate-images`,同樣的過程也可用於從 SVG 源文件生成自 Logo PNG。忽略 gitea 編譯選項將僅更新使用者指定的 LOGO 文件。
### 更新 API
建新的 API 路由或修改有的 API 路由,您**必**
更新和/或建 [Swagger](https://swagger.io/docs/specification/2-0/what-is-swagger/)
些使用 [go-swagger](https://goswagger.io/) 评论的文
[规范](https://goswagger.io/use/spec.html#annotation-syntax)中描述了这些注释的结构
如果您想了解更多有 Swagger 结构的信息,可以查看
[Swagger 2.0 文](https://swagger.io/docs/specification/2-0/basic-structure/)
添加新 API 端的先前 PR 行比,例如 [PR #5483](https://github.com/go-gitea/gitea/pull/5843/files#diff-2e0a7b644cf31e1c8ef7d76b444fe3aaR20)
新的 API 路由或修改有的 API 路由,您**必**
更新和/或建 [Swagger](https://swagger.io/docs/specification/2-0/what-is-swagger/)
些使用 [go-swagger](https://goswagger.io/) 評論的文
[規範](https://goswagger.io/use/spec.html#annotation-syntax)中描述了這些註釋的結構
如果您想了解更多有 Swagger 結構的資訊,可以查看
[Swagger 2.0 文](https://swagger.io/docs/specification/2-0/basic-structure/)
添加新 API 端的先前 PR 行比,例如 [PR #5483](https://github.com/go-gitea/gitea/pull/5843/files#diff-2e0a7b644cf31e1c8ef7d76b444fe3aaR20)
应该注意不要破下游用户依赖的 API。在定的 API 上,一般来说添加是可以接受的,但
API 行根本性更改将会被拒
應該注意不要破下游使用者依賴的 API。在定的 API 上,一般來說添加是可以接受的,但
API 行根本性更改將會被拒
建或更改 API 端点后,请用以下命令重新生成 Swagger 文
或更改 API 端點後,請用以下命令重新生成 Swagger 文
```bash
make generate-swagger
```
应该验证生成的 Swagger 文件:
應該驗證生成的 Swagger 文件:
```bash
make swagger-validate
```
应该提交更改的 swagger JSON 文件。持续集成服务器将使用以下方法查是否已完成:
應該提交更改的 swagger JSON 文件。持續整合伺服器將使用以下方法查是否已完成:
```bash
make swagger-check
```
**注意** 注意,您应该使用 Swagger 2.0 文,而不是 OpenAPI 3 文
**注意** 注意,您應該使用 Swagger 2.0 文,而不是 OpenAPI 3 文
### 创建新的配置选项
### 建立新的設定選項
创建新的配置选项时,将它们添加到 `modules/setting`对应文件。您应该将信息添加到 `custom/conf/app.ini`
到[配置备忘单](../administration/config-cheat-sheet.md)
建立新的設定選項時,將它們添加到 `modules/setting`對應文件。您應該將資訊添加到 `custom/conf/app.ini`
到[設定備忘單](../administration/config-cheat-sheet.md)
`docs/content/doc/advanced/config-cheat-sheet.zh-tw.md` 中找到
### 更改 Logo
更改 Gitea Logo SVG ,您需要运行并提交果的:
更改 Gitea Logo SVG ,您需要運行並提交果的:
```bash
make generate-images
```
这将创建必要的 Gitea 图标和其他图标
這將建立必要的 Gitea 圖標和其他圖標
### 数据库迁
### 資料庫遷
如果您对数据库中的任何数据库持久结构进行重大更改
`models/`,您需要行新的移。可以找到
`models/migrations/` 中。您可以保您的迁移适用于主要
数据库类型使用:
如果您對資料庫中的任何資料庫持久結構進行重大更改
`models/`,您需要行新的移。可以找到
`models/migrations/` 中。您可以保您的遷移適用於主要
資料庫類型使用:
```bash
make test-sqlite-migration # SQLite 切换为适当的数据库
make test-sqlite-migration # SQLite 切換為適當的數據庫
```
## 测试
## 測試
Gitea 运行两种类型的测试:单元测试和集成测试
Gitea 運行兩種類型的測試:單元測試和整合測試
### 单元测试
### 單元測試
`go test`中的`*_test.go`盖了单元测试
您可以设置环境变`GITEA_UNIT_TESTS_LOG_SQL=1` 以在详细模式下运行测试时显示所有 SQL 句(即设置`GOTESTFLAGS=-v` )。
`go test`中的`*_test.go`蓋了單元測試
您可以設定環境變`GITEA_UNIT_TESTS_LOG_SQL=1` 以在詳細模式下運行測試時顯示所有 SQL 句(即設定`GOTESTFLAGS=-v` )。
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make test # Runs the unit tests
```
### 集成测试
### 整合測試
单元测试不会也不能完全单独测试 Gitea。因此们编写了集成测试;但是,些依赖于数据库
單元測試不會也不能完全單獨測試 Gitea。因此們編寫了整合測試;但是,些依賴於資料庫
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make build test-sqlite
```
在 SQLite 境中运行集成测试。集成测试需要安 `git lfs`。其他数据库测试可用,但
可能需要适应当地环境。
在 SQLite 境中運行整合測試。整合測試需要安 `git lfs`。其他資料庫測試可用,但
可能需要適應當地環境。
看看 [`tests/integration/README.md`](https://github.com/go-gitea/gitea/blob/main/tests/integration/README.md) 有更多信息以及如何运行单个测试
看看 [`tests/integration/README.md`](https://github.com/go-gitea/gitea/blob/main/tests/integration/README.md) 有更多資訊以及如何運行單個測試
### 测试 PR
### 測試 PR
的持续集成将测试代码是否通过了单元测试,并且所有支持的数据库都将在 Docker 境中通过集成测试
还将测试从几个最新版本的 Gitea 移。
的持續整合將測試程式碼是否通過了單元測試,並且所有支援的資料庫都將在 Docker 境中通過整合測試
還將測試從幾個最新版本的 Gitea 移。
在 PR 中附提交适当的单元测试和集成测试
在 PR 中附提交適當的單元測試和整合測試
## 站文
## 站文
该网站的文档位于 `docs/` 中。如果你改了文档内容,你可以使用以下测试方法行持续集成
該網站的文件位於 `docs/` 中。如果你改了文件內容,你可以使用以下測試方法行持續整合
```bash
make lint-md
@@ -303,32 +303,32 @@ make lint-md
## Visual Studio Code
`contrib/ide/vscode` Visual Studio Code 提供了 `launch.json``tasks.json`。查看
[`contrib/ide/README.md`](https://github.com/go-gitea/gitea/blob/main/contrib/ide/README.md) 解更多信息
`contrib/ide/vscode` Visual Studio Code 提供了 `launch.json``tasks.json`。查看
[`contrib/ide/README.md`](https://github.com/go-gitea/gitea/blob/main/contrib/ide/README.md) 解更多資訊
## Goland
单击 `/main.go` 中函 `func main()` 上的 `Run Application`
可以快速启动一个可调试的 Gitea 例。
單擊 `/main.go` 中函 `func main()` 上的 `Run Application`
可以快速啟動一個可調試的 Gitea 例。
`Run/Debug Configuration` 中的 `Output Directory`须设置为
gitea 项目目录(包含 `main.go``go.mod`
则,启动实例的工作目是 GoLand 的临时目录
防止 Gitea 在开发环境中加载动态资源(例如:模板)。
`Run/Debug Configuration` 中的 `Output Directory`須設定為
gitea 專案目錄(包含 `main.go``go.mod`
則,啟動實例的工作目是 GoLand 的臨時目錄
防止 Gitea 在開發環境中加載動態資源(例如:模板)。
要在 GoLand 中使用 SQLite 运行单元测试,请设置 `-tags sqlite,sqlite_unlock_notify`
`行/调试配置``Go 工具参数` 中。
要在 GoLand 中使用 SQLite 運行單元測試,請設定 `-tags sqlite,sqlite_unlock_notify`
`行/調試配置``Go 工具參數` 中。
## 提交 PR
更改感到满意后,将它们推送并打开拉取求。它建您允 Gitea Managers 和 Owners 修改您的 PR
分支,因为我们需要在合之前其更新 main 和/或可能是能直接助解决问题
更改感到滿意後,將它們推送並打開拉取求。它建您允 Gitea Managers 和 Owners 修改您的 PR
分支,因為我們需要在合之前其更新 main 和/或可能是能直接助解決問題
任何 PR 都需要 Gitea 维护者的次批准,且需要通过持续集成。看看我
任何 PR 都需要 Gitea 維護者的次批准,且需要通過持續整合。看看我
[CONTRIBUTING.md](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md)
如果您需要更多助,请访问 [Discord](https://discord.gg/gitea) #Develop
在那聊天。
如果您需要更多助,請前往 [Discord](https://discord.gg/gitea) #Develop
在那聊天。
在,您已准备好 Hacking Gitea。
在,您已準備好 Hacking Gitea。

View File

@@ -6,21 +6,21 @@ aliases:
- /zh-tw/integrations
---
# 集成
# 整合
Gitea 有一出色的第三方集成社区,以及在其他各种项目中的一流支
Gitea 有一出色的第三方整合社區,以及在其他各種專案中的一流支
正在[awesome-gitea](https://gitea.com/gitea/awesome-gitea)上整理一列表来跟踪这些集成
正在[awesome-gitea](https://gitea.com/gitea/awesome-gitea)上整理一列表來跟蹤這些整合
如果你正在找[CI/CD](https://gitea.com/gitea/awesome-gitea#user-content-devops)
[SDK](https://gitea.com/gitea/awesome-gitea#user-content-sdk)
甚至一些外的[](https://gitea.com/gitea/awesome-gitea#user-content-themes)
你可以在[awesome-gitea](https://gitea.com/gitea/awesome-gitea)中找到它的列表!
如果你正在找[CI/CD](https://gitea.com/gitea/awesome-gitea#user-content-devops)
[SDK](https://gitea.com/gitea/awesome-gitea#user-content-sdk)
甚至一些外的[](https://gitea.com/gitea/awesome-gitea#user-content-themes)
你可以在[awesome-gitea](https://gitea.com/gitea/awesome-gitea)中找到它的列表!
## 填新文件名和
## 填新文件名和
如果你想打开一个具有定名称和内容的新文件,
你可以使用查询参数来实现
如果你想打開一個具有定名稱和內容的新文件,
你可以使用查詢參數來實現
```txt
GET /{{org}}/{{repo}}/_new/{{filepath}}

View File

@@ -6,26 +6,26 @@ aliases:
- /zh-tw/migrations-interfaces
---
# 迁移接口
# 遷移介面
完整移功能在 Gitea 1.9.0 版本中引入。它定义了两个接口,用于支持从其他 Git 管平台迁移存储库数据到 Gitea或者在将来将 Gitea 数据迁移到其他 Git 管平台。
完整移功能在 Gitea 1.9.0 版本中引入。它定義了兩個介面,用於支援從其他 Git 管平台遷移儲存庫資料到 Gitea或者在將來將 Gitea 資料遷移到其他 Git 管平台。
目前已实现了从 GitHub、GitLab 和其他 Gitea 例的移。
目前已實現了從 GitHub、GitLab 和其他 Gitea 例的移。
首先Gitea 在包[modules/migration](https://github.com/go-gitea/gitea/tree/main/modules/migration)中定了一些标准对象。它`Repository``Milestone``Release``ReleaseAsset``Label``Issue``Comment``PullRequest``Reaction``Review``ReviewComment`
首先Gitea 在包[modules/migration](https://github.com/go-gitea/gitea/tree/main/modules/migration)中定了一些標準對象。它`Repository``Milestone``Release``ReleaseAsset``Label``Issue``Comment``PullRequest``Reaction``Review``ReviewComment`
## 下载器接口
## 下載器介面
新的 Git 管平台移,需要进行两个步骤的更新。
新的 Git 管平台移,需要進行兩個步驟的更新。
-应该实现一个`Downloader`,用于获取存储库信息
-应该实现一个`DownloaderFactory`,用于检测 URL 是否匹配,并创建上述的`Downloader`
- 您需要在`init()`中通`RegisterDownloaderFactory`注册`DownloaderFactory`
-應該實現一個`Downloader`,用於獲取儲存庫資訊
-應該實現一個`DownloaderFactory`,用於檢測 URL 是否匹配,並建立上述的`Downloader`
- 您需要在`init()`中通`RegisterDownloaderFactory`註冊`DownloaderFactory`
您可以在[downloader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/downloader.go)中找到这些接口
您可以在[downloader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/downloader.go)中找到這些介面
## 上传器接口
## 上傳器介面
目前,只实现`GiteaLocalUploader`,因此我只能通过此 Uploader 将下载的数据保存到本地的 Gitea 例。目前不支其他上器。
目前,只實現`GiteaLocalUploader`,因此我只能透過此 Uploader 將下載的資料保存到本地的 Gitea 例。目前不支其他上器。
您可以在[uploader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/uploader.go)中找到这些接口
您可以在[uploader.go](https://github.com/go-gitea/gitea/blob/main/modules/migration/uploader.go)中找到這些介面

View File

@@ -8,11 +8,11 @@ aliases:
# OAuth2 提供者
Gitea 支持作为 OAuth2 提供者,允第三方用程序在用户同意的情况下访问其资源。此功能自 1.8.0 版起可用。
Gitea 支援作為 OAuth2 提供者,允第三方用程式在使用者同意的情況下訪問其資源。此功能自 1.8.0 版起可用。
## 端
## 端
| 端 | URL |
| 端 | URL |
| ------------------------ | ----------------------------------- |
| OpenID Connect Discovery | `/.well-known/openid-configuration` |
| Authorization Endpoint | `/login/oauth/authorize` |
@@ -20,81 +20,81 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
| OpenID Connect UserInfo | `/login/oauth/userinfo` |
| JSON Web Key Set | `/login/oauth/keys` |
## 支的 OAuth2 授
## 支的 OAuth2 授
目前 Gitea 仅支持 [**Authorization Code Grant**](https://tools.ietf.org/html/rfc6749#section-1.3.1) 标准,并额外支以下展:
目前 Gitea 僅支援 [**Authorization Code Grant**](https://tools.ietf.org/html/rfc6749#section-1.3.1) 標準,並額外支以下展:
- [Proof Key for Code Exchange (PKCE)](https://tools.ietf.org/html/rfc7636)
- [OpenID Connect (OIDC)](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth)
Authorization Code Grant 作第三方用程,您需要通过在设置中添加一新的 "用程" (`/user/settings/applications`)。
Authorization Code Grant 作第三方用程,您需要通過在設定中添加一新的 "用程" (`/user/settings/applications`)。
## 范围
## 範圍
Gitea 支以下令牌范围:
Gitea 支以下令牌範圍:
| 名 | 介 |
| 名 | 介 |
| ---------------------------------------- | --------------------------------------------------------------- |
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
| **repo** | 完全控制所有存储库 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予所有存储库中提交状态的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **public_repo** | 授予对公共存储库的读/写访问权限 |
| **admin:repo_hook** | 授予所有存储库的 Hooks 访问权限,该权限已包含在 `repo` 范围中 |
| &nbsp;&nbsp;&nbsp; **write:repo_hook** | 授予对存储库 Hooks 的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:repo_hook** | 授予对存储库 Hooks 的只读访问权限 |
| **admin:org** | 授予对组织设置的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **write:org** | 授予对组织设置的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:org** | 授予对组织设置的只读访问权限 |
| **admin:public_key** | 授予公管理的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **write:public_key** | 授予对公钥的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:public_key** | 授予对公钥的只读访问权限 |
| **admin:org_hook** | 授予对组织级别 Hooks 的完全访问权限 |
| **admin:user_hook** | 授予对用户级别 Hooks 的完全访问权限 |
| **notification** | 授予通知的完全访问权限 |
| **user** | 授予对用户个人资料信息的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **read:user** | 授予对用户个人资料的读取权限 |
| &nbsp;&nbsp;&nbsp; **user:email** | 授予对用户电子邮件地址的读取权限 |
| &nbsp;&nbsp;&nbsp; **user:follow** | 授予访问权限以注/取消关注用户 |
| **delete_repo** | 授予删除存储库的权限 |
| **package** | 授予对托管包的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **write:package** | 授予包的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:package** | 授予包的读取权限 |
| &nbsp;&nbsp;&nbsp; **delete:package** | 授予包的删除权限 |
| **admin:gpg_key** | 授予 GPG 密管理的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **write:gpg_key** | 授予 GPG 密钥的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:gpg_key** | 授予 GPG 密的只读访问权限 |
| **admin:application** | 授予用程管理的完全访问权限 |
| &nbsp;&nbsp;&nbsp; **write:application** | 授予用程管理的读/写访问权限 |
| &nbsp;&nbsp;&nbsp; **read:application** | 授予用程管理的读取权限 |
| **sudo** | 允以站管理身份行操作 |
| **(no scope)** | 授予對公開使用者設定檔和公開儲存庫的只讀存取權限 |
| **repo** | 完全控制所有儲存庫 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予所有儲存庫中提交狀態的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **public_repo** | 授予對公開儲存庫的讀/寫存取權限 |
| **admin:repo_hook** | 授予所有儲存庫的 Hooks 存取權限,該權限已包含在 `repo` 範圍中 |
| &nbsp;&nbsp;&nbsp; **write:repo_hook** | 授予對儲存庫 Hooks 的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:repo_hook** | 授予對儲存庫 Hooks 的只讀存取權限 |
| **admin:org** | 授予對組織設定的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **write:org** | 授予對組織設定的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:org** | 授予對組織設定的只讀存取權限 |
| **admin:public_key** | 授予公管理的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **write:public_key** | 授予對公鑰的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:public_key** | 授予對公鑰的只讀存取權限 |
| **admin:org_hook** | 授予對組織級別 Hooks 的完全存取權限 |
| **admin:user_hook** | 授予對使用者級別 Hooks 的完全存取權限 |
| **notification** | 授予通知的完全存取權限 |
| **user** | 授予對使用者個人資料資訊的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **read:user** | 授予對使用者個人資料的讀取權限 |
| &nbsp;&nbsp;&nbsp; **user:email** | 授予對使用者電子電子郵件地址的讀取權限 |
| &nbsp;&nbsp;&nbsp; **user:follow** | 授予存取權限以注/取消關注使用者 |
| **delete_repo** | 授予刪除儲存庫的權限 |
| **package** | 授予對託管包的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **write:package** | 授予包的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:package** | 授予包的讀取權限 |
| &nbsp;&nbsp;&nbsp; **delete:package** | 授予包的刪除權限 |
| **admin:gpg_key** | 授予 GPG 密管理的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **write:gpg_key** | 授予 GPG 密鑰的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:gpg_key** | 授予 GPG 密的只讀存取權限 |
| **admin:application** | 授予用程管理的完全存取權限 |
| &nbsp;&nbsp;&nbsp; **write:application** | 授予用程管理的讀/寫存取權限 |
| &nbsp;&nbsp;&nbsp; **read:application** | 授予用程管理的讀取權限 |
| **sudo** | 允以站管理身份行操作 |
## 客户端类
## 客戶端類
Gitea 支私密和公共客户端类型,[参见 RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.1).
Gitea 支私密和公共客戶端類型,[參見 RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-2.1).
对于公共客端, 允在本地回环地址的重定向 URI 中使用任意端口,例如 `http://127.0.0.1/`。根 [RFC 8252 的建](https://datatracker.ietf.org/doc/html/rfc8252#section-8.3)避免使用 `localhost`
對於公共客端, 允在本地迴環地址的重定向 URI 中使用任意端口,例如 `http://127.0.0.1/`。根 [RFC 8252 的建](https://datatracker.ietf.org/doc/html/rfc8252#section-8.3)避免使用 `localhost`
##
##
**注意:** 该示例中尚未使用 PKCE。
**注意:** 該範例中尚未使用 PKCE。
1. 将用户重定向到授权端点,以得他们的访问资源授:
1. 將使用者重定向到授權端點,以得他們的訪問資源授:
```curl
https://[YOUR-GITEA-URL]/login/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI& response_type=code&state=STATE
```
设置中注册应用程序以获得 `CLIENT_ID`。`STATE` 是一个随机字符串,它将在获得用户授权后发送回您的用程。`state` 参数是可的,但您应该使用它防止 CSRF 攻
設定中註冊應用程式以獲得 `CLIENT_ID`。`STATE` 是一個隨機字符串,它將在獲得使用者授權後發送回您的用程。`state` 參數是可的,但您應該使用它防止 CSRF 攻
![Authorization Page](/authorize.png)
用户将会被询问是否授权给您的用程。如果他同意了授权,用户将会被重定向到 `REDIRECT_URL`,例如:
使用者將會被詢問是否授權給您的用程。如果他同意了授權,使用者將會被重定向到 `REDIRECT_URL`,例如:
```curl
https://[REDIRECT_URI]?code=RETURNED_CODE&state=STATE
```
2. 使用重定向提供的 `code`,您可以求一新的用程和 Refresh Token。Access Token Endpoint 接受 `application/json` 或 `application/x-www-form-urlencoded` 型的 POST 求,例如:
2. 使用重定向提供的 `code`,您可以求一新的用程和 Refresh Token。Access Token Endpoint 接受 `application/json` 或 `application/x-www-form-urlencoded` 型的 POST 求,例如:
```curl
POST https://[YOUR-GITEA-URL]/login/oauth/access_token
@@ -121,8 +121,8 @@ Gitea 支持私密和公共客户端类型,[参见 RFC 6749](https://datatrack
}
```
`CLIENT_SECRET` 是生成给应用程的唯一密钥。请注意,该密钥只会在您使用 Gitea 创建/注册应用程序后出现一次。如果您失了密,您必须在应用程序设置中重新生成密
`CLIENT_SECRET` 是生成給應用程的唯一密鑰。請注意,該密鑰只會在您使用 Gitea 建立/註冊應用程式後出現一次。如果您失了密,您必須在應用程式設定中重新生成密
`access_token` 求中的 `REDIRECT_URI` 必须与 `authorize` 求中的 `REDIRECT_URI` 相符。
`access_token` 求中的 `REDIRECT_URI` 必須與 `authorize` 求中的 `REDIRECT_URI` 相符。
3. 使用 `access_token` 来构造 [API ](development/api-usage.md#oauth2-provider) 以读写用户的资源。
3. 使用 `access_token` 來構造 [API ](api-usage) 以讀寫使用者的資源。

View File

@@ -6,266 +6,268 @@ aliases:
- /zh-tw/faq
---
# 常见问题
# 常見問題
面包含一些常见问题和答案。
面包含一些常見問題和答案。
更多帮助资源,查看所有[持选项](help/support.md)。
更多幫助資源,查看所有[援選項](help/support.md)。
## 1.x 和 1.x.x 下载之间的区别
## 1.x 和 1.x.x 下載之間的區別
以 1.7.x 版本例。
以 1.7.x 版本例。
**注意:**此例也适用于 Docker 像!
**注意:**此例也適用於 Docker 像!
在我的[载页](https://dl.gitea.com/gitea/)上,您看到一 1.7 目,以及 1.7.0、1.7.1、1.7.2、1.7.3、1.7.4、1.7.5 和 1.7.6 的目
在我的[載頁](https://dl.gitea.com/gitea/)上,您看到一 1.7 目,以及 1.7.0、1.7.1、1.7.2、1.7.3、1.7.4、1.7.5 和 1.7.6 的目
1.7 目和 1.7.0 目是**不同**的。1.7 目是在每个合并到[`release/v1.7`](https://github.com/go-gitea/gitea/tree/release/v1.7)分支的提交上建的。
1.7 目和 1.7.0 目是**不同**的。1.7 目是在每個合併到[`release/v1.7`](https://github.com/go-gitea/gitea/tree/release/v1.7)分支的提交上建的。
然而1.7.0 目是在建[`v1.7.0`](https://github.com/go-gitea/gitea/releases/tag/v1.7.0)标签时创建的构建。
然而1.7.0 目是在建[`v1.7.0`](https://github.com/go-gitea/gitea/releases/tag/v1.7.0)標籤時建立的構建。
意味 1.x 的下载会随着提交合到各自的分支而改变(将其视为每个版本的单独的“main”分支
意味 1.x 的下載會隨著提交合到各自的分支而改變(將其視為每個版本的單獨的“main”分支
另一方面1.x.x 的下载应该永远不会改变
另一方面1.x.x 的下載應該永遠不會改變
## 如何 Gogs/GitHub 等移到 Gitea
## 如何 Gogs/GitHub 等移到 Gitea
Gogs 移到 Gitea
Gogs 移到 Gitea
- [Gogs 版本 0.11.46.0418](https://github.com/go-gitea/gitea/issues/4286)
GitHub 移到 Gitea您可以使用 Gitea 置的移表
GitHub 移到 Gitea您可以使用 Gitea 置的移表
为了迁移诸如问题、拉取求等项目,您需要至少入您的用户名
為了遷移諸如問題、拉取求等專案,您需要至少入您的使用者名稱
[Example (requires login)](https://demo.gitea.com/repo/migrate)
GitLab 移到 Gitea您可以使用这个非关联的工具:
GitLab 移到 Gitea您可以使用這個非關聯的工具:
https://github.com/loganinak/MigrateGitlabToGogs
## Gitea 存储文件的位置
<a id="where-does-gitea-store-what-file"></a>
<a id="Gitea儲存文件的位置"></a>
## Gitea 儲存文件的位置
- _`AppWorkPath`_
- `--work-path`标志
- 或者环境变`GITEA_WORK_DIR`
- 或者在构建时设置的内置值
- 或者包含 Gitea 二制文件的目
- `%(APP_DATA_PATH)`数据库、索引器等的默认路径
- `--work-path`標誌
- 或者環境變`GITEA_WORK_DIR`
- 或者在構建時設定的內置值
- 或者包含 Gitea 二制文件的目
- `%(APP_DATA_PATH)`資料庫、索引器等的預設路徑
- `app.ini`中的`APP_DATA_PATH`
- 或者*`AppWorkPath`*`/data`
- _`CustomPath`_定义模板)
- `--custom-path`标志
- 或者环境变`GITEA_CUSTOM`
- 或者在构建时设置的内置值
- _`CustomPath`_模板)
- `--custom-path`標誌
- 或者環境變`GITEA_CUSTOM`
- 或者在構建時設定的內置值
- 或者*`AppWorkPath`*`/custom`
- HomeDir
- Unix环境变`HOME`
- Windows环境变`USERPROFILE`,或者环境变`HOMEDRIVE`+`HOMEPATH`
- Unix環境變`HOME`
- Windows環境變`USERPROFILE`,或者環境變`HOMEDRIVE`+`HOMEPATH`
- RepoRootPath
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径
-*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
- INI配置文件)
- `--config`标志
- 或者在构建时设置的可能置值
- `app.ini`中\[repository]部分的`ROOT`(如果是絕對路徑
-*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相對路徑
- 預設值為`%(APP_DATA_PATH)/gitea-repositories`
- INI設定文件)
- `--config`標誌
- 或者在構建時設定的可能置值
- 或者 _`CustomPath`_`/conf/app.ini`
- SQLite 数据库
- SQLite 資料庫
- app.ini 中 database 部分的 PATH
- 或者`%(APP_DATA_PATH)/gitea.db`
## 看不到克隆 URL 或克隆 URL 不正
## 看不到克隆 URL 或克隆 URL 不正
几个地方可能会导致显示不正
幾個地方可能會導致顯示不正
1. 如果使用反向代理,请确保按照[反向代理指南](../administration/reverse-proxies.md)中的正确说明进行设置
2. 保在`app.ini``server`部分中正确设置`ROOT_URL`
1. 如果使用反向代理,請確保按照[反向代理指南](../administration/reverse-proxies.md)中的正確說明進行設定
2. 保在`app.ini``server`部分中正確設定`ROOT_URL`
如果某些克隆选项未显HTTP/S 或 SSH可以在`app.ini中`
如果某些克隆選項未顯HTTP/S 或 SSH可以在`app.ini中`
- `DISABLE_HTTP_GIT`: 如果设为 true, 将会没有 HTTP/HTTPS
- `DISABLE_SSH`: 如果设为 true, 将会没有 SSH
- `SSH_EXPOSE_ANONYMOUS`: 如果设为 false, SSH 链接将会对匿名用户隐
- `DISABLE_HTTP_GIT`: 如果設為 true, 將會沒有 HTTP/HTTPS
- `DISABLE_SSH`: 如果設為 true, 將會沒有 SSH
- `SSH_EXPOSE_ANONYMOUS`: 如果設為 false, SSH 鏈接將會對匿名使用者隱
## 文件上传失败413 Request Entity Too Large
## 文件上傳失敗413 Request Entity Too Large
反向代理限制文件上大小时,会出现此错误
反向代理限制文件上大小時,會出現此錯誤
使用 nginx 解决此问题,请参阅[反向代理指南](../administration/reverse-proxies.md)。
使用 nginx 解決此問題,請參閱[反向代理指南](../administration/reverse-proxies.md)。
## 自定义模板法加载或运行错误
## 自模板法加載或運行錯誤
Gitea 的自定义模板必须将其添加到正的位置,否 Gitea 将无法找到使用自定义模板。
Gitea 的自模板必須將其添加到正的位置,否 Gitea 將無法找到使用自模板。
模板的正确路径应该相对于`CustomPath`
模板的正確路徑應該相對於`CustomPath`
1. 要找到`CustomPath`在站管理 -> 配置 中查找自定义文件根路
1. 要找到`CustomPath`在站管理 -> 設定 中查找自文件根路
如果找不到,请尝试`echo $GITEA_CUSTOM`
如果找不到,請嘗試`echo $GITEA_CUSTOM`
2. 如果仍然找不到,默认值可以被[计算](faq.md#Gitea存储文件的位置)
3. 如果仍然找不到路径,则可以考[定义 Gitea](../administration/customizing-gitea.md)面,模板添加到正的位置。
2. 如果仍然找不到,預設值可以被計算
3. 如果仍然找不到路徑,則可以考[ Gitea](../administration/customizing-gitea.md)面,模板添加到正的位置。
## Gitea 是否有"GitHub/GitLab Pages"功能?
Gitea 不提供置的 Pages 服器。您需要一个专用的域名提供静态页面,以避免 CSRF 安全风险
Gitea 不提供置的 Pages 服器。您需要一個專用的域名提供靜態頁面,以避免 CSRF 安全風險
对于简单的用法,您可以使用反向代理来重写和提供 Gitea 的原始文件 URL 中的静态内容。
對於簡單的用法,您可以使用反向代理來重寫和提供 Gitea 的原始文件 URL 中的靜態內容。
有一些已可用的第三方服,比如立[pages server](https://codeberg.org/Codeberg/pages-server)的或[caddy plugin](https://github.com/42wim/caddy-gitea),可以提供所需的功能。
有一些已可用的第三方服,比如立[pages server](https://codeberg.org/Codeberg/pages-server)的或[caddy plugin](https://github.com/42wim/caddy-gitea),可以提供所需的功能。
## 活跃用户与禁止登录用户
## 活躍使用者與禁止登入使用者
在 Gitea 中,"活跃用户"是指通过电子邮件激活其帐户的用户
在 Gitea 中,"活躍使用者"是指通過電子郵件激活其帳戶的使用者
"禁止登录用户"是指不允再登到 Gitea 的用户
"禁止登入使用者"是指不允再登到 Gitea 的使用者
## 设置日志记录
## 設定日誌記錄
- [官方文](../administration/logging-config.md)
- [官方文](../administration/logging-config.md)
## 什是 Swagger
## 什是 Swagger
[Swagger](https://swagger.io/) 是 Gitea 用其 API 文的工具。
[Swagger](https://swagger.io/) 是 Gitea 用其 API 文的工具。
所有 Gitea 例都有置的 API法完全禁用它。
但是,您可以在 app.ini 的 api 部分 ENABLE_SWAGGER 设置为 false以禁用其文档显示。
更多信息,请参阅 Gitea 的[API 文](development/api-usage.md)。
所有 Gitea 例都有置的 API法完全禁用它。
但是,您可以在 app.ini 的 api 部分 ENABLE_SWAGGER 設定為 false以禁用其文件顯示。
更多資訊,請參閱 Gitea 的[API 文](development/api-usage.md)。
您可以在上查看最新的 API例如https://gitea.com/api/swagger
可以在上查看`swagger.json`文件的例 https://gitea.com/swagger.v1.json
可以在上查看`swagger.json`文件的例 https://gitea.com/swagger.v1.json
## 调整服务器用公共/私有使用
## 調整伺服器用公共/私有使用
### 防止垃圾邮件发送者
### 防止垃圾郵件發送者
有多方法可以合使用防止垃圾邮件发送者:
有多方法可以合使用防止垃圾郵件發送者:
1.过设置电子邮件域名的白名或黑名
2.过设置一些域名或者 OpenID 白名单(见下文)。
3. 在您的`app.ini``ENABLE_CAPTCHA`设置为`true`并正确配置`RECAPTCHA_SECRET``RECAPTCHA_SITEKEY`
4. `DISABLE_REGISTRATION`设置为`true`并通过 [CLI](../administration/command-line.md)、[API](development/api-usage.md) 或 Gitea 的管理界面创建新用户
1.過設定電子郵件域名的白名或黑名
2.過設定一些域名或者 OpenID 白名單(見下文)。
3. 在您的`app.ini``ENABLE_CAPTCHA`設定為`true`並正確設定`RECAPTCHA_SECRET``RECAPTCHA_SITEKEY`
4. `DISABLE_REGISTRATION`設定為`true`並通過 [CLI](../administration/command-line.md)、[API](development/api-usage.md) 或 Gitea 的管理介面建立新使用者
### 仅允许/阻止特定的电子邮件域名
### 僅允許/阻止特定的電子郵件域名
您可以在`app.ini`中的`[service]`下的配置`EMAIL_DOMAIN_WHITELIST``EMAIL_DOMAIN_BLOCKLIST`
您可以在`app.ini`中的`[service]`下的設定`EMAIL_DOMAIN_WHITELIST``EMAIL_DOMAIN_BLOCKLIST`
### 仅允许/阻止特定的 OpenID 提供商
### 僅允許/阻止特定的 OpenID 提供商
您可以在`app.ini``[openid]`配置`WHITELISTED_URI``BLACKLISTED_URIS`
您可以在`app.ini``[openid]`設定`WHITELISTED_URI``BLACKLISTED_URIS`
**注意** 白名单优先,如果白名非空,忽略黑名
**注意** 白名單優先,如果白名非空,忽略黑名
### 仅允许发布问题的用户
### 僅允許發佈問題的使用者
目前实现这一点的方法是建/修改一具有最大仓库创建限制 0 的用户
目前實現這一點的方法是建/修改一具有最大儲存庫建立限制 0 的使用者
### 受限制的用户
### 受限制的使用者
受限制的用户仅能访问其组织/团队成员和协作所在的容的子集,而忽略组织/仓库等的公共标志
受限制的使用者僅能訪問其組織/團隊成員和協作所在的容的子集,而忽略組織/儲存庫等的公共標誌
例用例:一公司行一需要登的 Gitea 例。大多数仓库是公的(所有同事都可以访问/浏览)。
例用例:一公司行一需要登的 Gitea 例。大多數儲存庫是公的(所有同事都可以訪問/瀏覽)。
在某些情下,某个客户或第三方需要访问特定的仓库,并且只能访问该仓库。通过将此类客户帐户设置为受限制帐户,并使用团队成员身份和/或协作来授予所需的任何访问权限,可以简单地实现这一点,而需使所有容都变为私有。
在某些情下,某個客戶或第三方需要訪問特定的儲存庫,並且只能訪問該儲存庫。通過將此類客戶帳戶設定為受限制帳戶,並使用團隊成員身份和/或協作來授予所需的任何存取權限,可以簡單地實現這一點,而需使所有容都變為私有。
### 用 Fail2ban
### 用 Fail2ban
使用 [Fail2Ban](../administration/fail2ban-setup.md) 监视并阻止基于日志模式的自动登录尝试或其他意行
使用 [Fail2Ban](../administration/fail2ban-setup.md) 監視並阻止基於日誌模式的自動登入嘗試或其他意行
## SSHD vs 建 SSH
## SSHD vs 建 SSH
SSHD 是大多 Unix 系统上内建的 SSH 服器。
SSHD 是大多 Unix 系統上內建的 SSH 服器。
Gitea 提供了自己的 SSH 服器,用在 SSHD 不可用使用。
Gitea 提供了自己的 SSH 服器,用在 SSHD 不可用使用。
## Gitea 运行缓
## Gitea 運行緩
致此问题的最常原因是加载联合头像。
致此問題的最常原因是加載聯合頭像。
您可以通过`app.ini``ENABLE_FEDERATED_AVATAR`设置为`false`来关闭此功能。
您可以透過`app.ini``ENABLE_FEDERATED_AVATAR`設定為`false`來關閉此功能。
有一可能需要更改的选项是在`app.ini``DISABLE_GRAVATAR`设置为`true`
有一可能需要更改的選項是在`app.ini``DISABLE_GRAVATAR`設定為`true`
## 无法创建仓库/文件
## 無法建立儲存庫/文件
请确保 Gitea 具有足够的权限来写入其主目录和数据目录
請確保 Gitea 具有足夠的權限來寫入其主目錄和資料目錄
参见[AppDataPath 和 RepoRootPath](faq.md#Gitea存储文件的位置)
參見AppDataPath 和 RepoRootPath
**适用于 Arch 用户的注意事**在撰本文Arch 软件包的 systemd 文件包含了以下行:
**適用於 Arch 使用者的注意事**在撰本文Arch 套件的 systemd 文件包含了以下行:
`ReadWritePaths=/etc/gitea/app.ini`
这将使得 Gitea 无法写入其他路
這將使得 Gitea 無法寫入其他路
## 翻不正/如何添加更多翻
## 翻不正/如何添加更多翻
们当前的翻是在我的[Crowdin 项目](https://crowdin.com/project/gitea)上众包进行的
們當前的翻是在我的[Crowdin 專案](https://crowdin.com/project/gitea)上眾包進行的
无论您想要更改翻译还是添加新的翻,都需要在 Crowdin 集成中进行,因所有翻译都会被 CI 覆
無論您想要更改翻譯還是添加新的翻,都需要在 Crowdin 整合中進行,因所有翻譯都會被 CI 覆
## 推送子/ Webhook / Actions 未
## 推送子/ Webhook / Actions 未
如果您可以推送但法在主页仪表板上看到推送活,或者推送不触发 Webhook 和 Actions可能是 git 子不工作而致的。
如果您可以推送但法在主頁儀表板上看到推送活,或者推送不觸發 Webhook 和 Actions可能是 git 子不工作而致的。
可能是由以下原因:
可能是由以下原因:
1. Git 子不同步:在站管理面板上行“重新同步所有仓库的 pre-receive、update 和 post-receive 子”
2. Git 仓库(和子)存在一些不支持脚本执行的文件系上(例如由 NAS 挂载),请确保文件系统支持`chmod a+x any-script`
3. 如果您使用的是 Docker请确保 Docker Server而不是客端)的版本 >= 20.10.6
1. Git 子不同步:在站管理面板上行“重新同步所有儲存庫的 pre-receive、update 和 post-receive 子”
2. Git 儲存庫(和子)存在一些不支援腳本執行的文件系上(例如由 NAS 掛載),請確保文件系統支援`chmod a+x any-script`
3. 如果您使用的是 Docker請確保 Docker Server而不是客端)的版本 >= 20.10.6
## SSH 问题
## SSH 問題
如果法通`ssh`访问仓库,但`https`正常工作,请考虑以下情
如果法通`ssh`訪問儲存庫,但`https`正常工作,請考慮以下情
首先,请确保您可以通过 SSH 访问 Gitea。
首先,請確保您可以透過 SSH 訪問 Gitea。
`ssh git@myremote.example`
如果接成功,您应该会收到以下错误消息:
如果接成功,您應該會收到以下錯誤消息:
```
Hi there, You've successfully authenticated, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.
```
如果您收到以上消息但仍然接成功,意味您的 SSH 密**有**由 Gitea 管理。意味着钩子不会运行,在其他一些潜在问题中也包括在
如果您收到以上消息但仍然接成功,意味您的 SSH 密**有**由 Gitea 管理。意味著鉤子不會運行,在其他一些潛在問題中也包括在
如果您无法连接,可能是因您的 SSH 密在本地配置不正
这是针对 SSH 而不是 Gitea 的问题,因此在此不涉及。
如果您無法連接,可能是因您的 SSH 密在本地設定不正
這是針對 SSH 而不是 Gitea 的問題,因此在此不涉及。
### SSH 常见错误
### SSH 常見錯誤
```
Permission denied (publickey).
fatal: Could not read from remote repository.
```
错误表示服务器拒绝登录尝试
请检查以下事
錯誤表示伺服器拒絕登入嘗試
請檢查以下事
- 在客端:
- 保公和私已添加到正的 Gitea 用户
- 确保远程 URL 中有任何问题。特是,请确保 ∂
Git 用户@ 之前的部分)的名称拼写正确
- 保客户端机器上的公和私钥正确无误
- 在服器上:
- 在客端:
- 保公和私已添加到正的 Gitea 使用者
- 確保遠程 URL 中有任何問題。特是,請確保 ∂
Git 使用者@ 之前的部分)的名稱拼寫正確
- 保客戶端機器上的公和私鑰正確無誤
-服器上:
- 确保存储库存在且命名正
- 查系统用户主目中的 `.ssh`录的权限。
- 验证正确的公是否已添加到 `.ssh/authorized_keys` 中。
- 確保儲存庫存在且命名正
- 查系統使用者主目中的 `.ssh`錄的權限。
- 驗證正確的公是否已添加到 `.ssh/authorized_keys` 中。
尝试在 Gitea 管理面板上
嘗試在 Gitea 管理面板上
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`
- 查看 Gitea 日
- 查看 /var/log/auth似的文件)。
- 检查存储库的权限。
- 查看 Gitea 日
- 查看 /var/log/auth似的文件)。
- 檢查儲存庫的權限。
以下是一个示例,其中缺少公共 SSH 密
认证成功,但是其他设置导致 SSH 无法访问正确
存储库
以下是一個範例,其中缺少公共 SSH 密
認證成功,但是其他設定導致 SSH 無法訪問正確
儲存庫
```
fatal: Could not read from remote repository.
@@ -274,34 +276,34 @@ Please make sure you have the correct access rights
and the repository exists.
```
这种情况下,请检查以下设置
這種情況下,請檢查以下設定
- 在服器上:
- `git`统用户设置了可用的 shell
- 使用`getent passwd git | cut -d: -f7`进行验证
- 可以使用`usermod``chsh`行修改。
- `.ssh/authorized_keys`中的`gitea serv`命令使用
确的配置文件。
-服器上:
- `git`統使用者設定了可用的 shell
- 使用`getent passwd git | cut -d: -f7`進行驗證
- 可以使用`usermod``chsh`行修改。
- `.ssh/authorized_keys`中的`gitea serv`命令使用
確的設定文件。
## 迁移带有标签的存储库后缺失发布版本
## 遷移帶有標籤的儲存庫後缺失發佈版本
迁移带有所有标签的存储库,您需要执行两个操作:
遷移帶有所有標籤的儲存庫,您需要執行兩個操作:
- 推送标签到存储库
- 推送標籤到儲存庫
```
git push --tags
```
- 在 Gitea 中重新同步所有存储库的标签
- 在 Gitea 中重新同步所有儲存庫的標籤
```
gitea admin repo-sync-releases
```
## LFS 问题
## LFS 問題
针对涉及 LFS 数据上传的问题
針對涉及 LFS 資料上傳的問題
```
batch response: Authentication required: Authorization error: <GITEA_LFS_URL>/info/lfs/objects/batch
@@ -309,125 +311,125 @@ Check that you have proper access to the repository
error: failed to push some refs to '<GIT_REPO_URL>'
```
`app.ini`文件中的`LFS_HTTP_AUTH_EXPIRY`值。
`app.ini`文件中的`LFS_HTTP_AUTH_EXPIRY`值。
默认情况LFS 令牌在 20 分钟后过期。如果您的接速度慢或文件大(或者都是),可能法在时间限制完成上
預設情況LFS 令牌在 20 分鐘後過期。如果您的接速度慢或文件大(或者都是),可能法在時間限制完成上
您可以此值设置为`60m``120m`
您可以此值設定為`60m``120m`
## 如何在启动 Gitea 之前创建用户
## 如何在啟動 Gitea 之前建立使用者
Gitea 提供了一子命令`gitea migrate`初始化数据库,然您可以使用[管理 CLI 命令](../administration/command-line.md#admin)像正常情下添加用户
Gitea 提供了一子命令`gitea migrate`初始化資料庫,然您可以使用[管理 CLI 命令](../administration/command-line.md#admin)像正常情下添加使用者
## 如何用密重置
## 如何用密重置
有密重置的设置。当配置了[件服](../administration/email-setup.md),密重置将自动启用;否则将被禁用。
有密重置的設定。當設定了[件服](../administration/email-setup.md),密重置將自動啟用;否則將被禁用。
## 如何更改用户的密
## 如何更改使用者的密
-管理,您可以更改任何用户的密码(并可选择强制其在下次登录时更改密...
- 到您的`站管理 -> 用户账户`页面并编辑用户
-管理,您可以更改任何使用者的密碼(並可選擇強制其在下次登入時更改密...
- 到您的`站管理 -> 用戶賬戶`頁面並編輯使用者
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
注意,大多命令需要一[局标志](../administration/command-line.md#全局选项)指向正确的配置
注意,大多命令需要一[域標誌](../administration/command-line.md#全域選項)指向正確的設定
-**用户**,您可以更改密...
-**使用者**,您可以更改密...
- 在您的账户`设置 -> 账户`面(此方法**需要**您知道前密)。
- 使用`忘记密码`接。
- 在您的帳號`設定 -> 帳號`面(此方法**需要**您知道前密)。
- 使用`忘記密碼`接。
如果`忘记密码/账户恢复`面被禁用,请联系管理员配置[件服](../administration/email-setup.md)。
如果`忘記密碼/賬戶恢復`面被禁用,請聯繫管理員設定[件服](../administration/email-setup.md)。
## 为什么我的 Markdown 显示错误
## 為什麼我的 Markdown 顯示錯誤
在 Gitea 版本 `1.11` 中,我们转换为使用[goldmark](https://github.com/yuin/goldmark)行 Markdown 渲染,它符合[CommonMark](https://commonmark.org/)标准
在 Gitea 版本 `1.11` 中,我們轉換為使用[goldmark](https://github.com/yuin/goldmark)行 Markdown 渲染,它符合[CommonMark](https://commonmark.org/)標準
如果您在版本`1.11`之前的 Markdown 正常工作,但在升级后无法正常工作,请仔细阅读 CommonMark 规范,看看问题是由错误还是非容的法引起的。
如果您在版本`1.11`之前的 Markdown 正常工作,但在升級後無法正常工作,請仔細閱讀 CommonMark 規範,看看問題是由錯誤還是非容的法引起的。
如果是者,通常规范中会列出一符合标准的替代方法。
如果是者,通常規範中會列出一符合標準的替代方法。
## 使用 MySQL 行升级时出现的错误
## 使用 MySQL 行升級時出現的錯誤
如果在使用 MySQL 升 Gitea 收到以下错误
如果在使用 MySQL 升 Gitea 收到以下錯誤
> `ORM engine initialization failed: migrate: do migrate: Error: 1118: Row size too large...`
请运`gitea doctor convert`对数据库中的每个表运`ALTER TABLE table_name ROW_FORMAT=dynamic;`
請運`gitea doctor convert`對資料庫中的每個表運`ALTER TABLE table_name ROW_FORMAT=dynamic;`
潜在问题是默认行格式分配给每个表的索引空
太小。Gitea 要求其表的`ROWFORMAT``DYNAMIC`
潛在問題是預設行格式分配給每個表的索引空
太小。Gitea 要求其表的`ROWFORMAT``DYNAMIC`
如果收到包含`Error 1071: Specified key was too long; max key length is 1000 bytes...`
错误行,表示您正在尝试在使用 ISAM 引擎的表上行 Gitea。管在先前版本的 Gitea 中可能是巧能工作的,但它未得到官方支
您必使用 InnoDB。您应该对数据库中的每个表运`ALTER TABLE table_name ENGINE=InnoDB;`
錯誤行,表示您正在嘗試在使用 ISAM 引擎的表上行 Gitea。管在先前版本的 Gitea 中可能是巧能工作的,但它未得到官方支
您必使用 InnoDB。您應該對資料庫中的每個表運`ALTER TABLE table_name ENGINE=InnoDB;`
## 为什么 Emoji 只显示占位符或单色图
## 為什麼 Emoji 只顯示佔位符或單色圖
Gitea 需要系统或浏览器安其中一受支的 Emoji 字,例如 Apple Color Emoji、Segoe UI Emoji、Segoe UI Symbol、Noto Color Emoji 和 Twemoji Mozilla。通常操作系统应该已经提供了其中一个字体,但特是在 Linux 上,可能需要手动安装它们
Gitea 需要系統或瀏覽器安其中一受支的 Emoji 字,例如 Apple Color Emoji、Segoe UI Emoji、Segoe UI Symbol、Noto Color Emoji 和 Twemoji Mozilla。通常操作系統應該已經提供了其中一個字體,但特是在 Linux 上,可能需要手動安裝它們
## SystemD 和 Docker 上的标准输出日
## SystemD 和 Docker 上的標準輸出日
SystemD 上的标准输出默认会写入日志记录中。您可以尝试使用 `journalctl``journalctl -u gitea``journalctl <path-to-gitea-binary>`查看。
SystemD 上的標準輸出預設會寫入日誌記錄中。您可以嘗試使用 `journalctl``journalctl -u gitea``journalctl <path-to-gitea-binary>`查看。
似地Docker 上的标准输出可以使用`docker logs <container>`查看。
似地Docker 上的標準輸出可以使用`docker logs <container>`查看。
要收集日志以进行帮助和问题报告,请参阅[支持选项](help/support.md)。
要收集日誌以進行幫助和問題報告,請參閱[支援選項](help/support.md)。
## 初始日志记录
## 初始日誌記錄
在 Gitea 读取配置文件并设置其日志记录之前,它会将一些内容记录到标准输出,以帮助调试日志记录无法工作的情
在 Gitea 讀取設定文件並設定其日誌記錄之前,它會將一些內容記錄到標準輸出,以幫助調試日誌記錄無法工作的情
您可以通过设置`--quiet``-q`选项来停止此日志记录。请注意,这只会在 Gitea 设置自己的日志记录之前停止日志记录
您可以透過設定`--quiet``-q`選項來停止此日誌記錄。請注意,這只會在 Gitea 設定自己的日誌記錄之前停止日誌記錄
如果您告了错误或问题,必提供这些信息以恢初始日志记录
如果您告了錯誤或問題,必提供這些資訊以恢初始日誌記錄
只有在完全配置了所有容之,您才应该设置此选项
只有在完全設定了所有容之,您才應該設定此選項
## 在数据库启动期间出现有关结构默认值的警告
## 在資料庫啟動期間出現有關結構預設值的警告
,在迁移过程中,列和默认值可能在数据库架构中保持不
可能会导致警告,例如:
,在遷移過程中,列和預設值可能在資料庫架構中保持不
可能會導致警告,例如:
```
2020/08/02 11:32:29 ...rm/session_schema.go:360:Sync() [W] Table user Column keep_activity_private db default is , struct default is 0
```
可以安全地忽略些警告,但您可以通过让 Gitea 重新创建这些表停止些警告,使用以下命令:
可以安全地忽略些警告,但您可以透過讓 Gitea 重新建立這些表停止些警告,使用以下命令:
```
gitea doctor recreate-table user
```
这将导致 Gitea 重新创建用户表并将旧数据复制到新表中,
并正确设置默认值。
這將導致 Gitea 重新建立使用者表並將舊資料複製到新表中,
並正確設定預設值。
您可以使用以下命令要求 Gitea 重新创建多个表:
您可以使用以下命令要求 Gitea 重新建立多個表:
```
gitea doctor recreate-table table1 table2 ...
```
如果您希望 Gitea 重新建所有表,使用以下命令:
如果您希望 Gitea 重新建所有表,使用以下命令:
```
gitea doctor recreate-table
```
运行这些命令之前,烈建议您备份数据库
運行這些命令之前,烈建議您備份資料庫
## 为什么查看文件时制表符/缩进显示错误
## 為什麼查看文件時製表符/縮進顯示錯誤
如果您正在使用 Cloudflare请在仪表板中关闭自动缩小选项
如果您正在使用 Cloudflare請在儀表板中關閉自動縮小選項
`Speed` -> `Optimization` -> 在 `Auto-Minify` 设置中取消`HTML`
`Speed` -> `Optimization` -> 在 `Auto-Minify` 設定中取消`HTML`
## 如何从磁盘采用存储库
## 如何從磁盤採用儲存庫
- 您的(裸)存储库添加到正的位置,即您的配置所在的地方(`repository.ROOT`保它们位于正确的布`<REPO_ROOT>/[user]/[repo].git`
- **注意:**目名必须为小写
-可以在`<ROOT_URL>/admin/config`检查存储库根路
- 保存在要采用存储库的用户/组织
-管理员,转`<ROOT_URL>/admin/repos/unadopted`搜索。
- 用户也可以通过配置[`ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES`](../administration/config-cheat-sheet.md#仓库) 获得类似的限。
- 如果上述步都正确执行,您应该能够选择要采用的存储库
- 如果有找到存储库,请启用[调试日志记录](../administration/config-cheat-sheet.md#仓库)以查是否有特定错误
- 您的(裸)儲存庫添加到正的位置,即您的設定所在的地方(`repository.ROOT`保它們位於正確的佈`<REPO_ROOT>/[user]/[repo].git`
- **注意:**目名必須為小寫
-可以在`<ROOT_URL>/admin/config`檢查儲存庫根路
- 保存在要採用儲存庫的使用者/組織
-管理員,轉`<ROOT_URL>/admin/repos/unadopted`搜索。
- 使用者也可以透過設定[`ALLOW_ADOPTION_OF_UNADOPTED_REPOSITORIES`](../administration/config-cheat-sheet.md) 獲得類似的限。
- 如果上述步都正確執行,您應該能夠選擇要採用的儲存庫
- 如果有找到儲存庫,請啟用[調試日誌記錄](../administration/config-cheat-sheet.md)以查是否有特定錯誤

View File

@@ -6,64 +6,64 @@ aliases:
- /zh-tw/seek-help
---
# 支持选项
# 支援選項
- [费商业支持](https://about.gitea.com/)
- [費商業支援](https://about.gitea.com/)
- [Discord](https://discord.gg/Gitea)
- [论坛](https://forum.gitea.com/)
- [論壇](https://forum.gitea.com/)
- [Matrix](https://matrix.to/#/#gitea-space:matrix.org)
- 注意:大多 Matrix 道都 Discord 中的对应频道桥接,可能在桥接过程中会出现一定程度的不定性。
- 中文支
- [Discourse 中文分](https://forum.gitea.com/c/5-category/5)
- 注意:大多 Matrix 道都 Discord 中的對應頻道橋接,可能在橋接過程中會出現一定程度的不定性。
- 中文支
- [Discourse 中文分](https://forum.gitea.com/c/5-category/5)
- QQ 群 328432459
# Bug
# Bug
如果您发现了 Bug在 GitHub 上 [创建一个问题](https://github.com/go-gitea/gitea/issues)。
如果您發現了 Bug在 GitHub 上 [建立一個問題](https://github.com/go-gitea/gitea/issues)。
**注意:**求支持时,可能需要准备以下信息,以便助者得所需的所有信息
**注意:**求支援時,可能需要準備以下資訊,以便助者得所需的所有資訊
1. 您的 `app.ini`任何敏感数据进行必要的清除)。
2. 您看到的任何错误消息。
3. Gitea 日以及与情况相关的所有其他日
- 收集 `trace` / `debug` 级别的日更有用(参见下一)。
- 在使用 systemd ,使用 `journalctl --lines 1000 --unit gitea` 收集日
- 在使用 Docker ,使用 `docker logs --tail 1000 <gitea-container>` 收集日
4. 可重的步,以便他人能更快速、更容易地重和理解问题
- [demo.gitea.com](https://demo.gitea.com) 可用于重现问题
5. 如果遇到慢速/起/死锁等问题,请在出现问题时报告堆栈跟踪
到 "Site Admin" -> "Monitoring" -> "Stacktrace" -> "Download diagnosis report"。
1. 您的 `app.ini`任何敏感資料進行必要的清除)。
2. 您看到的任何錯誤消息。
3. Gitea 日以及與情況相關的所有其他日
- 收集 `trace` / `debug` 級別的日更有用(參見下一)。
- 在使用 systemd ,使用 `journalctl --lines 1000 --unit gitea` 收集日
- 在使用 Docker ,使用 `docker logs --tail 1000 <gitea-container>` 收集日
4. 可重的步,以便他人能更快速、更容易地重和理解問題
- [demo.gitea.com](https://demo.gitea.com) 可用於重現問題
5. 如果遇到慢速/起/死鎖等問題,請在出現問題時報告堆棧跟蹤
到 "Site Admin" -> "Monitoring" -> "Stacktrace" -> "Download diagnosis report"。
# 高 Bug 告提示
# 高 Bug 告提示
## 更多日志的配置选项
## 更多日誌的設定選項
默认情况下,日`info` 级别输出到控制
如果您需要设置日志级别和/或文件中收集日
您只需以下配置复制到您的 `app.ini` 中(除所有其他 `[log]` 部分),
后您将在 Gitea 的日志目录中找到 `*.log` 文件(默认为 `%(GITEA_WORK_DIR)/log`)。
預設情況下,日`info` 級別輸出到控制
如果您需要設定日誌級別和/或文件中收集日
您只需以下設定複製到您的 `app.ini` 中(除所有其他 `[log]` 部分),
後您將在 Gitea 的日誌目錄中找到 `*.log` 文件(預設為 `%(GITEA_WORK_DIR)/log`)。
```ini
; 要示所有 SQL 日,您可以在 [database] 部分中置 LOG_SQL=true
; 要示所有 SQL 日,您可以在 [database] 部分中置 LOG_SQL=true
[log]
LEVEL=debug
MODE=console,file
```
## 使用命令行收集堆栈跟踪
## 使用命令行收集堆棧跟蹤
Gitea 可以使用 Golang 的 pprof 理程和工具链来收集堆栈跟踪和其他运行时信息
Gitea 可以使用 Golang 的 pprof 理程和工具鏈來收集堆棧跟蹤和其他運行時資訊
如果 Web UI 停止工作,您可以尝试通过命令行收集堆栈跟踪
如果 Web UI 停止工作,您可以嘗試通過命令行收集堆棧跟蹤
1. 设置 app.ini
1. 設定 app.ini
```
[server]
ENABLE_PPROF = true
```
2. 重新启动 Gitea
2. 重新啟動 Gitea
3. 尝试触发 bug当请求卡住一段时间,使用或浏览器访问:获取堆栈跟踪
3. 嘗試觸發 bug當請求卡住一段時間,使用或瀏覽器訪問:獲取堆棧跟蹤
`curl http://127.0.0.1:6060/debug/pprof/goroutine?debug=1`

View File

@@ -6,45 +6,45 @@ sidebar_position: 10
# 關於 Gitea
Gitea 是一個輕量級的 DevOps 平台軟體。從開發計劃到產品成型的整個軟體生命週期,他都能夠高效而輕鬆地幫助團隊和開發者。包括 Git 託管、碼審查、團隊協作、軟體包註冊和 CI/CD。它與 GitHub、Bitbucket 和 GitLab 等比較類似。
Gitea 最初是從 [Gogs](http://gogs.io) 分支而來,幾乎所有碼都已更改。對於我們 Fork 的原因可以看
Gitea 是一個輕量級的 DevOps 平台軟體。從開發計劃到產品成型的整個軟體生命週期,他都能夠高效而輕鬆地幫助團隊和開發者。包括 Git 託管、程式碼審查、團隊協作、套件註冊和 CI/CD。它與 GitHub、Bitbucket 和 GitLab 等比較類似。
Gitea 最初是從 [Gogs](http://gogs.io) 分支而來,幾乎所有程式碼都已更改。對於我們 Fork 的原因可以看
[這裡](https://blog.gitea.com/welcome-to-gitea/)。
## 目標
Gitea 的首要目標是建一個極易安裝,運行非常快速,安裝和使用體驗良好的自建 Git 服務。
Gitea 的首要目標是建一個極易安裝,運行非常快速,安裝和使用體驗良好的自建 Git 服務。
採用 Go 作為後端語言,只需生成一個可執行程即可。
Linux, macOS 和 Windows 等多平台,
主流的 x86amd64、
採用 Go 作為後端語言,只需生成一個可執行程即可。
Linux, macOS 和 Windows 等多平台,
主流的 x86amd64、
ARM 和 PowerPC 等架構。
## 功能特性
- 碼託管Gitea 支持創建和管理庫、瀏覽提交歷史和代碼文件、審查和合併碼提交、管理協作者、管理分支等。它還支許多常見的 Git 特性例如標籤、Cherry-pick、hook、集成協作工具等。
- 輕量級和快速Gitea 的設計目標之一就是輕量級和快速響應。它不像一些大型的碼託管平台那樣臃腫因此在性能方面表現出色適用於資源有限的伺服器環境。由於其輕量級設計Gitea 在資源消耗方面相對較低,可以在資源有限的環境下運行良好。
- 易於部署和維護:輕鬆地部署在各種伺服器上,不需要複雜的配置和依賴。這使得個人開發者或小團隊可以方便地設和管理自己的 Git 服務。
- 安全性Gitea 注重安全性,提供了用戶權限管理、訪問控制列表等功能,可以確保代碼和數據的安全性。
- 碼評審:碼評審同時支 Pull Request workflow 和 AGit workflow。評審人可以在線瀏覽碼,並提交評審意見或問題。提交者可以接收到評審意見,並在線回復或修改代碼。代碼評審可以幫助用戶和企業提高碼質量。
- CI/CDGitea Actions 支 CI/CD 功能,該功能容 GitHub Actions用戶可以採用熟悉的 YAML 格式編寫 workflows也可以重用大量的已有的 Actions 插件。Actions 插件支持從任意的 Git 網站中下載。
- 項目管理Gitea 過看板和工單來跟一個項目的需求,功能和 bug。工單支分支,標籤、里程碑、指派、時間跟、到期時間、依賴關係等功能。
- 品庫Gitea 支超過 20 種不同種類的公有或私有軟體包管理包括Cargo, Chef, Composer, Conan, Conda, Container, Helm, Maven, npm, NuGet, Pub, PyPI, RubyGems, Vagrant 等
- 開源社區支Gitea 是一個基於 MIT 許可證的開源項目Gitea 擁有一個活躍的開源社區,能夠持續地進行開發和改進,同時也積極接受社區貢獻,保持了平台的更新和創新。
- 多語言支Gitea 提供多種語言面,適應全球範圍內的用戶,促進了國際化和本地化。
- 程式碼託管Gitea 支援建立和管理儲存庫、瀏覽提交歷史和程式碼檔案、審查和合併程式碼提交、管理協作者、管理分支等。它還支許多常見的 Git 特性例如標籤、Cherry-pick、hook、整合協作工具等。
- 輕量級和快速Gitea 的設計目標之一就是輕量級和快速響應。它不像一些大型的程式碼託管平台那樣臃腫因此在性能方面表現出色適用於資源有限的伺服器環境。由於其輕量級設計Gitea 在資源消耗方面相對較低,可以在資源有限的環境下運行良好。
- 易於部署和維護:輕鬆地部署在各種伺服器上,不需要複雜的設定和依賴。這使得個人開發者或小團隊可以方便地設和管理自己的 Git 服務。
- 安全性Gitea 注重安全性,提供了使用者權限管理、存取控制清單等功能,可以確保程式碼和資料的安全性。
- 程式碼評審:程式碼評審同時支 Pull Request workflow 和 AGit workflow。評審人可以在線瀏覽程式碼,並提交評審意見或問題。提交者可以接收到評審意見,並在線回復或修改程式碼。程式碼評審可以幫助使用者和企業提高程式碼質量。
- CI/CDGitea Actions 支 CI/CD 功能,該功能容 GitHub Actions使用者可以採用熟悉的 YAML 格式編寫 workflows也可以重用大量的已有的 Actions 外掛。Actions 外掛支援從任意的 Git 網站中下載。
- 專案管理Gitea 過看板和工單來跟一個專案的需求,功能和 bug。工單支分支,標籤、里程碑、指派、時間跟、到期時間、依賴關係等功能。
- 品庫Gitea 支超過 20 種不同種類的公有或私有套件管理包括Cargo, Chef, Composer, Conan, Conda, Container, Helm, Maven, npm, NuGet, Pub, PyPI, RubyGems, Vagrant 等
- 開源社區支Gitea 是一個基於 MIT 許可證的開源專案Gitea 擁有一個活躍的開源社區,能夠持續地進行開發和改進,同時也積極接受社區貢獻,保持了平台的更新和創新。
- 多語言支Gitea 提供多種語言面,適應全球範圍內的使用者,促進了國際化和本地化。
更多功能特性詳見https://docs.gitea.com/installation/comparison#general-features
## 系統要求
- 樹莓派 Pi3 功能強大,足以運行 Gitea 來處理小型工作負載。
- 對於小型團隊/項目而言2 個 CPU 內核和 1GB 內存通常就足夠了。
- 在 UNIX 系統上Gitea 應使用專用的非 root 系統賬戶運行。
- 注意Gitea 管理 `~/.ssh/authorized_keys` 文件。以普通用戶身份運行 Gitea 可能會破壞該用戶的登能力。
- 對於小型團隊/專案而言2 個 CPU 內核和 1GB 內存通常就足夠了。
- 在 UNIX 系統上Gitea 應使用專用的非 root 系統帳號運行。
- 注意Gitea 管理 `~/.ssh/authorized_keys` 文件。以普通使用者身份運行 Gitea 可能會破壞該使用者的登能力。
- [Git](https://git-scm.com/) 需要 2.0.0 或更高版本。
- [Git Large File Storage](https://git-lfs.github.com/) 如果啟用,且 Git 版本大於等於 2.1.2,則該選項可用
- 如果 Git 版本大於等於 2.18,將自動啟用 Git 提交歷史圖形化展示功能
## 瀏覽器支
## 瀏覽器支
- 最後 2 個版本的 Chrome、Firefox、Safari 和 Edge
- Firefox ESR
@@ -57,17 +57,17 @@ ARM 和 PowerPC 等架構。
- [jQuery](https://jquery.com)
- [Fomantic UI](https://fomantic-ui.com)
- [Vue3](https://vuejs.org)
- 更多件參見 package.json
- 更多件參見 package.json
- 編輯器:
- [CodeMirror](https://codemirror.net)
- [EasyMDE](https://github.com/Ionaru/easy-markdown-editor)
- [Monaco Editor](https://microsoft.github.io/monaco-editor)
- 數據庫驅動:
- 資料庫驅動:
- [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
- [github.com/lib/pq](https://github.com/lib/pq)
- [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
- [github.com/denisenkom/go-mssqldb](https://github.com/denisenkom/go-mssqldb)
## 集成支持
## 整合支援
訪問 [Awesome Gitea](https://gitea.com/gitea/awesome-gitea/) 獲得更多的第三方集成支持
前往 [Awesome Gitea](https://gitea.com/gitea/awesome-gitea/) 獲得更多的第三方整合支援

View File

@@ -6,99 +6,99 @@ aliases:
- /zh-tw/comparison
---
# 比 Gitea 其它 Git 管工具
# 比 Gitea 其它 Git 管工具
这里列出了 Gitea 其它一些 Git 管工具之间的异同,以便确认 Gitea 是否能够满足您的需求。
這裡列出了 Gitea 其它一些 Git 管工具之間的異同,以便確認 Gitea 是否能夠滿足您的需求。
注意,此列表中的某些表可能已经过时,因为我们并没有定期查其它品的功能是否有所更改。你可以前往 [Github issue](https://github.com/go-gitea/gitea/issues) 来帮助我更新过时的内容,感
注意,此列表中的某些表可能已經過時,因為我們並沒有定期查其它品的功能是否有所更改。你可以前往 [Github issue](https://github.com/go-gitea/gitea/issues) 來幫助我更新過時的內容,感
_表格中的符号含义:_
_表格中的符號含義:_
- _✓ - 支_
- _✓ - 支_
- _ - 部分支_
- _ - 部分支_
- _✘ - 不支_
- _✘ - 不支_
- _⚙ - 由第三方服务或插件支持_
- _⚙ - 由第三方服務或外掛支援_
#### 主要特性
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| -------------------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
| 源免 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 支持多种数据库 | ✓ | ✓ | ✘ | | | ✓ | ✓ |
| 支持多种操作系 | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ |
| 升级简便 | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 可观测性 | **✘** | ✘ | ✓ | ✓ | ✓ | ✓ | ? |
| 支第三方渲染工具 | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ? |
| 源免 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
| 低資源開銷 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 支援多種資料庫 | ✓ | ✓ | ✘ | | | ✓ | ✓ |
| 支援多種操作系 | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ |
| 升級簡便 | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 可觀測性 | **✘** | ✘ | ✓ | ✓ | ✓ | ✓ | ? |
| 支第三方渲染工具 | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ? |
| WebAuthn (2FA) | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ? |
| 展 API | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 内置软件包/容器注册中心 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 同步提交到外部仓库 (push mirror) | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 同步外部仓库的提交 (pull mirror) | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ? |
| 色和深色主 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ? |
| 自定义主题支持 | ✓ | ✓ | ✘ | ✘ | ✘ | ✓ | ✘ |
| 支 Markdown | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支 CSV | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ? |
| Git 驱动的静态 pages | [⚙️][gitea-pages-server], [⚙️][gitea-caddy-plugin] | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| Git 驱动的集成化 wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ (cloud only) | ✘ |
| 展 API | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 內置套件/容器註冊中心 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 同步提交到外部儲存庫 (push mirror) | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 同步外部儲存庫的提交 (pull mirror) | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ? |
| 色和深色主 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ? |
| 自訂主題支援 | ✓ | ✓ | ✘ | ✘ | ✘ | ✓ | ✘ |
| 支 Markdown | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支 CSV | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ? |
| Git 驅動的靜態 pages | [⚙️][gitea-pages-server], [⚙️][gitea-caddy-plugin] | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| Git 驅動的整合化 wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ (cloud only) | ✘ |
| 部署令牌 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 仓库写权限令牌 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 儲存庫寫權限令牌 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| RSS Feeds | ✓ | ✘ | ✓ | ✘ | ✘ | ✘ | ✘ |
| 置 CI/CD | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 子组织:组织内的组织 | [](https://github.com/go-gitea/gitea/issues/1872) | ✘ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 多例交互 | [/](https://github.com/go-gitea/gitea/issues/18240) | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
| Markdown 绘图 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| Markdown 数学公式 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 置 CI/CD | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 子組織:組織內的組織 | [](https://github.com/go-gitea/gitea/issues/1872) | ✘ | ✘ | ✓ | ✓ | ✘ | ✓ |
| 多例交互 | [/](https://github.com/go-gitea/gitea/issues/18240) | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
| Markdown 繪圖 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| Markdown 數學公式 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
#### 代码管理
#### 程式碼管理
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| -------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
| 儲存庫主題描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 儲存庫內程式碼搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全域程式碼搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
| Git LFS 2.0 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 组织里程碑 | [](https://github.com/go-gitea/gitea/issues/14622) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 粒度用户角色 | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 提交人的身份验证 | | ✘ | ? | ✓ | ✓ | ✓ | ✘ |
| GPG 名的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SSH 名的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ? |
| 拒未通过验证的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 外部仓库迁移 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 仓库活跃度页面 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 組織里程碑 | [](https://github.com/go-gitea/gitea/issues/14622) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 粒度使用者角色 | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 提交人的身份驗證 | | ✘ | ? | ✓ | ✓ | ✓ | ✘ |
| GPG 名的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SSH 名的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ? |
| 拒未通過驗證的提交 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 外部儲存庫遷移 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 儲存庫活躍度頁面 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 分支管理 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 建立新分支 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 在线代码编辑 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 提交的统计图表 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 模板仓库 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✘ |
| 在線程式碼編輯 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 提交的統計圖表 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 模板儲存庫 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✘ |
| Git Blame | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 可视化镜像变化 | ✓ | ✘ | ✓ | ? | ? | ? | ? |
| 可視化鏡像變化 | ✓ | ✘ | ✓ | ? | ? | ? | ? |
#### 工管理
#### 工管理
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| ------------------- | -------------------------------------------------- | --------------------------------------------- | --------- | ----------------------------------------------------------------------- | --------- | -------------- | ------------ |
| 工单跟踪 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ (cloud only) | ✘ |
| 工模板 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 标签 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 时间跟踪 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 支持多个负责人 | ✓ | ✘ | ✓ | ✘ | ✓ | ✘ | ✘ |
| 关联的工 | ✘ | ✘ | | [](https://docs.gitlab.com/ce/user/project/issues/related_issues.html) | ✓ | ✘ | ✘ |
| 私密工 | [](https://github.com/go-gitea/gitea/issues/3217) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 评论反馈 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 锁定讨论 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工单批处理 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工看板 | [](https://github.com/go-gitea/gitea/pull/8346) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 从工单创建分支 | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 从评论创建工单 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 工单全局搜索 | [](https://github.com/go-gitea/gitea/issues/2434) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 工单依赖关系 | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 通 Email 创建工单 | [](https://github.com/go-gitea/gitea/issues/6226) | [](https://github.com/gogs/gogs/issues/2602) | ✘ | ✓ | ✓ | ✓ | ✘ |
| 服务台 | [](https://github.com/go-gitea/gitea/issues/6219) | ✘ | ✘ | [](https://gitlab.com/groups/gitlab-org/-/epics/3103) | ✓ | ✘ | ✘ |
| 工單跟蹤 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ (cloud only) | ✘ |
| 工模板 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 標籤 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 時間跟蹤 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 支援多個負責人 | ✓ | ✘ | ✓ | ✘ | ✓ | ✘ | ✘ |
| 關聯的工 | ✘ | ✘ | | [](https://docs.gitlab.com/ce/user/project/issues/related_issues.html) | ✓ | ✘ | ✘ |
| 私密工 | [](https://github.com/go-gitea/gitea/issues/3217) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 評論反饋 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 鎖定討論 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工單批處理 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工看板 | [](https://github.com/go-gitea/gitea/pull/8346) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 從工單建立分支 | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 從評論建立工單 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 工搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 工單全域搜索 | [](https://github.com/go-gitea/gitea/issues/2434) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 工單依賴關係 | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 通 Email 建立工單 | [](https://github.com/go-gitea/gitea/issues/6226) | [](https://github.com/gogs/gogs/issues/2602) | ✘ | ✓ | ✓ | ✓ | ✘ |
| 服務檯 | [](https://github.com/go-gitea/gitea/issues/6219) | ✘ | ✘ | [](https://gitlab.com/groups/gitlab-org/-/epics/3103) | ✓ | ✘ | ✘ |
#### Pull/Merge requests
@@ -107,34 +107,34 @@ _表格中的符号含义:_
| Pull/Merge requests | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Squash merging | ✓ | ✘ | ✓ | [](https://docs.gitlab.com/ce/user/project/merge_requests/squash_and_merge.html) | ✓ | ✓ | ✓ |
| Rebase merging | ✓ | ✓ | ✓ | ✘ | | ✘ | ✓ |
| 评论 Pull/Merge request 中的某行代码 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 指定 Pull/Merge request 的审核人 | ✓ | ✘ | | ✓ | ✓ | ✓ | ✓ |
| 解 Merge 突 | [](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 限制某些用户的 push 和 merge 限 | ✓ | ✘ | ✓ | | ✓ | ✓ | ✓ |
| 評論 Pull/Merge request 中的某行程式碼 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 指定 Pull/Merge request 的審覈人 | ✓ | ✘ | | ✓ | ✓ | ✓ | ✓ |
| 解 Merge 突 | [](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 限制某些使用者的 push 和 merge 限 | ✓ | ✘ | ✓ | | ✓ | ✓ | ✓ |
| 回退某些 commits 或 merge request | [](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| Pull/Merge requests 模板 | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 查看 Cherry-picking 的更改 | [](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
| 下 Patch | ✓ | ✘ | ✓ | ✓ | ✓ | [/](https://jira.atlassian.com/plugins/servlet/mobile#issue/BCLOUD-8323) | ✘ |
| 下 Patch | ✓ | ✘ | ✓ | ✓ | ✓ | [/](https://jira.atlassian.com/plugins/servlet/mobile#issue/BCLOUD-8323) | ✘ |
| Merge queues | ✘ | ✘ | ✓ | ✘ | ✓ | ✘ | ✘ |
#### 第三方集成
#### 第三方整合
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| -------------------------- | -------------------------------------------------- | --------------------------------------------- | --------- | --------- | --------- | --------- | ------------ |
| 支 Webhook | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 自定义 Git 子 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 集成 AD / LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支持多个 LDAP / AD 服 | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
| LDAP 用户同步 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支 Webhook | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 自 Git 子 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 整合 AD / LDAP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支援多個 LDAP / AD 服 | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
| LDAP 使用者同步 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SAML 2.0 service provider | [](https://github.com/go-gitea/gitea/issues/5512) | [](https://github.com/gogs/gogs/issues/1221) | ✓ | ✓ | ✓ | ✓ | ✘ |
| 支 OpenId 接 | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ✘ |
| 集成 OAuth 2.0(外部授 | ✓ | ✘ | | ✓ | ✓ | ? | ✓ |
| 作 OAuth 2.0 provider | [](https://github.com/go-gitea/gitea/pull/5378) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 二次验证 (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 集成 Mattermost/Slack | ✓ | ✓ | | ✓ | ✓ | | ✓ |
| 集成 Discord | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 集成 Microsoft Teams | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 示外部 CI/CD 的状态 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 支 OpenId 接 | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ✘ |
| 整合 OAuth 2.0(外部授 | ✓ | ✘ | | ✓ | ✓ | ? | ✓ |
| 作 OAuth 2.0 provider | [](https://github.com/go-gitea/gitea/pull/5378) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 二次驗證 (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 整合 Mattermost/Slack | ✓ | ✓ | | ✓ | ✓ | | ✓ |
| 整合 Discord | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 整合 Microsoft Teams | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
| 示外部 CI/CD 的狀態 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
[gitea-caddy-plugin]: https://github.com/42wim/caddy-gitea
[gitea-pages-server]: https://codeberg.org/Codeberg/pages-server

View File

@@ -6,190 +6,190 @@ aliases:
- /zh-tw/database-prep
---
# 数据库准备
# 資料庫準備
在使用 Gitea 前,您需要准备一个数据库。Gitea 支 PostgreSQL>= 12、MySQL>= 8.0、MariaDB>= 10.4、SQLite置) 和 MSSQL>= 2012 SP4这几种数据库。本页将指导您准备数据库。由 PostgreSQL 和 MySQL 在生产环境中被广泛使用,因此本文档将仅涵盖这两种数据库。如果您计划使用 SQLite可以忽略本章容。
在使用 Gitea 前,您需要準備一個資料庫。Gitea 支 PostgreSQL>= 12、MySQL>= 8.0、MariaDB>= 10.4、SQLite置) 和 MSSQL>= 2012 SP4這幾種資料庫。本頁將指導您準備資料庫。由 PostgreSQL 和 MySQL 在生產環境中被泛使用,因此本文件將僅涵蓋這兩種資料庫。如果您計劃使用 SQLite可以忽略本章容。
如果您使用不受支持的数据库版本,请通过 [联系我们](/help/support) 以取有关我们的扩展支持的信息。我可以为旧数据库提供测试和支持,并将这些修复集成到 Gitea 代码库中。
如果您使用不受支援的資料庫版本,請通過 [聯繫我們](/help/support) 以取有關我們的擴展支援的資訊。我可以為舊資料庫提供測試和支援,並將這些修復整合到 Gitea 程式碼庫中。
数据库实例可以 Gitea 例在相同器上(本地数据库),也可以 Gitea 例在不同器上(远程数据库)。
資料庫實例可以 Gitea 例在相同器上(本地資料庫),也可以 Gitea 例在不同器上(遠程資料庫)。
注意:以下所有步要求您的选择的数据库引擎已安在您的系上。对于远程数据库设置,请在数据库实例上安装服务器应用程,在 Gitea 服器上安装客户端程。客端程序用于测试 Gitea 服务器与数据库之间的连接,而 Gitea 本身使用 Go 提供的数据库驱动程序完成相同的任。此外,请确保服务器和客端使用相同的引擎版本,以使某些引擎功能正常工作。出安全原因,使用安全密码保护 `root`MySQL`postgres`PostgreSQL数据库超级用户。以下步骤假设您在数据库和 Gitea 服器上都使用 Linux。
注意:以下所有步要求您的選擇的資料庫引擎已安在您的系上。對於遠程資料庫設定,請在資料庫實例上安裝伺服器應用程,在 Gitea 服器上安裝客戶端程。客端程式用於測試 Gitea 伺服器與資料庫之間的連接,而 Gitea 本身使用 Go 提供的資料庫驅動程式完成相同的任。此外,請確保伺服器和客端使用相同的引擎版本,以使某些引擎功能正常工作。出安全原因,使用安全密碼保護 `root`MySQL`postgres`PostgreSQL資料庫超級使用者。以下步驟假設您在資料庫和 Gitea 服器上都使用 Linux。
## MySQL/MariaDB
1. 对于远程数据库设置,您需要 MySQL 监听您的 IP 地址。编辑数据库实例上的 `/etc/mysql/my.cnf` 文件中的 `bind-address` 选项为
1. 對於遠程資料庫設定,您需要 MySQL 監聽您的 IP 地址。編輯資料庫實例上的 `/etc/mysql/my.cnf` 文件中的 `bind-address` 選項為
```ini
bind-address = 203.0.113.3
```
2. 在数据库实例上,使用 `root` 用户登录到数据库控制
2. 在資料庫實例上,使用 `root` 使用者登入到資料庫控制
```
mysql -u root -p
```
按提示入密
按提示入密
3. 创建一个将被 Gitea 使用的数据库用户,并使用密码进行身份验证。以下例中使用了 `'gitea'` 作为密码。请为您的例使用一安全密
3. 建立一個將被 Gitea 使用的資料庫使用者,並使用密碼進行身份驗證。以下例中使用了 `'gitea'` 作為密碼。請為您的例使用一安全密
对于本地数据库
對於本地資料庫
```sql
SET old_passwords=0;
CREATE USER 'gitea' IDENTIFIED BY 'gitea';
```
对于远程数据库
對於遠程資料庫
```sql
SET old_passwords=0;
CREATE USER 'gitea'@'192.0.2.10' IDENTIFIED BY 'gitea';
```
其中 `192.0.2.10` 是您的 Gitea 例的 IP 地址。
其中 `192.0.2.10` 是您的 Gitea 例的 IP 地址。
需要替上述用户名和密
需要替上述使用者名稱和密
4. 使用 UTF-8 字符集和大小敏感的排序规则创建数据库
4. 使用 UTF-8 字符集和大小敏感的排序規則建立資料庫
`utf8mb4_bin` 是 MySQL/MariaDB 的通用排序规则
Gitea 启动后会尝试把数据库修改更合的字符集 (`utf8mb4_0900_as_cs` 或者 `uca1400_as_cs`) 在可能的情下更改数据库
如果你想指定自己的字符集规则,可以在 `app.ini` 中设置 `[database].CHARSET_COLLATION`。
`utf8mb4_bin` 是 MySQL/MariaDB 的通用排序規則
Gitea 啟動後會嘗試把資料庫修改更合的字符集 (`utf8mb4_0900_as_cs` 或者 `uca1400_as_cs`) 在可能的情下更改資料庫
如果你想指定自己的字符集規則,可以在 `app.ini` 中設定 `[database].CHARSET_COLLATION`。
```sql
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';
```
需要替换数据库名称
需要替換資料庫名稱
5. 将数据库上的所有限授予上述创建的数据库用户
5. 將資料庫上的所有限授予上述建立的資料庫使用者
对于本地数据库
對於本地資料庫
```sql
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
FLUSH PRIVILEGES;
```
对于远程数据库
對於遠程資料庫
```sql
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'192.0.2.10';
FLUSH PRIVILEGES;
```
6. 通 `exit` 退出数据库控制
6. 通 `exit` 退出資料庫控制
7. 在您的 Gitea 服器上,测试与数据库的连接:
7. 在您的 Gitea 服器上,測試與資料庫的連接:
```
mysql -u gitea -h 203.0.113.3 -p giteadb
```
其中 `gitea` 是数据库用户名`giteadb` 是数据库名称`203.0.113.3` 是数据库实例的 IP 地址。对于本地数据库,省略 `-h` 选项
其中 `gitea` 是資料庫使用者名稱`giteadb` 是資料庫名稱`203.0.113.3` 是資料庫實例的 IP 地址。對於本地資料庫,省略 `-h` 選項
到此您应该能够连接到数据库了。
到此您應該能夠連接到資料庫了。
## PostgreSQL
1. 对于远程数据库设置,通过编辑数据库实例上的 postgresql.conf 文件中的 `listen_addresses` `PostgreSQL` 配置为监听您的 IP 地址:
1. 對於遠程資料庫設定,通過編輯資料庫實例上的 postgresql.conf 文件中的 `listen_addresses` `PostgreSQL` 設定為監聽您的 IP 地址:
```ini
listen_addresses = 'localhost, 203.0.113.3'
```
2. PostgreSQL 默认使用 `md5` 质询-响应加密方案行密身份验证。现在这个方案不再被认为是安全的。改用 SCRAM-SHA-256 方案,通过编辑数据库服务器上的` postgresql.conf` 配置文件:
2. PostgreSQL 預設使用 `md5` 質詢-響應加密方案行密身份驗證。現在這個方案不再被認為是安全的。改用 SCRAM-SHA-256 方案,通過編輯資料庫伺服器上的` postgresql.conf` 設定文件:
```ini
password_encryption = scram-sha-256
```
PostgreSQL 以应用该设置
PostgreSQL 以應用該設定
3. 在数据库服务器上,以超级用户身份登录到数据库控制
3. 在資料庫伺服器上,以超級使用者身份登入到資料庫控制
```
su -c "psql" - postgres
```
4. 建具有登录权限和密码的数据库用户(在 PostgreSQL 术语中称为角色)。使用安全的、强密码,而不是下面的 `'gitea'`
4. 建具有登入權限和密碼的資料庫使用者(在 PostgreSQL 術語中稱為角色)。使用安全的、強密碼,而不是下面的 `'gitea'`
```sql
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';
```
需要替换用户名和密
需要替換使用者名稱和密
5. 使用 UTF-8 字符集创建数据库,并由之前创建的数据库用户拥有。可以根据预期内容使用任何 `libc` 排序规则,使用 `LC_COLLATE` 和 `LC_CTYPE` 参数指定:
5. 使用 UTF-8 字符集建立資料庫,並由之前建立的資料庫使用者擁有。可以根據預期內容使用任何 `libc` 排序規則,使用 `LC_COLLATE` 和 `LC_CTYPE` 參數指定:
```sql
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
```
需要替换数据库名称
需要替換資料庫名稱
6. 通过将以下身份验证规则添加到 `pg_hba.conf`,允许数据库用户访问上面创建的数据库
6. 通過將以下身份驗證規則添加到 `pg_hba.conf`,允許資料庫使用者訪問上面建立的資料庫
对于本地数据库
對於本地資料庫
```ini
local giteadb gitea scram-sha-256
```
对于远程数据库
對於遠程資料庫
```ini
host giteadb gitea 192.0.2.10/32 scram-sha-256
```
您自己的数据库名称、用户和 Gitea 例的 IP 地址行替
您自己的資料庫名稱、使用者和 Gitea 例的 IP 地址行替
注意:`pg_hba.conf` 上的规则按顺序评估,也就是第一匹配的规则将用于身份验证。您的 PostgreSQL 安可能附带了适用于所有用户和数据库的通用身份验证规则。如果是这种情况,您可能需要将此处提供的规则放置在此通用规则之上。
注意:`pg_hba.conf` 上的規則按順序評估,也就是第一匹配的規則將用於身份驗證。您的 PostgreSQL 安可能附帶了適用於所有使用者和資料庫的通用身份驗證規則。如果是這種情況,您可能需要將此處提供的規則放置在此通用規則之上。
PostgreSQL 以用新的身份验证规则
PostgreSQL 以用新的身份驗證規則
7. 在您的 Gitea 服器上,测试与数据库的连接。
7. 在您的 Gitea 服器上,測試與資料庫的連接。
对于本地数据库
對於本地資料庫
```
psql -U gitea -d giteadb
```
对于远程数据库
對於遠程資料庫
```
psql "postgres://gitea@203.0.113.3/giteadb"
```
其中 `gitea` 是数据库用户`giteadb` 是数据库名称`203.0.113.3` 是您的数据库实例的 IP 地址。
其中 `gitea` 是資料庫使用者`giteadb` 是資料庫名稱`203.0.113.3` 是您的資料庫實例的 IP 地址。
应该会被提示输入数据库用户的密码,并连接到数据库
應該會被提示輸入資料庫使用者的密碼,並連接到資料庫
## 使用 TLS 进行数据库连
## 使用 TLS 進行資料庫連
如果 Gitea 和您的数据库实例之的通信是通私有网络进行的,或者如果 Gitea 和数据库运行在同一台服务器上,那可以省略本,因 Gitea 和数据库实例之的安全性不受到重威。但是,如果数据库实例位公共网络上,使用 TLS 对数据库连接进行加密,以防止第三方截流量数据
如果 Gitea 和您的資料庫實例之的通信是通私有網路進行的,或者如果 Gitea 和資料庫運行在同一臺伺服器上,那可以省略本,因 Gitea 和資料庫實例之的安全性不受到重威。但是,如果資料庫實例位公共網路上,使用 TLS 對資料庫連接進行加密,以防止第三方截流量資料
### 先决条
### 先決條
- 您需要两个有效的 TLS 证书,一个用于数据库实例(数据库服务器),一个用于 Gitea 例(数据库客户端)。两个证书都必由受信任的 CA 名。
- 数据库证书必须在 `X509v3 Extended Key Usage` 扩展属性中包含 `TLS Web Server Authentication`,而客户端证书则需要在相应的属性中包含 `TLS Web Client Authentication`。
- 在数据库服务器证书中,`Subject Alternative Name` 或 `Common Name` 目之一必须是数据库实例的完全限定域名FQDN例如 `db.example.com`)。在数据库客户端证书中,上述提到的目之一必包含 Gitea 将用于连接的数据库用户名
- 您需要 Gitea 和数据库服务器的域名映射到它各自的 IP 地址。可以为它们设置 DNS 记录,也可以在每个系统上的 `/etc/hosts`Windows 中的 `%WINDIR%\System32\drivers\etc\hosts`)中添加本地映射。这样可以通过域名而不是 IP 地址进行数据库连接。有关详细信息,请参阅您系的文
- 您需要兩個有效的 TLS 證書,一個用於資料庫實例(資料庫伺服器),一個用於 Gitea 例(資料庫客戶端)。兩個證書都必由受信任的 CA 名。
- 資料庫證書必須在 `X509v3 Extended Key Usage` 擴展屬性中包含 `TLS Web Server Authentication`,而客戶端證書則需要在相應的屬性中包含 `TLS Web Client Authentication`。
- 在資料庫伺服器證書中,`Subject Alternative Name` 或 `Common Name` 目之一必須是資料庫實例的完全限定域名FQDN例如 `db.example.com`)。在資料庫客戶端證書中,上述提到的目之一必包含 Gitea 將用於連接的資料庫使用者名稱
- 您需要 Gitea 和資料庫伺服器的域名映射到它各自的 IP 地址。可以為它們設定 DNS 記錄,也可以在每個系統上的 `/etc/hosts`Windows 中的 `%WINDIR%\System32\drivers\etc\hosts`)中添加本地映射。這樣可以透過域名而不是 IP 地址進行資料庫連接。有關詳細資訊,請參閱您系的文
### PostgreSQL TLS
Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在向 TLS 中,数据库客户端和服务器通过将各自的证书发送给对方进行验证来相互认证。换句话说,服务器验证客户端证书,客户端验证服务器证书
Gitea 使用的 PostgreSQL 驅動程式支援雙向 TLS。在向 TLS 中,資料庫客戶端和伺服器通過將各自的證書發送給對方進行驗證來相互認證。換句話說,伺服器驗證客戶端證書,客戶端驗證伺服器證書
1. 在数据库实例所在的服器上,放置以下凭据
1. 在資料庫實例所在的服器上,放置以下憑據
- `/path/to/postgresql.crt`: 数据库实例证书
- `/path/to/postgresql.key`: 数据库实例私
- `/path/to/root.crt`: 用于验证客户端证书的 CA 证书链
- `/path/to/postgresql.crt`: 資料庫實例證書
- `/path/to/postgresql.key`: 資料庫實例私
- `/path/to/root.crt`: 用於驗證客戶端證書的 CA 證書鏈
2. 在 `postgresql.conf` 中添加以下选项
2. 在 `postgresql.conf` 中添加以下選項
```ini
ssl = on
@@ -199,67 +199,67 @@ Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,
ssl_min_protocol_version = 'TLSv1.2'
```
3. 根 PostgreSQL 的要求,调整凭据的所有权和权限:
3. 根 PostgreSQL 的要求,調整憑據的所有權和權限:
```
chown postgres:postgres /path/to/root.crt /path/to/postgresql.crt /path/to/postgresql.key
chmod 0600 /path/to/root.crt /path/to/postgresql.crt /path/to/postgresql.key
```
4. 编辑 `pg_hba.conf` 规则,仅允许 Gitea 数据库用户通过 SSL 接,要求客户端证书验证
4. 編輯 `pg_hba.conf` 規則,僅允許 Gitea 資料庫使用者通過 SSL 接,要求客戶端證書驗證
对于 PostgreSQL 12
對於 PostgreSQL 12
```ini
hostssl giteadb gitea 192.0.2.10/32 scram-sha-256 clientcert=verify-full
```
对于 PostgreSQL 11 及更早版本:
對於 PostgreSQL 11 及更早版本:
```ini
hostssl giteadb gitea 192.0.2.10/32 scram-sha-256 clientcert=1
```
需要替换数据库名称、用户和 Gitea 例的 IP 地址。
需要替換資料庫名稱、使用者和 Gitea 例的 IP 地址。
5. 重新启动 PostgreSQL 以用上述配置
5. 重新啟動 PostgreSQL 以用上述設定
6. 在行 Gitea 例的服器上,以下凭据放置在行 Gitea 的用户的主目下(例如 `git`
6. 在行 Gitea 例的服器上,以下憑據放置在行 Gitea 的使用者的主目下(例如 `git`
- `~/.postgresql/postgresql.crt`: 数据库客户端证书
- `~/.postgresql/postgresql.key`: 数据库客户端私
- `~/.postgresql/root.crt`: 用于验证服务器证书的 CA 证书链
- `~/.postgresql/postgresql.crt`: 資料庫客戶端證書
- `~/.postgresql/postgresql.key`: 資料庫客戶端私
- `~/.postgresql/root.crt`: 用於驗證伺服器證書的 CA 證書鏈
注意:上述文件名在 PostgreSQL 中是硬编码的,法更改。
注意:上述文件名在 PostgreSQL 中是硬編碼的,法更改。
7. 根需要调整凭据、所有权和权限:
7. 根需要調整憑據、所有權和權限:
```
chown git:git ~/.postgresql/postgresql.crt ~/.postgresql/postgresql.key ~/.postgresql/root.crt
chown 0600 ~/.postgresql/postgresql.crt ~/.postgresql/postgresql.key ~/.postgresql/root.crt
```
8. 测试与数据库的连接:
8. 測試與資料庫的連接:
```
psql "postgres://gitea@example.db/giteadb?sslmode=verify-full"
```
被提示输入数据库用户的密,然后连接到数据库
被提示輸入資料庫使用者的密,然後連接到資料庫
### MySQL/MariaDB TLS
然 Gitea 使用的 MySQL 驱动程序也支持双向 TLS但目前 Gitea 仅支持单向 TLS。有关详细信息,请参见工单10828。
然 Gitea 使用的 MySQL 驅動程式也支援雙向 TLS但目前 Gitea 僅支援單向 TLS。有關詳細資訊,請參見工單10828。
向 TLS 中,数据库客户端在接握手期间验证服务器发送的证书,而服务器则假定接的客端是合法的,因为不进行客户端证书验证
向 TLS 中,資料庫客戶端在接握手期間驗證伺服器發送的證書,而伺服器則假定接的客端是合法的,因為不進行客戶端證書驗證
1. 在数据库实例上放置以下凭据
1. 在資料庫實例上放置以下憑據
- `/path/to/mysql.crt`: 数据库实例证书
- `/path/to/mysql.key`: 数据库实例密
- `/path/to/ca.crt`: CA 证书链。在向 TLS 中不使用此文件,但用于验证双向 TLS 中的客户端证书
- `/path/to/mysql.crt`: 資料庫實例證書
- `/path/to/mysql.key`: 資料庫實例密
- `/path/to/ca.crt`: CA 證書鏈。在向 TLS 中不使用此文件,但用於驗證雙向 TLS 中的客戶端證書
2. 以下选项添加到 `my.cnf`
2. 以下選項添加到 `my.cnf`
```ini
[mysqld]
@@ -269,16 +269,16 @@ Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,
tls-version = TLSv1.2,TLSv1.3
```
3. 调整凭据的所有权和权限:
3. 調整憑據的所有權和權限:
```
chown mysql:mysql /path/to/ca.crt /path/to/mysql.crt /path/to/mysql.key
chmod 0600 /path/to/ca.crt /path/to/mysql.crt /path/to/mysql.key
```
4. 重新启动 MySQL 以应用设置
4. 重新啟動 MySQL 以應用設定
5. Gitea 的数据库用户可能已经创建过,但只会对运行 Gitea 的服器的 IP 地址行身份验证。要其域名行身份验证,请重新创建用户,并设置其需要通 TLS 接到数据库
5. Gitea 的資料庫使用者可能已經建立過,但只會對運行 Gitea 的服器的 IP 地址行身份驗證。要其域名行身份驗證,請重新建立使用者,並設定其需要通 TLS 接到資料庫
```sql
DROP USER 'gitea'@'192.0.2.10';
@@ -287,14 +287,14 @@ Gitea 使用的 PostgreSQL 驱动程序支持双向 TLS。在双向 TLS 中,
FLUSH PRIVILEGES;
```
需要替换数据库用户名、密和 Gitea 例域名。
需要替換資料庫使用者名稱、密和 Gitea 例域名。
6. 保用于验证数据库服务器证书的 CA 证书链位于数据库和 Gitea 服器的系统证书存储中。请参考系统文档中有关将 CA 证书添加到证书存储的说明。
6. 保用於驗證資料庫伺服器證書的 CA 證書鏈位於資料庫和 Gitea 服器的系統證書儲存中。請參考系統文件中有關將 CA 證書添加到證書儲存的說明。
7. 在行 Gitea 的服器上,测试与数据库的连接:
7. 在行 Gitea 的服器上,測試與資料庫的連接:
```
mysql -u gitea -h example.db -p --ssl
```
至此应该成功接到数据库了。
至此應該成功接到資料庫了。

View File

@@ -6,59 +6,59 @@ aliases:
- /zh-tw/install-from-binary
---
# 使用二制文件安
# 使用二制文件安
所有打包的二制程均包含 SQLiteMySQL 和 PostgreSQL 的数据库连接支,同时网站的静态资源均已嵌入到可行程中,这一点和曾的 Gogs 有所不同。
所有打包的二制程均包含 SQLiteMySQL 和 PostgreSQL 的資料庫連接支,同時網站的靜態資源均已嵌入到可行程中,這一點和曾的 Gogs 有所不同。
## 下
## 下
你可以 [载页](https://dl.gitea.com/gitea/) 选择对应平台的二制文件。
你可以 [載頁](https://dl.gitea.com/gitea/) 選擇對應平台的二制文件。
### 选择架构
### 選擇架構
- **对于 Linux**`linux-amd64` 适用于 64-bit 的 Intel/AMD 平台。更多架包含 `arm64` (Raspberry PI 4)`386` (32-bit)`arm-5` 以及 `arm-6`
- **對於 Linux**`linux-amd64` 適用於 64-bit 的 Intel/AMD 平台。更多架包含 `arm64` (Raspberry PI 4)`386` (32-bit)`arm-5` 以及 `arm-6`
- **对于 Windows**`windows-4.0-amd64` 适用于 64-bit 的 Intel/AMD 平台,`386` 适用于 32-bit 的 Intel/AMD 平台。(提示:`gogit-windows` 版本建了 gogit 可能解在的 Windows 平台上 Go 程序调用 git 子程序时面临的 [性能问题](https://github.com/go-gitea/gitea/pull/15482)
- **對於 Windows**`windows-4.0-amd64` 適用於 64-bit 的 Intel/AMD 平台,`386` 適用於 32-bit 的 Intel/AMD 平台。(提示:`gogit-windows` 版本建了 gogit 可能解在的 Windows 平台上 Go 程式調用 git 子程式時面臨的 [性能問題](https://github.com/go-gitea/gitea/pull/15482)
- **对于 macOS**`darwin-arm64` 适用于 Apple Silicon 架`darwin-amd64` 适用于 Intel 架.
- **對於 macOS**`darwin-arm64` 適用於 Apple Silicon 架`darwin-amd64` 適用於 Intel 架.
- **对于 FreeBSD**`freebsd12-amd64` 适用于 64-bit 的 Intel/AMD 平台。
- **對於 FreeBSD**`freebsd12-amd64` 適用於 64-bit 的 Intel/AMD 平台。
### 使用 wget 下
### 使用 wget 下
使用以下命令下载适用于 64-bit Linux 平台的二制文件。
使用以下命令下載適用於 64-bit Linux 平台的二制文件。
```sh
wget -O gitea https://dl.gitea.com/gitea/@version@/gitea-@version@-linux-amd64
chmod +x gitea
```
## 验证 GPG
## 驗證 GPG
Gitea 打包的二制文件使用 [GPG 密](https://keys.openpgp.org/search?q=teabot%40gitea.io) 名以防止篡改。
请根据对应文件名 `.asc` 中包含的校验码检验文件的一致性。
Gitea 打包的二制文件使用 [GPG 密](https://keys.openpgp.org/search?q=teabot%40gitea.io) 名以防止篡改。
請根據對應文件名 `.asc` 中包含的校驗碼檢驗文件的一致性。
```sh
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-@version@-linux-amd64.asc gitea-@version@-linux-amd64
```
验正确时的信息为 `Good signature from "Teabot <teabot@gitea.io>"`
验错误时的信息为 `This key is not certified with a trusted signature!`
驗正確時的資訊為 `Good signature from "Teabot <teabot@gitea.io>"`
驗錯誤時的資訊為 `This key is not certified with a trusted signature!`
## 服务器设置
## 伺服器設定
**提示:** `GITEA_WORK_DIR` 表示 Gitea 工作的路。以下路可以通过 [环境变](../administration/environment-variables.md) 初始化。
**提示:** `GITEA_WORK_DIR` 表示 Gitea 工作的路。以下路可以透過 [環境變](../administration/environment-variables.md) 初始化。
### 准备环
### 準備環
查是否安 Git。要求 Git 版本 >= 2.0。
查是否安 Git。要求 Git 版本 >= 2.0。
```sh
git --version
```
创建用户(推使用名 `git`
建立使用者(推使用名 `git`
```sh
# On Ubuntu/Debian:
@@ -83,7 +83,7 @@ adduser \
git
```
### 建工作路
### 建工作路
```sh
mkdir -p /var/lib/gitea/{custom,data,log}
@@ -94,112 +94,112 @@ chown root:git /etc/gitea
chmod 770 /etc/gitea
```
> **注意:** 为了让 Web 安装程序可以写入配置文件,我们临时为 `/etc/gitea` 路授予了组外用户 `git` 写入权限。建在安装结束后将配置文件的权限设置为只读
> **注意:** 為了讓 Web 安裝程式可以寫入設定文件,我們臨時為 `/etc/gitea` 路授予了組外使用者 `git` 寫入權限。建在安裝結束後將設定文件的權限設定為只讀
>
> ```sh
> chmod 750 /etc/gitea
> chmod 640 /etc/gitea/app.ini
> ```
如果您不希望通 Web 安装程序创建配置文件,可以将配置文件设置为仅供 Gitea 用户只读owner/group `root:git`, mode `0640`手工创建配置文件:
如果您不希望通 Web 安裝程式建立設定文件,可以將設定文件設定為僅供 Gitea 使用者只讀owner/group `root:git`, mode `0640`手工建立設定文件:
- 设置 `INSTALL_LOCK=true` 关闭安装界
-动配置数据库连接参数
- 使用 `gitea generate secret` `SECRET_KEY``INTERNAL_TOKEN`
- 提供所有必要的密
- 設定 `INSTALL_LOCK=true` 關閉安裝介
-動設定資料庫連接參數
- 使用 `gitea generate secret` `SECRET_KEY``INTERNAL_TOKEN`
- 提供所有必要的密
详情参考 [命令行文](../administration/command-line.md) 中有 `gitea generate secret`容。
詳情參考 [命令行文](../administration/command-line.md) 中有 `gitea generate secret`容。
### 配置 Gitea 工作路
### 設定 Gitea 工作路
**提示:** 如果使用 Systemd 管理 Gitea 的 Linux 服,你可以`WorkingDirectory` 参数来配置工作路。 否,使用环境变`GITEA_WORK_DIR` 来明确指出程工作和数据存放路
**提示:** 如果使用 Systemd 管理 Gitea 的 Linux 服,你可以`WorkingDirectory` 參數來設定工作路。 否,使用環境變`GITEA_WORK_DIR` 來明確指出程工作和資料存放路
```sh
export GITEA_WORK_DIR=/var/lib/gitea/
```
### 复制二进制文件到全位置
### 複製二進制文件到全位置
```sh
cp gitea /usr/local/bin/gitea
```
### 添加 bash/zsh 自动补全( 1.19 版本始)
### 添加 bash/zsh 自動補全( 1.19 版本始)
可以在 [`contrib/autocompletion/bash_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/bash_autocomplete) 找到用 bash 自动补全的本。可以将其复制`/usr/share/bash-completion/completions/gitea`,或在 `.bashrc` 中引用。
可以在 [`contrib/autocompletion/bash_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/bash_autocomplete) 找到用 bash 自動補全的本。可以將其複製`/usr/share/bash-completion/completions/gitea`,或在 `.bashrc` 中引用。
zsh 自动补全的本可以在 [`contrib/autocompletion/zsh_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/zsh_autocomplete) 找到。您可以将其复制`/usr/share/zsh/_gitea`,或在您的 `.zshrc` 中引用。
zsh 自動補全的本可以在 [`contrib/autocompletion/zsh_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/zsh_autocomplete) 找到。您可以將其複製`/usr/share/zsh/_gitea`,或在您的 `.zshrc` 中引用。
体情况可能有所不同,这些脚本可能需要一步的改
體情況可能有所不同,這些腳本可能需要一步的改
## 行 Gitea
## 行 Gitea
完成以上步骤后,可以通过两种方式行 Gitea
完成以上步驟後,可以透過兩種方式行 Gitea
### 1. 创建服务自动启动 Gitea
### 1. 建立服務自動啟動 Gitea
学习创建 [Linux 服](installation/run-as-service-in-ubuntu.md)
學習建立 [Linux 服](installation/run-as-service-in-ubuntu.md)
### 2. 通命令行终端运
### 2. 通命令行終端運
```sh
GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini
```
## 升到最新版本
## 升到最新版本
您可以通过停止程,替 `/usr/local/bin/gitea` 并重启来更新到新版本。直接替换可执行程序时不要更改或使用新的文件名,以避免数据出错
您可以透過停止程,替 `/usr/local/bin/gitea` 並重啟來更新到新版本。直接替換可執行程式時不要更改或使用新的文件名,以避免資料出錯
您在更新之前行[](../administration/backup-and-restore.md)。
您在更新之前行[](../administration/backup-and-restore.md)。
如果您按照上述描述行了安装步骤,二制文件的通用名称应为 gitea。勿更改此名,即不要包含版本
如果您按照上述描述行了安裝步驟,二制文件的通用名稱應為 gitea。勿更改此名,即不要包含版本
### 1. 使用 systemd 重新启动 Gitea
### 1. 使用 systemd 重新啟動 Gitea
们建议使用 systemd 作为服务管理器,使用 `systemctl restart gitea` 安全地重启程序
們建議使用 systemd 作為服務管理器,使用 `systemctl restart gitea` 安全地重啟程式
### 2. 非 systemd 重方法
### 2. 非 systemd 重方法
使用 SIGHUP 信号关闭程序:查到 Gitea 程的 PID使用 `kill -1 $GITEA_PID`,或者 `killall -1 gitea`
使用 SIGHUP 信號關閉程式:查到 Gitea 程的 PID使用 `kill -1 $GITEA_PID`,或者 `killall -1 gitea`
雅的停止指令可能包括 `kill $GITEA_PID` 或者 `killall gitea`
雅的停止指令可能包括 `kill $GITEA_PID` 或者 `killall gitea`
**提示:**不建使用 SIGKILL 信`-9`这会强制停止 Gitea 程,但不会正确关闭队列、索引器等任
**提示:**不建使用 SIGKILL 信`-9`這會強制停止 Gitea 程,但不會正確關閉隊列、索引器等任
请参阅下面的疑解答明,以在 Gitea 版本更新后修复损坏的仓库
請參閱下面的疑解答明,以在 Gitea 版本更新後修復損壞的儲存庫
## 排查故障
### 版 glibc
### 版 glibc
版 Linux 行版(例如 Debian 7 和 CentOS 6可能法加 Gitea 二制文件,通常会产生类似于 `./gitea: /lib/x86_64-linux-gnu/libc.so.6:
version 'GLIBC\_2.14' not found (required by ./gitea)`错误。这是由 dl.gitea.com 提供的二制文件中集成了 SQLite 支。在这种情况下,通常可以选择[从源代码安装](installation/from-source.md),而不包括 SQLite 支
版 Linux 行版(例如 Debian 7 和 CentOS 6可能法加 Gitea 二制文件,通常會產生類似於 `./gitea: /lib/x86_64-linux-gnu/libc.so.6:
version 'GLIBC\_2.14' not found (required by ./gitea)`錯誤。這是由 dl.gitea.com 提供的二制文件中整合了 SQLite 支。在這種情況下,通常可以選擇[從源程式碼安裝](installation/from-source.md),而不包括 SQLite 支
### 在另一端口上行 Gitea
### 在另一端口上行 Gitea
对于出现类似于 `702 runWeb()] [E] Failed to start server: listen tcp 0.0.0.0:3000:
bind: address already in use`错误,需要 Gitea 启动在另一个空闲端口上。您可以使用 `./gitea web -p $PORT` 来实现。可能已有另一 Gitea 例在行。
對於出現類似於 `702 runWeb()] [E] Failed to start server: listen tcp 0.0.0.0:3000:
bind: address already in use`錯誤,需要 Gitea 啟動在另一個空閒端口上。您可以使用 `./gitea web -p $PORT` 來實現。可能已有另一 Gitea 例在行。
### 在 Raspbian 上行 Gitea
### 在 Raspbian 上行 Gitea
v1.8 版本arm7 版本的 Gitea 存在问题,无法在莓派和类似设备上运行。
v1.8 版本arm7 版本的 Gitea 存在問題,無法在莓派和類似設備上運行。
议切换到 arm6 版本,版本经过测试并已被明可以在莓派和类似设备上运行。
議切換到 arm6 版本,版本經過測試並已被明可以在莓派和類似設備上運行。
### 更新到新版本的 Gitea 后出现的 Git 错误
### 更新到新版本的 Gitea 後出現的 Git 錯誤
如果在更新程中,二制文件的名已更改新版本的 Gitea则现有仓库中的 Git 钩子将不再起作用。在这种情况下,推送到仓库时,会显示 Git 错误
如果在更新程中,二制文件的名已更改新版本的 Gitea則現有儲存庫中的 Git 鉤子將不再起作用。在這種情況下,推送到儲存庫時,會顯示 Git 錯誤
```
remote: ./hooks/pre-receive.d/gitea: line 2: [...]: No such file or directory
```
错误信息中的 `[...]` 部分包含您先前 Gitea 二制文件的路
錯誤資訊中的 `[...]` 部分包含您先前 Gitea 二制文件的路
要解决此问题,请转到管理选项,并运行任 `Resynchronize pre-receive, update and post-receive hooks of all repositories`,以所有子更新包含新的二制文件路径。请注意,这将覆盖所有 Git 子,包括自定义的钩子。
要解決此問題,請轉到管理選項,並運行任 `Resynchronize pre-receive, update and post-receive hooks of all repositories`,以所有子更新包含新的二制文件路徑。請注意,這將覆蓋所有 Git 子,包括自訂的鉤子。
如果您有使用 Gitea 置的 SSH 服器,您需要通在管理选项中运行任 `Update the '.ssh/authorized_keys' file with Gitea SSH keys.` 重新编写授权密钥文件。
如果您有使用 Gitea 置的 SSH 服器,您需要通在管理選項中運行任 `Update the '.ssh/authorized_keys' file with Gitea SSH keys.` 重新編寫授權密鑰文件。
> 更多经验总结,请参考英文版 [Troubleshooting](https://docs.gitea.com/installation/install-from-binary#troubleshooting)
> 更多經驗總結,請參考英文版 [Troubleshooting](https://docs.gitea.com/installation/install-from-binary#troubleshooting)
如果从本页中没有找到你需要的容,请访问 [帮助页](help/support.md)
如果從本頁中沒有找到你需要的容,請前往 [幫助頁](help/support.md)

View File

@@ -6,23 +6,23 @@ aliases:
- /zh-tw/install-from-package
---
# 管理器安
# 套件管理器安
## 官方管理器
## 官方套件管理器
### macOS
macOS 平台下前我们仅支持通过 `brew` 来安装。如果你有安 [Homebrew](http://brew.sh/),你也可以查看 [从二进制安](installation/from-binary.md)。在你安`brew` 你可以行以下命令:
macOS 平台下前我們僅支援通過 `brew` 來安裝。如果你有安 [Homebrew](http://brew.sh/),你也可以查看 [從二進制安](installation/from-binary.md)。在你安`brew` 你可以行以下命令:
```
brew install gitea
```
## 非官方管理器
## 非官方套件管理器
### Alpine Linux
Gitea 已包含在 Alpine Linux 的[区存储库](https://pkgs.alpinelinux.org/packages?name=gitea&branch=edge)中,版本 Gitea 官方保持同步。
Gitea 已包含在 Alpine Linux 的[區儲存庫](https://pkgs.alpinelinux.org/packages?name=gitea&branch=edge)中,版本 Gitea 官方保持同步。
```sh
apk add gitea
@@ -30,7 +30,7 @@ apk add gitea
### Arch Linux
Gitea 已经在滚动发布发行版的官方[区存储库](https://www.archlinux.org/packages/community/x86_64/gitea/)中,版本 Gitea 官方保持同步。
Gitea 已經在滾動發佈發行版的官方[區儲存庫](https://www.archlinux.org/packages/community/x86_64/gitea/)中,版本 Gitea 官方保持同步。
```sh
pacman -S gitea
@@ -38,7 +38,7 @@ pacman -S gitea
### Arch Linux ARM
官方支 [aarch64](https://archlinuxarm.org/packages/aarch64/gitea) [armv7h](https://archlinuxarm.org/packages/armv7h/gitea) 和 [armv6h](https://archlinuxarm.org/packages/armv6h/gitea) 架
官方支 [aarch64](https://archlinuxarm.org/packages/aarch64/gitea) [armv7h](https://archlinuxarm.org/packages/armv7h/gitea) 和 [armv6h](https://archlinuxarm.org/packages/armv6h/gitea) 架
```sh
pacman -S gitea
@@ -46,7 +46,7 @@ pacman -S gitea
### Gentoo Linux
滚动发布的发行版在其官方社区软件仓库中提供了 [Gitea](https://packages.gentoo.org/packages/www-apps/gitea)并且会随着新的 Gitea 发布提供软件包更新。
滾動發佈的發行版在其官方社區軟件儲存庫中提供了 [Gitea](https://packages.gentoo.org/packages/www-apps/gitea)並且會隨著新的 Gitea 發佈提供套件更新。
```sh
emerge gitea -va
@@ -54,7 +54,7 @@ emerge gitea -va
### Canonical Snap
目前 Gitea 已在 Snap Store 中发布,名称为 [gitea](https://snapcraft.io/gitea)。
目前 Gitea 已在 Snap Store 中發佈,名稱為 [gitea](https://snapcraft.io/gitea)。
```sh
snap install gitea
@@ -62,29 +62,29 @@ snap install gitea
### SUSE/openSUSE
OpenSUSE 建服务为 [openSUSE 和 SLE](https://software.opensuse.org/download/package?package=gitea&project=devel%3Atools%3Ascm)
提供包,你可以在开发软件配置管理存储库中找到它
OpenSUSE 建服務為 [openSUSE 和 SLE](https://software.opensuse.org/download/package?package=gitea&project=devel%3Atools%3Ascm)
提供包,你可以在開發軟件設定管理儲存庫中找到它
### Windows
目前你可以通过 [Chocolatey](https://chocolatey.org/) 来安装 [Gitea](https://chocolatey.org/packages/gitea)。
目前你可以透過 [Chocolatey](https://chocolatey.org/) 來安裝 [Gitea](https://chocolatey.org/packages/gitea)。
```sh
choco install gitea
```
你也可以 [从二进制安](installation/from-binary.md) 。
你也可以 [從二進制安](installation/from-binary.md) 。
### FreeBSD
可以使用 Gitea 的 FreeBSD port `www/gitea`请安装预构建的二制包:
可以使用 Gitea 的 FreeBSD port `www/gitea`請安裝預構建的二制包:
```
pkg install gitea
```
对于最新版本,或使用自定义选项构建 port
[ port 安](https://www.freebsd.org/doc/handbook/ports-using.html)
對於最新版本,或使用自訂選項構建 port
[ port 安](https://www.freebsd.org/doc/handbook/ports-using.html)
```
su -
@@ -92,13 +92,13 @@ cd /usr/ports/www/gitea
make install clean
```
port 使用标准的 FreeBSD 文件系统布局:配置文件在 `/usr/local/etc/gitea`中,
模板、选项、插件和主`/usr/local/share/gitea`中,启动脚本在 `/usr/local/etc/rc.d/gitea`中。
port 使用標準的 FreeBSD 文件系統佈局:設定文件在 `/usr/local/etc/gitea`中,
模板、選項、外掛和主`/usr/local/share/gitea`中,啟動腳本在 `/usr/local/etc/rc.d/gitea`中。
要使 Gitea 作为服务运行,请运`sysrc gitea_enable=YES` 使用 `service gitea start` 命令启动它。
要使 Gitea 作為服務運行,請運`sysrc gitea_enable=YES` 使用 `service gitea start` 命令啟動它。
### 其它
如果这里没有找到你喜欢的包管理器,可以使用 Gitea 第三方软件包。这里有一完整的列表: [awesome-gitea](https://gitea.com/gitea/awesome-gitea/src/branch/master/README.md#user-content-packages)。
如果這裡沒有找到你喜歡的套件管理器,可以使用 Gitea 第三方套件。這裡有一完整的列表: [awesome-gitea](https://gitea.com/gitea/awesome-gitea/src/branch/master/README.md#user-content-packages)。
如果你知道其他 Gitea 第三方软件包,请发送 PR 添加它。
如果你知道其他 Gitea 第三方套件,請發送 PR 添加它。

View File

@@ -6,40 +6,40 @@ aliases:
- /zh-tw/install-from-source
---
# 使用源代码安装
# 使用源程式碼安裝
你需要 [ Go](https://golang.google.cn/doc/install) 并正确设置 Go 境。特的,建议设置`$GOPATH`环境变量,并将 Go 的二制目或目`${GOPATH//://bin:}/bin`添加到`$PATH`中。请参阅 Go 百科上关于 [GOPATH](https://github.com/golang/go/wiki/GOPATH) 的词条
你需要 [ Go](https://golang.google.cn/doc/install) 並正確設定 Go 境。特的,建議設定`$GOPATH`環境變量,並將 Go 的二制目或目`${GOPATH//://bin:}/bin`添加到`$PATH`中。請參閱 Go 百科上關於 [GOPATH](https://github.com/golang/go/wiki/GOPATH) 的詞條
接下[ Node.js 和 npm](https://nodejs.org/zh-tw/download/) 这是构建 JavaScript 和 CSS 文件所需的。最低支的 Node.js 版本是 @minNodeVersion@,建使用最新的 LTS 版本。
接下[ Node.js 和 npm](https://nodejs.org/zh-tw/download/) 這是構建 JavaScript 和 CSS 文件所需的。最低支的 Node.js 版本是 @minNodeVersion@,建使用最新的 LTS 版本。
**注意**:需要 Go 版本 @minGoVersion@ 或更高版本。不,建议获取与我们的持续集成continuous integration, CI相同的版本请参阅在 [Hacking on Gitea](development/hacking-on-gitea.md) 中出的建
**注意**:需要 Go 版本 @minGoVersion@ 或更高版本。不,建議獲取與我們的持續整合continuous integration, CI相同的版本請參閱在 [Hacking on Gitea](development/hacking-on-gitea.md) 中出的建
## 下
## 下
首先,我需要取源。由引入了 Go 模,最简单的方法是直接使用 Git为我们不再需要在 GOPATH 内构建 Gitea。
首先,我需要取源。由引入了 Go 模,最簡單的方法是直接使用 Git為我們不再需要在 GOPATH 內構建 Gitea。
```bash
git clone https://github.com/go-gitea/gitea
```
(之前的版本中建使用 `go get`,但在不再需要。)
(之前的版本中建使用 `go get`,但在不再需要。)
你可以选择编译和安的版本,前有多个选择`main` 分支代表前的开发版本。如果你想编译 `main` 版本,你可以直接跳到 [](#) 部分。
你可以選擇編譯和安的版本,前有多個選擇`main` 分支代表前的開發版本。如果你想編譯 `main` 版本,你可以直接跳到 [](#) 部分。
如果你想编译带有标签的发行版本,可以使用以下命令出:
如果你想編譯帶有標籤的發行版本,可以使用以下命令出:
```bash
git branch -a
git checkout @sourceBranch@
```
验证一个拉取Pull Request, PR要先用新的分支(其中 `xyz` 是 PR 的 ID例如对于 [#2663](https://github.com/go-gitea/gitea/pull/2663)ID 是 `2663 `
驗證一個拉取Pull Request, PR要先用新的分支(其中 `xyz` 是 PR 的 ID例如對於 [#2663](https://github.com/go-gitea/gitea/pull/2663)ID 是 `2663 `
```bash
git fetch origin pull/xyz/head:pr-xyz
```
要以指定行版本(如 @sourceVersion@ )的源代码来构建 Gitea行以下命令列出可用的版本并选择某个版本出。
要以指定行版本(如 @sourceVersion@ )的源程式碼來構建 Gitea行以下命令列出可用的版本並選擇某個版本出。
使用以下命令列出可用的版本:
```bash
@@ -47,115 +47,115 @@ git tag -l
git checkout @sourceVersion@ # or git checkout pr-xyz
```
##
##
从源代码进行构建,系统必须预先安以下程
從源程式碼進行構建,系統必須預先安以下程
- `go` @minGoVersion@ 或更高版本,请参阅 [这里](https://go.dev/dl/)
- `node` @minNodeVersion@ 或更高版本,且安 `npm`, 请参阅 [这里](https://nodejs.org/zh-tw/download/)
- `make`, 请参阅 [这里](development/hacking-on-gitea.md)
- `go` @minGoVersion@ 或更高版本,請參閱 [這裡](https://go.dev/dl/)
- `node` @minNodeVersion@ 或更高版本,且安 `npm`, 請參閱 [這裡](https://nodejs.org/zh-tw/download/)
- `make`, 請參閱 [這裡](development/hacking-on-gitea.md)
为了尽可能简化编译过程,提供了各 [make 任](https://github.com/go-gitea/gitea/blob/main/Makefile)。
為了儘可能簡化編譯過程,提供了各 [make 任](https://github.com/go-gitea/gitea/blob/main/Makefile)。
你的建需求,以下 tags 可以使用:
你的建需求,以下 tags 可以使用:
- `bindata`: 建一个单一的整体二进制文件,包含所有源。适用于构建生产环境版本。
- `sqlite sqlite_unlock_notify`: 启用对 [SQLite3](https://sqlite.org/) 数据库的支持。仅建议在少人使用使用这个模式。
- `pam`: 启用对 PAM Linux 可插拔认证模块)的支。可用于对本地用户进行身份验证或扩展身份验证到 PAM 可用的方法。
- `gogit`实验性功能)使用 go-git 变体的 Git 命令。
- `bindata`: 建一個單一的整體二進制文件,包含所有源。適用於構建生產環境版本。
- `sqlite sqlite_unlock_notify`: 啟用對 [SQLite3](https://sqlite.org/) 資料庫的支援。僅建議在少人使用使用這個模式。
- `pam`: 啟用對 PAM Linux 可插拔認證模組)的支。可用於對本地使用者進行身份驗證或擴展身份驗證到 PAM 可用的方法。
- `gogit`實驗性功能)使用 go-git 變體的 Git 命令。
所有JS/CSS/模板等)打包到二制文件中。在生产环境部署,使用`bindata`构建标签是必需的。在开发/测试 Gitea 或能够明确分离资源时,可以不用`bindata`
所有JS/CSS/模板等)打包到二制文件中。在生產環境部署,使用`bindata`構建標籤是必需的。在開發/測試 Gitea 或能夠明確分離資源時,可以不用`bindata`
要包含所有源,使用 `bindata` 标签
要包含所有源,使用 `bindata` 標籤
```bash
TAGS="bindata" make build
```
在我的持续集成系统的默认发行版中,构建标签为`TAGS="bindata sqlite sqlite_unlock_notify"`。因此,从源码构建的最简单、推方式是:
在我的持續整合系統的預設發行版中,構建標籤為`TAGS="bindata sqlite sqlite_unlock_notify"`。因此,從源碼構建的最簡單、推方式是:
```bash
TAGS="bindata sqlite sqlite_unlock_notify" make build
```
`build`标分为两个子目
`build`標分為兩個子目
- `make backend` 需要 [Go @minGoVersion@](https://golang.google.cn/doc/install) 或更高版本。
- `make frontend` 需要 [Node.js @minNodeVersion@](https://nodejs.org/zh-tw/download/) 或更高版本。
如果存在预构建的前端文件,可以仅构建后端:
如果存在預構建的前端文件,可以僅構建後端:
```bash
TAGS="bindata" make backend
```
## 测试
## 測試
按照上述步完成,工作目录中将会有一`gitea`制文件。可以从该目录进行测试,或其移动到带有测试数据的目中。当手动从命令行启动 Gitea ,可以通过按下`Ctrl + C`停止程
按照上述步完成,工作目錄中將會有一`gitea`制文件。可以從該目錄進行測試,或其移動到帶有測試資料的目中。當手動從命令行啟動 Gitea ,可以透過按下`Ctrl + C`停止程
```bash
./gitea web
```
## 更改默认路径
## 更改預設路徑
Gitea 将从`CustomPath`中查找许多信息。默认的,这会在运行 Gitea 时当前工作目下的`custom/`中(者案:即`$PATH_TO_YOUR_GITEA$/custom/`)。它还将`$(CustomPath)/conf/app.ini`中查找其配置文件`CustomConf`并将当前工作目用作一些可配置值的相基本路`AppWorkPath`。最后,静态文件将从默认为 `AppWorkPath``StaticRootPath`提供。
Gitea 將從`CustomPath`中查找許多資訊。預設的,這會在運行 Gitea 時當前工作目下的`custom/`中(者案:即`$PATH_TO_YOUR_GITEA$/custom/`)。它還將`$(CustomPath)/conf/app.ini`中查找其設定文件`CustomConf`並將當前工作目用作一些可設定值的相基本路`AppWorkPath`。最後,靜態文件將從預設為 `AppWorkPath``StaticRootPath`提供。
管在开发时这些值很有用,但可能下游用户的偏好突。
管在開發時這些值很有用,但可能下游使用者的偏好突。
种选择是使用本文件来隐`gitea`制文件,并在运行 Gitea 之前创建适当的环境。然而,在构建时,可以使用`make``LDFLAGS`环境变量来更改这些默认值。适当的设置如下:
種選擇是使用本文件來隱`gitea`制文件,並在運行 Gitea 之前建立適當的環境。然而,在構建時,可以使用`make``LDFLAGS`環境變量來更改這些預設值。適當的設定如下:
-设置`CustomPath`使用`LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.CustomPath=custom-path\""`
- 对于`CustomConf`应该使用`-X \"code.gitea.io/gitea/modules/setting.CustomConf=conf.ini\"`
- 对于`AppWorkPath`应该使用`-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=working-path\"`
- 对于`StaticRootPath`应该使用`-X \"code.gitea.io/gitea/modules/setting.StaticRootPath=static-root-path\"`
- 要更改默认的 PID 文件位置,使用`-X \"code.gitea.io/gitea/cmd.PIDFile=/run/gitea.pid\"`
-設定`CustomPath`使用`LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.CustomPath=custom-path\""`
- 對於`CustomConf`應該使用`-X \"code.gitea.io/gitea/modules/setting.CustomConf=conf.ini\"`
- 對於`AppWorkPath`應該使用`-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=working-path\"`
- 對於`StaticRootPath`應該使用`-X \"code.gitea.io/gitea/modules/setting.StaticRootPath=static-root-path\"`
- 要更改預設的 PID 文件位置,使用`-X \"code.gitea.io/gitea/cmd.PIDFile=/run/gitea.pid\"`
将这些字符串其前`-X`添加到`LDFLAGS`量中,像上面那使用适当`TAGS``make build`
將這些字符串其前`-X`添加到`LDFLAGS`量中,像上面那使用適當`TAGS``make build`
`gitea help`将允许您查看配置`gitea`设置
`gitea help`將允許您查看設定`gitea`設定
## 交叉编译
## 交叉編譯
`go`编译器工具链支持将代码交叉编译到不同的目标架构上。请参考[`GOOS`和`GOARCH`环境变](https://go.dev/doc/install/source#environment) 以取支的目列表。如果您想性能弱的系(如莓派)建 Gitea交叉编译非常有用。
`go`編譯器工具鏈支援將程式碼交叉編譯到不同的目標架構上。請參考[`GOOS`和`GOARCH`環境變](https://go.dev/doc/install/source#environment) 以取支的目列表。如果您想性能弱的系(如莓派)建 Gitea交叉編譯非常有用。
要使用构建标签`TAGS`行交叉编译 Gitea需要一 C 交叉编译器,该编译器的目标架构与`GOOS``GOARCH`变量选择的架相同。例如,要 Linux ARM64`GOOS=linux``GOARCH=arm64`行交叉编译,您需要`aarch64-unknown-linux-gnu-gcc`交叉编译器。是因 Gitea 构建标签使用了`cgo`的外部函数接口FFI
要使用構建標籤`TAGS`行交叉編譯 Gitea需要一 C 交叉編譯器,該編譯器的目標架構與`GOOS``GOARCH`變量選擇的架相同。例如,要 Linux ARM64`GOOS=linux``GOARCH=arm64`行交叉編譯,您需要`aarch64-unknown-linux-gnu-gcc`交叉編譯器。是因 Gitea 構建標籤使用了`cgo`的外部函數介面FFI
有任何标签的情下,交叉编译的 Gitea Linux ARM64 版本:
有任何標籤的情下,交叉編譯的 Gitea Linux ARM64 版本:
```
GOOS=linux GOARCH=arm64 make build
```
要交叉编译 Linux ARM64 下的 Gitea是推荐的构建标签
要交叉編譯 Linux ARM64 下的 Gitea是推薦的構建標籤
```
CC=aarch64-unknown-linux-gnu-gcc GOOS=linux GOARCH=arm64 TAGS="bindata sqlite sqlite_unlock_notify" make build
```
您的目标架构,适当替换`CC``GOOS``GOARCH`
您的目標架構,適當替換`CC``GOOS``GOARCH`
您需要建一个静态编译的镜像。此,您需要添加以下容:
您需要建一個靜態編譯的鏡像。此,您需要添加以下容:
```
LDFLAGS="-linkmode external -extldflags '-static' $LDFLAGS" TAGS="netgo osusergo $TAGS" make build
```
可以上述的`CC``GOOS``GOARCH`合使用。
可以上述的`CC``GOOS``GOARCH`合使用。
### 添加 bash/zsh 自动补全( 1.19 版本起)
### 添加 bash/zsh 自動補全( 1.19 版本起)
在[`contrib/autocompletion/bash_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/bash_autocomplete)中可以找到一个启用 bash 自动补全的本。您可以根需要行修改,在您的 `.bashrc` 中使用 `source` 命令加载该脚本,或者将其复制`/usr/share/bash-completion/completions/gitea`
在[`contrib/autocompletion/bash_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/bash_autocomplete)中可以找到一個啟用 bash 自動補全的本。您可以根需要行修改,在您的 `.bashrc` 中使用 `source` 命令加載該腳本,或者將其複製`/usr/share/bash-completion/completions/gitea`
似地,可以在[`contrib/autocompletion/zsh_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/zsh_autocomplete)中找到一个用于 zsh 自动补全的本。您可以将其复制`/usr/share/zsh/_gitea`,或者在您的 `.zshrc` 中使用 `source` 命令加载该脚本。
似地,可以在[`contrib/autocompletion/zsh_autocomplete`](https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/zsh_autocomplete)中找到一個用於 zsh 自動補全的本。您可以將其複製`/usr/share/zsh/_gitea`,或者在您的 `.zshrc` 中使用 `source` 命令加載該腳本。
可能需要你根据具体情况进一步改进这些脚本。
可能需要你根據具體情況進一步改進這些腳本。
## 在 Linux 上使用 Zig 进行编译或交叉编译
## 在 Linux 上使用 Zig 進行編譯或交叉編譯
按照 [Zig 的入指南](https://ziglang.org/learn/getting-started/#installing-zig) 安 Zig。
按照 [Zig 的入指南](https://ziglang.org/learn/getting-started/#installing-zig) 安 Zig。
- 编译 (Linux ➝ Linux)
- 編譯 (Linux ➝ Linux)
```sh
CC="zig cc -target x86_64-linux-gnu" \
@@ -168,7 +168,7 @@ TAGS="bindata sqlite sqlite_unlock_notify" \
make build
```
- 交叉编译 (Linux ➝ Windows)
- 交叉編譯 (Linux ➝ Windows)
```sh
CC="zig cc -target x86_64-windows-gnu" \
@@ -180,11 +180,11 @@ TAGS="bindata sqlite sqlite_unlock_notify" \
make build
```
## 在 Windows 上使用 Zig 进行编译或交叉编译
## 在 Windows 上使用 Zig 進行編譯或交叉編譯
使用`GIT BASH`编译
使用`GIT BASH`編譯
- 编译 (Windows ➝ Windows)
- 編譯 (Windows ➝ Windows)
```sh
CC="zig cc -target x86_64-windows-gnu" \
@@ -196,7 +196,7 @@ TAGS="bindata sqlite sqlite_unlock_notify" \
make build
```
- 交叉编译 (Windows ➝ Linux)
- 交叉編譯 (Windows ➝ Linux)
```sh
CC="zig cc -target x86_64-linux-gnu" \
@@ -211,8 +211,8 @@ make build
## Source Map
默认情况gitea 会为前端文件生成精的 Source Map 以省空可以通过“ENABLE_SOURCEMAP”环境变量进行控制:
預設情況gitea 會為前端文件生成精的 Source Map 以省空可以透過“ENABLE_SOURCEMAP”環境變量進行控制:
- `ENABLE_SOURCEMAP=true` 生成所有 Source Map这是开发版本的默认设置
- `ENABLE_SOURCEMAP=reduced` 生成有限的 Source Map是生版本的默认设置
- `ENABLE_SOURCEMAP=true` 生成所有 Source Map這是開發版本的預設設定
- `ENABLE_SOURCEMAP=reduced` 生成有限的 Source Map是生版本的預設設定
- `ENABLE_SOURCEMAP=false` 不生成 Source Map

View File

@@ -6,37 +6,37 @@ aliases:
- /zh-tw/install-on-cloud-provider
---
# 在云服务器上安 Gitea
# 在雲伺服器上安 Gitea
## Cloudron
Gitea 可以在 [Cloudron](https://cloudron.io) 上行一键安装
Cloudron 使得在您的服器上行 Gitea保持其更新和安全变得简单
Gitea 可以在 [Cloudron](https://cloudron.io) 上行一鍵安裝
Cloudron 使得在您的服器上行 Gitea保持其更新和安全變得簡單
[![Install](/cloudron.svg)](https://cloudron.io/button.html?app=io.gitea.cloudronapp)
Gitea 软件包的维护地址在[这里](https://git.cloudron.io/cloudron/gitea-app).
Gitea 套件的維護地址在[這裡](https://git.cloudron.io/cloudron/gitea-app).
这里有一[demo ](https://my.demo.cloudron.io) (用户名: cloudron 密: cloudron) 您可以在其中尝试运行 Gitea。
這裡有一[demo ](https://my.demo.cloudron.io) (使用者名稱: cloudron 密: cloudron) 您可以在其中嘗試運行 Gitea。
## Linode
[Linode](https://www.linode.com/) Gitea 作其市中的一个应用程.
[Linode](https://www.linode.com/) Gitea 作其市中的一個應用程.
Gitea 部署到 Linode, 请参考 [Linode Marketplace](https://www.linode.com/marketplace/apps/linode/gitea/).
Gitea 部署到 Linode, 請參考 [Linode Marketplace](https://www.linode.com/marketplace/apps/linode/gitea/).
## alwaysdata
[alwaysdata](https://www.alwaysdata.com/) Gitea 作其市中的一 droplet.
[alwaysdata](https://www.alwaysdata.com/) Gitea 作其市中的一 droplet.
Gitea 部署到 alwaysdata, 请参考 [alwaysdata Marketplace](https://www.alwaysdata.com/en/marketplace/gitea/).
Gitea 部署到 alwaysdata, 請參考 [alwaysdata Marketplace](https://www.alwaysdata.com/en/marketplace/gitea/).
## Exoscale
[Exoscale](https://www.exoscale.com/) 在其市中提供由 [Glasskube](https://glasskube.eu/) 管理的 Gitea。
[Exoscale](https://www.exoscale.com/) 在其市中提供由 [Glasskube](https://glasskube.eu/) 管理的 Gitea。
Exoscale 是一家洲的云服务提供商。
Exoscale 是一家洲的雲服務提供商。
该软件包通过开源的 [Glasskube Kubernetes Operator](https://github.com/glasskube/operator) 进行维护和更新。
該套件通過開源的 [Glasskube Kubernetes Operator](https://github.com/glasskube/operator) 進行維護和更新。
要在 Exoscale 上部署 Gitea请参考 [Exoscale Marketplace](https://www.exoscale.com/marketplace/listing/glasskube-gitea/)。
要在 Exoscale 上部署 Gitea請參考 [Exoscale Marketplace](https://www.exoscale.com/marketplace/listing/glasskube-gitea/)。

View File

@@ -6,11 +6,11 @@ aliases:
- /zh-tw/install-on-kubernetes
---
# 在 Kubernetes 中安 Gitea
# 在 Kubernetes 中安 Gitea
Gitea 已提供了便在 Kubernetes 原生境中安所需的 Helm Chart
Gitea 已提供了便在 Kubernetes 原生境中安所需的 Helm Chart
默认安装指令
預設安裝指令
```bash
helm repo add gitea https://dl.gitea.com/charts
@@ -18,21 +18,21 @@ helm repo update
helm install gitea gitea/gitea
```
如果采用默认安装指令Helm 部署单实例的 Gitea, PostgreSQL, Memcached。若您想实现自定义安装(包括配置 Gitea 集群、NGINX Ingress、MySQL、MariaDB、持久存等),前往阅读[Gitea Helm Chart](https://gitea.com/gitea/helm-chart/)
如果採用預設安裝指令Helm 部署單實例的 Gitea, PostgreSQL, Memcached。若您想實現自訂安裝(包括設定 Gitea 集群、NGINX Ingress、MySQL、MariaDB、持久存等),前往閱讀[Gitea Helm Chart](https://gitea.com/gitea/helm-chart/)
您也可以通过 `helm show` 命令`README.md`配置文件 `values.yaml` 进行学习和编辑,例如:
您也可以透過 `helm show` 命令`README.md`設定文件 `values.yaml` 進行學習和編輯,例如:
```bash
helm show values gitea/gitea > values.yaml
helm show readme gitea/gitea > README.md
# 使用自定的配置文件 values.yaml
# 使用自定的配置文件 values.yaml
helm install gitea -f values.yaml gitea/gitea
```
## 运行状况检查接口
## 運行狀況檢查介面
Gitea 附了一个运行状况检查接口 `/api/healthz`,你可以像这样在 Kubernetes 中配置它:
Gitea 附了一個運行狀況檢查介面 `/api/healthz`,你可以像這樣在 Kubernetes 中設定它:
```yaml
livenessProbe:
@@ -46,7 +46,7 @@ livenessProbe:
failureThreshold: 10
```
成功的运行状况检查响应代码为 HTTP `200`,下面是例:
成功的運行狀況檢查響應程式碼為 HTTP `200`,下面是例:
```json
HTTP/1.1 200 OK
@@ -71,4 +71,4 @@ HTTP/1.1 200 OK
}
```
更多信息,请参考 Kubernetes 文 [配置存活、就绪和启动探测](https://kubernetes.io/zh-tw/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
更多資訊,請參考 Kubernetes 文 [設定存活、就緒和啟動探測](https://kubernetes.io/zh-tw/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)

View File

@@ -6,23 +6,23 @@ aliases:
- /zh-tw/linux-service
---
# 在 Linux 中以 service 方式
# 在 Linux 中以 service 方式
## 在 Ubuntu 16.04 LTS 中以 service 方式
## 在 Ubuntu 16.04 LTS 中以 service 方式
### systemd 方式
在 terminal 中行以下命令:
在 terminal 中行以下命令:
```
sudo vim /etc/systemd/system/gitea.service
```
着拷贝示例代码 [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) 取消任何需要行在主上的服部分的注释,譬如 MySQL。
著拷貝範例程式碼 [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) 取消任何需要行在主上的服部分的註釋,譬如 MySQL。
修改 userhome 目以及其他必的初始化参数,如果使用自定义端口,需修改 PORT 参数,反之如果使用默认端口则需删除 -p 标记
修改 userhome 目以及其他必的初始化參數,如果使用自端口,需修改 PORT 參數,反之如果使用預設端口則需刪除 -p 標記
激活 gitea 并将它作为系统自启动服务
激活 gitea 並將它作為系統自啟動服務
```
sudo systemctl enable gitea
@@ -31,31 +31,31 @@ sudo systemctl start gitea
### 使用 supervisor
在 terminal 中行以下命令安 supervisor
在 terminal 中行以下命令安 supervisor
```
sudo apt install supervisor
```
supervisor 配置日志路径
supervisor 設定日誌路徑
```
# assuming gitea is installed in /home/git/gitea/
mkdir /home/git/gitea/log/supervisor
```
在文件编辑器中打 supervisor 的配置文件:
在文件編輯器中打 supervisor 的設定文件:
```
sudo vim /etc/supervisor/supervisord.conf
```
增加如下示例配置
增加如下範例設定
[supervisord config](https://github.com/go-gitea/gitea/blob/main/contrib/supervisor/gitea)。
user(git) 和 home(/home/git) 设置为与上文部署中匹配的值。如果使用自定义端口,需修改 PORT 参数,反之如果使用默认端口则需删除 -p 标记
user(git) 和 home(/home/git) 設定為與上文部署中匹配的值。如果使用自端口,需修改 PORT 參數,反之如果使用預設端口則需刪除 -p 標記
激活 supervisor 并将它作为系统自启动服务
激活 supervisor 並將它作為系統自啟動服務
```
sudo systemctl enable supervisor

View File

@@ -4,83 +4,83 @@ slug: "upgrade-from-gitea"
sidebar_position: 100
---
# 从旧版 Gitea 升
# 從舊版 Gitea 升
在升之前,您需要做如下的准备工作。
在升之前,您需要做如下的準備工作。
## 重大变更检查更新日
## 重大變更檢查更新日
为了让 Gitea 得更好,行重大更是不可避免的,尤其是一些里程碑更新的发布
在更新前, [在 Gitea 博客上阅读更新日](https://blog.gitea.com/)
并检查重大更是否会影响你的 Gitea 例。
為了讓 Gitea 得更好,行重大更是不可避免的,尤其是一些里程碑更新的發佈
在更新前, [在 Gitea 部落格上閱讀更新日](https://blog.gitea.com/)
並檢查重大更是否會影響你的 Gitea 例。
## 在控制面板中检查过期的配置项
## 在控制面板中檢查過期的設定項
一些配置项可能会在后续版本中期,你需要在控制面板中查他。如果不解决过期的配置项
Gitea也许会在升级后无法重。你可以访问 https://docs.gitea.com 得要升的版本
对应的文档来修改你的配置文件。
一些設定項可能會在後續版本中期,你需要在控制面板中查他。如果不解決過期的設定項
Gitea也許會在升級後無法重。你可以訪問 https://docs.gitea.com 得要升的版本
對應的文件來修改你的設定文件。
## 降前的
## 降前的
Gitea 保留首二位版本相同的版本的容性 (`a.b.x` -> `a.b.y`)
些版本有相同的数据库结构,可以自由升或降
其他情 (`a.b.?` -> `a.c.?`)下,
新版 Gitea 可能将会将数据库升级到与旧版数据库不同的结构
Gitea 保留首二位版本相同的版本的容性 (`a.b.x` -> `a.b.y`)
些版本有相同的資料庫結構,可以自由升或降
其他情 (`a.b.?` -> `a.c.?`)下,
新版 Gitea 可能將會將資料庫升級到與舊版資料庫不同的結構
举个例子:
舉個例子:
| 前 | 目 | 果 |
| 前 | 目 | 果 |
| --- | --- | --- |
| 1.4.0 | 1.4.1 | ✅ |
| 1.4.1 | 1.4.0 | ⚠️ 不建议,后果自负!尽管数据库结构可能不会变更,它可以正常工作。我们强烈建议降级前进行完全的份。 |
| 1.4.x | 1.5.y | ✅ 数据库会被自动升级。你可以直接 1.4.x 升到最新的 1.5.y。 |
| 1.5.y | 1.4.x | ❌ 数据库已被升级且无法用于旧版本Gitea使用备份来进行降。 |
| 1.4.1 | 1.4.0 | ⚠️ 不建議,後果自負!儘管資料庫結構可能不會變更,它可以正常工作。我們強烈建議降級前進行完全的份。 |
| 1.4.x | 1.5.y | ✅ 資料庫會被自動升級。你可以直接 1.4.x 升到最新的 1.5.y。 |
| 1.5.y | 1.4.x | ❌ 資料庫已被升級且無法用於舊版本Gitea使用備份來進行降。 |
**因你不能基于升级后的数据库运行旧版 Gitea所以你应该在数据库升级前完成数据备份。**
**因你不能基於升級後的資料庫運行舊版 Gitea所以你應該在資料庫升級前完成資料備份。**
如果你在生产环境下使用 Gitea应该在升前做好份,哪怕只是小版本的丁更新。
如果你在生產環境下使用 Gitea應該在升前做好份,哪怕只是小版本的丁更新。
份步:
份步:
* 停止 Gitea
* 备份数据库
* 份 Gitea 配置文件
* 份 Gitea 在 `APP_DATA_PATH` 中的数据文件
* 份 Gitea 的外部存 (例如: S3/MinIO 或被使用的其他存)
* 停止 Gitea
* 備份資料庫
* 份 Gitea 設定文件
* 份 Gitea 在 `APP_DATA_PATH` 中的資料文件
* 份 Gitea 的外部存 (例如: S3/MinIO 或被使用的其他存)
如果你在使用云服务或拥有快照功能的文件系
最好 Gitea 的数据盘及相关资料存储进行一次快照。
如果你在使用雲服務或擁有快照功能的文件系
最好 Gitea 的資料盤及相關資料儲存進行一次快照。
在所有上述步骤准备妥当之后,要升 Gitea只需要下新版,停止运行旧版,进行数据备份,然后运行新版就好。
每次 Gitea 实例启动时,它都会检查是否要进行数据库迁移。
如果需要进行数据库迁Gitea 花一些时间完成升级然后继续服务
在所有上述步驟準備妥當之後,要升 Gitea只需要下新版,停止運行舊版,進行資料備份,然後運行新版就好。
每次 Gitea 實例啟動時,它都會檢查是否要進行資料庫遷移。
如果需要進行資料庫遷Gitea 花一些時間完成升級然後繼續服務
## Docker 升
## Docker 升
* `docker pull` 拉取 Gitea 的最新布版。
* 停止行中的例,备份数据
* 使用 `docker``docker-compose` 启动较新的 Gitea Docker 容器.
* `docker pull` 拉取 Gitea 的最新布版。
* 停止行中的例,備份資料
* 使用 `docker``docker-compose` 啟動較新的 Gitea Docker 容器.
## 包升
## 包升
* 停止行中的例,备份数据
* 使用你的管理器更新 Gitea 到最新版本。
* 启动 Gitea 例。
* 停止行中的例,備份資料
* 使用你的套件管理器更新 Gitea 到最新版本。
* 啟動 Gitea 例。
## 从二进制升
## 從二進制升
*最新的 Gitea 二制文件到临时文件中。
* 停止行中的例,备份数据
* 将旧的 Gitea 二制文件覆成新的。
* 启动 Gitea 例。
*最新的 Gitea 二制文件到臨時文件中。
* 停止行中的例,備份資料
* 將舊的 Gitea 二制文件覆成新的。
* 啟動 Gitea 例。
在 Linux 系上自动执行以上步骤的脚本可在 [Gitea 的 source tree 中找到 `contrib/upgrade.sh` 来获](https://github.com/go-gitea/gitea/blob/main/contrib/upgrade.sh).
在 Linux 系上自動執行以上步驟的腳本可在 [Gitea 的 source tree 中找到 `contrib/upgrade.sh` 來獲](https://github.com/go-gitea/gitea/blob/main/contrib/upgrade.sh).
## 小心你的自定义模板
## 小心你的自模板
Gitea 的模板结构与变量可能会随着各个版本的发布发生变化,如果你使用了自定义模板,
你得注意你的模板你使用的 Gitea 版本的容性。
Gitea 的模板結構與變量可能會隨著各個版本的發佈發生變化,如果你使用了自模板,
你得注意你的模板你使用的 Gitea 版本的容性。
如果自定义模板 Gitea 版本不容,你可能遇到:
`50x` 服务器错误,页面元素失或故障,莫名其妙的页面布局,等等…
移除或更新不容的模板Gitea Web 可以正常工作。
如果自模板 Gitea 版本不容,你可能遇到:
`50x` 伺服器錯誤,頁面元素失或故障,莫名其妙的頁面佈局,等等…
移除或更新不容的模板Gitea Web 可以正常工作。

View File

@@ -6,63 +6,63 @@ aliases:
- /zh-tw/windows-service
---
# 注册为 Windows 服
# 註冊為 Windows 服
## 准备工作
## 準備工作
在 C:\gitea\custom\conf\app.ini 中行了以下更改:
在 C:\gitea\custom\conf\app.ini 中行了以下更改:
```ini title="app.ini"
RUN_USER = COMPUTERNAME$
```
Gitea 设置为以本地系统用户运行。
Gitea 設定為以本地系統使用者運行。
COMPUTERNAME 是命令行中行 `echo %COMPUTERNAME%` 得到的响应。如果响应是 `USER-PC`,那 `RUN_USER = USER-PC$`。
COMPUTERNAME 是命令行中行 `echo %COMPUTERNAME%` 得到的響應。如果響應是 `USER-PC`,那 `RUN_USER = USER-PC$`。
### 使用绝对路径
### 使用絕對路徑
如果您使用 SQLite3请将 `PATH` 更改包含完整路
如果您使用 SQLite3請將 `PATH` 更改包含完整路
```ini title="app.ini"
[database]
PATH = c:/gitea/data/gitea.db
```
## 注册为 Windows 服
## 註冊為 Windows 服
注册为 Windows 服,首先以 Administrator 身份行 `cmd`,然后执行以下命令:
註冊為 Windows 服,首先以 Administrator 身份行 `cmd`,然後執行以下命令:
```
sc.exe create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""
```
忘了 `C:\gitea` 替成你的 Gitea 安装目录
忘了 `C:\gitea` 替成你的 Gitea 安裝目錄
在控制面板打 "Windows Services",搜索 "gitea",右键选择 "Run"。在浏览器打 `http://localhost:3000` 就可以访问了。(如果你修改了端口,请访问对应的端口3000 是默认端口)。
在控制面板打 "Windows Services",搜索 "gitea",右鍵選擇 "Run"。在瀏覽器打 `http://localhost:3000` 就可以訪問了。(如果你修改了端口,請前往對應的端口3000 是預設端口)。
### 服务启动类
### 服務啟動類
据观察,在启动期间加载的系Gitea 服可能无法启动,并在 Windows 事件日志中记录超时
这种情况下,将启动类型更改`Automatic-Delayed`。可以在服务创建期间完成,或者通过运行配置命令完成。
據觀察,在啟動期間加載的系Gitea 服可能無法啟動,並在 Windows 事件日誌中記錄超時
這種情況下,將啟動類型更改`Automatic-Delayed`。可以在服務建立期間完成,或者通過運行設定命令完成。
```
sc.exe config gitea start= delayed-auto
```
### 添加启动依赖项
### 添加啟動依賴項
将启动依赖项添加到 Gitea Windows 服(例如 Mysql、Mariadb管理,然后运行以下命令:
將啟動依賴項添加到 Gitea Windows 服(例如 Mysql、Mariadb管理,然後運行以下命令:
```
sc.exe config gitea depend= mariadb
```
这将确保在 Windows 计算机重新启动时,将延迟自动启动 Gitea直到数据库准备就绪从而减少启动失败的情
這將確保在 Windows 計算機重新啟動時,將延遲自動啟動 Gitea直到資料庫準備就緒從而減少啟動失敗的情
## Windows 服务中删
## Windows 服務中刪
以 Administrator 身份行 `cmd`,然后执行以下命令:
以 Administrator 身份行 `cmd`,然後執行以下命令:
```
sc.exe delete gitea

View File

@@ -6,19 +6,19 @@ aliases:
- /zh-tw/install-with-docker-rootless
---
# 使用 Docker 安 (rootless)
# 使用 Docker 安 (rootless)
Gitea 在其 Docker Hub 组织中提供自更新的 Docker 像。您可以始使用最新的稳定标签,或使用其他理 Docker 像更新的服
Gitea 在其 Docker Hub 組織中提供自更新的 Docker 像。您可以始使用最新的穩定標籤,或使用其他理 Docker 像更新的服
rootless 像使用 Gitea 部 SSH 功能提供 Git 协议,但不支 OpenSSH。
rootless 像使用 Gitea 部 SSH 功能提供 Git 協議,但不支 OpenSSH。
参考设置指南将用户引导通过基于 `docker-compose`设置。但是,`docker-compose` 的安超出了本文档的范围。要安`docker-compose` 本身, 按照官方的 [装说](https://docs.docker.com/compose/install/)行操作。
參考設定指南將使用者引導通過基於 `docker-compose`設定。但是,`docker-compose` 的安超出了本文件的範圍。要安`docker-compose` 本身, 按照官方的 [裝說](https://docs.docker.com/compose/install/)行操作。
## 基础设置
## 基礎設定
简单的设置只需创建一个卷和一个网络,并将 `docker.gitea.com/gitea:latest-rootless` 像作为服务启动。由于没有可用的数据库,可以使用 SQLite3 初始化一
簡單的設定只需建立一個卷和一個網路,並將 `docker.gitea.com/gitea:latest-rootless` 像作為服務啟動。由於沒有可用的資料庫,可以使用 SQLite3 初始化一
创建一个名为 `data``config`:
建立一個名為 `data``config`:
```sh
mkdir -p gitea/{data,config}
@@ -26,7 +26,7 @@ cd gitea
touch docker-compose.yml
```
后将以下容粘到名 `docker-compose.yml` 的文件中:
後將以下容粘到名 `docker-compose.yml` 的文件中:
```yaml
version: "2"
@@ -45,19 +45,19 @@ services:
- "2222:2222"
```
注意,卷由在配置文件中指定的 UID/GID 的用户/组所有。默认情况Docker 中的 Gitea 使用 uid:1000 gid:1000。如果需要您可以使用以下命令设置这些文件的所有
注意,卷由在設定文件中指定的 UID/GID 的使用者/組所有。預設情況Docker 中的 Gitea 使用 uid:1000 gid:1000。如果需要您可以使用以下命令設定這些文件的所有
```sh
sudo chown 1000:1000 config/ data/
```
> 如果未为卷设置正确的权限,容器可能无法启动
> 如果未為卷設定正確的權限,容器可能無法啟動
对于稳定版本,您可以使用 `:latest-rootless``:1-rootless`,或指定特定的版本,如: `@dockerVersion@-rootless`。如果您想使用最新的开发版本,可以使用 `:dev-rootless` 标签。如果您想运行发布分支的最新提交,可以使用 `:1.x-dev-rootless` 标签,其中 x 是 Gitea 的次要版本(例如:`1.16-dev-rootless`)。
對於穩定版本,您可以使用 `:latest-rootless``:1-rootless`,或指定特定的版本,如: `@dockerVersion@-rootless`。如果您想使用最新的開發版本,可以使用 `:dev-rootless` 標籤。如果您想運行發佈分支的最新提交,可以使用 `:1.x-dev-rootless` 標籤,其中 x 是 Gitea 的次要版本(例如:`1.16-dev-rootless`)。
## 自定义端口
## 自端口
将集成的 SSH 和 Web 服务器绑定到不同的端口,请调整端口部分。通常只需更改主端口保持容器的端口不
將整合的 SSH 和 Web 伺服器綁定到不同的端口,請調整端口部分。通常只需更改主端口保持容器的端口不
```diff
version: "2"
@@ -78,9 +78,9 @@ services:
+ - "22:2222"
```
## MySQL 数据库
## MySQL 資料庫
Gitea MySQL 数据库结合使用,请对上面创建`docker-compose.yml` 文件行以下更改。
Gitea MySQL 資料庫結合使用,請對上面建立`docker-compose.yml` 文件行以下更改。
```diff
version: "2"
@@ -118,9 +118,9 @@ services:
+ - ./mysql:/var/lib/mysql
```
## PostgreSQL 数据库
## PostgreSQL 資料庫
Gitea PostgreSQL 数据库结合使用,请对上面创建`docker-compose.yml` 文件行以下更改。
Gitea PostgreSQL 資料庫結合使用,請對上面建立`docker-compose.yml` 文件行以下更改。
```diff
version: "2"
@@ -159,7 +159,7 @@ services:
## 命名卷 (Named Volumes)
要使用命名卷 (Named Volumes) 而不是主卷 (Host Volumes)`docker-compose.yml` 配置中定和使用命名卷。这样的更改将自动创建所需的卷。您不需要担心权限问题Docker 会自动处理。
要使用命名卷 (Named Volumes) 而不是主卷 (Host Volumes)`docker-compose.yml` 設定中定和使用命名卷。這樣的更改將自動建立所需的卷。您不需要擔心權限問題Docker 會自動處理。
```diff
version: "2"
@@ -186,13 +186,13 @@ services:
- "2222:2222"
```
MySQL 或 PostgreSQL 容器需要单独创建
MySQL 或 PostgreSQL 容器需要單獨建立
## 自定义用户
## 自訂使用者
你可以选择使用自定义用户 (遵循 --user 标志定义 https://docs.docker.com/engine/reference/run/#user)。
例如,要克隆主机用户 `git` 的定义,请使用命令 `id -u git` 并将其添加到 `docker-compose.yml` 文件中:
请确用户对保挂载的文件具有写权限。
你可以選擇使用自訂使用者 (遵循 --user 標誌定義 https://docs.docker.com/engine/reference/run/#user)。
例如,要克隆主機使用者 `git` 的定義,請使用命令 `id -u git` 並將其添加到 `docker-compose.yml` 文件中:
請確使用者對保掛載的文件具有寫權限。
```diff
version: "2"
@@ -212,53 +212,53 @@ services:
- "2222:2222"
```
## 启动
## 啟動
启动基于 `docker-compose`这个设置,请执`docker-compose up -d`,以在后台启动 Gitea。使用 `docker-compose ps` 命令可以查看 Gitea 是否正确启动。可以使用 `docker-compose logs` 命令查看日
啟動基於 `docker-compose`這個設定,請執`docker-compose up -d`,以在後臺啟動 Gitea。使用 `docker-compose ps` 命令可以查看 Gitea 是否正確啟動。可以使用 `docker-compose logs` 命令查看日
关闭设置,请执`docker-compose down` 命令。这将停止和止容器,但卷仍存在。
關閉設定,請執`docker-compose down` 命令。這將停止和止容器,但卷仍存在。
注意:如果在 HTTP 上使用的是非 3000 端口,请将 app.ini 更改匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
注意:如果在 HTTP 上使用的是非 3000 端口,請將 app.ini 更改匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
## 安
## 安
在通 `docker-compose` 启动 Docker 设置后,可以使用喜爱的浏览器访问 Gitea完成安装过程。访问 `http://<服器-IP>:3000` 按照安装向导进行操作。如果数据库是使用上述文中的 `docker-compose` 设置启动的,注意必使用 `db`为数据库主机名。
在通 `docker-compose` 啟動 Docker 設定後,可以使用喜愛的瀏覽器訪問 Gitea完成安裝過程。訪問 `http://<服器-IP>:3000` 按照安裝嚮導進行操作。如果資料庫是使用上述文中的 `docker-compose` 設定啟動的,注意必使用 `db`為資料庫主機名。
## 自定义
## 自
定义文件的位置位 `/var/lib/gitea/custom`中,可以在这里找到有关自定义的文件明。如果使用主host volumes很容易访问这些文件如果使用命名卷named volumes可以通过另一容器或直接访问 `/var/lib/docker/volumes/gitea_gitea/_/var_lib_gitea` 来进行访问。在安装后,配置文件保存在 `/etc/gitea/app.ini` 中。
文件的位置位 `/var/lib/gitea/custom`中,可以在這裡找到有關自訂的文件明。如果使用主host volumes很容易訪問這些文件如果使用命名卷named volumes可以透過另一容器或直接訪問 `/var/lib/docker/volumes/gitea_gitea/_/var_lib_gitea` 來進行訪問。在安裝後,設定文件保存在 `/etc/gitea/app.ini` 中。
## 升
## 升
:::warning
:exclamation::exclamation: **保您已将数据卷迁移到 Docker 容器之外的其他位置** :exclamation::exclamation:
:exclamation::exclamation: **保您已將資料卷遷移到 Docker 容器之外的其他位置** :exclamation::exclamation:
:::
将安装升级到最新版本,按照以下步操作:
將安裝升級到最新版本,按照以下步操作:
```bash
# 如果在 docker-compose.yml 中指定了版本,请编辑该文件以更新版本
# 拉取新的
# 如果在 docker-compose.yml 中指定了版本,請編輯該文件以更新版本
# 拉取新的
docker-compose pull
# 启动一个新的容器,自移除的容器
# 啟動一個新的容器,自移除的容器
docker-compose up -d
```
## 从标准镜像升
## 從標準鏡像升
- 份您的设置
- 将卷挂载点从 `/data` 更改 `/var/lib/gitea`
- 如果使用了自定义`app.ini`请将其移到新的挂载`/etc/gitea` 的卷中
- 卷中的文件gitea重命名 custom
- 如果需要,编辑 `app.ini`
- 设置 `START_SSH_SERVER = true`
- 使用` docker.gitea.com/gitea:@dockerVersion@-rootless`
- 份您的設定
- 將卷掛載點從 `/data` 更改 `/var/lib/gitea`
- 如果使用了自`app.ini`請將其移到新的掛載`/etc/gitea` 的卷中
- 卷中的文件gitea重命名 custom
- 如果需要,編輯 `app.ini`
- 設定 `START_SSH_SERVER = true`
- 使用` docker.gitea.com/gitea:@dockerVersion@-rootless`
## 使用环境变量管理部署
## 使用環境變量管理部署
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式 `GITEA__SECTION_NAME__KEY_NAME`环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
除了上述的環境變量外,`app.ini` 中的任何設定都可以透過形式 `GITEA__SECTION_NAME__KEY_NAME`環境變量進行設定或覆蓋。這些設定在每次 Docker 容器啟動時都會生效。完整資訊請參考[這裡](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
这些环境变量可以在 `docker-compose.yml`传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD或者在 `docker-compose.yml` 相同目中的 `.env` 文件中设置了这些环境变量:
這些環境變量可以在 `docker-compose.yml`傳遞給 Docker 容器。以下範例將啟用 SMTP 郵件伺服器,如果主機上設定了所需的環境變量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD或者在 `docker-compose.yml` 相同目中的 `.env` 文件中設定了這些環境變量:
```bash
...
@@ -274,36 +274,36 @@ services:
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
```
设置所需的 TOKEN 和 SECRET 值,可以使用 Gitea 的置[生成使用函](../administration/command-line.md#generate).
設定所需的 TOKEN 和 SECRET 值,可以使用 Gitea 的置[生成使用函](../administration/command-line.md#generate).
# SSH 容器透
# SSH 容器透
SSH 在容器内运行,如果需要 SSH 支,需要 SSH 从主机透传到容器。一种选择是在容器内运行 SSH使用非标准端口(或将主机端口移到非标准端口)。另一可能更直接的选择是将主机上的 SSH 命令转发到容器。下面解释了这种设置
SSH 在容器內運行,如果需要 SSH 支,需要 SSH 從主機透傳到容器。一種選擇是在容器內運行 SSH使用非標準端口(或將主機端口移到非標準端口)。另一可能更直接的選擇是將主機上的 SSH 命令轉發到容器。下面解釋了這種設定
本指南假您已在主机上创建了一个名为 `git`用户,并具有`docker exec`限,且 Gitea 容器的名称为 `gitea`。您需要修改该用户的 shell命令转发到容器`sh`行文件,使用 `docker exec`
本指南假您已在主機上建立了一個名為 `git`使用者,並具有`docker exec`限,且 Gitea 容器的名稱為 `gitea`。您需要修改該使用者的 shell命令轉發到容器`sh`行文件,使用 `docker exec`
首先,在主机上创建文件 `/usr/local/bin/gitea-shell`填入以下容:
首先,在主機上建立文件 `/usr/local/bin/gitea-shell`填入以下容:
```bash
#!/bin/sh
/usr/bin/docker exec -i --env SSH_ORIGINAL_COMMAND="$SSH_ORIGINAL_COMMAND" gitea sh "$@"
```
注意上述 docker 命令中的 `gitea` 是容器的名。如果您的容器名不同,请记得更改。
注意上述 docker 命令中的 `gitea` 是容器的名。如果您的容器名不同,請記得更改。
还应确保正确设置了 shell 包器的限:
還應確保正確設定了 shell 包器的限:
```bash
sudo chmod +x /usr/local/bin/gitea-shell
```
一旦包器就位,您可以将其设置为 `git` 用户的 shell
一旦包器就位,您可以將其設定為 `git` 使用者的 shell
```bash
sudo usermod -s /usr/local/bin/gitea-shell git
```
在,所有的 SSH 命令都会被转发到容器,您需要在主机上设置 SSH 认证。这可以通过利用 [SSH AuthorizedKeysCommand](../administration/command-line.md#keys) 匹配 Gitea 接受的密。在主`/etc/ssh/sshd_config` 文件中添加以下代码块
在,所有的 SSH 命令都會被轉發到容器,您需要在主機上設定 SSH 認證。這可以透過利用 [SSH AuthorizedKeysCommand](../administration/command-line.md#keys) 匹配 Gitea 接受的密。在主`/etc/ssh/sshd_config` 文件中添加以下程式碼塊
```bash
Match User git
@@ -311,9 +311,9 @@ Match User git
AuthorizedKeysCommand /usr/bin/docker exec -i gitea /usr/local/bin/gitea keys -c /etc/gitea/app.ini -e git -u %u -t %t -k %k
```
1.16.0 始,您不需要设置 `-c /etc/gitea/app.ini` 选项。)
1.16.0 始,您不需要設定 `-c /etc/gitea/app.ini` 選項。)
剩下的就是重新启动 SSH 服器:
剩下的就是重新啟動 SSH 服器:
```bash
sudo systemctl restart sshd
@@ -321,5 +321,5 @@ sudo systemctl restart sshd
**注意**
这实际上并没有使用 Docker 的 SSH而是仅仅使用了围绕它的命令。
从理论上讲,您可以不运行内部的 SSH 服器。
這實際上並沒有使用 Docker 的 SSH而是僅僅使用了圍繞它的命令。
從理論上講,您可以不運行內部的 SSH 服器。

View File

@@ -6,15 +6,15 @@ aliases:
- /zh-tw/install-with-docker
---
# 使用 Docker 安
# 使用 Docker 安
Gitea 在其 Docker Hub 组织内提供自更新的 Docker 像。可以始使用最新的稳定标签或使用其他服务来更新 Docker 像。
Gitea 在其 Docker Hub 組織內提供自更新的 Docker 像。可以始使用最新的穩定標籤或使用其他服務來更新 Docker 像。
该参考设置指导用户完成基 `docker-compose`设置,但是 `docker-compose` 的安不在本文档的范围之内。要安 `docker-compose` 本身,遵循官方[装说](https://docs.docker.com/compose/install/)。
該參考設定指導使用者完成基 `docker-compose`設定,但是 `docker-compose` 的安不在本文件的範圍之內。要安 `docker-compose` 本身,遵循官方[裝說](https://docs.docker.com/compose/install/)。
## 基本
简单的设置只是创建一个卷和一个网络,然后将 `docker.gitea.com/gitea:latest` 像作为服务启动。由于没有可用的数据库,因此可以使用 SQLite3 初始化数据库。创建一个类`gitea` 的目录,并将以下容粘到名 `docker-compose.yml` 的文件中。注意,该卷应由配置文件中指定的 UID/GID 的用户/组拥有。如果您不授予卷正确的权限,容器可能无法启动。另注意,标签 `:latest` 将安装当前的开发版本。对于稳定的行版,您可以使用 `:1` 或指定某个发行版,例如 `@dockerVersion@`
簡單的設定只是建立一個卷和一個網路,然後將 `docker.gitea.com/gitea:latest` 像作為服務啟動。由於沒有可用的資料庫,因此可以使用 SQLite3 初始化資料庫。建立一個類`gitea` 的目錄,並將以下容粘到名 `docker-compose.yml` 的文件中。注意,該卷應由設定文件中指定的 UID/GID 的使用者/組擁有。如果您不授予卷正確的權限,容器可能無法啟動。另注意,標籤 `:latest` 將安裝當前的開發版本。對於穩定的行版,您可以使用 `:1` 或指定某個發行版,例如 `@dockerVersion@`
```yaml
version: "3"
@@ -44,7 +44,7 @@ services:
## 端口
将集成的 openSSH 守护进程和 Web 服务器绑定到其他端口,请调整端口部分。通常,只需更改主端口,容器的端口保持原即可。
將整合的 openSSH 守護進程和 Web 伺服器綁定到其他端口,請調整端口部分。通常,只需更改主端口,容器的端口保持原即可。
```diff
version: "3"
@@ -74,11 +74,11 @@ services:
+ - "2221:22"
```
## 数据库
## 資料庫
### MySQL 数据库
### MySQL 資料庫
Gitea MySQL 数据库结合使用,请将这些更改应用于上面创建`docker-compose.yml` 文件。
Gitea MySQL 資料庫結合使用,請將這些更改應用於上面建立`docker-compose.yml` 文件。
```diff
version: "3"
@@ -126,9 +126,9 @@ services:
+ - ./mysql:/var/lib/mysql
```
### PostgreSQL 数据库
### PostgreSQL 資料庫
Gitea PostgreSQL 数据库结合使用,请将这些更改应用于上面创建`docker-compose.yml` 文件。
Gitea PostgreSQL 資料庫結合使用,請將這些更改應用於上面建立`docker-compose.yml` 文件。
```diff
version: "3"
@@ -177,7 +177,7 @@ services:
## 命名卷
要使用命名卷而不是主卷,`docker-compose.yml` 配置中定义并使用命名卷。此更改将自动创建所需的卷。您无需担心命名卷的Docker 将自动处理该问题
要使用命名卷而不是主卷,`docker-compose.yml` 設定中定義並使用命名卷。此更改將自動建立所需的卷。您無需擔心命名卷的Docker 將自動處理該問題
```diff
version: "3"
@@ -207,59 +207,59 @@ services:
- "222:22"
```
MySQL 或 PostgreSQL 容器需要分别创建
MySQL 或 PostgreSQL 容器需要分別建立
## 启动
## 啟動
要基 `docker-compose` 启动此设置,请执`docker-compose up -d`,以在后台启动 Gitea。使用 `docker-compose ps` 将显示 Gitea 是否正确启动。可以使用 `docker-compose logs` 查看日
要基 `docker-compose` 啟動此設定,請執`docker-compose up -d`,以在後臺啟動 Gitea。使用 `docker-compose ps` 將顯示 Gitea 是否正確啟動。可以使用 `docker-compose logs` 查看日
关闭设置,请执`docker-compose down`这将停止并杀死容器。些卷仍然存在。
關閉設定,請執`docker-compose down`這將停止並殺死容器。些卷仍然存在。
注意:如果在 http 上使用非 3000 端口,更改 app.ini 以匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
注意:如果在 http 上使用非 3000 端口,更改 app.ini 以匹配 `LOCAL_ROOT_URL = http://localhost:3000/`
## 安
## 安
`docker-compose` 启动 Docker 安装后,应该可以使用喜欢的浏览器访问 Gitea以完成安装。访问 http://server-ip:3000 遵循安装向导。如果数据库是通上述 `docker-compose` 设置启动的,注意,必须将 `db` 用作数据库主机名。
`docker-compose` 啟動 Docker 安裝後,應該可以使用喜歡的瀏覽器訪問 Gitea以完成安裝。訪問 http://server-ip:3000 遵循安裝嚮導。如果資料庫是通上述 `docker-compose` 設定啟動的,注意,必須將 `db` 用作資料庫主機名。
## 环境变
## 環境變
您可以通过环境变量配置 Gitea 的一些设置
您可以透過環境變量設定 Gitea 的一些設定
默认值以**粗**示)
預設值以**粗**示)
- `APP_NAME`**“Gitea: Git with a cup of tea”**用程序名称,在页面标题中使用。
- `RUN_MODE`**prod**用程序运行模式,会影响性能和调试。"dev""prod"或"test"。
- `DOMAIN`**localhost**:此服器的域名,用 Gitea UI 中示的 http 克隆 URL。
- `SSH_DOMAIN`**localhost**该服务器的域名,用 Gitea UI 中示的 ssh 克隆 URL。如果用了安装页面, SSH 域服务器将采用以下形式的 DOMAIN 值(保存时将覆盖此设置)。
- `SSH_PORT`**22**:克隆 URL 中示的 SSH 端口。
- `SSH_LISTEN_PORT`**%(SSH_PORT)s**置 SSH 服器的端口。
- `DISABLE_SSH`**false**:如果不可用,禁用 SSH 功能。如果要禁用 SSH 功能,在安 Gitea 时应将 SSH 端口设置为 `0`
- `HTTP_PORT`**3000**HTTP 监听端口。
- `ROOT_URL`**""**:覆盖自动生成的公共 URL。如果部 URL 和外部 URL 不匹配(例如在 Docker 中),很有用。
- `LFS_START_SERVER`**false**用 git-lfs 支
- `DB_TYPE`**sqlite3**:正在使用的数据库类型[mysqlpostgresmssqlsqlite3]。
- `DB_HOST`**localhost:3306**数据库主机地址和端口。
- `DB_NAME`**gitea**数据库名称
- `DB_USER`**root**数据库用户名
- `DB_PASSWD`**"_empty_"** 数据库用户密码。如果您在密中使用特殊字符,使用“您的密码”进行引用。
- `INSTALL_LOCK`**false**:禁止访问安装页面。
- `SECRET_KEY`**""** :全局密钥。这应该更改。如果它具有一个值并`INSTALL_LOCK` 空, `INSTALL_LOCK` 将自动设置为 `true`
- `DISABLE_REGISTRATION`**false**:禁用注册,之只有管理才能为用户创建帐户
- `REQUIRE_SIGNIN_VIEW`**false**用此选项可强制用户登录以查看任何面。
- `USER_UID`**1000**:在容器内运行 Gitea 的用户的 UIDUnix 用户 ID。如果使用主卷,则将其与 `/data` 卷的所有者的 UID 匹配(对于命名卷,不需要这样做)。
- `USER_GID`**1000**:在容器内运行 Gitea 的用户的 GIDUnix ID。如果使用主卷,则将其与 `/data` 卷的所有者的 GID 匹配(对于命名卷,不需要这样做)。
- `APP_NAME`**“Gitea: Git with a cup of tea”**用程式名稱,在頁面標題中使用。
- `RUN_MODE`**prod**用程式運行模式,會影響性能和調試。"dev""prod"或"test"。
- `DOMAIN`**localhost**:此服器的域名,用 Gitea UI 中示的 http 克隆 URL。
- `SSH_DOMAIN`**localhost**該伺服器的域名,用 Gitea UI 中示的 ssh 克隆 URL。如果用了安裝頁面, SSH 域伺服器將採用以下形式的 DOMAIN 值(保存時將覆蓋此設定)。
- `SSH_PORT`**22**:克隆 URL 中示的 SSH 端口。
- `SSH_LISTEN_PORT`**%(SSH_PORT)s**置 SSH 服器的端口。
- `DISABLE_SSH`**false**:如果不可用,禁用 SSH 功能。如果要禁用 SSH 功能,在安 Gitea 時應將 SSH 端口設定為 `0`
- `HTTP_PORT`**3000**HTTP 監聽端口。
- `ROOT_URL`**""**:覆蓋自動生成的公共 URL。如果部 URL 和外部 URL 不匹配(例如在 Docker 中),很有用。
- `LFS_START_SERVER`**false**用 git-lfs 支
- `DB_TYPE`**sqlite3**:正在使用的資料庫類型[mysqlpostgresmssqlsqlite3]。
- `DB_HOST`**localhost:3306**資料庫主機地址和端口。
- `DB_NAME`**gitea**資料庫名稱
- `DB_USER`**root**資料庫使用者名稱
- `DB_PASSWD`**"_empty_"** 資料庫使用者密碼。如果您在密中使用特殊字符,使用“您的密碼”進行引用。
- `INSTALL_LOCK`**false**:禁止訪問安裝頁面。
- `SECRET_KEY`**""** :全域密鑰。這應該更改。如果它具有一個值並`INSTALL_LOCK` 空, `INSTALL_LOCK` 將自動設定為 `true`
- `DISABLE_REGISTRATION`**false**:禁用註冊,之只有管理才能為使用者建立帳戶
- `REQUIRE_SIGNIN_VIEW`**false**用此選項可強制使用者登入以查看任何面。
- `USER_UID`**1000**:在容器內運行 Gitea 的使用者的 UIDUnix 使用者 ID。如果使用主卷,則將其與 `/data` 卷的所有者的 UID 匹配(對於命名卷,不需要這樣做)。
- `USER_GID`**1000**:在容器內運行 Gitea 的使用者的 GIDUnix ID。如果使用主卷,則將其與 `/data` 卷的所有者的 GID 匹配(對於命名卷,不需要這樣做)。
## 自定义
## 自
[](../administration/customizing-gitea.md)描述的定文件放在 `/data/gitea`中。如果使用主卷,则访问这些文件非常容易;对于命名卷,可以通过另一容器或通直接访问 `/var/lib/docker/volumes/gitea_gitea/_data` 完成。安装后,配置文件保存在 `/data/gitea/conf/app.ini` 中。
[](../administration/customizing-gitea.md)描述的定文件放在 `/data/gitea`中。如果使用主卷,則訪問這些文件非常容易;對於命名卷,可以透過另一容器或通直接訪問 `/var/lib/docker/volumes/gitea_gitea/_data` 完成。安裝後,設定文件保存在 `/data/gitea/conf/app.ini` 中。
## 升
## 升
:::warning
:exclamation::exclamation: **保已将数据卷到 Docker 容器外部的某位置** :exclamation::exclamation:
:exclamation::exclamation: **保已將資料捲到 Docker 容器外部的某位置** :exclamation::exclamation:
:::
将安装升级到最新版本:
將安裝升級到最新版本:
```bash
# Edit `docker-compose.yml` to update the version, if you have one specified
@@ -269,9 +269,9 @@ docker-compose pull
docker-compose up -d
```
## 使用环境变量管理部署
## 使用環境變量管理部署
除了上面的环境变量之外,`app.ini` 中的任何设置都可以使用以下形式的环境变量进行设置或覆`GITEA__SECTION_NAME__KEY_NAME`。 每次 docker 容器启动时都会应用这些设置。 完整信息在[这里](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
除了上面的環境變量之外,`app.ini` 中的任何設定都可以使用以下形式的環境變量進行設定或覆`GITEA__SECTION_NAME__KEY_NAME`。 每次 docker 容器啟動時都會應用這些設定。 完整資訊在[這裡](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini)。
```bash
...
@@ -286,9 +286,9 @@ services:
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
```
Gitea 将为每次新安装自动生成新的 `SECRET_KEY` 并将它们写`app.ini`。 如果您想手动设置 `SECRET_KEY`,您可以使用以下 docker 命令使用 Gitea 置的[方法](../administration/command-line.md#generate)生成 `SECRET_KEY`。 安装后请妥善保管您的 `SECRET_KEY`,如若丢失则无法解密已加密的数据
Gitea 將為每次新安裝自動生成新的 `SECRET_KEY` 並將它們寫`app.ini`。 如果您想手動設定 `SECRET_KEY`,您可以使用以下 docker 命令使用 Gitea 置的[方法](../administration/command-line.md#generate)生成 `SECRET_KEY`。 安裝後請妥善保管您的 `SECRET_KEY`,如若丟失則無法解密已加密的資料
以下命令`stdout` 出一新的 `SECRET_KEY``INTERNAL_TOKEN`,然您可以其放入环境变量中。
以下命令`stdout` 出一新的 `SECRET_KEY``INTERNAL_TOKEN`,然您可以其放入環境變量中。
```bash
docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret SECRET_KEY
@@ -307,9 +307,9 @@ services:
## SSH 容器直通
SSH 在容器内运行,因此,如果需要 SSH 支持,则需要 SSH 从主机传递到容器。一种选择是在非标准端口上行容器 SSH将主机端口移至非标准端口)。另一可能更直接的选择是将 SSH 连接从主机转发到容器。下面将说明此设置
SSH 在容器內運行,因此,如果需要 SSH 支援,則需要 SSH 從主機傳遞到容器。一種選擇是在非標準端口上行容器 SSH將主機端口移至非標準端口)。另一可能更直接的選擇是將 SSH 連接從主機轉發到容器。下面將說明此設定
本指南假定您已在名 `git` 的主机上创建了一个用户,该用户与容器值 `USER_UID`/`USER_GID` 共享相同的 `UID`/`GID`些值可以在 `docker-compose.yml`设置为环境变量:
本指南假定您已在名 `git` 的主機上建立了一個使用者,該使用者與容器值 `USER_UID`/`USER_GID` 共享相同的 `UID`/`GID`些值可以在 `docker-compose.yml`設定為環境變量:
```bash
environment:
@@ -317,26 +317,26 @@ environment:
- USER_GID=1000
```
接下来将主机`/home/git/.ssh` 入容器。否SSH 身份验证将无法在容器内运行。
接下來將主機`/home/git/.ssh` 入容器。否SSH 身份驗證將無法在容器內運行。
```bash
volumes:
- /home/git/.ssh/:/data/git/.ssh
```
在,需要在主机上创建 SSH 密钥对。该密钥对将用于向主机验证主机上的 `git` 用户
在,需要在主機上建立 SSH 密鑰對。該密鑰對將用於向主機驗證主機上的 `git` 使用者
```bash
sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"
```
在下一步中,需要在主机上创建一个名为 `/usr/local/bin/gitea` 的文件(具有可执行权限)。文件将发出从主机到容器的 SSH 转发。将以下容添加到 `/usr/local/bin/gitea`
在下一步中,需要在主機上建立一個名為 `/usr/local/bin/gitea` 的文件(具有可執行權限)。文件將發出從主機到容器的 SSH 轉發。將以下容添加到 `/usr/local/bin/gitea`
```bash
ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
```
了使转发正常工作,需要容器22的 SSH 端口映射到 `docker-compose.yml` 中的主端口 2222。由此端口不需要暴露外界,因此可以其映射到主`localhost`
了使轉發正常工作,需要容器22的 SSH 端口映射到 `docker-compose.yml` 中的主端口 2222。由此端口不需要暴露外界,因此可以其映射到主`localhost`
```bash
ports:
@@ -344,9 +344,9 @@ ports:
- "127.0.0.1:2222:22"
```
另外,主上的 `/home/git/.ssh/authorized_keys` 需要修改。它需要以 Gitea 容器`authorized_keys` 相同的方式行操作。因此,您在上面建的密“Gitea 主机密钥”)的公共密添加到 `/home/git/.ssh/authorized_keys`可以通过 `echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys` 完成。重要提示:`git` 用户的公需要“按原”添加,而通 Gitea 网络界面添加的所有其他公钥将`command="/app [...]`为前缀
另外,主上的 `/home/git/.ssh/authorized_keys` 需要修改。它需要以 Gitea 容器`authorized_keys` 相同的方式行操作。因此,您在上面建的密“Gitea 主機密鑰”)的公共密添加到 `/home/git/.ssh/authorized_keys`可以透過 `echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys` 完成。重要提示:`git` 使用者的公需要“按原”添加,而通 Gitea 網路介面添加的所有其他公鑰將`command="/app [...]`為前綴
文件应该看起像:
文件應該看起像:
```bash
# SSH pubkey from git user
@@ -356,19 +356,19 @@ ssh-rsa <Gitea Host Key>
command="/usr/local/bin/gitea --config=/data/gitea/conf/app.ini serv key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <user pubkey>
```
这是详细的说明,当发出 SSH 请求时会发生什
這是詳細的說明,當發出 SSH 請求時會發生什
1. 使用 `git` 用户向主机发出 SSH 求,例如 `git clone git@domain:user/repo.git`
2.`/home/git/.ssh/authorized_keys` 中,命令`/usr/local/bin/gitea` 本。
3. `/usr/local/bin/gitea` SSH 请求转发到端口 2222端口已映射到容器的 SSH 端口22
4. `/home/git/.ssh/authorized_keys` 中存在 `git` 用户的公,因此身份验证主机 → 容器成功,且 SSH 请求转发到在 docker 容器中行的 Gitea。
1. 使用 `git` 使用者向主機發出 SSH 求,例如 `git clone git@domain:user/repo.git`
2.`/home/git/.ssh/authorized_keys` 中,命令`/usr/local/bin/gitea` 本。
3. `/usr/local/bin/gitea` SSH 請求轉發到端口 2222端口已映射到容器的 SSH 端口22
4. `/home/git/.ssh/authorized_keys` 中存在 `git` 使用者的公,因此身份驗證主機 → 容器成功,且 SSH 請求轉發到在 docker 容器中行的 Gitea。
如果在 Gitea Web 面中添加了新的 SSH 密,它将以与现有密相同的方式附加到 `.ssh/authorized_keys` 中。
如果在 Gitea Web 面中添加了新的 SSH 密,它將以與現有密相同的方式附加到 `.ssh/authorized_keys` 中。
**注意**
SSH 容器直通在以下情下有效
SSH 容器直通在以下情下有效
- 在容器中使用 `opensshd`
- 如果未 `AuthorizedKeysCommand` `SSH_CREATE_AUTHORIZED_KEYS_FILE = false` 合使用以禁用授文件密生成
- `LOCAL_ROOT_URL`
- 如果未 `AuthorizedKeysCommand` `SSH_CREATE_AUTHORIZED_KEYS_FILE = false` 合使用以禁用授文件密生成
- `LOCAL_ROOT_URL`

View File

@@ -6,72 +6,72 @@ aliases:
- /zh-tw/permissions
---
#
#
Gitea 支持对仓库进行权限管理,这样您就可以不同的人提供不同的访问权限。首先,我需要了解 `Unit`
Gitea 支援對儲存庫進行權限管理,這樣您就可以不同的人提供不同的存取權限。首先,我需要了解 `Unit`
## Unit
## Unit
在 Gitea 中,我们将仓库的子模块称为 `Unit`在我有以下几个单元。
在 Gitea 中,我們將儲存庫的子模組稱為 `Unit`在我有以下幾個單元。
| 名 | 描述 | 限 |
| 名 | 描述 | 限 |
| -------------- | ---------------------------------- | --------- |
| 代码 | 访问源代码、文件、提交和分支。 | 入 |
| 工 | 组织缺陷告、任和里程碑。 | 入 |
| 合并请求 | 用合并请求和代码审核。 | 入 |
| 发布 | 跟踪项目版本和下。 | 入 |
| 百科 | 与协作者编写和共享文。 | 入 |
| 外部百科 | 接到外部基。 | 取 |
| 外部工单跟踪器 | 接到外部工单跟踪器。 | 取 |
| 项目 | 模板仓库的 URL。 | 入 |
| 包 | 接到仓库 | 入 |
| Actions | 查 Actions 日或重/取消工作流 | 入 |
| 设置 | 管理仓库。 | 管理 |
| 程式碼 | 訪問源程式碼、文件、提交和分支。 | 入 |
| 工 | 組織缺陷告、任和里程碑。 | 入 |
| 合併請求 | 用合併請求和程式碼審覈。 | 入 |
| 發佈 | 跟蹤專案版本和下。 | 入 |
| 百科 | 與協作者編寫和共享文。 | 入 |
| 外部百科 | 接到外部基。 | 取 |
| 外部工單跟蹤器 | 接到外部工單跟蹤器。 | 取 |
| 專案 | 模板儲存庫的 URL。 | 入 |
| 包 | 接到儲存庫 | 入 |
| Actions | 查 Actions 日或重/取消工作流 | 入 |
| 設定 | 管理儲存庫。 | 管理 |
不同的限,用户可以在这些单元上行不同的操作。
不同的限,使用者可以在這些單元上行不同的操作。
| 名 | 取 | 入 | 管理 |
| 名 | 取 | 入 | 管理 |
| -------------- | -------------------------------- | ------------------------------ | -------- |
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
| 工 | 查看工单并创建新工。 | 添加标签、分配、关闭工单。 | - |
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
| 发布 | 查看发布和下文件。 | 创建/编辑发布。 | - |
| 百科 | 查看百科面。克隆百科仓库。 | 创建/编辑百科面,推送更改。 | - |
| 外部百科 | 接到外部百科。 | - | - |
| 外部工单跟踪器 | 接到外部工单跟踪器。 | - | - |
| 项目 | 查看面板。 | 在面板之间移动工单。 | - |
| 包 | 查看包 | 上传/删除包 | - |
| Actions | 查看 Actions 日 | 同意 / 取消 / 重 | - |
| 设置 | - | - | 管理仓库 |
| 程式碼 | 查看程式碼樹、文件、提交、分支等。 | 推送程式碼。 | - |
| 工 | 查看工單並建立新工。 | 添加標籤、分配、關閉工單。 | - |
| 合併請求 | 查看合併請求並建立新合併請求。 | 添加標籤、分配、關閉合併請求。 | - |
| 發佈 | 查看發佈和下文件。 | 建立/編輯發佈。 | - |
| 百科 | 查看百科面。克隆百科儲存庫。 | 建立/編輯百科面,推送更改。 | - |
| 外部百科 | 接到外部百科。 | - | - |
| 外部工單跟蹤器 | 接到外部工單跟蹤器。 | - | - |
| 專案 | 查看面板。 | 在面板之間移動工單。 | - |
| 包 | 查看包 | 上傳/刪除包 | - |
| Actions | 查看 Actions 日 | 同意 / 取消 / 重 | - |
| 設定 | - | - | 管理儲存庫 |
个人仓库和组织仓库之间的权限存在一些差
個人儲存庫和組織儲存庫之間的權限存在一些差
## 个人仓库
## 個人儲存庫
对于个人仓库,创建者是仓库的唯一所有者,对于该仓库的任何更改或删除没有限制。
仓库所有者可以添加作者来帮助维护仓库。协作者可以`Read``Write``管理Admin` 限。
對於個人儲存庫,建立者是儲存庫的唯一所有者,對於該儲存庫的任何更改或刪除沒有限制。
儲存庫所有者可以添加作者來幫助維護儲存庫。協作者可以`Read``Write``管理Admin` 限。
访问私有仓库的体验与访问匿名公共仓库类似。您可以访问仓库中的所有可用容,包括克隆代码、创建工单、回复工单评论、提交拉取求等。如果你有 "写"权限,只要分支保护规则允许,你就可以向仓库的特定分支推送代码。此外,你可以修改百科面。有了 "管理"限,你就可以修改仓库的设置
訪問私有儲存庫的體驗與訪問匿名公共儲存庫類似。您可以訪問儲存庫中的所有可用容,包括克隆程式碼、建立工單、回覆工單評論、提交拉取求等。如果你有 "寫"權限,只要分支保護規則允許,你就可以向儲存庫的特定分支推送程式碼。此外,你可以修改百科面。有了 "管理"限,你就可以修改儲存庫的設定
但如果你不是该仓库的所有者,就不能除或转移该仓库
但如果你不是該儲存庫的所有者,就不能除或轉移該儲存庫
## 组织仓库
## 組織儲存庫
对于个人仓库,所有者是创建它的用户。而对于组织仓库,所有者是该组织中的所有者团队成员。对该组织仓库的所有限都取决于团队权限设置
對於個人儲存庫,所有者是建立它的使用者。而對於組織儲存庫,所有者是該組織中的所有者團隊成員。對該組織儲存庫的所有限都取決於團隊權限設定
### 所有者团队
### 所有者團隊
创建组织时将自动创建所有者团队,创建者将成为所有者团队的第一名成。所有者团队不可除,且至少有一名成
建立組織時將自動建立所有者團隊,建立者將成為所有者團隊的第一名成。所有者團隊不可除,且至少有一名成
### 管理员团队
### 管理員團隊
创建团队时,有两种类型的团队。一是管理员团队,另一是普通团队。可以创建一个管理员团队来管理某些版本,其成可以对这些版本做任何事情。只有所有者或管理员团队的成才能创建新团队
建立團隊時,有兩種類型的團隊。一是管理員團隊,另一是普通團隊。可以建立一個管理員團隊來管理某些版本,其成可以對這些版本做任何事情。只有所有者或管理員團隊的成才能建立新團隊
### 普通团队
### 普通團隊
组织中的普通团队具有可以根`元(Unit)`进行权限设置。它可以有成员和存储库范围
組織中的普通團隊具有可以根`元(Unit)`進行權限設定。它可以有成員和儲存庫範圍
-个团队可以访问所属组织的所有仓库或特殊仓库
- 也可以设置该团队是否有创建新仓库的权限。
-個團隊可以訪問所屬組織的所有儲存庫或特殊儲存庫
- 也可以設定該團隊是否有建立新儲存庫的權限。
可以通过创建 "普通团队",并通过权限控制其行为进行限制。一名成可以加入多个团队
可以透過建立 "普通團隊",並通過權限控制其行為進行限制。一名成可以加入多個團隊

View File

@@ -6,41 +6,41 @@ aliases:
- /zh-tw/protected-tags
---
# 受保护的标签
# 受保護的標籤
受保护的标签允许控制谁有权限创建或更新 Git 标签。每个规则可以匹配单个标签名称,或者使用适当的模式来同时控制多个标签
受保護的標籤允許控制誰有權限建立或更新 Git 標籤。每個規則可以匹配單個標籤名稱,或者使用適當的模式來同時控制多個標籤
## 设置受保护的标签
## 設定受保護的標籤
要保护一个标签,你需要按照以下步骤进行操作:
要保護一個標籤,你需要按照以下步驟進行操作:
1. 进入仓库的**设置** > **标签**面。
2. 入一个用于匹配名的模式。你可以使用单个名称、[glob 模式](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正则表达式。
3. 选择允许的用户和/或团队。如果将这些字段留空,不允任何人建或修改此标签
4. 选择**保存**以保存配置
1. 進入儲存庫的**設定** > **標籤**面。
2. 入一個用於匹配名的模式。你可以使用單個名稱、[glob 模式](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正則表達式。
3. 選擇允許的使用者和/或團隊。如果將這些欄位留空,不允任何人建或修改此標籤
4. 選擇**保存**以保存設定
## 模式受保护的标签
## 模式受保護的標籤
模式使用 [glob](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正则表达式来匹配标签名称。对于正则表达式,你需要模式括在斜中。
模式使用 [glob](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正則表達式來匹配標籤名稱。對於正則表達式,你需要模式括在斜中。
例:
例:
| 型 | 模式受保护的标签 | 可能匹配的标签 |
| 型 | 模式受保護的標籤 | 可能匹配的標籤 |
| ----- | ------------------------ | --------------------------------------- |
| Glob | `v*` | `v``v-1``version2` |
| Glob | `v[0-9]` | `v0``v1``v9` |
| Glob | `*-release` | `2.1-release``final-release` |
| Glob | `gitea` | `gitea` |
| Glob | `gitea` | `gitea` |
| Glob | `*gitea*` | `gitea``2.1-gitea``1_gitea-release` |
| Glob | `{v,rel}-*` | `v-``v-1``v-final``rel-``rel-x` |
| Glob | `*` | 匹配所有可能的标签名称 |
| Glob | `*` | 匹配所有可能的標籤名稱 |
| Regex | `/\Av/` | `v``v-1``version2` |
| Regex | `/\Av[0-9]\z/` | `v0``v1``v9` |
| Regex | `/\Av\d+\.\d+\.\d+\z/` | `v1.0.17``v2.1.0` |
| Regex | `/\Av\d+(\.\d+){0,2}\z/` | `v1``v2.1``v1.2.34` |
| Regex | `/-release\z/` | `2.1-release``final-release` |
| Regex | `/gitea/` | `gitea``2.1-gitea``1_gitea-release` |
| Regex | `/\Agitea\z/` | `gitea` |
| Regex | `/^gitea$/` | `gitea` |
| Regex | `/\Agitea\z/` | `gitea` |
| Regex | `/^gitea$/` | `gitea` |
| Regex | `/\A(v\|rel)-/` | `v-``v-1``v-final``rel-``rel-x` |
| Regex | `/.+/` | 匹配所有可能的标签名称 |
| Regex | `/.+/` | 匹配所有可能的標籤名稱 |

View File

@@ -4,122 +4,122 @@ slug: "comparison"
sidebar_position: 15
---
# GitHub Actions的
# GitHub Actions的
管Gitea Actions旨在GitHub Actions容,但它们之间存在一些差
管Gitea Actions旨在GitHub Actions容,但它們之間存在一些差
## 外功能
## 外功能
### Action URL绝对路径
### Action URL絕對路徑
Gitea Actions支持通过URL绝对路径定义actions意味您可以使用自任何Git存储库的Actions。
Gitea Actions支援通過URL絕對路徑定義actions意味您可以使用自任何Git儲存庫的Actions。
例如,`uses: https://github.com/actions/checkout@v4``uses: http://your_gitea.com/owner/repo@branch`
### 使用Go编写Actions
### 使用Go編寫Actions
Gitea Actions支使用Go编写Actions。
请参阅[创建Go Actions](https://blog.gitea.com/creating-go-actions/)。
Gitea Actions支使用Go編寫Actions。
請參閱[建立Go Actions](https://blog.gitea.com/creating-go-actions/)。
### 支持非标准的调度语法 @yearly, @monthly, @weekly, @daily, @hourly
### 支援非標準的調度語法 @yearly, @monthly, @weekly, @daily, @hourly
Github Actions 不支持这些语法,详见 https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
Github Actions 不支援這些語法,詳見 https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
## 不支的工作流
## 不支的工作流
### `concurrency`
是用一次行一Job。
请参阅[使用并发](https://docs.github.com/zh/actions/using-jobs/using-concurrency)。
是用一次行一Job。
請參閱[使用併發](https://docs.github.com/zh/actions/using-jobs/using-concurrency)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `run-name`
是工作流生成的工作流行的名
请参阅[GitHub Actions 的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#run-name)。
是工作流生成的工作流行的名
請參閱[GitHub Actions 的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#run-name)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `permissions`和`jobs.<job_id>.permissions`
请参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#permissions)。
請參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#permissions)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.timeout-minutes`
请参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes)。
請參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.continue-on-error`
请参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error)。
請參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.environment`
请参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment)。
請參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment)。
Gitea Actions 目前不支此功能。
Gitea Actions 目前不支此功能。
### 复杂的`runs-on`
### 複雜的`runs-on`
请参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
請參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
Gitea Actions目前只支`runs-on: xyz``runs-on: [xyz]`
Gitea Actions目前只支`runs-on: xyz``runs-on: [xyz]`
### `hashFiles`表
### `hashFiles`表
请参阅[](https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles)。
請參閱[](https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles)。
Gitea Actions目前不支此功能,如果使用它,结果将始终为空字符串。
Gitea Actions目前不支此功能,如果使用它,結果將始終為空字符串。
为解决方法,您可以使用[go-hashfiles](https://gitea.com/actions/go-hashfiles)。
為解決方法,您可以使用[go-hashfiles](https://gitea.com/actions/go-hashfiles)。
## 缺失的功能
### 问题匹配器
### 問題匹配器
问题匹配器是一种扫描Actions出以查找指定正则表达式模式并在用户界面中突出显示该信息的方法。
请参阅[问题匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
問題匹配器是一種掃描Actions出以查找指定正則表達式模式並在使用者介面中突出顯示該資訊的方法。
請參閱[問題匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### 为错误创建注释
### 為錯誤建立註釋
请参阅[为错误创建注释](https://docs.github.com/zh/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)。
請參閱[為錯誤建立註釋](https://docs.github.com/zh/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### 表
### 表
对于 [](https://docs.github.com/en/actions/learn-github-actions/expressions), 当前仅 [`always()`](https://docs.github.com/en/actions/learn-github-actions/expressions#always) 被支
對於 [](https://docs.github.com/en/actions/learn-github-actions/expressions), 當前僅 [`always()`](https://docs.github.com/en/actions/learn-github-actions/expressions#always) 被支
## 缺失的UI功能
### 预处理和后处理步
### 預處理和後處理步
预处理和后处理步在Job日志用户界面中有自己的用户界面。
預處理和後處理步在Job日誌使用者介面中有自己的使用者介面。
### 服务步骤
### 服務步驟
务步骤在Job日志用户界面中有自己的用户界面。
務步驟在Job日誌使用者介面中有自己的使用者介面。
## 不一的行
## 不一的行
### 下Actions
### 下Actions
`[actions].DEFAULT_ACTIONS_URL` 保持默认值为 `github` Gitea将会从 https://github.com 下载相对路径的actions。比如
如果你使用 `uses: actions/checkout@v4`Gitea将会从 https://github.com/actions/checkout.git 下载这个 actions 项目
如果你想要另外一 Git服务下载actions你只需要使用绝对URL `uses: https://gitea.com/actions/checkout@v4` 来下载
`[actions].DEFAULT_ACTIONS_URL` 保持預設值為 `github` Gitea將會從 https://github.com 下載相對路徑的actions。比如
如果你使用 `uses: actions/checkout@v4`Gitea將會從 https://github.com/actions/checkout.git 下載這個 actions 專案
如果你想要另外一 Git服務下載actions你只需要使用絕對URL `uses: https://gitea.com/actions/checkout@v4` 來下載
如果你的 Gitea 例是部署在一个互联网限制的网络中,也可以使用绝对地址来下载 actions。你也可以将配置项修改 `[actions].DEFAULT_ACTIONS_URL = self`这样所有的相对路径的actions引用不再会从 github.com 去下,而会从这个 Gitea 例自己的仓库中去下。例如: `uses: actions/checkout@v4` 将会从 `[server].ROOT_URL`/actions/checkout.git 这个地址去下 actions。
如果你的 Gitea 例是部署在一個互聯網限制的網路中,也可以使用絕對地址來下載 actions。你也可以將設定項修改 `[actions].DEFAULT_ACTIONS_URL = self`這樣所有的相對路徑的actions引用不再會從 github.com 去下,而會從這個 Gitea 例自己的儲存庫中去下。例如: `uses: actions/checkout@v4` 將會從 `[server].ROOT_URL`/actions/checkout.git 這個地址去下 actions。
设置`[actions].DEFAULT_ACTIONS_URL`进行配置。请参阅[配置备忘单](../../administration/config-cheat-sheet.md#actions-actions)。
設定`[actions].DEFAULT_ACTIONS_URL`進行設定。請參閱[設定備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
### 上下文可用性
查上下文可用性因此您可以在更多地方使用env上下文。
请参阅[上下文可用性](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability)。
查上下文可用性因此您可以在更多地方使用env上下文。
請參閱[上下文可用性](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability)。

View File

@@ -4,97 +4,97 @@ slug: "design"
sidebar_position: 40
---
# Gitea Actions设计
# Gitea Actions設計
Gitea Actions由多个组件组成。本文档将对它们进行逐描述。
Gitea Actions由多個元件組成。本文件將對它們進行逐描述。
## Gitea Runner
Gitea Runner部分基[nektos/act](https://github.com/nektos/act)的硬分支。
Gitea Runner部分基[nektos/act](https://github.com/nektos/act)的硬分支。
其他CI Runner一,我们将其设计为Gitea的外部部分意味着它应该在与Gitea不同的服器上行。
其他CI Runner一,我們將其設計為Gitea的外部部分意味著它應該在與Gitea不同的服器上行。
为了确保Runner接到正的Gitea例,我需要使用令牌注册它。
此外Runner通过声明自己的标签向Gitea告它可以行的Job型。
為了確保Runner接到正的Gitea例,我需要使用令牌註冊它。
此外Runner通過聲明自己的標籤向Gitea告它可以行的Job型。
之前,我提到工作流文件中的 `runs-on: ubuntu-latest` 表示Job在具有`ubuntu-latest`标签的Runner上行。
但是Runner如何知道要`ubuntu-latest`?答案在于将标签映射到境。
就是为什么在注册过程中添加自定义标签时,需要入一些复杂内容,比如`my_custom_label:docker://centos:7`
意味Runner可以接受需要在`my_custom_label`行的Job并通过使用`centos:7`像的Docker容器来运行它。
之前,我提到工作流文件中的 `runs-on: ubuntu-latest` 表示Job在具有`ubuntu-latest`標籤的Runner上行。
但是Runner如何知道要`ubuntu-latest`?答案在於將標籤映射到境。
就是為什麼在註冊過程中添加自訂標籤時,需要入一些複雜內容,比如`my_custom_label:docker://centos:7`
意味Runner可以接受需要在`my_custom_label`行的Job並通過使用`centos:7`像的Docker容器來運行它。
然而Docker不是唯一的选择
Runner 也支直接在主机上运行Job。
是通`linux_arm:host`这样的标签实现的。
这个标签表示Runner可以接受需要在`linux_arm`行的Job直接在主机上运行它
然而Docker不是唯一的選擇
Runner 也支直接在主機上運行Job。
是通`linux_arm:host`這樣的標籤實現的。
這個標籤表示Runner可以接受需要在`linux_arm`行的Job直接在主機上運行它
标签的设计遵循格式`label[:schema[:args]]`
如果省略了schema则默认为`host`
標籤的設計遵循格式`label[:schema[:args]]`
如果省略了schema則預設為`host`
因此,
- `my_custom_label:docker://node:18`:使用`node:18 Docker`镜像运行带`my_custom_label`标签的Job。
- `my_custom_label:host`:在主上直接运行带`my_custom_label`标签的Job。
- `my_custom_label`:等同`my_custom_label:host`
- `my_custom_label:vm:ubuntu-latest`仅为示例,未实现)使用`ubuntu-latest` ISO的虚拟机运行带`my_custom_label`标签的Job。
- `my_custom_label:docker://node:18`:使用`node:18 Docker`鏡像運行帶`my_custom_label`標籤的Job。
- `my_custom_label:host`:在主上直接運行帶`my_custom_label`標籤的Job。
- `my_custom_label`:等同`my_custom_label:host`
- `my_custom_label:vm:ubuntu-latest`僅為範例,未實現)使用`ubuntu-latest` ISO的虛擬機運行帶`my_custom_label`標籤的Job。
## 通信协议
## 通信協議
runner 是Gitea的立部分,我需要一种协议让RunnerGitea实例进行通信。
然而,我们不认为让Gitea监听一个新端口是好主意。
相反,我希望重用HTTP端口意味着我们需要一个与HTTP容的协议
因此,我们选择使用基HTTP的gRPC。
runner 是Gitea的立部分,我需要一種協議讓RunnerGitea實例進行通信。
然而,我們不認為讓Gitea監聽一個新端口是好主意。
相反,我希望重用HTTP端口意味著我們需要一個與HTTP容的協議
因此,我們選擇使用基HTTP的gRPC。
使用[actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 进行连接。
gRPC 的更多信息,请访问[其官方](https://grpc.io/)。
使用[actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 進行連接。
gRPC 的更多資訊,請前往[其官方](https://grpc.io/)。
## 网络架构
## 網路架構
让我们来看一下整体的网络架构
这将帮助您解一些问题,并解释为什么使用回环地址注册Runner是不好的主意。
讓我們來看一下整體的網路架構
這將幫助您解一些問題,並解釋為什麼使用迴環地址註冊Runner是不好的主意。
![network](/images/usage/actions/network.png)
片中标记了四个网络连接,且箭的方向表示建立接的方向。
片中標記了四個網路連接,且箭的方向表示建立接的方向。
### 接 1 runner到Gitea
### 接 1 runner到Gitea
Runner 必须能够连接到Gitea以接收任务并发送执行结果回
Runner 必須能夠連接到Gitea以接收任務併發送執行結果回
### 接 2Job容器到Gitea
### 接 2Job容器到Gitea
即使Job容器位同一台机器上,它们的网络命名空间与Runner不同。
举个例子,如果工作流中包含 `actions/checkout@v4`Job容器需要接到Gitea来获取代码
获取代码并不总是运行某些Job所必需的但在大多数情况下是必需的。
即使Job容器位同一臺機器上,它們的網路命名空間與Runner不同。
舉個例子,如果工作流中包含 `actions/checkout@v4`Job容器需要接到Gitea來獲取程式碼
獲取程式碼並不總是運行某些Job所必需的但在大多數情況下是必需的。
如果您使用回环地址注册RunnerRunnerGitea在同一台机器上Runner可以接到Gitea。
然而如果Job容器尝试从本地主机获取代码,它将失败,因Gitea不在同一容器中。
如果您使用迴環地址註冊RunnerRunnerGitea在同一臺機器上Runner可以接到Gitea。
然而如果Job容器嘗試從本地主機獲取程式碼,它將失敗,因Gitea不在同一容器中。
### 接 3runner到互联网
### 接 3runner到互聯網
您使用`actions/checkout@v4` 的一些Actionsrunner 下的是而不是Job容器。
默认情况下,它[github.com](http://github.com/)下,因此需要访问互联网。如果您设置的是 self
么默认将从您的前Gitea例下,那此步不需要接到互联网
还默认从Docker Hub下一些Docker像,也需要互联网访问
您使用`actions/checkout@v4` 的一些Actionsrunner 下的是而不是Job容器。
預設情況下,它[github.com](http://github.com/)下,因此需要訪問互聯網。如果您設定的是 self
麼預設將從您的前Gitea例下,那此步不需要接到互聯網
還預設從Docker Hub下一些Docker像,也需要互聯網訪問
然而,互联网访问并不是绝对必需的。
您可以配置您的Gitea实例从您的内部网络设施中取 Actions 或像。
然而,互聯網訪問並不是絕對必需的。
您可以設定您的Gitea實例從您的內部網路設施中取 Actions 或像。
实际您的Gitea例可以同时充当 Actions 市场和镜像注册表。
您可以GitHub上的Actions仓库镜像到您的Gitea例,并将其用作普通Actions。
而 [Gitea 容器注册](usage/packages/container.md) 可用作Docker镜像注册表。
實際您的Gitea例可以同時充當 Actions 市場和鏡像註冊表。
您可以GitHub上的Actions儲存庫鏡像到您的Gitea例,並將其用作普通Actions。
而 [Gitea 容器註冊](usage/packages/container.md) 可用作Docker鏡像註冊表。
### 接 4Job容器到互联网
### 接 4Job容器到互聯網
使用`actions/setup-go@v5`的Actions,可能需要从互联网下载资源,以设置Job容器中的Go语言环境。
因此,成功完成些Actions需要访问互联网
使用`actions/setup-go@v5`的Actions,可能需要從互聯網下載資源,以設定Job容器中的Go語言環境。
因此,成功完成些Actions需要訪問互聯網
然而,也是可的。
您可以使用自定义的Actions避免依赖互联网访问,或者可以使用已安所有依赖项的打包的Docker镜像来运行Job。
然而,也是可的。
您可以使用自的Actions避免依賴互聯網訪問,或者可以使用已安所有依賴項的打包的Docker鏡像來運行Job。
## 总结
## 總結
使用Gitea Actions只需要保Runner能够连接到Gitea例。
联网访问是可的,但如果有互联网访问,将需要外的工作。
换句话说:当Runner能自行查询互联网时,它的工作效果最好,但您不需要其暴露给互联网(无论是单向还是双向)。
使用Gitea Actions只需要保Runner能夠連接到Gitea例。
聯網訪問是可的,但如果有互聯網訪問,將需要外的工作。
換句話說:當Runner能自行查詢互聯網時,它的工作效果最好,但您不需要其暴露給互聯網(無論是單向還是雙向)。
如果您在使用Gitea Actions遇到任何网络问题,希望上面的片能够帮助您行故障排除。
如果您在使用Gitea Actions遇到任何網路問題,希望上面的片能夠幫助您行故障排除。

View File

@@ -4,84 +4,84 @@ slug: "faq"
sidebar_position: 100
---
# Gitea Actions常见问题解答
# Gitea Actions常見問題解答
面包含一些关于Gitea Actions的常见问题和答案。
面包含一些關於Gitea Actions的常見問題和答案。
## 是否可以在我的例中默认禁用新仓库的Actions
## 是否可以在我的例中預設禁用新儲存庫的Actions
是的,当您为实例启用Actions,您可以选择默认启用actions元以适用于所有新仓库
是的,當您為實例啟用Actions,您可以選擇預設啟用actions元以適用於所有新儲存庫
```ini
[repository]
; 去掉 repo.actions 将不会为新仓库自动启用actions
; 去掉 repo.actions 將不會為新倉庫自動啟用actions
DEFAULT_REPO_UNITS = ...,repo.actions
```
## 在工作流文件中应该使用`${{ github.xyz }}`是`${{ gitea.xyz }}`
## 在工作流文件中應該使用`${{ github.xyz }}`是`${{ gitea.xyz }}`
您可以使用`github.xyz`Gitea正常工作。
如前所述Gitea Actions的设计是与GitHub Actions容的。
然而,我们建议在工作流文件中使用`gitea.xyz`,以防止在工作流文件中出不同型的密(因您在Gitea上使用此工作流而不是GitHub
过,这完全是可的,因目前这两个选项的效果是相同的。
您可以使用`github.xyz`Gitea正常工作。
如前所述Gitea Actions的設計是與GitHub Actions容的。
然而,我們建議在工作流文件中使用`gitea.xyz`,以防止在工作流文件中出不同型的密(因您在Gitea上使用此工作流而不是GitHub
過,這完全是可的,因目前這兩個選項的效果是相同的。
## 使用`actions/checkout@v4`等ActionsJob容器会从何处下载脚本?
## 使用`actions/checkout@v4`等ActionsJob容器會從何處下載腳本?
GitHub 上有成千上万个 [Actions ](https://github.com/marketplace?type=actions)。
当您编写 `uses: actions/checkout@v4` ,它默认会从 [github.com/actions/checkout](https://github.com/actions/checkout) 下载脚本。
那如果您想使用一些管在其它平台上的本呢,比如在 gitea.com 上的?
GitHub 上有成千上萬個 [Actions ](https://github.com/marketplace?type=actions)。
當您編寫 `uses: actions/checkout@v4` ,它預設會從 [github.com/actions/checkout](https://github.com/actions/checkout) 下載腳本。
那如果您想使用一些管在其它平台上的本呢,比如在 gitea.com 上的?
好消息是,您可以指定要任何位置使用Actions的URL前
是Gitea Actions中的额外语法。
好消息是,您可以指定要任何位置使用Actions的URL前
是Gitea Actions中的額外語法。
例如:
- `uses: https://gitea.com/xxx/xxx@xxx`
- `uses: https://github.com/xxx/xxx@xxx`
- `uses: http://your_gitea_instance.com/xxx@xxx`
注意,`https://``http://`是必需的!
注意,`https://``http://`是必需的!
这是与 GitHub Actions 的一个区别GitHub Actions 只允使用管在 GitHub 上的 actions 本。
用户理应拥有权利去灵活决定如何行 Actions。
這是與 GitHub Actions 的一個區別GitHub Actions 只允使用管在 GitHub 上的 actions 本。
使用者理應擁有權利去靈活決定如何行 Actions。
另外,如果您希望您的 Runner 默认从您自己的 Gitea 例下 Actions可以通过设置 `[actions].DEFAULT_ACTIONS_URL`进行配置
参见[配置速查表](../../administration/config-cheat-sheet.md#actions-actions)。
另外,如果您希望您的 Runner 預設從您自己的 Gitea 例下 Actions可以透過設定 `[actions].DEFAULT_ACTIONS_URL`進行設定
參見[設定速查表](../../administration/config-cheat-sheet.md#actions-actions)。
## 如何限制Runner的限?
## 如何限制Runner的限?
Runner具有接到您的Gitea例的限。
任何Runner接收到要行的Job,它将临时获得与Job关联的仓库的有限限。
如果您想Runner提供更多限,允许它访问更多私有仓库或外部系,您可以向其传递[](usage/actions/secrets.md)。
Runner具有接到您的Gitea例的限。
任何Runner接收到要行的Job,它將臨時獲得與Job關聯的儲存庫的有限限。
如果您想Runner提供更多限,允許它訪問更多私有儲存庫或外部系,您可以向其傳遞[](usage/actions/secrets.md)。
对于 Actions 的粒度限控制是一项复杂的工作。
在未,我们将添加更多选项以使Gitea更可配置,例如允许对仓库进行更多写访问或对同一组织中的所有仓库进行读访问
對於 Actions 的粒度限控制是一項複雜的工作。
在未,我們將添加更多選項以使Gitea更可設定,例如允許對儲存庫進行更多寫訪問或對同一組織中的所有儲存庫進行讀訪問
## 如何避免被黑客攻
## 如何避免被黑客攻
两种可能的攻击类未知的Runner取您的仓库中的代码或密,或恶意脚本控制您的Runner。
兩種可能的攻擊類未知的Runner取您的儲存庫中的程式碼或密,或惡意腳本控制您的Runner。
避免前者意味不允您不认识的人您的仓库、组织或实例注册Runner。
避免前者意味不允您不認識的人您的儲存庫、組織或實例註冊Runner。
者要复杂一些。
如果您公司使用私有的Gitea例,您可能不需要心安全问题,因您信任您的同事,且可以追究他们的责任。
者要複雜一些。
如果您公司使用私有的Gitea例,您可能不需要心安全問題,因您信任您的同事,且可以追究他們的責任。
对于公共例,情略有不同。
以下是我在 [gitea.com](http://gitea.com/)上的做法:
對於公共例,情略有不同。
以下是我在 [gitea.com](http://gitea.com/)上的做法:
-们仅为 "gitea" 组织注册Runner因此我的Runner不会执行来自其他仓库的Job。
-的Runner始在隔容器中行Job。然可以直接在主机上进行这样的操作,但出安全考,我们选择不这样做。
- 对于 fork 的拉取求,需要得批准才能行Actions。参见[#22803](https://github.com/go-gitea/gitea/pull/22803)。
- 如果有人在[gitea.com](http://gitea.com/)为其仓库或组织注册自己的Runner们不会反对,只是不在我们的组织中使用它。然而,他们应该注意确保该Runner不被他们不认识的其他用户使用。
-們僅為 "gitea" 組織註冊Runner因此我的Runner不會執行來自其他儲存庫的Job。
-的Runner始在隔容器中行Job。然可以直接在主機上進行這樣的操作,但出安全考,我們選擇不這樣做。
- 對於 fork 的拉取求,需要得批准才能行Actions。參見[#22803](https://github.com/go-gitea/gitea/pull/22803)。
- 如果有人在[gitea.com](http://gitea.com/)為其儲存庫或組織註冊自己的Runner們不會反對,只是不在我們的組織中使用它。然而,他們應該注意確保該Runner不被他們不認識的其他使用者使用。
## runner支哪些操作系
## runner支哪些操作系
它在Linux、macOS和Windows上行良好。
然理上支其他操作系,但需要一步测试
它在Linux、macOS和Windows上行良好。
然理上支其他操作系,但需要一步測試
需要注意的一是,如果选择直接在主机上运行Job而不是在Job容器中行,操作系统之间的环境差可能会导致意外的失
需要注意的一是,如果選擇直接在主機上運行Job而不是在Job容器中行,操作系統之間的環境差可能會導致意外的失
例如,在大多数情况Windows上有可用的bash而act尝试默认使用bash运行脚本。
因此,您需要在工作流文件中将默认shell指定`powershell`考[defaults.run](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
例如,在大多數情況Windows上有可用的bash而act嘗試預設使用bash運行腳本。
因此,您需要在工作流文件中將預設shell指定`powershell`考[defaults.run](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
```yaml
defaults:
@@ -89,72 +89,72 @@ defaults:
shell: powershell
```
## 为什么选择GitHub Actions为什么不选择与GitLab CI/CD容的工具?
## 為什麼選擇GitHub Actions為什麼不選擇與GitLab CI/CD容的工具?
[@lunny](https://gitea.com/lunny)在实现Actions的[问题](https://github.com/go-gitea/gitea/issues/13539)中已经解释过这个问题
此外Actions不是一CI/CD 系统,还是一个自动化工具。
[@lunny](https://gitea.com/lunny)在實現Actions的[問題](https://github.com/go-gitea/gitea/issues/13539)中已經解釋過這個問題
此外Actions不是一CI/CD 系統,還是一個自動化工具。
源世界中,已经有许多[上的Actions](https://github.com/marketplace?type=actions)实现了。
重用它是令人兴奋的。
源世界中,已經有許多[上的Actions](https://github.com/marketplace?type=actions)實現了。
重用它是令人興奮的。
## 如果它在多个标签上运行,例如 `runs-on: [label_a, label_b]`会发生什
## 如果它在多個標籤上運行,例如 `runs-on: [label_a, label_b]`會發生什
是有效的法。
它意味着它应该在具有`label_a` **和** `label_b`标签的Runner上行,考[GitHub Actions的工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
不幸的是runner 不支持这种方式。
如上所述,我们将标签映射到境:
是有效的法。
它意味著它應該在具有`label_a` **和** `label_b`標籤的Runner上行,考[GitHub Actions的工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
不幸的是runner 不支援這種方式。
如上所述,我們將標籤映射到境:
- `ubuntu``ubuntu:22.04`
- `centos``centos:8`
但我需要将标签组映射到境,例如:
但我需要將標籤組映射到境,例如:
- `[ubuntu]``ubuntu:22.04`
- `[with-gpu]``linux:with-gpu`
- `[ubuntu, with-gpu]``ubuntu:22.04_with-gpu`
们还需要重新设计任务分配Runner的方式。
具有`ubuntu``centos``with-gpu`的Runner不一定表示它可以接受`[centos, with-gpu]`的Job。
因此Runner应该通知Gitea例它只能接受具有 `[ubuntu]``[centos]``[with-gpu]``[ubuntu, with-gpu]`的Job。
不是一个技术问题,只是在早期设计中被忽了。
参见[runtime.go#L65](https://gitea.com/gitea/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
們還需要重新設計任務分配Runner的方式。
具有`ubuntu``centos``with-gpu`的Runner不一定表示它可以接受`[centos, with-gpu]`的Job。
因此Runner應該通知Gitea例它只能接受具有 `[ubuntu]``[centos]``[with-gpu]``[ubuntu, with-gpu]`的Job。
不是一個技術問題,只是在早期設計中被忽了。
參見[runtime.go#L65](https://gitea.com/gitea/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
目前, runner尝试匹配标签中的每一个,并使用找到的第一匹配
目前, runner嘗試匹配標籤中的每一個,並使用找到的第一匹配
## 代理标签和自定义标签对于Runner有什么区别
## 代理標籤和自訂標籤對於Runner有什麼區別
![labels](/images/usage/actions/labels.png)
代理标签是由Runner在注册过程中向Gitea实例报告的。
而自定义标签则是由Gitea的管理员或组织或仓库的所有者手添加的(取决于Runner所属的级别)。
代理標籤是由Runner在註冊過程中向Gitea實例報告的。
而自訂標籤則是由Gitea的管理員或組織或儲存庫的所有者手添加的(取決於Runner所屬的級別)。
然而,目前方面的设计还有待改,因它目前存在一些不完善之
您可以向已注册的Runner添加自定义标签,比如 `centos`意味着该Runner接收具有`runs-on: centos`的Job。
然而Runner可能不知道要使用哪个环境来执行该标签,导致它使用默认镜像或导致逻辑死胡同
这个默认值可能与用户的期望不符。
参见[runtime.go#L71](https://gitea.com/gitea/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
然而,目前方面的設計還有待改,因它目前存在一些不完善之
您可以向已註冊的Runner添加自訂標籤,比如 `centos`意味著該Runner接收具有`runs-on: centos`的Job。
然而Runner可能不知道要使用哪個環境來執行該標籤,導致它使用預設鏡像或導致邏輯死衚衕
這個預設值可能與使用者的期望不符。
參見[runtime.go#L71](https://gitea.com/gitea/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
此同如果您想更改Runner的标签,我们建议您重新注册Runner。
此同如果您想更改Runner的標籤,我們建議您重新註冊Runner。
## Gitea Actions runner有更多的实现吗
## Gitea Actions runner有更多的實現嗎
然我希望提供更多的选择,但由于我们有限的人力源, runner是唯一受支的官方Runner。
然而,无论您如何Gitea 和 runner都是完全源的,所以任何人都可以创建一个新的/更好的实现
们支持您的选择,无论您如何定。
如果您选择分支 runner 来创建自己的版本,在您认为您的更改其他人也有助的情况下贡献这些更改。
然我希望提供更多的選擇,但由於我們有限的人力源, runner是唯一受支的官方Runner。
然而,無論您如何Gitea 和 runner都是完全源的,所以任何人都可以建立一個新的/更好的實現
們支援您的選擇,無論您如何定。
如果您選擇分支 runner 來建立自己的版本,在您認為您的更改其他人也有助的情況下貢獻這些更改。
## Gitea 支哪些工作流触发事件?
## Gitea 支哪些工作流觸發事件?
表格中列出的所有事件都是支的,并且与 GitHub 容。
对于仅 GitHub 支的事件,请参阅 GitHub 的[](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)。
表格中列出的所有事件都是支的,並且與 GitHub 容。
對於僅 GitHub 支的事件,請參閱 GitHub 的[](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)。
| 触发事件 | 活动类型 |
| 觸發事件 | 活動類型 |
|-----------------------------|--------------------------------------------------------------------------------------------------------------------------|
| create | 不用 |
| delete | 不用 |
| fork | 不用 |
| gollum | 不用 |
| push | 不用 |
| create | 不用 |
| delete | 不用 |
| fork | 不用 |
| gollum | 不用 |
| push | 不用 |
| issues | `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `milestoned`, `demilestoned`, `labeled`, `unlabeled` |
| issue_comment | `created`, `edited`, `deleted` |
| pull_request | `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `synchronize`, `labeled`, `unlabeled` |
@@ -163,5 +163,5 @@ defaults:
| release | `published`, `edited` |
| registry_package | `published` |
> 对于 `pull_request` 事件,在 [GitHub Actions](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request) 中 `ref` 是 `refs/pull/:prNumber/merge`,它指向这个拉取求合提交的一个预览。但是 Gitea 没有这种 reference。
> 因此Gitea Actions 中 `ref` 是 `refs/pull/:prNumber/head`,它指向这个拉取求的分支而不是合提交的预览
> 對於 `pull_request` 事件,在 [GitHub Actions](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request) 中 `ref` 是 `refs/pull/:prNumber/merge`,它指向這個拉取求合提交的一個預覽。但是 Gitea 沒有這種 reference。
> 因此Gitea Actions 中 `ref` 是 `refs/pull/:prNumber/head`,它指向這個拉取求的分支而不是合提交的預覽

View File

@@ -6,37 +6,37 @@ sidebar_position: 1
# Overview
Gitea **1.19**版本Gitea Actions成为了内置的CI/CD解方案。
Gitea **1.19**版本Gitea Actions成為了內置的CI/CD解方案。
## 名
## 名
Gitea Actions[GitHub Actions](https://github.com/features/actions)相似且容,它的名也受到了它的启发
了避免混淆,在这里我们明确了拼方式:
Gitea Actions[GitHub Actions](https://github.com/features/actions)相似且容,它的名也受到了它的啟發
了避免混淆,在這裡我們明確了拼方式:
- "Gitea Actions"两个单词都大写且带有"s"是Gitea功能的名
- "GitHub Actions"是GitHub功能的名
- "Actions"根上下文的不同可以指代以上任意一。在本文中指代的是"Gitea Actions"。
- "action"或"actions"指代一些要使用的本/插件,比如"actions/checkout@v4"或"actions/cache@v3"。
- "Gitea Actions"兩個單詞都大寫且帶有"s"是Gitea功能的名
- "GitHub Actions"是GitHub功能的名
- "Actions"根上下文的不同可以指代以上任意一。在本文中指代的是"Gitea Actions"。
- "action"或"actions"指代一些要使用的本/外掛,比如"actions/checkout@v4"或"actions/cache@v3"。
## Runner
和其他CI/CD解方案一Gitea不自己行Job而是Job委托给Runner。
Gitea Actions的Runner被称为[Gitea Runner](https://gitea.com/gitea/runner),它是一个独立的程也是用Go语言编写的。
它的重要部分自[nektos/act](http://github.com/nektos/act)的一硬分支。
和其他CI/CD解方案一Gitea不自己行Job而是Job委託給Runner。
Gitea Actions的Runner被稱為[Gitea Runner](https://gitea.com/gitea/runner),它是一個獨立的程也是用Go語言編寫的。
它的重要部分自[nektos/act](http://github.com/nektos/act)的一硬分支。
Runner是立部署的,可能存在在的安全问题
了避免这些问题,请遵循两个简单的规则
Runner是立部署的,可能存在在的安全問題
了避免這些問題,請遵循兩個簡單的規則
- 不要你的仓库、组织或实例使用你不信任的Runner。
- 不要你不信任的仓库、组织或实例提供Runner。
- 不要你的儲存庫、組織或實例使用你不信任的Runner。
- 不要你不信任的儲存庫、組織或實例提供Runner。
对于内部使用的Gitea例,比如企业或个人使用的例,这两个规则不是问题,它自然而然就是如此。
然而,对于公共的Gitea例,比如[gitea.com](https://gitea.com)在添加或使用Runner时应当牢记这两个规则
對於內部使用的Gitea例,比如企業或個人使用的例,這兩個規則不是問題,它自然而然就是如此。
然而,對於公共的Gitea例,比如[gitea.com](https://gitea.com)在添加或使用Runner時應當牢記這兩個規則
## 状态
## 狀態
Gitea Actions仍然在开发中,因此可能存在一些错误和缺失的功能。
且在定版本v1.20或更高版本)之前可能会进行一些重大的更改。
Gitea Actions仍然在開發中,因此可能存在一些錯誤和缺失的功能。
且在定版本v1.20或更高版本)之前可能會進行一些重大的更改。
如果情况发生变化,我们将在此处进行更新。
因此,在其他地方找到过时文章时参考此处的内容。
如果情況發生變化,我們將在此處進行更新。
因此,在其他地方找到過時文章時參考此處的內容。

View File

@@ -4,91 +4,91 @@ slug: "quickstart"
sidebar_position: 10
---
# 快速入
# 快速入
页面将指导您使用Gitea Actions的程。
頁面將指導您使用Gitea Actions的程。
## 设置Gitea
## 設定Gitea
首先,您需要一Gitea例。
您可以按照[](installation/from-package.md) 来设置一个新实例或升级现有实例。
无论您如何安装或运行Gitea只要版本是1.19.0或更高即可。
首先,您需要一Gitea例。
您可以按照[](installation/from-package.md) 來設定一個新實例或升級現有實例。
無論您如何安裝或運行Gitea只要版本是1.19.0或更高即可。
1.21.0始,默认情况Actions是用的。如果您正在使用1.21.0之前的版本,您需要以下容添加到配置文件中以用它:
1.21.0始,預設情況Actions是用的。如果您正在使用1.21.0之前的版本,您需要以下容添加到設定文件中以用它:
```ini
[actions]
ENABLED=true
```
如果您想了解更多信息或在配置过程中遇到任何问题,请参考[配置速查表](../../administration/config-cheat-sheet.md#actions-actions)。
如果您想了解更多資訊或在設定過程中遇到任何問題,請參考[設定速查表](../../administration/config-cheat-sheet.md#actions-actions)。
### 设置Runner
### 設定Runner
Gitea Actions需要[runner](https://gitea.com/gitea/runner) 来运行Job。
了避免消耗过多资源并影响Gitea例,建您在Gitea例分开的机器上启动Runner。
Gitea Actions需要[runner](https://gitea.com/gitea/runner) 來運行Job。
了避免消耗過多資源並影響Gitea例,建您在Gitea例分開的機器上啟動Runner。
您可以使用[预构建的二制文件](http://dl.gitea.com/gitea-runner)或[容器](https://hub.docker.com/r/gitea/runner/tags)来设置Runner。
您可以使用[預構建的二制文件](http://dl.gitea.com/gitea-runner)或[容器](https://hub.docker.com/r/gitea/runner/tags)來設定Runner。
一步操作之前,建您先使用预构建的二制文件以命令行方式行它,以保它您的环境兼容,尤其是如果您在本地主机上运行Runner。
如果出现问题,这样调试起来会更容易。
一步操作之前,建您先使用預構建的二制文件以命令行方式行它,以保它您的環境相容,尤其是如果您在本地主機上運行Runner。
如果出現問題,這樣調試起來會更容易。
Runner可以在隔的Docker容器中行Job因此您需要保已安Docker且Docker守护进程正在行。
虽然这不是格必需的,因Runner也可以直接在主机上运行Job这取决于您的配置方式。
然而,建使用Docker行Job它更安全且更易管理。
Runner可以在隔的Docker容器中行Job因此您需要保已安Docker且Docker守護進程正在行。
雖然這不是格必需的,因Runner也可以直接在主機上運行Job這取決於您的設定方式。
然而,建使用Docker行Job它更安全且更易管理。
行Runner之前您需要使用以下命令将其注册到Gitea例中:
行Runner之前您需要使用以下命令將其註冊到Gitea例中:
```bash
./runner register --no-interactive --instance <instance> --token <token>
```
需要两个必需的参数`instance``token`
需要兩個必需的參數`instance``token`
`instance`是您的Gitea例的地址,如`http://192.168.8.8:3000``https://gitea.com`
Runner和Job容器由Runner启动以执行Job将连接到此地址。
意味它可能与用于Web访问`ROOT_URL`不同。
使用回环地址(例如 `127.0.0.1``localhost`)是一不好的选择
如果不定使用哪地址,通常选择局域地址即可。
`instance`是您的Gitea例的地址,如`http://192.168.8.8:3000``https://gitea.com`
Runner和Job容器由Runner啟動以執行Job將連接到此地址。
意味它可能與用於Web訪問`ROOT_URL`不同。
使用迴環地址(例如 `127.0.0.1``localhost`)是一不好的選擇
如果不定使用哪地址,通常選擇局域地址即可。
`token`身份验证和标识,例如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`
它只能使用一次,且不能用于注册多个Runner。
您可以以下位置取不同级别`token`,从而创建出相应级别`runner`
`token`身份驗證和標識,例如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`
它只能使用一次,且不能用於註冊多個Runner。
您可以以下位置取不同級別`token`,從而建立出相應級別`runner`
- 实例级别:管理员设置页面,例如 `<your_gitea.com>/admin/actions/runners`
- 组织级别:组织设置页面,例如 `<your_gitea.com>/<org>/settings/actions/runners`
- 存储库级别:存储库设置页面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`
- 實例級別:管理員設定頁面,例如 `<your_gitea.com>/admin/actions/runners`
- 組織級別:組織設定頁面,例如 `<your_gitea.com>/<org>/settings/actions/runners`
- 儲存庫級別:儲存庫設定頁面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`
![register runner](/images/usage/actions/register-runner.png)
注册后,当前目录中将出现一个名为 `.runner` 的新文件,文件存储了注册信息
不要手动编辑该文件。
如果文件失或损坏,只需除它然重新注册即可。
註冊後,當前目錄中將出現一個名為 `.runner` 的新文件,文件儲存了註冊資訊
不要手動編輯該文件。
如果文件失或損壞,只需除它然重新註冊即可。
,是时候启动Runner了
,是時候啟動Runner了
```bash
./runner daemon
```
您可以在管理面上看到新的Runner
您可以在管理面上看到新的Runner
![view runner](/images/usage/actions/view-runner.png)
您可以通过访问[runner](runner) 取更多信息
您可以透過訪問[runner](runner) 取更多資訊
### 使用Actions
即使对于启用了Gitea例的Actions存储库仍默认禁用Actions。
即使對於啟用了Gitea例的Actions儲存庫仍預設禁用Actions。
用它,请转到存储库的设置页面,例如`your_gitea.com/<owner>/repo/settings`,然后启`Enable Repository Actions`
用它,請轉到儲存庫的設定頁面,例如`your_gitea.com/<owner>/repo/settings`,然後啟`Enable Repository Actions`
![enable actions](/images/usage/actions/enable-actions.png)
接下的步可能相当复杂
您需要学习Actions的[工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)并编写您想要的工作流文件。
接下的步可能相當複雜
您需要學習Actions的[工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)並編寫您想要的工作流文件。
,我可以从一个简单的演示始:
,我可以從一個簡單的演示始:
```yaml
name: Gitea Actions Demo
@@ -112,20 +112,20 @@ jobs:
- run: echo "🍏 This job's status is ${{ job.status }}."
```
您可以上述例上传为一个`.yaml`展名的文件,放在存储库`.gitea/workflows/`中,例如`.gitea/workflows/demo.yaml`
您可能注意到,这与[GitHub Actions的快速入](https://docs.github.com/en/actions/quickstart)非常相似。
是因Gitea Actions在可能容GitHub Actions的基础上进行设计
您可以上述例上傳為一個`.yaml`展名的文件,放在儲存庫`.gitea/workflows/`中,例如`.gitea/workflows/demo.yaml`
您可能注意到,這與[GitHub Actions的快速入](https://docs.github.com/en/actions/quickstart)非常相似。
是因Gitea Actions在可能容GitHub Actions的基礎上進行設計
注意,演示文件中包含一些表情符
请确保您的数据库支持它们,特是在使用MySQL
如果字符集不是`utf8mb4`将出现错误,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`
更多信息,请参阅[数据库准备工作](../../installation/database-preparation.md#mysqlmariadb)。
注意,演示文件中包含一些表情符
請確保您的資料庫支援它們,特是在使用MySQL
如果字符集不是`utf8mb4`將出現錯誤,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`
更多資訊,請參閱[資料庫準備工作](../../installation/database-preparation.md#mysqlmariadb)。
或者,您可以演示文件中除所有表情符,然后再尝试一次。
或者,您可以演示文件中除所有表情符,然後再嘗試一次。
`on: [push]` 一行表示您向该存储库推送提交,工作流将被触发
然而,您上 YAML 文件,它也推送一提交,所以您应该在"Actions"标签中看到一新的任
`on: [push]` 一行表示您向該儲存庫推送提交,工作流將被觸發
然而,您上 YAML 文件,它也推送一提交,所以您應該在"Actions"標籤中看到一新的任
![view job](/images/usage/actions/view-job.png)
做得好!您已成功始使用Actions。
做得好!您已成功始使用Actions。

View File

@@ -8,111 +8,111 @@ aliases:
# Gitea Runner
页面将详细介绍[Gitea Runner](https://gitea.com/gitea/runner)是Gitea Actions的Runner。
頁面將詳細介紹[Gitea Runner](https://gitea.com/gitea/runner)是Gitea Actions的Runner。
## 要求
在Docker容器中行Job因此您需要首先安Docker。
并确保Docker守护进程正在行。
在Docker容器中行Job因此您需要首先安Docker。
並確保Docker守護進程正在行。
其他Docker API容的OCI容器引擎也应该可以正常工作,但尚未经过测试
其他Docker API容的OCI容器引擎也應該可以正常工作,但尚未經過測試
但是,如果您定要直接在主机上运行Job不需要Docker。
但是,如果您定要直接在主機上運行Job不需要Docker。
## 安
## 安
有多种安装Gitea Runner的方法。
有多種安裝Gitea Runner的方法。
### 下载二进制文件
### 下載二進制文件
您可以[发布页](https://gitea.com/gitea/runner/releases)下载二进制文件。
然而,如果您想使用最新的夜间构建版本,可以[载页](https://dl.gitea.com/gitea-runner/)下
您可以[發佈頁](https://gitea.com/gitea/runner/releases)下載二進制文件。
然而,如果您想使用最新的夜間構建版本,可以[載頁](https://dl.gitea.com/gitea-runner/)下
载二进制文件时,请确保您已经下载了适用于您的平台的正版本。
您可以通过运行以下命令进行检查:
載二進制文件時,請確保您已經下載了適用於您的平台的正版本。
您可以透過運行以下命令進行檢查:
```bash
chmod +x runner
./runner --version
```
如果看到版本信息,则表示您已经下载了正的二制文件。
如果看到版本資訊,則表示您已經下載了正的二制文件。
### 使用 Docker
### 使用 Docker
您可以使用[docker hub](https://hub.docker.com/r/gitea/runner/tags)上的Docker像。
与二进制文件似,您可以使用`nightly`标签使用最新的夜间构建版本,而`latest`标签是最新的定版本。
您可以使用[docker hub](https://hub.docker.com/r/gitea/runner/tags)上的Docker像。
與二進制文件似,您可以使用`nightly`標籤使用最新的夜間構建版本,而`latest`標籤是最新的定版本。
```bash
docker pull docker.io/gitea/runner:latest # for the latest stable release
docker pull docker.io/gitea/runner:nightly # for the latest nightly build
```
## 配置
## 設定
配置通过配置文件行。它是可的,当没有指定配置文件时,将使用默认配置
設定通過設定文件行。它是可的,當沒有指定設定文件時,將使用預設設定
您可以通过运行以下命令生成配置文件:
您可以透過運行以下命令生成設定文件:
```bash
./runner generate-config
```
默认配置是安全的,可以直接使用。
預設設定是安全的,可以直接使用。
```bash
./runner generate-config > config.yaml
./runner --config config.yaml [command]
```
您亦可以如下使用 docker 创建配置文件:
您亦可以如下使用 docker 建立設定文件:
```bash
docker run --entrypoint="" --rm -it docker.io/gitea/runner:latest runner generate-config > config.yaml
```
使用Docker镜像时,可以使用`CONFIG_FILE`环境变量指定配置文件。确保将文件作为卷挂载到容器中:
使用Docker鏡像時,可以使用`CONFIG_FILE`環境變量指定設定文件。確保將文件作為卷掛載到容器中:
```bash
docker run -v $(pwd)/config.yaml:/config.yaml -e CONFIG_FILE=/config.yaml ...
```
您可能注意到上面的命令都是不完整的,因为现在还不是行 Runner 的候。
行 Runner 之前,我需要首先将其注册到您的Gitea例中。
您可能注意到上面的命令都是不完整的,因為現在還不是行 Runner 的候。
行 Runner 之前,我需要首先將其註冊到您的Gitea例中。
## 注册
## 註冊
行 Runner 之前,需要进行注册,因 Runner 需要知道从哪里获取Job并且对于Gitea实例来说,识别Runner也很重要。
行 Runner 之前,需要進行註冊,因 Runner 需要知道從哪裡獲取Job並且對於Gitea實例來說,識別Runner也很重要。
### Runner级别
### Runner級別
您可以在不同级别上注册Runner它可以是
您可以在不同級別上註冊Runner它可以是
- 实例级别Runner将为实例中的所有存储库运行Job。
- 组织级别Runner将为组织中的所有存储库运行Job。
- 存储库级别Runner将为其所属的存储库运行Job。
- 實例級別Runner將為實例中的所有儲存庫運行Job。
- 組織級別Runner將為組織中的所有儲存庫運行Job。
- 儲存庫級別Runner將為其所屬的儲存庫運行Job。
注意,即使存储库具有自己的存储库级别Runner它仍然可以使用实例级别或组织级别Runner。未的版本可能提供更多对此进行更好控制的选项
注意,即使儲存庫具有自己的儲存庫級別Runner它仍然可以使用實例級別或組織級別Runner。未的版本可能提供更多對此進行更好控制的選項
### 获取注册令牌
### 獲取註冊令牌
Runner级别决定了从哪里获取注册令牌。
Runner級別決定了從哪裡獲取註冊令牌。
- 实例级别:管理员设置页面,例如 `<your_gitea.com>/admin/actions/runners`
- 组织级别:组织设置页面,例如 `<your_gitea.com>/<org>/settings/actions/runners`
- 存储库级别:存储库设置页面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`
- 實例級別:管理員設定頁面,例如 `<your_gitea.com>/admin/actions/runners`
- 組織級別:組織設定頁面,例如 `<your_gitea.com>/<org>/settings/actions/runners`
- 儲存庫級別:儲存庫設定頁面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`
如果您法看到设置页面,请确保您具有正确的权限并且已用 Actions。
如果您法看到設定頁面,請確保您具有正確的權限並且已用 Actions。
注册令牌的格式是一个随机字符串 `D0gvfu2iHfUjNqCYVljVyRV14fISpJxxxxxxxxxx`
註冊令牌的格式是一個隨機字符串 `D0gvfu2iHfUjNqCYVljVyRV14fISpJxxxxxxxxxx`
注册令牌也可以通过 Gitea 的 [命令行](../../administration/command-line.md#actions-generate-runner-token) 得:
註冊令牌也可以透過 Gitea 的 [命令行](../../administration/command-line.md#actions-generate-runner-token) 得:
```
gitea --config /etc/gitea/app.ini actions generate-runner-token
```
用户也可以使用 `GITEA_RUNNER_REGISTRATION_TOKEN``GITEA_RUNNER_REGISTRATION_TOKEN_FILE` 环境变量以在 Gitea 启动时设置全局的注册令牌,例如:
使用者也可以使用 `GITEA_RUNNER_REGISTRATION_TOKEN``GITEA_RUNNER_REGISTRATION_TOKEN_FILE` 環境變量以在 Gitea 啟動時設定全域的註冊令牌,例如:
```
openssl rand -hex 24 > /some-dir/runner-token
@@ -120,48 +120,48 @@ export GITEA_RUNNER_REGISTRATION_TOKEN_FILE=/some-dir/runner-token
./gitea --config ...
```
来自环境变量的令牌在通 Web 面或 API 重置(重新建新令牌)前一直有效。
來自環境變量的令牌在通 Web 面或 API 重置(重新建新令牌)前一直有效。
令牌可用于注册多个 Runner直到使用 Web 面中的令牌重置链接将其撤销并替换为新令牌。
令牌可用於註冊多個 Runner直到使用 Web 面中的令牌重置鏈接將其撤銷並替換為新令牌。
### 注册 Runner
### 註冊 Runner
可以通过运行以下命令来注册 Runner
可以透過運行以下命令來註冊 Runner
```bash
./runner register
```
或者,您可以使用 `--config` 选项来指定前面部分提到的配置文件。
或者,您可以使用 `--config` 選項來指定前面部分提到的設定文件。
```bash
./runner --config config.yaml register
```
逐步输入注册信息,包括:
逐步輸入註冊資訊,包括:
- Gitea 例的 URL例如 `https://gitea.com/``http://192.168.8.8:3000/`
- 注册令牌。
- Runner名(可)。如果留空,使用主名。
- Runner标签(可)。如果留空,使用默认标签
- Gitea 例的 URL例如 `https://gitea.com/``http://192.168.8.8:3000/`
- 註冊令牌。
- Runner名(可)。如果留空,使用主名。
- Runner標籤(可)。如果留空,使用預設標籤
您可能Runner标签感到困惑,稍后将对其进行解
您可能Runner標籤感到困惑,稍後將對其進行解
如果您想以非交互方式注册Runner可以使用参数执行以下操作。
如果您想以非交互方式註冊Runner可以使用參數執行以下操作。
```bash
./runner register --no-interactive --instance <instance_url> --token <registration_token> --name <runner_name> --labels <runner_labels>
```
注册Runner,您可以在前目中找到一个名为 `.runner` 的新文件。文件存储注册信息
不要手动编辑该文件。
如果此文件失或损坏,可以直接除它重新注册
註冊Runner,您可以在前目中找到一個名為 `.runner` 的新文件。文件儲存註冊資訊
不要手動編輯該文件。
如果此文件失或損壞,可以直接除它重新註冊
如果您想将注册信息存储在其他位置,请在配置文件中指定,不要忘指定 `--config` 选项
如果您想將註冊資訊儲存在其他位置,請在設定文件中指定,不要忘指定 `--config` 選項
### 使用Docker注册Runner
### 使用Docker註冊Runner
如果您使用的是Docker像,注册行为会略有不同。在这种情况下,注册和运行合并为一步,因此您需要在行 Runner 指定注册信息
如果您使用的是Docker像,註冊行為會略有不同。在這種情況下,註冊和運行合併為一步,因此您需要在行 Runner 指定註冊資訊
```bash
docker run \
@@ -177,12 +177,12 @@ docker run \
-d gitea/runner:nightly
```
您可能注意到我们已将`/var/run/docker.sock`挂载到容器中。
是因 Runner 在Docker容器中行Job因此它需要Docker守护进程进行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,这里的 "主" 实际上指的是当前运行 Runner的容器而不是主机机器本身。
您可能注意到我們已將`/var/run/docker.sock`掛載到容器中。
是因 Runner 在Docker容器中行Job因此它需要Docker守護進程進行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,這裡的 "主" 實際上指的是當前運行 Runner的容器而不是主機機器本身。
### 使用 Docker compose 行 Runner
### 使用 Docker compose 行 Runner
您亦可使用如下的 `docker-compose.yml`:
@@ -203,31 +203,31 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
```
### 您使用 Docker 镜像启动 Runner如何配置 Cache
### 您使用 Docker 鏡像啟動 Runner如何設定 Cache
如果你不打算在工作流中使用 `actions/cache`,你可以忽略本段。
如果您在使用 `actions/cache` 时没有进行额外的配置,将会返回以下错误信息
如果您在使用 `actions/cache` 時沒有進行額外的設定,將會返回以下錯誤資訊
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT IP:PORT
这个错误的原因是 runner 容器和作容器位不同的网络中,因此作容器无法访问 runner 容器。
因此,配置 cache 作以保其正常行是非常重要的。按照以下步操作:
這個錯誤的原因是 runner 容器和作容器位不同的網路中,因此作容器無法訪問 runner 容器。
因此,設定 cache 作以保其正常行是非常重要的。按照以下步操作:
- 1.取 Runner 容器所在主的 LAN本地局域 IP 地址。
- 2.取一 Runner 容器所在主的空端口
- 3.在配置文件中如下配置
- 1.取 Runner 容器所在主的 LAN本地局域 IP 地址。
- 2.取一 Runner 容器所在主的空端口
- 3.在設定文件中如下設定
```yaml
cache:
enabled: true
dir: ""
# 使用步 1. 取的 LAN IP
# 使用步 1. 取的 LAN IP
host: "192.168.8.17"
# 使用步 2. 取的端口
# 使用步 2. 取的端口
port: 8088
```
- 4.启动容器, Cache 端口映射至主
- 4.啟動容器, Cache 端口映射至主
```bash
docker run \
@@ -236,7 +236,7 @@ docker run \
-d gitea/runner:nightly
```
### 标签
### 標籤
```mermaid
flowchart TD
@@ -247,25 +247,25 @@ flowchart TD
E --> F[返回執行結果給 Gitea]
```
Runner的标签用于确定Runner可以行哪些Job以及如何行它
Runner的標籤用於確定Runner可以行哪些Job以及如何行它
默认标签为`ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster`
是逗分隔的列表,每个项目都是一个标签
預設標籤為`ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster`
是逗分隔的列表,每個專案都是一個標籤
让我们`ubuntu-22.04:docker://node:16-bullseye` 例。
它意味Runner可以运行带`runs-on: ubuntu-22.04`的Job并且该Job在使用`node:16-bullseye`像的Docker容器中行。
讓我們`ubuntu-22.04:docker://node:16-bullseye` 例。
它意味Runner可以運行帶`runs-on: ubuntu-22.04`的Job並且該Job在使用`node:16-bullseye`像的Docker容器中行。
如果默认镜像无法满足您的需求,且您有足的磁盘空间可以使用更好、更大的像,您可以其更改`ubuntu-22.04:docker://<您喜欢的镜像>`
您可以在[act ](https://github.com/nektos/act/blob/master/IMAGES.md)上找到更多有用的像。
如果預設鏡像無法滿足您的需求,且您有足的磁盤空間可以使用更好、更大的像,您可以其更改`ubuntu-22.04:docker://<您喜歡的鏡像>`
您可以在[act ](https://github.com/nektos/act/blob/master/IMAGES.md)上找到更多有用的像。
如果您想直接在主机上运行Job您可以其更改`ubuntu-22.04:host``ubuntu-22.04``:host`是可的。
然而,我们建议您使用`linux_amd64:host``windows:host`的特殊名,以避免用。
如果您想直接在主機上運行Job您可以其更改`ubuntu-22.04:host``ubuntu-22.04``:host`是可的。
然而,我們建議您使用`linux_amd64:host``windows:host`的特殊名,以避免用。
Gitea 1.21 始,您可以通过修改 runner 的配置文件中的 `container.labels` 更改标签(如果没有配置文件,请参考 [配置教程](#配置)通过执`./runner daemon --config config.yaml` 命令重 runner 之后,这些新定义的标签就会生效。
Gitea 1.21 始,您可以透過修改 runner 的設定文件中的 `container.labels` 更改標籤(如果沒有設定文件,請參考 [設定教學](#設定)透過執`./runner daemon --config config.yaml` 命令重 runner 之後,這些新定義的標籤就會生效。
##
##
注册完Runner,您可以通过运行以下命令来运行它:
註冊完Runner,您可以透過運行以下命令來運行它:
```bash
./runner daemon
@@ -273,6 +273,6 @@ Runner的标签用于确定Runner可以运行哪些Job以及如何运行它们
./runner daemon --config config.yaml
```
Runner将从Gitea实例获取Job并自动运行它
Runner將從Gitea實例獲取Job並自動運行它
Gitea Runner仍在不断升级中,建定期查最新版本并进行升
Gitea Runner仍在不斷升級中,建定期查最新版本並進行升

View File

@@ -87,7 +87,7 @@ SCOPED_WORKFLOW_DIRS = .gitea/scoped_workflows
<來源儲存庫全名>: <工作流程顯示名稱> / <job> (<event>)
```
設定頁面會為每個工作流程預覽這些 “Expected status checks預期狀態檢查並標記出與你的模式相符的項目,便於你確認模式是否正確。一種常見模式是對 job 和 event 使用萬用字元,例如 `my-org/ci-repo: Lint / *`。
設定頁面會為每個工作流程預覽這些 “Expected status checks預期狀態檢查並標記出與你的模式相符的專案,便於你確認模式是否正確。一種常見模式是對 job 和 event 使用萬用字元,例如 `my-org/ci-repo: Lint / *`。
強制範圍:

View File

@@ -4,25 +4,25 @@ slug: "secrets"
sidebar_position: 50
---
# 密管理
# 密管理
管理允您在用户、组织或仓库中存储敏感信息
管理在 Gitea 1.19+ 版本中可用。
管理允您在使用者、組織或儲存庫中儲存敏感資訊
管理在 Gitea 1.19+ 版本中可用。
## 设置密钥名称
## 設定密鑰名稱
以下规则适用于密钥名称
以下規則適用於密鑰名稱
-钥名称只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下划线 (`_`)。不允使用空格。
-鑰名稱只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下劃線 (`_`)。不允使用空格。
-钥名称不能以 `GITHUB_``GITEA_`缀开头
-鑰名稱不能以 `GITHUB_``GITEA_`綴開頭
-钥名称不能以数字开头
-鑰名稱不能以數字開頭
-钥名称不区分大小
-鑰名稱不區分大小
-钥名称在创建它们的级别上必是唯一的。
-鑰名稱在建立它們的級別上必是唯一的。
例如,对于在仓库级别创建的密,它在该仓库中必具有唯一的名称;对于在组织级别创建的密,它在该级别上必具有唯一的名
例如,對於在儲存庫級別建立的密,它在該儲存庫中必具有唯一的名稱;對於在組織級別建立的密,它在該級別上必具有唯一的名
如果在多个级别上存在具有相同名的密钥,则最低级别的密钥优先生效。例如,如果组织级别的密钥与仓库级别的密具有相同的名称,则仓库级别的密钥将优先生效。
如果在多個級別上存在具有相同名的密鑰,則最低級別的密鑰優先生效。例如,如果組織級別的密鑰與儲存庫級別的密具有相同的名稱,則儲存庫級別的密鑰將優先生效。

View File

@@ -4,27 +4,27 @@ slug: "actions-variables"
sidebar_position: 25
---
#
#
您可以创建用户、组织和仓库级别的变量。量的级别取决于创建它的位置。当创建变量时,变量的名称会
转换为大写在yaml文件中引用需要使用大
您可以建立使用者、組織和儲存庫級別的變量。量的級別取決於建立它的位置。當建立變量時,變量的名稱會
轉換為大寫在yaml文件中引用需要使用大
## 命名规则
## 命名規則
以下规则适用于变量名:
以下規則適用於變量名:
- 量名只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下划线 (`_`)。不允使用空格。
- 量名不能以 `GITHUB_``GITEA_`缀开头
- 量名不能以数字开头
- 量名称不区分大小
- 量名称在创建它们的级别上必是唯一的。
- 量名不能 `CI`
- 量名只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下劃線 (`_`)。不允使用空格。
- 量名不能以 `GITHUB_``GITEA_`綴開頭
- 量名不能以數字開頭
- 量名稱不區分大小
- 量名稱在建立它們的級別上必是唯一的。
- 量名不能 `CI`
## 使用
创建配置变量后,它们将自动填充到 `vars` 上下文中。您可以在工作流中使用`${{ vars.VARIABLE_NAME }}` 这样的表达式来使用它
建立設定變量後,它們將自動填充到 `vars` 上下文中。您可以在工作流中使用`${{ vars.VARIABLE_NAME }}` 這樣的表達式來使用它
## 优先级
## 優先級
如果同名量存在于多个级别,则级别最低的变量优先。
仓库级别的变量总是比组织或者用户级别的变量优先被中。
如果同名量存在於多個級別,則級別最低的變量優先。
儲存庫級別的變量總是比組織或者使用者級別的變量優先被中。

View File

@@ -8,37 +8,37 @@ aliases:
# AGit
在 Gitea `1.13` 版本中,添加了 [AGit](https://git-repo.info/zh/2020/03/agit-flow-and-git-repo/) 的支。AGit 允许用户在没有仓库写入权限的情下直接建拉取求,也不需要分叉仓库。这有助于减少重复仓库的数量,降低不必要的磁使用量。
在 Gitea `1.13` 版本中,添加了 [AGit](https://git-repo.info/zh/2020/03/agit-flow-and-git-repo/) 的支。AGit 允許使用者在沒有儲存庫寫入權限的情下直接建拉取求,也不需要分叉儲存庫。這有助於減少重複儲存庫的數量,降低不必要的磁使用量。
:::note
器端需要 Git 版本 2.29 或更高版本才能正常行。
服器端需要 Git 版本 2.29 或更高版本才能正常行。
:::
## 使用 AGit 建 PR
## 使用 AGit 建 PR
AGit 允在推送代码到远程仓库时创建 PR并请求)。
在推送使用特定的 refspecgit 中已知的位置标识符),可以实现这一功能。
下面的示例说明了这一点
AGit 允在推送程式碼到遠程儲存庫時建立 PR併請求)。
在推送使用特定的 refspecgit 中已知的位置標識符),可以實現這一功能。
下面的範例說明了這一點
```shell
git push origin HEAD:refs/for/main
```
命令的结构如下:
命令的結構如下:
- `HEAD`:目分支
- `refs/<for|draft|for-review>/<branch>`:目 PR
- `for`创建一个`<branch>` 为目标分支的普通 PR
- `draft`/`for-review`:目前被默忽略
- `<branch>/<session>`:要打 PR 的目分支
- `-o <topic|title|description>`PR 的选项
- `title`PR 的标题
- `topic`PR 应该打开的分支名
- `HEAD`:目分支
- `refs/<for|draft|for-review>/<branch>`:目 PR
- `for`建立一個`<branch>` 為目標分支的普通 PR
- `draft`/`for-review`:目前被默忽略
- `<branch>/<session>`:要打 PR 的目分支
- `-o <topic|title|description>`PR 的選項
- `title`PR 的標題
- `topic`PR 應該打開的分支名
- `description`PR 的描述
- `force-push=true`: 是否制更新目分支
- 注意: 如果不值,只用 `-o force-push` 也同可以正常工作。
- `force-push=true`: 是否制更新目分支
- 注意: 如果不值,只用 `-o force-push` 也同可以正常工作。
下面是另一个高级示例,用于创建一个`topic``title``description` 为参数的新 PR分支是 `main`
下面是另一個高級範例,用於建立一個`topic``title``description` 為參數的新 PR分支是 `main`
```shell
git push origin HEAD:refs/for/main -o topic="Topic of my PR" -o title="Title of the PR" -o description="# The PR Description\nThis can be **any** markdown content.\n- [x] Ok"

View File

@@ -7,39 +7,39 @@ aliases:
- /zh-tw/issue-pull-request-templates
---
# 模板创建工单与合并请
# 模板建立工單與合併請
开发者可以利用问题模板创建工单与合并请求,其目的在于规范参与者的言表
開發者可以利用問題模板建立工單與合併請求,其目的在於規範參與者的言表
## 模板介
## 模板介
Gitea 支持两种格式的模板Markdown 和 YAML。
Gitea 支援兩種格式的模板Markdown 和 YAML。
### Markdown 模板
在 Gitea 中存在两种用途的 Markdown 模板:
在 Gitea 中存在兩種用途的 Markdown 模板:
- `ISSUE_TEMPLATE/bug-report.md`于规范工单的 Markdown 文本描述
- `PULL_REQUEST_TEMPLATE.md`于规范合并请求的 Markdown 文本描述
- `ISSUE_TEMPLATE/bug-report.md`於規範工單的 Markdown 文本描述
- `PULL_REQUEST_TEMPLATE.md`於規範合併請求的 Markdown 文本描述
对于以上 Markdown 模板,我们推荐您将它们放置到项目目录 `.gitea` 行收
對於以上 Markdown 模板,我們推薦您將它們放置到專案目錄 `.gitea` 行收
### YAML 模板
用 YAML 语法编写的模板相比 Markdown 可以实现更丰富的功能,利用表单实现诸如:问卷调查、字符校。在 Gitea 中的 YAML 同样支持两种用途:
用 YAML 語法編寫的模板相比 Markdown 可以實現更豐富的功能,利用表單實現諸如:問卷調查、字符校。在 Gitea 中的 YAML 同樣支援兩種用途:
- `ISSUE_TEMPLATE/bug-report.yaml`于创建问卷调查形式的工
- `PULL_REQUEST_TEMPLATE.yaml`于创建表单形式的合并请
- `ISSUE_TEMPLATE/bug-report.yaml`於建立問卷調查形式的工
- `PULL_REQUEST_TEMPLATE.yaml`於建立表單形式的合併請
对于以上 YAML 模板,我们同样推荐您将它们放置到项目目录 `.gitea` 行收
對於以上 YAML 模板,我們同樣推薦您將它們放置到專案目錄 `.gitea` 行收
##### 表单支持通过 URL 查询参数传
##### 表單支援通過 URL 查詢參數傳
新建工单页面 URL 以 `?title=Issue+Title&body=Issue+Text` 为查询参数,表单将使用其中的参数key-value填充表单内容。
新建工單頁面 URL 以 `?title=Issue+Title&body=Issue+Text` 為查詢參數,表單將使用其中的參數key-value填充表單內容。
### Gitea 支的模板文件路
### Gitea 支的模板文件路
模板文件名:
模板文件名:
- `ISSUE_TEMPLATE.md`
- `ISSUE_TEMPLATE.yaml`
@@ -60,7 +60,7 @@ Gitea 支持两种格式的模板Markdown 和 YAML。
- `.github/issue_template.yaml`
- `.github/issue_template.yml`
并请求模板:
併請求模板:
- `PULL_REQUEST_TEMPLATE.md`
- `PULL_REQUEST_TEMPLATE.yaml`
@@ -81,9 +81,9 @@ Gitea 支持两种格式的模板Markdown 和 YAML。
- `.github/pull_request_template.yaml`
- `.github/pull_request_template.yml`
#### 工模板目
#### 工模板目
于工单存在多种类Gitea 支持将工单模板一收`ISSUE_TEMPLATE`。以下是 Gitea 支的工模板目:
於工單存在多種類Gitea 支援將工單模板一收`ISSUE_TEMPLATE`。以下是 Gitea 支的工模板目:
- `ISSUE_TEMPLATE`
- `issue_template`
@@ -94,9 +94,9 @@ Gitea 支持两种格式的模板Markdown 和 YAML。
- `.gitlab/ISSUE_TEMPLATE`
- `.gitlab/issue_template`
录支持混合存放 Markdown (`.md`) 或 YAML (`.yaml`/`.yml`) 格式的工模板。另外,合并请求模板不支持目录存放。
錄支援混合存放 Markdown (`.md`) 或 YAML (`.yaml`/`.yml`) 格式的工模板。另外,合併請求模板不支援目錄存放。
## Markdown 模板
## Markdown 模板
```md
---
@@ -112,24 +112,24 @@ labels:
This is the template!
```
上面的例表示用户从列表中选择一个工单模板,列表展示模板名 `Template Name` 和模板描述 `This template is for testing!`。 同时,标题会预先填充 `[TEST]`,而正文将预先填充 `This is the template!` Issue 被指派 `user1`。 最Issue 还会被分配两个标签`bug``help needed`并且将问题指向 `main` 分支。
上面的例表示使用者從列表中選擇一個工單模板,列表展示模板名 `Template Name` 和模板描述 `This template is for testing!`。 同時,標題會預先填充 `[TEST]`,而正文將預先填充 `This is the template!` Issue 被指派 `user1`。 最Issue 還會被分配兩個標籤`bug``help needed`並且將問題指向 `main` 分支。
## YAML 模板
## YAML 模板
YAML 模板格式如下,相比 Markdown 模板提供了更多用性的功能。
YAML 模板格式如下,相比 Markdown 模板提供了更多用性的功能。
```yaml
name: 单名称
about: 描述
title: 认标题
body: 体内
type: 义表单元素
id: 义表单标号
attributes: 展的
validations: 容校
name: 單名稱
about: 描述
title: 認標題
body: 體內
type: 義表單元素
id: 義表單標號
attributes: 展的
validations: 容校
```
下例 YAML 配置文件完整定了一个用于提交 bug 的问卷调查。
下例 YAML 設定文件完整定了一個用於提交 bug 的問卷調查。
```yaml
name: Bug Report
@@ -195,89 +195,89 @@ body:
### Markdown 段落
您可以在 YAML 模板中使用 `markdown` 元素为开发者提供外的上下文支撑,这部分内容会作为创建工单的提示但不会作为工单内容提交。
您可以在 YAML 模板中使用 `markdown` 元素為開發者提供外的上下文支撐,這部分內容會作為建立工單的提示但不會作為工單內容提交。
`attributes`提供了以下展能力:
`attributes`提供了以下展能力:
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ------- | ------------------------------ | ---- | ------ | ------ | ------ |
| `value` | 渲染的文本。支 Markdown 格式 | 必 | 字符串 | - | - |
| `value` | 渲染的文本。支 Markdown 格式 | 必 | 字符串 | - | - |
### Textarea 多行文本入框
### Textarea 多行文本入框
您可以使用 `textarea` 元素在表中添加多行文本入框。 除了入文本,开发者还可以在 `textarea` 域附加文件。
您可以使用 `textarea` 元素在表中添加多行文本入框。 除了入文本,開發者還可以在 `textarea` 域附加文件。
`attributes`提供了以下展能力:
`attributes`提供了以下展能力:
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ------------- | ----------------------------------------------------------------------------------------------------- | ---- | ------ | -------- | ------------------ |
| `label` | 预期用户输入的短描述,也以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指的文本域的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的位符,在文本域空白时呈现 | 可 | 字符串 | 空字符串 | - |
| `value` | 在文本域中填充的文本。 | 可 | 字符串 | - | - |
| `render` | 如果提供了值,提交的文本格式化为代码块。 提供此键时,文本区域将不会扩展到文件附件或 Markdown 编辑。 | 可 | 字符串 | - | Gitea 支持的语言。 |
| `label` | 預期使用者輸入的短描述,也以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指的文本域的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的位符,在文本域空白時呈現 | 可 | 字符串 | 空字符串 | - |
| `value` | 在文本域中填充的文本。 | 可 | 字符串 | - | - |
| `render` | 如果提供了值,提交的文本格式化為程式碼塊。 提供此鍵時,文本區域將不會擴展到文件附件或 Markdown 編輯。 | 可 | 字符串 | - | Gitea 支援的語言。 |
`validations`提供以下文本校验参数
`validations`提供以下文本校驗參數
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ---------- | ---------------------------- | ---- | ------ | ------ | ------ |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |
### Input 单行输入框
### Input 單行輸入框
您可以使用 `input` 元素添加行文本字段到表
您可以使用 `input` 元素添加行文本欄位到表
`attributes`提供了以下展能力:
`attributes`提供了以下展能力:
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ------------- | ---------------------------------------------- | ---- | ------ | -------- | ------ |
| `label` | 预期用户输入的短描述,也以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指导的字段的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的位符,在字段空白时呈现。 | 可 | 字符串 | 空字符串 | - |
| `value` | 字段中预填的文本。 | 可 | 字符串 | - | - |
| `label` | 預期使用者輸入的短描述,也以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指導的欄位的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `placeholder` | 半透明的位符,在欄位空白時呈現。 | 可 | 字符串 | 空字符串 | - |
| `value` | 欄位中預填的文本。 | 可 | 字符串 | - | - |
`validations`提供以下文本校验参数
`validations`提供以下文本校驗參數
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ----------- | -------------------------------- | ---- | ------ | ------ | -------------------------------------------------------------- |
| `required` | 防止在未填内容时提交表。 | 可 | 布型 | false | - |
| `is_number` | 防止在未填数字时提交表。 | 可 | 布型 | false | - |
| `regex` | 直到足了与正则表达式匹配的值。 | 可 | 字符串 | - | [则表达](https://en.wikipedia.org/wiki/Regular_expression) |
| `required` | 防止在未填內容時提交表。 | 可 | 布型 | false | - |
| `is_number` | 防止在未填數字時提交表。 | 可 | 布型 | false | - |
| `regex` | 直到滿足了與正則表達式匹配的值。 | 可 | 字符串 | - | [則表達](https://en.wikipedia.org/wiki/Regular_expression) |
### Dropdown 下拉菜
### Dropdown 下拉菜
您可以使用 `dropdown` 元素在表中添加下拉菜
您可以使用 `dropdown` 元素在表中添加下拉菜
`attributes`提供了以下展能力:
`attributes`提供了以下展能力:
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ------------- | --------------------------------------------------------- | ---- | ---------- | -------- | ------ |
| `label` | 预期用户输入的短描述,以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指的下拉列表的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `multiple` | 确定用户是否可以选择多个选项。 | 可 | 布型 | false | - |
| `options` | 用户可以选择的选项列表。 不能空,所有选择必须是不同的。 | 必 | 字符串数组 | - | - |
| `label` | 預期使用者輸入的短描述,以表形式示。 | 必 | 字符串 | - | - |
| `description` | 提供上下文或指的下拉列表的描述,以表形式示。 | 可 | 字符串 | 空字符串 | - |
| `multiple` | 確定使用者是否可以選擇多個選項。 | 可 | 布型 | false | - |
| `options` | 使用者可以選擇的選項列表。 不能空,所有選擇必須是不同的。 | 必 | 字符串數組 | - | - |
`validations`提供以下文本校验参数
`validations`提供以下文本校驗參數
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ---------- | ---------------------------- | ---- | ------ | ------ | ------ |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |
### Checkboxes 复选
### Checkboxes 複選
您可以使用 `checkboxes` 元素添加一组复选框到表
您可以使用 `checkboxes` 元素添加一組複選框到表
`attributes`提供了以下展能力:
`attributes`提供了以下展能力:
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ------------- | ----------------------------------------------------- | ---- | ------ | -------- | ------ |
| `label` | 预期用户输入的短描述,以表形式示。 | 必 | 字符串 | - | - |
| `description` | 复选框集的描述,以表形式示。 支 Markdown 格式。 | 可 | 字符串 | 空字符串 | - |
| `options` | 用户可以选择的复选框列表。 有关语法,请参阅下文。 | 必 | 数组 | - | - |
| `label` | 預期使用者輸入的短描述,以表形式示。 | 必 | 字符串 | - | - |
| `description` | 複選框集的描述,以表形式示。 支 Markdown 格式。 | 可 | 字符串 | 空字符串 | - |
| `options` | 使用者可以選擇的複選框列表。 有關語法,請參閱下文。 | 必 | 數組 | - | - |
对于 `options`,您可以设置以下参数
對於 `options`,您可以設定以下參數
| | 描述 | 必 | 型 | 默认值 | 有效值 |
| | 描述 | 必 | 型 | 預設值 | 有效值 |
| ---------- | --------------------------------------------------------------------------------- | ---- | ------ | ------ | ------ |
| `label` | 选项的标识符,示在表中。 支 Markdown 用于粗体或斜文本格式化和超文本接。 | 必 | 字符串 | - | - |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |
| `label` | 選項的標識符,示在表中。 支 Markdown 用於粗體或斜文本格式化和超文本接。 | 必 | 字符串 | - | - |
| `required` | 防止在元素完成之前提交表。 | 可 | 布型 | false | - |

View File

@@ -6,28 +6,28 @@ aliases:
- /zh-tw/labels
---
# 标签
# 標籤
您可以使用标签对工单和合并请求进行分类,并提高对它们的概
您可以使用標籤對工單和合併請求進行分類,並提高對它們的概
## 创建标签
## 建立標籤
对于仓库,可以在 `工Issues`点击 `标签Labels` 来创建标签
對於儲存庫,可以在 `工Issues`點擊 `標籤Labels` 來建立標籤
对于组织,您可以定义组织级别的标签,这些标签与所有组织仓库共享,包括已存在的仓库和新创建的仓库。可以在组织`设置Settings`创建组织级别的标签
對於組織,您可以定義組織級別的標籤,這些標籤與所有組織儲存庫共享,包括已存在的儲存庫和新建立的儲存庫。可以在組織`設定Settings`建立組織級別的標籤
标签具有必填的名称和颜色,可的描述,以及必须是独占的或非独占的(下面的“作用域标签”)。
標籤具有必填的名稱和顏色,可的描述,以及必須是獨佔的或非獨佔的(下面的“作用域標籤”)。
当您创建一个仓库时,可以通过使用 `工单标签Issue Labels` 选项来选择标签集。该选项列出了一些在您的例上 [局配置的可用标签](../administration/customizing-gitea.md#labels)。在创建仓库时,这些标签也将被创建
當您建立一個儲存庫時,可以透過使用 `工單標籤Issue Labels` 選項來選擇標籤集。該選項列出了一些在您的例上 [域設定的可用標籤](../../administration/customizing-gitea.md)。在建立儲存庫時,這些標籤也將被建立
## 作用域标签
## 作用域標籤
作用域标签用于确保将至多一具有相同作用域的标签分配给工单或合并请求。例如,如果标签 `kind/bug``kind/enhancement`独占选项被设置,那么工单只能被分类为 bug 或 enhancement 中的一
作用域標籤用於確保將至多一具有相同作用域的標籤分配給工單或合併請求。例如,如果標籤 `kind/bug``kind/enhancement`獨佔選項被設定,那麼工單隻能被分類為 bug 或 enhancement 中的一
作用域标签的名称必须包含 `/`(不能在名的任一端)。标签的作用域是基于最后一个 `/` 定的,因此例如标签 `scope/subscope/item` 的作用域是 `scope/subscope`
作用域標籤的名稱必須包含 `/`(不能在名的任一端)。標籤的作用域是基於最後一個 `/` 定的,因此例如標籤 `scope/subscope/item` 的作用域是 `scope/subscope`
## 按标签筛选
## 按標籤篩選
和合并请求列表可以按标签进行筛选。选择多个标签将显示具有所有选定标签的工和合并请求。
和合併請求列表可以按標籤進行篩選。選擇多個標籤將顯示具有所有選定標籤的工和合併請求。
通过按住 alt 键并单击标签,可以具有所选标签的工和合并请求从列表中排除。
按住 alt 鍵並點擊標籤,可以具有所選標籤的工和合併請求從列表中排除。

View File

@@ -6,138 +6,138 @@ aliases:
- /zh-tw/automatically-linked-references
---
# 自动链接引用
# 自動鏈接引用
当发布工单、合并请求或评论时,文本描述被解析以查找引用。些引用将显示为工单视图中的接,且在某些情况下会触发特定的“操作”。
當發佈工單、合併請求或評論時,文本描述被解析以查找引用。些引用將顯示為工單視圖中的接,且在某些情況下會觸發特定的“操作”。
似地,列出提交消息,它们也会被解析,并且当它们被推送到主分支可以触发“操作”。
似地,列出提交消息,它們也會被解析,並且當它們被推送到主分支可以觸發“操作”。
了防止意外建引用,对于引用的识别有一定的规则。例如,它们不应该包含在代码文本部。它们还应该在周的文本中合理清晰(例如,使用空格)。
了防止意外建引用,對於引用的識別有一定的規則。例如,它們不應該包含在程式碼文本部。它們還應該在周的文本中合理清晰(例如,使用空格)。
## 用户、团队和组织提及
## 使用者、團隊和組織提及
找到形式 `@username` 的文本,`username` 与现有用户的名匹配时,将创建一个“提及”引用。这将通过将文本更改指向该用户个人资料的链接来显示,并根据被提及的用户是否具有访问内容所需的权限来可能创建通知。
找到形式 `@username` 的文本,`username` 與現有使用者的名匹配時,將建立一個“提及”引用。這將通過將文本更改指向該使用者個人資料的鏈接來顯示,並根據被提及的使用者是否具有訪問內容所需的權限來可能建立通知。
例:
例:
> [@John](#),你能看一下这个吗
> [@John](#),你能看一下這個嗎
对于团队和组织也是有效的:
對於團隊和組織也是有效的:
> [@Documenters](#),我需要为此进行规划
> [@CoolCompanyInc](#)这个问题关系到我所有人!
> [@Documenters](#),我需要為此進行規劃
> [@CoolCompanyInc](#)這個問題關係到我所有人!
团队将在适当时收到件通知,但整个组织不会收到通知。
團隊將在適當時收到件通知,但整個組織不會收到通知。
提交消息不会产生用户通知。
提交消息不會產生使用者通知。
## 提交
可以使用提交的 SHA1 哈希或至少七字符的一部分引用提交。它们将显示为指向相提交的接。
可以使用提交的 SHA1 哈希或至少七字符的一部分引用提交。它們將顯示為指向相提交的接。
例:
例:
> 这个错误是在 [e59ff077](#) 中引入的
> 這個錯誤是在 [e59ff077](#) 中引入的
## 工和合并请
## 工和合併請
可以使用简单的符 `#1234` 来创建对另一个工单或合并请求的引用,其中 _1234_ 是同一仓库中一个工单或合并请求的编号。这些引用将显示为指向被引用容的接。
可以使用簡單的符 `#1234` 來建立對另一個工單或合併請求的引用,其中 _1234_ 是同一儲存庫中一個工單或合併請求的編號。這些引用將顯示為指向被引用容的接。
创建此类型引用的效果是,在被引用的文档中创建一个“通知”,前提是引用的创建者对其具有读取权限。
建立此類型引用的效果是,在被引用的文件中建立一個“通知”,前提是引用的建立者對其具有讀取權限。
例:
例:
> 似乎 [#1234](#) 相
> 似乎 [#1234](#) 相
可以使用形式 `owner/repository#1234` 引用其他仓库中的工和合并请求:
可以使用形式 `owner/repository#1234` 引用其他儲存庫中的工和合併請求:
> 似乎 [mike/compiler#1234](#) 相
> 似乎 [mike/compiler#1234](#) 相
或者也可以使用 `!1234`号。虽然在 Gitea 中合并请求是工的一形式,但 `#1234` 形式总是链接到工;如果接的目恰好是一个合并请Gitea 会适当地进行重定向。而使用 `!1234`号,则会创建一个合并请求链接,根需要被重定向到工。然而,如果使用外部跟器,这个区别可能很重要,因为工单和合并请求的接是不能互的。
或者也可以使用 `!1234`號。雖然在 Gitea 中合併請求是工的一形式,但 `#1234` 形式總是鏈接到工;如果接的目恰好是一個合併請Gitea 會適當地進行重定向。而使用 `!1234`號,則會建立一個合併請求鏈接,根需要被重定向到工。然而,如果使用外部跟器,這個區別可能很重要,因為工單和合併請求的接是不能互的。
## 可操作的引用在合并请求和提交消息中
## 可操作的引用在合併請求和提交消息中
,一提交或合并请求可能会修复或重新出在某特定工中。Gitea 支在引用之前加上特定的“关键字”来关闭和重新打被引用的工。常见的关键字包括“closes”、“fixes”、“reopens”等。这个列表可以由站管理员进行 [定义](../administration/config-cheat-sheet.md)。
,一提交或合併請求可能會修復或重新出在某特定工中。Gitea 支在引用之前加上特定的“關鍵字”來關閉和重新打被引用的工。常見的關鍵字包括“closes”、“fixes”、“reopens”等。這個列表可以由站管理員進行 [](../../administration/config-cheat-sheet)。
例:
例:
> 这个合并请求 _closes_ [#1234](#)
> 這個合併請求 _closes_ [#1234](#)
如果可操作的引用被接受,这将在被引用的工单上创建一个通知,宣布当引用的合并请求被合并时该工单将被关闭
如果可操作的引用被接受,這將在被引用的工單上建立一個通知,宣佈當引用的合併請求被合併時該工單將被關閉
了接受可操作的引用,必须满足以下至少一项条件之一:
了接受可操作的引用,必須滿足以下至少一項條件之一:
- 评论者在创建引用具有关闭或重新打开工单的权限。
- 引用位提交消息中。
- 引用作为合并请求描述的一部分布。
- 評論者在建立引用具有關閉或重新打開工單的權限。
- 引用位提交消息中。
- 引用作為合併請求描述的一部分布。
在最后一种情况下,只有当合并合并请求的人具有相应权限时,工单才会被关闭或重新打
在最後一種情況下,只有當合併合併請求的人具有相應權限時,工單纔會被關閉或重新打
此外,只有合并请求和提交消息可以创建一个操作,只有工可以通过这种方式被关闭或重新打
此外,只有合併請求和提交消息可以建立一個操作,只有工可以透過這種方式被關閉或重新打
默认的关键字如下:
預設的關鍵字如下:
- **关闭工单**: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved
- **重新打开工单**: reopen, reopens, reopened
- **關閉工單**: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved
- **重新打開工單**: reopen, reopens, reopened
## 合并请求和提交消息中的时间跟踪
## 合併請求和提交消息中的時間跟蹤
提交或合并合并请求导致自动关闭工单时,还可以通过提交消息添加解此工所花费的时间
提交或合併合併請求導致自動關閉工單時,還可以透過提交消息添加解此工所花費的時間
要指定解决工单所花费的时间,需要在工单编号后面以 `@<number><time-unit>` 的格式指定时间。在一提交消息中,可以指定多已解的工单,并为每个工单指定花费的时间
要指定解決工單所花費的時間,需要在工單編號後面以 `@<number><time-unit>` 的格式指定時間。在一提交消息中,可以指定多已解的工單,併為每個工單指定花費的時間
持的时间单位(`<time-unit>`
援的時間單位(`<time-unit>`
- `m` - 分
- `h` - 小
- `d` - 天(相当于 8 小
- `w` - 周(相当于 5 天)
- `mo` - 月(相当于 4 周)
- `m` - 分
- `h` - 小
- `d` - 天(相當於 8 小
- `w` - 周(相當於 5 天)
- `mo` - 月(相當於 4 周)
指定时间的数字(`<number>`)也可以是小,例如 `@1.5h` 表示一小半。多个时间单位可以合使用,例如 `@1h10m` 表示 1 小 10 分
指定時間的數字(`<number>`)也可以是小,例如 `@1.5h` 表示一小半。多個時間單位可以合使用,例如 `@1h10m` 表示 1 小 10 分
提交消息例:
提交消息例:
> Fixed #123 spent @1h, refs #102, fixes #124 @1.5h
这将导致工 #123 增加 1 小,工 #124 增加 1 小半。
這將導致工 #123 增加 1 小,工 #124 增加 1 小半。
## 外部跟
## 外部跟
Gitea 支使用外部工单跟踪器,可以在合并请求中创建对外部管的工的引用。但是,如果外部跟器使用数字来标识工单,那么它们将与 Gitea 中管的合并请求无法区分。了解决这个问题Gitea 允使用 `!` 标记来标识合并请求。例如:
Gitea 支使用外部工單跟蹤器,可以在合併請求中建立對外部管的工的引用。但是,如果外部跟器使用數字來標識工單,那麼它們將與 Gitea 中管的合併請求無法區分。了解決這個問題Gitea 允使用 `!` 標記來標識合併請求。例如:
> 是工 [#1234](#)并链接到外部跟器。
> 是合并请求 [!1234](#)并链接到 Gitea 中的合并请求。
> 是工 [#1234](#)並鏈接到外部跟器。
> 是合併請求 [!1234](#)並鏈接到 Gitea 中的合併請求。
在工和合并请求中,`!``#` 可以互使用,除非需要进行区分。如果仓库使用外部跟器,默认情况下,合提交消息使用 `!`引用。
在工和合併請求中,`!``#` 可以互使用,除非需要進行區分。如果儲存庫使用外部跟器,預設情況下,合提交消息使用 `!`引用。
## 工和合并请求引用摘要
## 工和合併請求引用摘要
下表明了工和合并请求的不同型的交叉引用。在例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库
下表明了工和合併請求的不同型的交叉引用。在例中,`User1/Repo1` 指的是使用引用的儲存庫,而 `UserZ/RepoZ` 表示另一個儲存庫
| 在 User1/Repo1 中的引用 | Repo1 的工是外部的 | RepoZ 的工是外部的 | 渲染效果 |
| 在 User1/Repo1 中的引用 | Repo1 的工是外部的 | RepoZ 的工是外部的 | 渲染效果 |
| ----------------------- | :------------------: | :------------------: | --------------------------------------------- |
| `#1234` | 否 | - | 接到 `User1/Repo1` 中的工/合并请求 1234 |
| `!1234` | 否 | - | 接到 `User1/Repo1` 中的工/合并请求 1234 |
| `#1234` | 是 | - | 接到 `User1/Repo1`_外部工_ 1234 |
| `!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `User1/Repo1#1234` | 否 | - | 接到 `User1/Repo1` 中的工/合并请求 1234 |
| `User1/Repo1!1234` | 否 | - | 接到 `User1/Repo1` 中的工/合并请求 1234 |
| `User1/Repo1#1234` | 是 | - | 接到 `User1/Repo1`_外部工_ 1234 |
| `User1/Repo1!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `UserZ/RepoZ#1234` | - | 否 | 接到 `UserZ/RepoZ` 中的工/合并请求 1234 |
| `UserZ/RepoZ!1234` | - | 否 | 接到 `UserZ/RepoZ` 中的工/合并请求 1234 |
| `UserZ/RepoZ#1234` | - | 是 | 接到 `UserZ/RepoZ`_外部工_ 1234 |
| `UserZ/RepoZ!1234` | - | 是 | 接到 `UserZ/RepoZ`_PR_ 1234 |
| **字母字工单编号:** | - | - | - |
| `AAA-1234` | 是 | - | 接到 `User1/Repo1`_外部工_ `AAA-1234` |
| `!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `User1/Repo1!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| _不支_ | - | 是 | 接到 `UserZ/RepoZ`_外部工_ `AAA-1234` |
| `UserZ/RepoZ!1234` | - | 是 | 接到 `UserZ/RepoZ` 中的 _PR_ 1234 |
| `#1234` | 否 | - | 接到 `User1/Repo1` 中的工/合併請求 1234 |
| `!1234` | 否 | - | 接到 `User1/Repo1` 中的工/合併請求 1234 |
| `#1234` | 是 | - | 接到 `User1/Repo1`_外部工_ 1234 |
| `!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `User1/Repo1#1234` | 否 | - | 接到 `User1/Repo1` 中的工/合併請求 1234 |
| `User1/Repo1!1234` | 否 | - | 接到 `User1/Repo1` 中的工/合併請求 1234 |
| `User1/Repo1#1234` | 是 | - | 接到 `User1/Repo1`_外部工_ 1234 |
| `User1/Repo1!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `UserZ/RepoZ#1234` | - | 否 | 接到 `UserZ/RepoZ` 中的工/合併請求 1234 |
| `UserZ/RepoZ!1234` | - | 否 | 接到 `UserZ/RepoZ` 中的工/合併請求 1234 |
| `UserZ/RepoZ#1234` | - | 是 | 接到 `UserZ/RepoZ`_外部工_ 1234 |
| `UserZ/RepoZ!1234` | - | 是 | 接到 `UserZ/RepoZ`_PR_ 1234 |
| **字母字工單編號:** | - | - | - |
| `AAA-1234` | 是 | - | 接到 `User1/Repo1`_外部工_ `AAA-1234` |
| `!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| `User1/Repo1!1234` | 是 | - | 接到 `User1/Repo1`_PR_ 1234 |
| _不支_ | - | 是 | 接到 `UserZ/RepoZ`_外部工_ `AAA-1234` |
| `UserZ/RepoZ!1234` | - | 是 | 接到 `UserZ/RepoZ` 中的 _PR_ 1234 |
_一部分适用于使用字母字格式的外部工单跟踪器的仓库_
_一部分適用於使用字母字格式的外部工單跟蹤器的儲存庫_
_**-**: 不_
_**-**: 不_
注意:不完全支具有不同型工(外部 vs. 部)的仓库之间的自引用,可能会导致无效链接。
注意:不完全支具有不同型工(外部 vs. 部)的儲存庫之間的自引用,可能會導致無效鏈接。

View File

@@ -7,11 +7,11 @@ aliases:
- /zh-tw/merge-message-templates
---
# 合消息模板
# 合消息模板
## 文件名
PR 默认合并消息模板可能的文件名:
PR 預設合併消息模板可能的文件名:
- `.gitea/default_merge_message/MERGE_TEMPLATE.md`
- `.gitea/default_merge_message/REBASE_TEMPLATE.md`
@@ -20,28 +20,28 @@ PR 默认合并消息模板可能的文件名:
- `.gitea/default_merge_message/MANUALLY-MERGED_TEMPLATE.md`
- `.gitea/default_merge_message/REBASE-UPDATE-ONLY_TEMPLATE.md`
##
##
您可以在些模板中使用以下以 `${}`围的变量,这些变量遵循 [os.Expand](https://pkg.go.dev/os#Expand) 法:
您可以在些模板中使用以下以 `${}`圍的變量,這些變量遵循 [os.Expand](https://pkg.go.dev/os#Expand) 法:
- BaseRepoOwnerName此合并请求的基础仓库所有者名
- BaseRepoName此合并请求的基础仓库名称
- BaseBranch此合并请求的基础仓库目标分支名
- HeadRepoOwnerName此合并请求的源仓库所有者名
- HeadRepoName此合并请求的源仓库名称
- HeadBranch此合并请求的源仓库分支名
- PullRequestTitle并请求的标题
- PullRequestDescription并请求的描述
- PullRequestPosterName并请求的提交者名
- PullRequestIndex并请求的索引
- PullRequestReference并请求的引用字符索引。例如,#1、!2
- ClosingIssues返回一包含由此合并请求关闭的所有工的字符串。例如 `close #1, close #2`
- ReviewedOn: 提交所的合并请求。例如: `Reviewed-on: https://gitea.com/foo/bar/pulls/1`
- ReviewedBy: 同意的此合并请求。例如: `Reviewed-by: Jane Doe <jane.doe@example.com>`
- BaseRepoOwnerName此合併請求的基礎儲存庫所有者名
- BaseRepoName此合併請求的基礎儲存庫名稱
- BaseBranch此合併請求的基礎儲存庫目標分支名
- HeadRepoOwnerName此合併請求的源儲存庫所有者名
- HeadRepoName此合併請求的源儲存庫名稱
- HeadBranch此合併請求的源儲存庫分支名
- PullRequestTitle併請求的標題
- PullRequestDescription併請求的描述
- PullRequestPosterName併請求的提交者名
- PullRequestIndex併請求的索引
- PullRequestReference併請求的引用字符索引。例如,#1、!2
- ClosingIssues返回一包含由此合併請求關閉的所有工的字符串。例如 `close #1, close #2`
- ReviewedOn: 提交所的合併請求。例如: `Reviewed-on: https://gitea.com/foo/bar/pulls/1`
- ReviewedBy: 同意的此合併請求。例如: `Reviewed-by: Jane Doe <jane.doe@example.com>`
## Rebase
## Rebase
有合提交的情况下进行变基时`REBASE_TEMPLATE.md` 修改最一次提交的消息。此模板提供以下附加量:
有合提交的情況下進行變基時`REBASE_TEMPLATE.md` 修改最一次提交的消息。此模板提供以下附加量:
- CommitTitle提交的标题
- CommitTitle提交的標題
- CommitBody提交的正文文本

View File

@@ -6,55 +6,55 @@ aliases:
- /zh-tw/pull-request
---
# 合并请
# 合併請
并请求(PR)是一提出对仓库进行更改的方式。
它是一种将一个分支合到另一分支的求,附带有对所做更改的描述。
并请求通常用作贡献者对仓库贡献代码的方式,仓库的维护者可以通过对合并请求进行审查来决定是否接受些更改。
併請求(PR)是一提出對儲存庫進行更改的方式。
它是一種將一個分支合到另一分支的求,附帶有對所做更改的描述。
併請求通常用作貢獻者對儲存庫貢獻程式碼的方式,儲存庫的維護者可以透過對合併請求進行審查來決定是否接受些更改。
## 创建合并请
## 建立合併請
创建合并请求,您需要遵循以下步
建立合併請求,您需要遵循以下步
1. **Fork 仓库** - 如果您有直接对仓库进行更改的限,您需要将仓库 fork 到您自己的账户中。
这将创建一个您可以对其进行更改的仓库副本。
1. **Fork 儲存庫** - 如果您有直接對儲存庫進行更改的限,您需要將儲存庫 fork 到您自己的帳號中。
這將建立一個您可以對其進行更改的儲存庫副本。
2. **建分支(可** - 在 fork 的仓库中创建一个新分支,分支包含您要提出的更改。
分支取一描述性的名,以指示更改的容。
2. **建分支(可** - 在 fork 的儲存庫中建立一個新分支,分支包含您要提出的更改。
分支取一描述性的名,以指示更改的容。
3. **行更改** - 行您想要的更改,提交并将其推送到 fork 的仓库中。
3. **行更改** - 行您想要的更改,提交併將其推送到 fork 的儲存庫中。
4. **创建合并请** - 到原始仓库并转到“合并请求”选项卡。单击“新建合并请求”按钮,并将您的新分支选择为源分支。
您的合并请求输入描述性标题和描述,然后单击“创建合并请求”。
4. **建立合併請** - 到原始儲存庫並轉到“合併請求”選項卡。單擊“新建合併請求”按鈕,並將您的新分支選擇為源分支。
您的合併請求輸入描述性標題和描述,然後單擊“建立合併請求”。
## 评审合并请
## 評審合併請
创建合并请求后,将触发评审流程。仓库的维护者将收到合并请求的通知,可以查所做的更改。
可以留下评论、请求更改或批准更改。
建立合併請求後,將觸發評審流程。儲存庫的維護者將收到合併請求的通知,可以查所做的更改。
可以留下評論、請求更改或批准更改。
如果维护者请求更改,您需要在分支中进行这些更改,并将更改推送到 fork 的仓库中。
并请求将自动使用新更改行更新。
如果維護者請求更改,您需要在分支中進行這些更改,並將更改推送到 fork 的儲存庫中。
併請求將自動使用新更改行更新。
如果维护者批准更改,他可以将合并请求合并到仓库中。
如果維護者批准更改,他可以將合併請求合併到儲存庫中。
## 关闭合并请
## 關閉合併請
如果您不接受该合并请求,您可以关闭它。
关闭合并请求,请转到打的合并请求并单击“关闭合并请求”按钮。这将关闭合并请求并且不会将其合
如果您不接受該合併請求,您可以關閉它。
關閉合併請求,請轉到打的合併請求並單擊“關閉合併請求”按鈕。這將關閉合併請求並且不會將其合
## 使用“Work In Progress”标记
## 使用“Work In Progress”標記
在合并请求中使用“Work In Progress”标记可以防止合并请求被意外合
将合并请求标记为“Work In Progress”您必在其标题中添加前`WIP:``[WIP]`(不分大小)。
标记前缀可以在您的`app.ini`文件中进行配置
在合併請求中使用“Work In Progress”標記可以防止合併請求被意外合
將合併請求標記為“Work In Progress”您必在其標題中添加前`WIP:``[WIP]`(不分大小)。
標記前綴可以在您的`app.ini`文件中進行設定
```
[repository.pull-request]
WORK_IN_PROGRESS_PREFIXES=WIP:,[WIP]
```
列表的第一个值将用于 helpers 程
列表的第一個值將用於 helpers 程
## 合并请求模板
## 合併請求模板
关合并请求模板的更多信息请您移步 : [单与合并请求模板](usage/issue-pull-request-templates.md)
關合併請求模板的更多資訊請您移步 : [單與合併請求模板](issue-pull-request-templates)

View File

@@ -4,63 +4,63 @@ slug: "alpine"
sidebar_position: 4
---
# Alpine 软件包注册
# Alpine 套件註冊
在您的用户或组织中发布 [Alpine](https://pkgs.alpinelinux.org/) 软件包
在您的使用者或組織中發佈 [Alpine](https://pkgs.alpinelinux.org/) 套件
## 要求
要使用 Alpine 注册表,您需要使用像 curl 这样的 HTTP 客户端来上传包,使用像 apk 这样的包管理器来消费包。
要使用 Alpine 註冊表,您需要使用像 curl 這樣的 HTTP 客戶端來上傳包,使用像 apk 這樣的套件管理器來消費包。
以下例使用 `apk`
以下例使用 `apk`
## 配置软件包注册
## 設定套件註冊
注册 Alpine 注册表,请将 URL 添加到已知的 apk 源列表中 (`/etc/apk/repositories`):
註冊 Alpine 註冊表,請將 URL 添加到已知的 apk 源列表中 (`/etc/apk/repositories`):
```
https://gitea.example.com/api/packages/{owner}/alpine/<branch>/<repository>
```
| 位符 | 描述 |
| 位符 | 描述 |
| ------------ | -------------- |
| `owner` | 软件包所有者 |
| `owner` | 套件所有者 |
| `branch` | 要使用的分支名 |
| `repository` | 要使用的仓库名 |
| `repository` | 要使用的儲存庫名 |
如果注册表是私有的,在 URL 中提供凭据。您可以使用密或[个人访问令牌](development/api-usage.md#通过-api-认证):
如果註冊表是私有的,在 URL 中提供憑據。您可以使用密或[個人存取權杖](development/api-usage.md#透過-api-認證):
```
https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/alpine/<branch>/<repository>
```
Alpine 注册表文件使用 RSA 密钥进行签apk 必知道该密钥。下载公钥并将其存储`/etc/apk/keys/`中:
Alpine 註冊表文件使用 RSA 密鑰進行簽apk 必知道該密鑰。下載公鑰並將其儲存`/etc/apk/keys/`中:
```shell
curl -JO https://gitea.example.com/api/packages/{owner}/alpine/key
```
,更新本地软件包索引:
,更新本地套件索引:
```shell
apk update
```
## 发布软件包
## 發佈套件
发布一个 Alpine 包(`*.apk`请执行带有包容的 HTTP `PUT` 操作,其放在请求体中。
發佈一個 Alpine 包(`*.apk`請執行帶有包容的 HTTP `PUT` 操作,其放在請求體中。
```
PUT https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repository}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------------ | --------------------------------------------------------------------------------------------------- |
| `owner` | 包的所有者。 |
| `branch` | 分支可以操作系统的发行版本匹配例如v3.17。 |
| `repository` | 仓库可以用[](https://wiki.alpinelinux.org/wiki/Repositories) 或者只是 `main`似的名。 |
| `branch` | 分支可以操作系統的發行版本匹配例如v3.17。 |
| `repository` | 儲存庫可以用[](https://wiki.alpinelinux.org/wiki/Repositories) 或者只是 `main`似的名。 |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -68,50 +68,50 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main
```
如果您使用的是重身份验证或 OAuth使用[个人访问令牌](development/api-usage.md#authentication)代替密
您不能具有相同名的文件两次发布到一包中。您必首先删除现有的包文件。
如果您使用的是重身份驗證或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)代替密
您不能具有相同名的文件兩次發佈到一包中。您必首先刪除現有的包文件。
服务器将以以下的 HTTP 状态码响应
伺服器將以以下的 HTTP 狀態碼響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ----------------- | ------------------------------------------ |
| `201 Created` | 软件包已发布。 |
| `400 Bad Request` | 软件包的名、版本、分支、仓库或架构无效。 |
| `409 Conflict` | 具有相同参数组合的包文件已存在于软件包中。 |
| `201 Created` | 套件已發佈。 |
| `400 Bad Request` | 套件的名、版本、分支、儲存庫或架構無效。 |
| `409 Conflict` | 具有相同參數組合的包文件已存在於套件中。 |
## 删除软件包
## 刪除套件
除 Alpine 包,行 HTTP 的 DELETE 操作。如果有文件,这将同时删除包版本。
除 Alpine 包,行 HTTP 的 DELETE 操作。如果有文件,這將同時刪除包版本。
```
DELETE https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repository}/{architecture}/{filename}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
| `branch` | 要使用的分支名 |
| `repository` | 要使用的仓库名 |
| `architecture` | 软件包的架 |
| `filename` | 要除的文件名 |
| `repository` | 要使用的儲存庫名 |
| `architecture` | 套件的架 |
| `filename` | 要除的文件名 |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_token_or_password -X DELETE \
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main/test-package-1.0.0.apk
```
服务器将以以下的 HTTP 状态码响应
伺服器將以以下的 HTTP 狀態碼響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ---------------- | ------------------ |
| `204 No Content` | 成功 |
| `404 Not Found` | 未找到软件包或文件 |
| `404 Not Found` | 未找到套件或文件 |
## 安装软件包
## 安裝套件
Alpine 注册表安装软件包,请执行以下命令:
Alpine 註冊表安裝套件,請執行以下命令:
```shell
# use latest version

View File

@@ -4,37 +4,37 @@ slug: "cargo"
sidebar_position: 5
---
# Cargo 软件包注册
# Cargo 套件註冊
您的用户或组织发布 [Cargo](https://doc.rust-lang.org/stable/cargo/) 软件包
您的使用者或組織發佈 [Cargo](https://doc.rust-lang.org/stable/cargo/) 套件
## 要求
若要使用 Cargo 软件包注册表, 您需要安 [Rust 和 Cargo](https://www.rust-lang.org/tools/install).
若要使用 Cargo 套件註冊表, 您需要安 [Rust 和 Cargo](https://www.rust-lang.org/tools/install).
Cargo 可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
这个仓库是与注册表交互所必需的。
下面的部分将介绍如何创建它。
Cargo 可用套件的資訊儲存在一個儲存在 git 儲存庫中的套件索引中。
這個儲存庫是與註冊表交互所必需的。
下面的部分將介紹如何建立它。
## 索引仓库
## 索引儲存庫
Cargo 可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
在 Gitea 中,这个仓库有一特殊的名叫做 `_cargo-index`
在上传软件包之后,它的元数据会自动写入索引中。
应手动修改这个注册表的容。
Cargo 可用套件的資訊儲存在一個儲存在 git 儲存庫中的套件索引中。
在 Gitea 中,這個儲存庫有一特殊的名叫做 `_cargo-index`
在上傳套件之後,它的元資料會自動寫入索引中。
應手動修改這個註冊表的容。
用户或组织软件包设置页面允许创建这个索引仓库以及配置文件。
如果需要,此操作将重写配置文件。
例如,如果 Gitea 例的域名已更改,这将非常有用。
使用者或組織套件設定頁面允許建立這個索引儲存庫以及設定文件。
如果需要,此操作將重寫設定文件。
例如,如果 Gitea 例的域名已更改,這將非常有用。
如果存在 Gitea 中的软件包与索引注册表中的信息不同步,设置页面允重建这个索引注册表。
这个操作将遍历注册表中的所有软件包,并将它们的信息写入索引中。
如果有很多软件包,这个过程可能需要一些时间
如果存在 Gitea 中的套件與索引註冊表中的資訊不同步,設定頁面允重建這個索引註冊表。
這個操作將遍歷註冊表中的所有套件,並將它們的資訊寫入索引中。
如果有很多套件,這個過程可能需要一些時間
## 配置软件包注册
## 設定套件註冊
注册这个软件包注册表,必更新 Cargo 的配置
以下文本添加到位于当前用户主目中的配置文件中(例如 `~/.cargo/config.toml`
註冊這個套件註冊表,必更新 Cargo 的設定
以下文本添加到位於當前使用者主目中的設定文件中(例如 `~/.cargo/config.toml`
```
[registry]
@@ -48,45 +48,45 @@ index = "sparse+https://gitea.example.com/api/packages/{owner}/cargo/" # Sparse
git-fetch-with-cli = true
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | ---------------- |
| `owner` | 软件包的所有者。 |
| `owner` | 套件的所有者。 |
如果这个注册表是私有的或者您想要发布新的软件包,您必须配置您的凭据
将凭据部分添加到位于当前用户主目中的凭据文件中(例如 `~/.cargo/credentials.toml`
如果這個註冊表是私有的或者您想要發佈新的套件,您必須設定您的憑據
將憑據部分添加到位於當前使用者主目中的憑據文件中(例如 `~/.cargo/credentials.toml`
```
[registries.gitea]
token = "Bearer {token}"
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | ------------------------------------------------------------------------------------- |
| `token` | 您的[个人访问令牌](development/api-usage.md#通过-api-认证) |
| `token` | 您的[個人存取權杖](development/api-usage.md#透過-api-認證) |
## 发布软件包
## 發佈套件
项目中运行以下命令来发布软件包
專案中運行以下命令來發布套件
```shell
cargo publish
```
如果已存在同名和版本的软件包,您将无法发布新的软件包。您必须先删除现有的软件包
如果已存在同名和版本的套件,您將無法發佈新的套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安装软件包,请执行以下命令:
從套件註冊表安裝套件,請執行以下命令:
```shell
cargo add {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ------------ |
| `package_name` | 软件包名称。 |
| `package_name` | 套件名稱。 |
## 支的命令
## 支的命令
```
cargo publish

View File

@@ -4,81 +4,81 @@ slug: "chef"
sidebar_position: 5
---
# Chef 软件包注册
# Chef 套件註冊
您的用户或组织发布 [Chef](https://chef.io/) cookbooks。
您的使用者或組織發佈 [Chef](https://chef.io/) cookbooks。
## 要求
要使用 Chef 软件包注册表,您需要使用 [`knife`](https://docs.chef.io/workstation/knife/).
要使用 Chef 套件註冊表,您需要使用 [`knife`](https://docs.chef.io/workstation/knife/).
## 认证
## 認證
Chef 软件包注册表不使用用户名和密码进行身份验证,而是使用私和公钥对请求进行签名。
请访问软件包所有者设置页面以创建必要的密钥对
只有公钥存储在Gitea中。如果您失了私钥的访问权限,您必重新生成密钥对
[配置 `knife`](https://docs.chef.io/workstation/knife_setup/),使用下的私钥,并将 Gitea 用户名设置为 `client_name`
Chef 套件註冊表不使用使用者名稱和密碼進行身份驗證,而是使用私和公鑰對請求進行簽名。
請前往套件所有者設定頁面以建立必要的密鑰對
只有公鑰儲存在Gitea中。如果您失了私鑰的存取權限,您必重新生成密鑰對
[設定 `knife`](https://docs.chef.io/workstation/knife_setup/),使用下的私鑰,並將 Gitea 使用者名稱設定為 `client_name`
## 配置软件包注册
## 設定套件註冊
[`knife` 配置](https://docs.chef.io/workstation/knife_setup/)使用 Gitea 软件包注册表,请将 URL 添加到 `~/.chef/config.rb` 文件中。
[`knife` 設定](https://docs.chef.io/workstation/knife_setup/)使用 Gitea 套件註冊表,請將 URL 添加到 `~/.chef/config.rb` 文件中。
```
knife[:supermarket_site] = 'https://gitea.example.com/api/packages/{owner}/chef'
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
## 发布软件包
## 發佈套件
若要发布 Chef 软件包,请执行以下命令:
若要發佈 Chef 套件,請執行以下命令:
```shell
knife supermarket share {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_name` | 套件名稱 |
如果已存在同名和版本的软件包,则无法发布新的软件包。您必须先删除现有的软件包
如果已存在同名和版本的套件,則無法發佈新的套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表中安装软件包,请执行以下命令:
從套件註冊表中安裝套件,請執行以下命令:
```shell
knife supermarket install {package_name}
```
您可以指定软件包的版本,是可的:
您可以指定套件的版本,是可的:
```shell
knife supermarket install {package_name} {package_version}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
## 删除软件包
## 刪除套件
如果您想要从注册表中删除软件包,请执行以下命令:
如果您想要從註冊表中刪除套件,請執行以下命令:
```shell
knife supermarket unshare {package_name}
```
地,您可以指定软件包的版本:
地,您可以指定套件的版本:
```shell
knife supermarket unshare {package_name}/versions/{package_version}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |

View File

@@ -4,35 +4,35 @@ slug: "composer"
sidebar_position: 10
---
# Composer 软件包注册
# Composer 套件註冊
您的用户或组织发布 [Composer](https://getcomposer.org/) 软件包
您的使用者或組織發佈 [Composer](https://getcomposer.org/) 套件
## 要求
要使用 Composer 软件包注册表,您可以使用 [Composer](https://getcomposer.org/download/) 消费,并使用`curl` 的 HTTP 上传客户端发布软件包
要使用 Composer 套件註冊表,您可以使用 [Composer](https://getcomposer.org/download/) 消費,並使用`curl` 的 HTTP 上傳客戶端發佈套件
## 发布软件包
## 發佈套件
发布 Composer 软件包,请执行 HTTP `PUT` 操作,将软件包内容放入请求体中。
软件包内容必是包含 `composer.json` 文件的压缩 PHP 项目
如果已存在同名和版本的软件包,则无法发布新的软件包。您必须先删除现有的软件包
發佈 Composer 套件,請執行 HTTP `PUT` 操作,將套件內容放入請求體中。
套件內容必是包含 `composer.json` 文件的壓縮 PHP 專案
如果已存在同名和版本的套件,則無法發佈新的套件。您必須先刪除現有的套件
```
PUT https://gitea.example.com/api/packages/{owner}/composer
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
如果 `composer.json` 文件不包含 `version` 性,您必须将其作为查询参数提供:
如果 `composer.json` 文件不包含 `version` 性,您必須將其作為查詢參數提供:
```
PUT https://gitea.example.com/api/packages/{owner}/composer?version={x.y.z}
```
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -40,7 +40,7 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/composer
```
或者将软件包版本指定为查询参数
或者將套件版本指定為查詢參數
```shell
curl --user your_username:your_password_or_token \
@@ -48,18 +48,18 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/composer?version=1.0.3
```
如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密
如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密
服务器将以以下 HTTP 状态码响应
伺服器將以以下 HTTP 狀態碼響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ----------------- | ----------------------------------------------------------- |
| `201 Created` | 软件包已发布 |
| `400 Bad Request` | 软件包名称和/或版本效,或具有相同名和版本的软件包已存在 |
| `201 Created` | 套件已發佈 |
| `400 Bad Request` | 套件名稱和/或版本效,或具有相同名和版本的套件已存在 |
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要其添加到 Composer 的 `config.json` 文件中(通常可以在 `<user-home-dir>/.composer/config.json` 中找到):
註冊套件註冊表,您需要其添加到 Composer 的 `config.json` 文件中(通常可以在 `<user-home-dir>/.composer/config.json` 中找到):
```json
{
@@ -71,7 +71,7 @@ curl --user your_username:your_password_or_token \
}
```
要使用凭据访问软件包注册表,您必`auth.json` 文件中指定它,如下所示:
要使用憑據訪問套件註冊表,您必`auth.json` 文件中指定它,如下所示:
```json
{
@@ -84,27 +84,27 @@ curl --user your_username:your_password_or_token \
}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ---------- | --------------------------- |
| `owner` | 软件包的所有者 |
| `username` | 您的 Gitea 用户名 |
| `password` | 您的Gitea密码或个人访问令牌 |
| `owner` | 套件的所有者 |
| `username` | 您的 Gitea 使用者名稱 |
| `password` | 您的Gitea密碼或個人存取權杖 |
## 安装软件包
## 安裝套件
从软件包注册表中安装软件包,请执行以下命令:
從套件註冊表中安裝套件,請執行以下命令:
```shell
composer require {package_name}
```
您可以指定软件包的版本,是可的:
您可以指定套件的版本,是可的:
```shell
composer require {package_name}:{package_version}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |

View File

@@ -4,29 +4,29 @@ slug: "conan"
sidebar_position: 20
---
# Conan 软件包注册
# Conan 套件註冊
您的用户或组织发布 [Conan](https://conan.io/) 软件包
您的使用者或組織發佈 [Conan](https://conan.io/) 套件
## 要求
要使用 [conan](https://conan.io/downloads.html) 软件包注册表,您需要使用 conan 命令行工具来消费和发布软件包
要使用 [conan](https://conan.io/downloads.html) 套件註冊表,您需要使用 conan 命令行工具來消費和發佈套件
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要配置一个新的 Conan remote
註冊套件註冊表,您需要設定一個新的 Conan remote
```shell
conan remote add {remote} https://gitea.example.com/api/packages/{owner}/conan
conan user --remote {remote} --password {password} {username}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `remote` | 程名。 |
| `username` | 您的 Gitea 用户名。 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密。 |
| `owner` | 软件包的所有者。 |
| `remote` | 程名。 |
| `username` | 您的 Gitea 使用者名稱。 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密。 |
| `owner` | 套件的所有者。 |
例如:
@@ -35,18 +35,18 @@ conan remote add gitea https://gitea.example.com/api/packages/testuser/conan
conan user --remote gitea --password password123 testuser
```
## 发布软件包
## 發佈套件
过运行以下命令发布 Conan 软件包
過運行以下命令發佈 Conan 套件
```shell
conan upload --remote={remote} {recipe}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------- | --------------- |
| `remote` | 程名 |
| `recipe` | 要上的 recipe |
| `remote` | 程名 |
| `recipe` | 要上的 recipe |
For example:
@@ -54,20 +54,20 @@ For example:
conan upload --remote=gitea ConanPackage/1.2@gitea/final
```
Gitea Conan 软件包注册表支完整的[版本修](https://docs.conan.io/en/latest/versioning/revisions.html)。
Gitea Conan 套件註冊表支完整的[版本修](https://docs.conan.io/en/latest/versioning/revisions.html)。
## 安装软件包
## 安裝套件
从软件包注册表中安Conan软件包,请执行以下命令:
從套件註冊表中安Conan套件,請執行以下命令:
```shell
conan install --remote={remote} {recipe}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------- | --------------- |
| `remote` | 程名 |
| `recipe` | 要下的 recipe |
| `remote` | 程名 |
| `recipe` | 要下的 recipe |
例如:
@@ -75,7 +75,7 @@ conan install --remote={remote} {recipe}
conan install --remote=gitea ConanPackage/1.2@gitea/final
```
## 支的命令
## 支的命令
```
conan install

View File

@@ -4,17 +4,17 @@ slug: "conda"
sidebar_position: 25
---
# Conda 软件包注册
# Conda 套件註冊
您的用户或组织发布 [Conda](https://docs.conda.io/en/latest/) 软件包
您的使用者或組織發佈 [Conda](https://docs.conda.io/en/latest/) 套件
## 要求
要使用 Conda 软件包注册表,您需要使用 [conda](https://docs.conda.io/projects/conda/en/stable/user-guide/install/index.html) 命令行工具。
要使用 Conda 套件註冊表,您需要使用 [conda](https://docs.conda.io/projects/conda/en/stable/user-guide/install/index.html) 命令行工具。
## 配置软件包注册
## 設定套件註冊
注册软件包注册表并提供凭据,请编辑您的 `.condarc` 文件:
註冊套件註冊表並提供憑據,請編輯您的 `.condarc` 文件:
```yaml
channel_alias: https://gitea.example.com/api/packages/{owner}/conda
@@ -24,29 +24,29 @@ default_channels:
- https://gitea.example.com/api/packages/{owner}/conda
```
| 位符 | 描述 |
| 位符 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
关各个设置的解释,请参阅[官方文](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)。
關各個設定的解釋,請參閱[官方文](https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html)。
如果需要提供凭据,可以将它们作为通道 URL 的一部分嵌入(`https://user:password@gitea.example.com/...`)。
如果需要提供憑據,可以將它們作為通道 URL 的一部分嵌入(`https://user:password@gitea.example.com/...`)。
## 发布软件包
## 發佈套件
发布一个软件包,请执行一HTTP `PUT`操作,求正文中包含软件包内容。
發佈一個套件,請執行一HTTP `PUT`操作,求正文中包含套件內容。
```
PUT https://gitea.example.com/api/packages/{owner}/conda/{channel}/{filename}
```
| 位符 | 描述 |
| 位符 | 描述 |
| ---------- | --------------------------------------------------------------------------------------------------- |
| `owner` | 软件包的所有者 |
| `channel` | 软件包的[通道](https://conda.io/projects/conda/en/latest/user-guide/concepts/channels.html)(可 |
| `owner` | 套件的所有者 |
| `channel` | 套件的[通道](https://conda.io/projects/conda/en/latest/user-guide/concepts/channels.html)(可 |
| `filename` | 文件名 |
使用HTTP基本身份验证的示例请求:
使用HTTP基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -54,11 +54,11 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/conda/package-1.0.conda
```
如果已存在同名和版本的软件包,则无法发布软件包。您必须先删除现有的软件包
如果已存在同名和版本的套件,則無法發佈套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表中安装软件包,请执行以下命令之一:
從套件註冊表中安裝套件,請執行以下命令之一:
```shell
conda install {package_name}
@@ -66,8 +66,8 @@ conda install {package_name}={package_version}
conda install -c {channel} {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------------- |
| `package_name` | 软件包的名 |
| `package_version` | 软件包的版本 |
| `channel` | 软件包的通道(可 |
| `package_name` | 套件的名 |
| `package_version` | 套件的版本 |
| `channel` | 套件的通道(可 |

View File

@@ -4,33 +4,33 @@ slug: "container"
sidebar_position: 30
---
# 容器注册
# 容器註冊
您的用户或组织发布符合 [Open Container Initiative(OCI)](https://opencontainers.org/) 规范的镜像。
容器注册表遵循 OCI 规范,并支持所有容的镜像类型,如 [Docker](https://www.docker.com/) 和 [Helm Charts](https://helm.sh/)。
您的使用者或組織發佈符合 [Open Container Initiative(OCI)](https://opencontainers.org/) 規範的鏡像。
容器註冊表遵循 OCI 規範,並支援所有容的鏡像類型,如 [Docker](https://www.docker.com/) 和 [Helm Charts](https://helm.sh/)。
## 目
## 目
要使用容器注册表,您可以使用适用于特定镜像类型的工具。
以下例使用 `docker`端。
要使用容器註冊表,您可以使用適用於特定鏡像類型的工具。
以下例使用 `docker`端。
## 登容器注册
## 登容器註冊
要推送像或者如果像位私有注册表中,您需要行身份验证
要推送像或者如果像位私有註冊表中,您需要行身份驗證
```shell
docker login gitea.example.com
```
如果您使用的是 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密码进行身份验证
如果您使用的是 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密碼進行身份驗證
## 像命名
## 像命名
像必遵循以下命名定:
像必遵循以下命名定:
`{registry}/{owner}/{image}`
例如,以下是所有者 `testuser` 的有效像名称示例:
例如,以下是所有者 `testuser` 的有效像名稱範例:
`gitea.example.com/testuser/myimage`
@@ -38,21 +38,21 @@ docker login gitea.example.com
`gitea.example.com/testuser/my/image`
**注意:** 该注册表仅支持大小不敏感的标签名称。因此,`image:tag``image:Tag` 将被视为相同的像和标签
**注意:** 該註冊表僅支援大小不敏感的標籤名稱。因此,`image:tag``image:Tag` 將被視為相同的像和標籤
## 推送
## 推送
通过执行以下命令推送像:
透過執行以下命令推送像:
```shell
docker push gitea.example.com/{owner}/{image}:{tag}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | ------------ |
| `owner` | 像的所有者 |
| `image` | 像的名 |
| `tag` | 像的标签 |
| `owner` | 像的所有者 |
| `image` | 像的名 |
| `tag` | 像的標籤 |
例如:
@@ -60,9 +60,9 @@ docker push gitea.example.com/{owner}/{image}:{tag}
docker push gitea.example.com/testuser/myimage:latest
```
## 拉取
## 拉取
通过执行以下命令拉取像:
透過執行以下命令拉取像:
```shell
docker pull gitea.example.com/{owner}/{image}:{tag}
@@ -70,9 +70,9 @@ docker pull gitea.example.com/{owner}/{image}:{tag}
| Parameter | Description |
| --------- | ------------ |
| `owner` | 像的所有者 |
| `image` | 像的名 |
| `tag` | 像的标签 |
| `owner` | 像的所有者 |
| `image` | 像的名 |
| `tag` | 像的標籤 |
例如:

View File

@@ -4,53 +4,53 @@ slug: "cran"
sidebar_position: 35
---
# CRAN 软件包注册
# CRAN 套件註冊
[R](https://www.r-project.org/) 软件包发布到您的用户或组织的类似 [CRAN](https://cran.r-project.org/) 的注册表。
[R](https://www.r-project.org/) 套件發佈到您的使用者或組織的類似 [CRAN](https://cran.r-project.org/) 的註冊表。
## 要求
要使用CRAN软件包注册表,您需要安 [R](https://cran.r-project.org/)。
要使用CRAN套件註冊表,您需要安 [R](https://cran.r-project.org/)。
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要其添加到 `Rprofile.site` 文件中,可以是系统级别、用户级别 `~/.Rprofile`项目级别
註冊套件註冊表,您需要其添加到 `Rprofile.site` 文件中,可以是系統級別、使用者級別 `~/.Rprofile`專案級別
```
options("repos" = c(getOption("repos"), c(gitea="https://gitea.example.com/api/packages/{owner}/cran")))
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
如果需要提供凭据,可以将它们嵌入到URL(`https://user:password@gitea.example.com/...`)中。
如果需要提供憑據,可以將它們嵌入到URL(`https://user:password@gitea.example.com/...`)中。
## 发布软件包
## 發佈套件
发布 R 软件包,请执行带有软件包内容的 HTTP `PUT` 操作。
發佈 R 套件,請執行帶有套件內容的 HTTP `PUT` 操作。
代码软件包
程式碼套件
```
PUT https://gitea.example.com/api/packages/{owner}/cran/src
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
进制软件包
進制套件
```
PUT https://gitea.example.com/api/packages/{owner}/cran/bin?platform={platform}&rversion={rversion}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ---------- | -------------- |
| `owner` | 软件包的所有者 |
| `platform` | 平台的名 |
| `rversion` | 二制的R版本 |
| `owner` | 套件的所有者 |
| `platform` | 平台的名 |
| `rversion` | 二制的R版本 |
例如:
@@ -60,17 +60,17 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/cran/bin?platform=windows&rversion=4.2
```
如果同名和版本的软件包已存在,则无法发布软件包。您必首先删除现有的软件包
如果同名和版本的套件已存在,則無法發佈套件。您必首先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表中安装R软件包请执行以下命令:
從套件註冊表中安裝R套件請執行以下命令:
```shell
install.packages("{package_name}")
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ----------------- |
| `package_name` | The package name. |

View File

@@ -3,63 +3,63 @@ date: "2023-01-07T00:00:00+00:00"
slug: "debian"
---
# Debian 软件包注册
# Debian 套件註冊
您的用户或组织发布 [Debian](https://www.debian.org/distrib/packages) 软件包
您的使用者或組織發佈 [Debian](https://www.debian.org/distrib/packages) 套件
## 要求
要使用 Debian 注册表,您需要使用类似于 `curl` 的 HTTP 客户端进行上传,并使用类似于 `apt`软件包管理器消费软件包
要使用 Debian 註冊表,您需要使用類似於 `curl` 的 HTTP 客戶端進行上傳,並使用類似於 `apt`套件管理器消費套件
以下例使用 `apt`
以下例使用 `apt`
## 配置软件包注册
## 設定套件註冊
注册 Debian 注册表,请将 URL 添加到已知 `apt` 源列表中:
註冊 Debian 註冊表,請將 URL 添加到已知 `apt` 源列表中:
```shell
echo "deb [signed-by=/etc/apt/keyrings/gitea-{owner}.asc] https://gitea.example.com/api/packages/{owner}/debian {distribution} {component}" | sudo tee -a /etc/apt/sources.list.d/gitea.list
```
| 位符 | 描述 |
| 位符 | 描述 |
| -------------- | -------------- |
| `owner` | 软件包的所有者 |
| `distribution` | 要使用的行版 |
| `component` | 要使用的件 |
| `owner` | 套件的所有者 |
| `distribution` | 要使用的行版 |
| `component` | 要使用的件 |
如果注册表是私有的,在 URL 中提供凭据。您可以使用密或[个人访问令牌](development/api-usage.md#通过-api-认证)
如果註冊表是私有的,在 URL 中提供憑據。您可以使用密或[個人存取權杖](development/api-usage.md#透過-api-認證)
```shell
echo "deb [signed-by=/etc/apt/keyrings/gitea-{owner}.asc] https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/debian {distribution} {component}" | sudo tee -a /etc/apt/sources.list.d/gitea.list
```
Debian 注册表文件使用 PGP 密钥进行签名,`apt`知道该密钥
Debian 註冊表文件使用 PGP 密鑰進行簽名,`apt`知道該密鑰
```shell
sudo curl https://gitea.example.com/api/packages/{owner}/debian/repository.key -o /etc/apt/keyrings/gitea-{owner}.asc
```
更新本地软件包索引:
更新本地套件索引:
```shell
apt update
```
## 发布软件包
## 發佈套件
发布一个 Debian 软件包`*.deb`行 HTTP `PUT` 操作,并将软件包内容放入求主中。
發佈一個 Debian 套件`*.deb`行 HTTP `PUT` 操作,並將套件內容放入求主中。
```
PUT https://gitea.example.com/api/packages/{owner}/debian/pool/{distribution}/{component}/upload
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ----------------------------------------------------- |
| `owner` | 软件包的所有者 |
| `distribution` | 行版,可能操作系统的发行版名匹配,例如 `bionic` |
| `component` | 件,可用于分组软件包,或仅为 `main`似的件。 |
| `owner` | 套件的所有者 |
| `distribution` | 行版,可能操作系統的發行版名匹配,例如 `bionic` |
| `component` | 件,可用於分組套件,或僅為 `main`似的件。 |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -67,51 +67,51 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/debian/pool/bionic/main/upload
```
如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密
法向软件包中多次发布具有相同名的文件。您必首先删除现有的软件包版本。
如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密
法向套件中多次發佈具有相同名的文件。您必首先刪除現有的套件版本。
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
| HTTP 状态码 | 意 |
| HTTP 狀態碼 | 意 |
| ----------------- | ---------------------------------------- |
| `201 Created` | 软件包已发布 |
| `400 Bad Request` | 软件包名称、版本、行版、件或架构无效 |
| `409 Conflict` | 具有相同参数组合的软件包文件已存在 |
| `201 Created` | 套件已發佈 |
| `400 Bad Request` | 套件名稱、版本、行版、件或架構無效 |
| `409 Conflict` | 具有相同參數組合的套件文件已存在 |
## 删除软件包
## 刪除套件
除 Debian 软件包,请执行 HTTP `DELETE` 操作。如果有文件留下,这将同时删除软件包版本。
除 Debian 套件,請執行 HTTP `DELETE` 操作。如果有文件留下,這將同時刪除套件版本。
```
DELETE https://gitea.example.com/api/packages/{owner}/debian/pool/{distribution}/{component}/{package_name}/{package_version}/{architecture}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `distribution` | 软件包发行版 |
| `component` | 软件包组件 |
| `architecture` | 软件包架构 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
| `distribution` | 套件發行版 |
| `component` | 套件元件 |
| `architecture` | 套件架構 |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_token_or_password -X DELETE \
https://gitea.example.com/api/packages/testuser/debian/pools/bionic/main/test-package/1.0.0/amd64
```
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ---------------- | ------------------ |
| `204 No Content` | 成功 |
| `404 Not Found` | 找不到软件包或文件 |
| `404 Not Found` | 找不到套件或文件 |
## 安装软件包
## 安裝套件
Debian 注册表安装软件包,请执行以下命令:
Debian 註冊表安裝套件,請執行以下命令:
```shell
# use latest version

View File

@@ -4,31 +4,31 @@ slug: "generic"
sidebar_position: 500
---
# 通用软件包注册
# 通用套件註冊
发布通用文件,如发布二进制文件或其他出,供您的用户或组织使用。
發佈通用文件,如發佈二進制文件或其他出,供您的使用者或組織使用。
## 身份验证软件包注册
## 身份驗證套件註冊
要身份验证软件包注册表,您需要提供[定义 HTTP 或使用 HTTP 基本身份验证](development/api-usage.md#通过-api-认证)。
要身份驗證套件註冊表,您需要提供[ HTTP 或使用 HTTP 基本身份驗證](development/api-usage.md#透過-api-認證)。
## 发布软件包
## 發佈套件
发布通用软件包,请执行 HTTP `PUT` 操作,并将软件包内容放入求主中。
法向软件包中多次发布具有相同名的文件。您必首先删除现有的软件包版本。
發佈通用套件,請執行 HTTP `PUT` 操作,並將套件內容放入求主中。
法向套件中多次發佈具有相同名的文件。您必首先刪除現有的套件版本。
```
PUT https://gitea.example.com/api/packages/{owner}/generic/{package_name}/{package_version}/{file_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `owner` | 软件包的所有者。 |
| `package_name` | 软件包名称。它只能包含小字母 (`a-z`)、大字母 (`A-Z`)、字 (`0-9`)、点号 (`.`)、字符 (`-`)、加 (`+`) 或下划线 (`_`) |
| `package_version` | 软件包版本,一非空字符串,不包含前或尾空格 |
| `file_name` | 文件名。它只能包含小字母 (`a-z`)、大字母 (`A-Z`)、字 (`0-9`)、点号 (`.`)、字符 (`-`)、加 (`+`) 或下划线 (`_`) |
| `owner` | 套件的所有者。 |
| `package_name` | 套件名稱。它只能包含小字母 (`a-z`)、大字母 (`A-Z`)、字 (`0-9`)、點號 (`.`)、字符 (`-`)、加 (`+`) 或下劃線 (`_`) |
| `package_version` | 套件版本,一非空字符串,不包含前或尾空格 |
| `file_name` | 文件名。它只能包含小字母 (`a-z`)、大字母 (`A-Z`)、字 (`0-9`)、點號 (`.`)、字符 (`-`)、加 (`+`) 或下劃線 (`_`) |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -36,62 +36,62 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/generic/test_package/1.0.0/file.bin
```
如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密
如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
| HTTP 状态码 | 意 |
| HTTP 狀態碼 | 意 |
| ----------------- | ---------------------------------- |
| `201 Created` | 软件包已发布 |
| `400 Bad Request` | 软件包名称和/或版本和/或文件名效 |
| `409 Conflict` | 具有相同名的文件已存在于软件包中 |
| `201 Created` | 套件已發佈 |
| `400 Bad Request` | 套件名稱和/或版本和/或文件名效 |
| `409 Conflict` | 具有相同名的文件已存在於套件中 |
## 下载软件包
## 下載套件
要下通用软件包,请执行 HTTP `GET` 操作。
要下通用套件,請執行 HTTP `GET` 操作。
```
GET https://gitea.example.com/api/packages/{owner}/generic/{package_name}/{package_version}/{file_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
| `file_name` | 文件名 |
文件内容将在响应主体中返回。响应的内容类型为 `application/octet-stream`
文件內容將在響應主體中返回。響應的內容類型為 `application/octet-stream`
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
```shell
curl --user your_username:your_token_or_password \
https://gitea.example.com/api/packages/testuser/generic/test_package/1.0.0/file.bin
```
服务器会以以下 HTTP 状态码进行响应
伺服器會以以下 HTTP 狀態碼進行響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| --------------- | -------------------- |
| `200 OK` | 成功 |
| `404 Not Found` | 找不到软件包或者文件 |
| `404 Not Found` | 找不到套件或者文件 |
## 删除软件包
## 刪除套件
除通用软件包,请执行 HTTP DELETE 操作。这将同时删除该版本的所有文件。
除通用套件,請執行 HTTP DELETE 操作。這將同時刪除該版本的所有文件。
```
DELETE https://gitea.example.com/api/packages/{owner}/generic/{package_name}/{package_version}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
```shell
curl --user your_username:your_token_or_password -X DELETE \
@@ -100,36 +100,36 @@ curl --user your_username:your_token_or_password -X DELETE \
The server responds with the following HTTP Status codes.
| HTTP 状态码 | 意 |
| HTTP 狀態碼 | 意 |
| ---------------- | ------------ |
| `204 No Content` | 成功 |
| `404 Not Found` | 找不到软件包 |
| `404 Not Found` | 找不到套件 |
## 删除软件包文件
## 刪除套件文件
除通用软件包的文件,请执行 HTTP `DELETE` 操作。如果有文件留下,这将同时删除软件包版本。
除通用套件的文件,請執行 HTTP `DELETE` 操作。如果有文件留下,這將同時刪除套件版本。
```
DELETE https://gitea.example.com/api/packages/{owner}/generic/{package_name}/{package_version}/{filename}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
| `filename` | 文件名 |
使用 HTTP 基本身份验证的示例请求:
使用 HTTP 基本身份驗證的範例請求:
```shell
curl --user your_username:your_token_or_password -X DELETE \
https://gitea.example.com/api/packages/testuser/generic/test_package/1.0.0/file.bin
```
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ---------------- | ------------------ |
| `204 No Content` | 成功 |
| `404 Not Found` | 找不到软件包或文件 |
| `404 Not Found` | 找不到套件或文件 |

View File

@@ -4,25 +4,25 @@ slug: "go"
sidebar_position: 45
---
# Go 软件包注册
# Go 套件註冊
您的用户或组织发布 Go 软件包
您的使用者或組織發佈 Go 套件
## 发布软件包
## 發佈套件
发布 Go 软件包,请执行 HTTP `PUT` 操作,并将软件包内容放入求主中。
如果已存在相同名和版本的软件包,您无法发布软件包。您必首先删除现有的软件包
该软件包必须遵循[中的结构](https://go.dev/ref/mod#zip-files)。
發佈 Go 套件,請執行 HTTP `PUT` 操作,並將套件內容放入求主中。
如果已存在相同名和版本的套件,您無法發佈套件。您必首先刪除現有的套件
該套件必須遵循[中的結構](https://go.dev/ref/mod#zip-files)。
```
PUT https://gitea.example.com/api/packages/{owner}/go/upload
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
要身份验证到软件包注册表,您需要提供[定义 HTTP 或使用 HTTP 基本身份验证](development/api-usage.md#通过-api-认证)
要身份驗證到套件註冊表,您需要提供[ HTTP 或使用 HTTP 基本身份驗證](development/api-usage.md#透過-api-認證)
```shell
curl --user your_username:your_password_or_token \
@@ -30,19 +30,19 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/go/upload
```
如果您使用的是 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密码进行身份验证
如果您使用的是 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密碼進行身份驗證
服务器将使用以下 HTTP 状态代码进行响应
伺服器將使用以下 HTTP 狀態程式碼進行響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ----------------- | -------------------------- |
| `201 Created` | 软件包已发布 |
| `400 Bad Request` | 软件包无效 |
| `409 Conflict` | 具有相同名称的软件包已存在 |
| `201 Created` | 套件已發佈 |
| `400 Bad Request` | 套件無效 |
| `409 Conflict` | 具有相同名稱的套件已存在 |
## 安装软件包
## 安裝套件
要安Go软件包,请指示Go使用软件包注册表作代理:
要安Go套件,請指示Go使用套件註冊表作代理:
```shell
# 使用最新版本
@@ -53,12 +53,12 @@ GOPROXY=https://gitea.example.com/api/packages/{owner}/go go install {package_na
GOPROXY=https://gitea.example.com/api/packages/{owner}/go go install {package_name}@{package_version}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
如果软件包的所有者是私有的,需要[提供凭据](https://go.dev/ref/mod#private-module-proxy-auth)。
如果套件的所有者是私有的,需要[提供憑據](https://go.dev/ref/mod#private-module-proxy-auth)。
`GOPROXY` 环境变量的更多信息以及如何防止数据泄漏的信息,请[参阅文档](https://go.dev/ref/mod#private-modules)。
`GOPROXY` 環境變量的更多資訊以及如何防止資料泄漏的資訊,請[參閱文件](https://go.dev/ref/mod#private-modules)。

View File

@@ -4,40 +4,40 @@ slug: "helm"
sidebar_position: 50
---
# Helm Chart 注册
# Helm Chart 註冊
您的用户或组织发布 [Helm](https://helm.sh/) charts。
您的使用者或組織發佈 [Helm](https://helm.sh/) charts。
## 要求
要使用 Helm Chart 注册表,可以使用`curl` 或 [`helm cm-push`](https://github.com/chartmuseum/helm-push/) 插件之类的简单HTTP客端。
要使用 Helm Chart 註冊表,可以使用`curl` 或 [`helm cm-push`](https://github.com/chartmuseum/helm-push/) 外掛之類的簡單HTTP客端。
## 发布软件包
## 發佈套件
过运行以下命令来发布软件包
過運行以下命令來發布套件
```shell
curl --user {username}:{password} -X POST --upload-file ./{chart_file}.tgz https://gitea.example.com/api/packages/{owner}/helm/api/charts
```
或者使用 `helm cm-push` 插件
或者使用 `helm cm-push` 外掛
```shell
helm repo add --username {username} --password {password} {repo} https://gitea.example.com/api/packages/{owner}/helm
helm cm-push ./{chart_file}.tgz {repo}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `username` | 您的Gitea用户名 |
| `password` | 您的Gitea密。如果您使用的是2FA或OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密码进行身份验证。 |
| `repo` | 仓库名称 |
| `chart_file` | Helm Chart 归档文件 |
| `owner` | 软件包的所有者 |
| `username` | 您的Gitea使用者名稱 |
| `password` | 您的Gitea密。如果您使用的是2FA或OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密碼進行身份驗證。 |
| `repo` | 儲存庫名稱 |
| `chart_file` | Helm Chart 歸檔文件 |
| `owner` | 套件的所有者 |
## 安装软件包
## 安裝套件
从注册表中安Helm Chart请执行以下命令:
從註冊表中安Helm Chart請執行以下命令:
```shell
helm repo add --username {username} --password {password} {repo} https://gitea.example.com/api/packages/{owner}/helm
@@ -45,11 +45,11 @@ helm repo update
helm install {name} {repo}/{chart}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ---------- | --------------------------- |
| `username` | 您的Gitea用户名 |
| `password` | 您的Gitea密码或个人访问令牌 |
| `repo` | 存储库的名 |
| `owner` | 软件包的所有者 |
| `name` | 本地名 |
| `chart` | Helm Chart的名 |
| `username` | 您的Gitea使用者名稱 |
| `password` | 您的Gitea密碼或個人存取權杖 |
| `repo` | 儲存庫的名 |
| `owner` | 套件的所有者 |
| `name` | 本地名 |
| `chart` | Helm Chart的名 |

View File

@@ -4,18 +4,18 @@ slug: "maven"
sidebar_position: 60
---
# Maven 软件包注册
# Maven 套件註冊
您的用户或组织发布 [Maven](https://maven.apache.org) 软件包
您的使用者或組織發佈 [Maven](https://maven.apache.org) 套件
## 要求
要使用 Maven 软件包注册表,您可以使用 [Maven](https://maven.apache.org/install.html) 或 [Gradle](https://gradle.org/install/)。
以下例使用 `Maven``Gradle Groovy`
要使用 Maven 套件註冊表,您可以使用 [Maven](https://maven.apache.org/install.html) 或 [Gradle](https://gradle.org/install/)。
以下例使用 `Maven``Gradle Groovy`
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,首先需要将访问令牌添加到 [`settings.xml`](https://maven.apache.org/settings.html) 文件中:
註冊套件註冊表,首先需要將存取權杖添加到 [`settings.xml`](https://maven.apache.org/settings.html) 文件中:
```xml
<settings>
@@ -35,7 +35,7 @@ sidebar_position: 60
</settings>
```
后在项目`pom.xml` 文件中添加以下部分:
後在專案`pom.xml` 文件中添加以下部分:
```xml
<repositories>
@@ -56,14 +56,14 @@ sidebar_position: 60
</distributionManagement>
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ------------------------------------------------------------------------------------- |
| `access_token` | 您的[个人访问令牌](development/api-usage.md#通过-api-认证) |
| `owner` | 软件包的所有者 |
| `access_token` | 您的[個人存取權杖](development/api-usage.md#透過-api-認證) |
| `owner` | 套件的所有者 |
### Gradle variant
如果您计划在项目中添加自 Gitea 例的一些软件包,请将其添加到 repositories 部分中:
如果您計劃在專案中添加自 Gitea 例的一些套件,請將其添加到 repositories 部分中:
```groovy
repositories {
@@ -72,11 +72,11 @@ repositories {
}
```
在 Groovy gradle 中,您可以在发布部分中包含以下本:
在 Groovy gradle 中,您可以在發佈部分中包含以下本:
```groovy
publishing {
// 其他发布设
// 其他發佈設
repositories {
maven {
name = "Gitea"
@@ -95,35 +95,35 @@ publishing {
}
```
## 发布软件包
## 發佈套件
发布软件包,只需行以下命令:
發佈套件,只需行以下命令:
```shell
mvn deploy
```
或者,如果您使用的是 Gradle使用 `gradle` 命令和 `publishAllPublicationsToGiteaRepository`
或者,如果您使用的是 Gradle使用 `gradle` 命令和 `publishAllPublicationsToGiteaRepository`
```groovy
./gradlew publishAllPublicationsToGiteaRepository
```
如果您想要将预构建的软件包发布到注册表中,可以使用 [`mvn deploy:deploy-file`](https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html) 命令:
如果您想要將預構建的套件發佈到註冊表中,可以使用 [`mvn deploy:deploy-file`](https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html) 命令:
```shell
mvn deploy:deploy-file -Durl=https://gitea.example.com/api/packages/{owner}/maven -DrepositoryId=gitea -Dfile=/path/to/package.jar
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
如果存在相同名和版本的软件包,您无法发布该软件包。您必须先删除现有的软件包
如果存在相同名和版本的套件,您無法發佈該套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表中安 Maven 软件包,请在项目`pom.xml` 文件中添加新的依赖项
從套件註冊表中安 Maven 套件,請在專案`pom.xml` 文件中添加新的依賴項
```xml
<dependency>
@@ -133,19 +133,19 @@ mvn deploy:deploy-file -Durl=https://gitea.example.com/api/packages/{owner}/mave
</dependency>
```
`Gradle Groovy`似的操作如下:
`Gradle Groovy`似的操作如下:
```groovy
implementation "com.test.package:test_project:1.0.0"
```
后运行:
後運行:
```shell
mvn install
```
## 支的命令
## 支的命令
```
mvn install

View File

@@ -6,30 +6,30 @@ sidebar_position: 70
# NPM Package Registry
您的用户或组织发布 [npm](https://www.npmjs.com/) 包。
您的使用者或組織發佈 [npm](https://www.npmjs.com/) 包。
## 要求
要使用 npm 包注册表,您需要安 [Node.js](https://nodejs.org/en/download/) 以及之配套的软件包管理器,例如 [Yarn](https://classic.yarnpkg.com/en/docs/install) 或 [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) 本身。
要使用 npm 包註冊表,您需要安 [Node.js](https://nodejs.org/en/download/) 以及之配套的套件管理器,例如 [Yarn](https://classic.yarnpkg.com/en/docs/install) 或 [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) 本身。
该注册表支[作用域](https://docs.npmjs.com/misc/scope/)和非作用域软件包
該註冊表支[作用域](https://docs.npmjs.com/misc/scope/)和非作用域套件
以下例使用具有作用域 `@test``npm` 工具。
以下例使用具有作用域 `@test``npm` 工具。
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要配置一个新的软件包源。
註冊套件註冊表,您需要設定一個新的套件源。
```shell
npm config set {scope}:registry=https://gitea.example.com/api/packages/{owner}/npm/
npm config set -- '//gitea.example.com/api/packages/{owner}/npm/:_authToken' "{token}"
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | --------------------------------------------------------------------------------------- |
| `scope` | 软件包的作用域 |
| `owner` | 软件包的所有者 |
| `token` | 您的[个人访问令牌](development/api-usage.md#通过-api-认证)。 |
| `scope` | 套件的作用域 |
| `owner` | 套件的所有者 |
| `token` | 您的[個人存取權杖](development/api-usage.md#透過-api-認證)。 |
例如:
@@ -45,28 +45,28 @@ npm config set registry https://gitea.example.com/api/packages/testuser/npm/
npm config set -- '//gitea.example.com/api/packages/testuser/npm/:_authToken' "personal_access_token"
```
## 发布软件包
## 發佈套件
项目中运行以下命令发布软件包
專案中運行以下命令發佈套件
```shell
npm publish
```
如果已存在相同名和版本的软件包,您无法发布该软件包。您必须先删除现有的软件包
如果已存在相同名和版本的套件,您無法發佈該套件。您必須先刪除現有的套件
## 删除软件包
## 刪除套件
过运行以下命令删除软件包
過運行以下命令刪除套件
```shell
npm unpublish {package_name}[@{package_version}]
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
例如
@@ -75,17 +75,17 @@ npm unpublish @test/test_package
npm unpublish @test/test_package@1.0.0
```
## 安装软件包
## 安裝套件
从软件包注册表中安装软件包,请执行以下命令:
從套件註冊表中安裝套件,請執行以下命令:
```shell
npm install {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ---------- |
| `package_name` | 软件包名称 |
| `package_name` | 套件名稱 |
例如:
@@ -93,19 +93,19 @@ npm install {package_name}
npm install @test/test_package
```
## 给软件包打标签
## 給套件打標籤
该注册表支[版本标签](https://docs.npmjs.com/adding-dist-tags-to-packages/),可以通过 `npm dist-tag` 管理:
該註冊表支[版本標籤](https://docs.npmjs.com/adding-dist-tags-to-packages/),可以透過 `npm dist-tag` 管理:
```shell
npm dist-tag add {package_name}@{version} {tag}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ---------- |
| `package_name` | 软件包名称 |
| `version` | 软件包版本 |
| `tag` | 软件包标签 |
| `package_name` | 套件名稱 |
| `version` | 套件版本 |
| `tag` | 套件標籤 |
例如:
@@ -113,13 +113,13 @@ npm dist-tag add {package_name}@{version} {tag}
npm dist-tag add test_package@1.0.2 release
```
标签名称不能是有效的版本。所有可解析版本的标签名称都将被拒
標籤名稱不能是有效的版本。所有可解析版本的標籤名稱都將被拒
## 搜索软件包
## 搜索套件
该注册表支[搜索](https://docs.npmjs.com/cli/v7/commands/npm-search/),但不支`author:gitea` 这样的特殊搜索限定符。
該註冊表支[搜索](https://docs.npmjs.com/cli/v7/commands/npm-search/),但不支`author:gitea` 這樣的特殊搜索限定符。
## 支的命令
## 支的命令
```
npm install

View File

@@ -4,29 +4,29 @@ slug: "nuget"
sidebar_position: 80
---
# NuGet 软件包注册
# NuGet 套件註冊
发布适用于您的用户或组织的 [NuGet](https://www.nuget.org/) 软件包。软件包注册表支 V2 和 V3 API 协议,并且您可以使用 [NuGet 符号软件包](https://docs.microsoft.com/zh-tw/nuget/create-packages/symbol-packages-snupkg)。
發佈適用於您的使用者或組織的 [NuGet](https://www.nuget.org/) 套件。套件註冊表支 V2 和 V3 API 協議,並且您可以使用 [NuGet 符號套件](https://docs.microsoft.com/zh-tw/nuget/create-packages/symbol-packages-snupkg)。
## 要求
要使用 NuGet 软件包注册表,您可以使用命令行面工具,以及各种集成开发环IDE中的 NuGet 功能,如 Visual Studio。有 NuGet 客端的更多信息,请参[官方文](https://docs.microsoft.com/zh-tw/nuget/install-nuget-client-tools)。
以下例使用 `dotnet nuget` 工具。
要使用 NuGet 套件註冊表,您可以使用命令行面工具,以及各種整合開發環IDE中的 NuGet 功能,如 Visual Studio。有 NuGet 客端的更多資訊,請參[官方文](https://docs.microsoft.com/zh-tw/nuget/install-nuget-client-tools)。
以下例使用 `dotnet nuget` 工具。
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要配置一个新的 NuGet 源:
註冊套件註冊表,您需要設定一個新的 NuGet 源:
```shell
dotnet nuget add source --name {source_name} --username {username} --password {password} https://gitea.example.com/api/packages/{owner}/nuget/index.json
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------- |
| `source_name` | 所需源名 |
| `username` | 您的 Gitea 用户名 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)代替密。 |
| `owner` | 软件包的所有者 |
| `source_name` | 所需源名 |
| `username` | 您的 Gitea 使用者名稱 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)代替密。 |
| `owner` | 套件的所有者 |
例如:
@@ -34,20 +34,20 @@ dotnet nuget add source --name {source_name} --username {username} --password {p
dotnet nuget add source --name gitea --username testuser --password password123 https://gitea.example.com/api/packages/testuser/nuget/index.json
```
您可以在不提供凭据的情下添加源,并在发布软件包时使用--api-key 参数。在这种情况下,您需要提供[个人访问令牌](development/api-usage.md#通过-api-认证)。
您可以在不提供憑據的情下添加源,並在發佈套件時使用--api-key 參數。在這種情況下,您需要提供[個人存取權杖](development/api-usage.md#透過-api-認證)。
## 发布软件包
## 發佈套件
过运行以下命令发布软件包
過運行以下命令發佈套件
```shell
dotnet nuget push --source {source_name} {package_file}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ---------------------------- |
| `source_name` | 所需源名 |
| `package_file` | 软件包 `.nupkg` 文件的路。 |
| `source_name` | 所需源名 |
| `package_file` | 套件 `.nupkg` 文件的路。 |
例如:
@@ -55,20 +55,20 @@ dotnet nuget push --source {source_name} {package_file}
dotnet nuget push --source gitea test_package.1.0.0.nupkg
```
如果已存在相同名和版本的软件包,您无法发布该软件包。您必须先删除现有的软件包
如果已存在相同名和版本的套件,您無法發佈該套件。您必須先刪除現有的套件
### 符号软件包
### 符號套件
NuGet 软件包注册表支持构建用于符号服务器的符号软件包。客端可以求嵌入在符号软件包`.snupkg`)中的 PDB 文件。
此,请将 NuGet 软件包注册表注册为符号源:
NuGet 套件註冊表支援構建用於符號伺服器的符號套件。客端可以求嵌入在符號套件`.snupkg`)中的 PDB 文件。
此,請將 NuGet 套件註冊表註冊為符號源:
```
https://gitea.example.com/api/packages/{owner}/nuget/symbols
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | -------------------- |
| `owner` | 软件包注册表的所有者 |
| `owner` | 套件註冊表的所有者 |
例如:
@@ -76,19 +76,19 @@ https://gitea.example.com/api/packages/{owner}/nuget/symbols
https://gitea.example.com/api/packages/testuser/nuget/symbols
```
## 安装软件包
## 安裝套件
从软件包注册表安 NuGet 软件包,请执行以下命令:
從套件註冊表安 NuGet 套件,請執行以下命令:
```shell
dotnet add package --source {source_name} --version {package_version} {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ------------ |
| `source_name` | 所需源名 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本。 |
| `source_name` | 所需源名 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本。 |
例如:
@@ -96,7 +96,7 @@ dotnet add package --source {source_name} --version {package_version} {package_n
dotnet add package --source gitea --version 1.0.0 test_package
```
## 支的命令
## 支的命令
```
dotnet add

View File

@@ -4,13 +4,13 @@ slug: "overview"
sidebar_position: 1
---
# 软件包注册
# 套件註冊
Gitea **1.17**版本始,软件包注册表可以用作常见软件包管理器的公共或私有注册表。
Gitea **1.17**版本始,套件註冊表可以用作常見套件管理器的公共或私有註冊表。
## 支持的软件包管理器
## 支援的套件管理器
目前支以下软件包管理器:
目前支以下套件管理器:
| Name | Language | Package client |
| ------------------------------------------------------------------- | ---------- | ------------------------- |
@@ -20,12 +20,12 @@ sidebar_position: 1
| [Composer](usage/packages/composer.md) | PHP | `composer` |
| [Conan](usage/packages/conan.md) | C++ | `conan` |
| [Conda](usage/packages/conda.md) | - | `conda` |
| [Container](usage/packages/container.md) | - | 任何符合OCI规范的客端 |
| [Container](usage/packages/container.md) | - | 任何符合OCI規範的客端 |
| [CRAN](usage/packages/cran.md) | R | - |
| [Debian](usage/packages/debian.md) | - | `apt` |
| [Generic](usage/packages/generic.md) | - | 任何HTTP客端 |
| [Generic](usage/packages/generic.md) | - | 任何HTTP客端 |
| [Go](usage/packages/go.md) | Go | `go` |
| [Helm](usage/packages/helm.md) | - | 任何HTTP客端, `cm-push` |
| [Helm](usage/packages/helm.md) | - | 任何HTTP客端, `cm-push` |
| [Maven](usage/packages/maven.md) | Java | `mvn`, `gradle` |
| [npm](usage/packages/npm.md) | JavaScript | `npm`, `yarn`, `pnpm` |
| [NuGet](usage/packages/nuget.md) | .NET | `nuget` |
@@ -36,61 +36,61 @@ sidebar_position: 1
| [Swift](usage/packages/rubygems.md) | Swift | `swift` |
| [Vagrant](usage/packages/vagrant.md) | - | `vagrant` |
**以下段落仅适用于未全禁用软件包的情**
**以下段落僅適用於未全禁用套件的情**
## 仓库 x 软件包
## 儲存庫 x 套件
软件包始终属于所有者(用户或组织),而不是仓库
(已上的)软件包链接到仓库,请打开该软件包的设置页面,并选择要将此软件包链接到的仓库
将链接到整个软件包,而不仅是单个版本。
套件始終屬於所有者(使用者或組織),而不是儲存庫
(已上的)套件鏈接到儲存庫,請打開該套件的設定頁面,並選擇要將此套件鏈接到的儲存庫
將鏈接到整個套件,而不僅是單個版本。
链接软件包将导致在仓库的软件包列表中显示该软件包,并在软件包页面上示到仓库的链接(以及到仓库工单的链接)。
鏈接套件將導致在儲存庫的套件列表中顯示該套件,並在套件頁面上示到儲存庫的鏈接(以及到儲存庫工單的鏈接)。
## 访问限制
## 訪問限制
| 软件包所有者型 | 用户 | 组织 |
| 套件所有者型 | 使用者 | 組織 |
| ---------------- | ---------------------------------------- | ------------------------------------------ |
| **** 访问 | 公,如果用户也是公的;否则仅限此用户 | 公,如果组织是公的,否则仅限组织成员 |
| **** 访问 | 仅软件包所有者 | 具有组织中的管理员或写入访问权限的组织成员 |
| **** 訪問 | 公,如果使用者也是公的;否則僅限此使用者 | 公,如果組織是公的,否則僅限組織成員 |
| **** 訪問 | 僅套件所有者 | 具有組織中的管理員或寫入存取權限的組織成員 |
注意:这些访问限制可能[](https://github.com/go-gitea/gitea/issues/19270)将通过专门的组织团队权限添加更粒度的控制。
注意:這些訪問限制可能[](https://github.com/go-gitea/gitea/issues/19270)將通過專門的組織團隊權限添加更粒度的控制。
## 创建或上传软件包
## 建立或上傳套件
据软件包类型,使用相应的软件包管理器。查看特定软件包管理器的子面以获取说明。
據套件類型,使用相應的套件管理器。查看特定套件管理器的子面以獲取說明。
## 查看软件包
## 查看套件
您可以在仓库页面上查看仓库的软件包
您可以在儲存庫頁面上查看儲存庫的套件
1. 转到仓库主页
2.导航栏中选择**软件包**
1. 轉到儲存庫主頁
2.導航欄中選擇**套件**
要查看有关软件包的更多详细信息,请选择软件包的名
要查看有關套件的更多詳細資訊,請選擇套件的名
## 下载软件包
## 下載套件
从仓库下载软件包
從儲存庫下載套件
1.导航栏中选择**软件包**
2. 选择软件包的名以查看详细信息
3.**Assets** 部分,选择要下载的软件包文件的名
1.導航欄中選擇**套件**
2. 選擇套件的名以查看詳細資訊
3.**Assets** 部分,選擇要下載的套件文件的名
## 删除软件包
## 刪除套件
将软件包发布到软件包注册表后,您无法编辑软件包。相反,您必须删除并重新创建它。
將套件發佈到套件註冊表後,您無法編輯套件。相反,您必須刪除並重新建立它。
从仓库中删除软件包
從儲存庫中刪除套件
1.导航栏中选择**软件包**
2. 选择软件包的名以查看详细信息
3. 单击**删除软件包**以永久删除软件包
1.導航欄中選擇**套件**
2. 選擇套件的名以查看詳細資訊
3. 單擊**刪除套件**以永久刪除套件
## 禁用软件包注册
## 禁用套件註冊
注册表已自动启用。要在单个存储库中禁用它:
註冊表已自動啟用。要在單個儲存庫中禁用它:
1.导航栏中选择**设置**。
2. 禁用**启用仓库软件包注册表**.
1.導航欄中選擇**設定**。
2. 禁用**啟用儲存庫套件註冊表**.
禁用软件包注册表不会删除先前发布的软件包
禁用套件註冊表不會刪除先前發佈的套件

View File

@@ -4,62 +4,62 @@ slug: "pub"
sidebar_position: 90
---
# Pub 软件包注册
# Pub 套件註冊
您的用户或组织发布 [Pub](https://dart.dev/guides/packages) 软件包
您的使用者或組織發佈 [Pub](https://dart.dev/guides/packages) 套件
## 要求
要使用Pub软件包注册表,您需要使用 [dart](https://dart.dev/tools/dart-tool) 和/或 [flutter](https://docs.flutter.dev/reference/flutter-cli). 工具。
要使用Pub套件註冊表,您需要使用 [dart](https://dart.dev/tools/dart-tool) 和/或 [flutter](https://docs.flutter.dev/reference/flutter-cli). 工具。
以下例使用 `dart`
以下例使用 `dart`
## 配置软件包注册
## 設定套件註冊
注册软件包注册表并提供凭据,请执行以下操作:
註冊套件註冊表並提供憑據,請執行以下操作:
```shell
dart pub token add https://gitea.example.com/api/packages/{owner}/pub
```
| 位符 | 描述 |
| 位符 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
您需要提供您的[个人访问令牌](development/api-usage.md#通过-api-认证)。
您需要提供您的[個人存取權杖](development/api-usage.md#透過-api-認證)。
## 发布软件包
## 發佈套件
发布软件包,请编辑 `pubspec.yaml` 文件,添加以下行:
發佈套件,請編輯 `pubspec.yaml` 文件,添加以下行:
```yaml
publish_to: https://gitea.example.com/api/packages/{owner}/pub
```
| 位符 | 描述 |
| 位符 | 描述 |
| ------- | -------------- |
| `owner` | 软件包的所有者 |
| `owner` | 套件的所有者 |
在,您可以通过运行以下命令来发布软件包
在,您可以透過運行以下命令來發布套件
```shell
dart pub publish
```
如果已存在具有相同名和版本的软件包,则无法发布软件包。您必须先删除现有的软件包
如果已存在具有相同名和版本的套件,則無法發佈套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安Pub软件包,请执行以下命令:
從套件註冊表安Pub套件,請執行以下命令:
```shell
dart pub add {package_name} --hosted-url=https://gitea.example.com/api/packages/{owner}/pub/
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
例如:

View File

@@ -4,17 +4,17 @@ slug: "pypi"
sidebar_position: 100
---
# PyPI 软件包注册
# PyPI 套件註冊
您的用户或组织发布 [PyPI](https://pypi.org/) 软件包
您的使用者或組織發佈 [PyPI](https://pypi.org/) 套件
## 要求
要使用 PyPI 软件包注册表,您需要使用 [pip](https://pypi.org/project/pip/) 工具来消费和使用 [twine](https://pypi.org/project/twine/) 工具来发布软件包
要使用 PyPI 套件註冊表,您需要使用 [pip](https://pypi.org/project/pip/) 工具來消費和使用 [twine](https://pypi.org/project/twine/) 工具來發布套件
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,您需要编辑本地的 `~/.pypirc` 文件。添加以下容:
註冊套件註冊表,您需要編輯本地的 `~/.pypirc` 文件。添加以下容:
```ini
[distutils]
@@ -26,38 +26,38 @@ username = {username}
password = {password}
```
| 位符 | 描述 |
| 位符 | 描述 |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `owner` | 软件包的所有者 |
| `username` | 您的 Gitea 用户名 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密 |
| `owner` | 套件的所有者 |
| `username` | 您的 Gitea 使用者名稱 |
| `password` | 您的 Gitea 密。如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密 |
## 发布软件包
## 發佈套件
过运行以下命令来发布软件包
過運行以下命令來發布套件
```shell
python3 -m twine upload --repository gitea /path/to/files/*
```
软件包文件的展名 `.tar.gz``.whl`
套件文件的展名 `.tar.gz``.whl`
如果已存在具有相同名和版本的软件包,则无法发布软件包。您必须先删除现有的软件包
如果已存在具有相同名和版本的套件,則無法發佈套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安 PyPI 软件包,请执行以下命令:
從套件註冊表安 PyPI 套件,請執行以下命令:
```shell
pip install --index-url https://{username}:{password}@gitea.example.com/api/packages/{owner}/pypi/simple --no-deps {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ----------------------------- |
| `username` | 您的 Gitea 用户名 |
| `password` | 您的 Gitea 密码或个人访问令牌 |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `username` | 您的 Gitea 使用者名稱 |
| `password` | 您的 Gitea 密碼或個人存取權杖 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
例如:
@@ -65,9 +65,9 @@ pip install --index-url https://{username}:{password}@gitea.example.com/api/pack
pip install --index-url https://testuser:password123@gitea.example.com/api/packages/testuser/pypi/simple --no-deps test_package
```
您可以使用 `--extra-index-url` 替代 `--index-url`,但这样会使您容易受到依混淆攻,因 `pip` 会先检查官方 PyPi 仓库中的软件包,然后再检查指定的自定义仓库。请阅读 `pip`档以获取更多信息
您可以使用 `--extra-index-url` 替代 `--index-url`,但這樣會使您容易受到依混淆攻,因 `pip` 會先檢查官方 PyPi 儲存庫中的套件,然後再檢查指定的自訂儲存庫。請閱讀 `pip`件以獲取更多資訊
## 支的命令
## 支的命令
```
pip install

View File

@@ -4,51 +4,51 @@ slug: "packages/rpm"
sidebar_position: 105
---
# RPM 软件包注册
# RPM 套件註冊
您的用户或组织发布 [RPM](https://rpm.org/) 软件包
您的使用者或組織發佈 [RPM](https://rpm.org/) 套件
## 要求
要使用RPM注册表,您需要使用像 `yum`, `dnf``zypper` 这样的软件包管理器来消费软件包
要使用RPM註冊表,您需要使用像 `yum`, `dnf``zypper` 這樣的套件管理器來消費套件
以下例使用 `dnf`
以下例使用 `dnf`
## 配置软件包注册
## 設定套件註冊
注册RPM注册表,请将 URL 添加到已知 `apt` 源列表中:
註冊RPM註冊表,請將 URL 添加到已知 `apt` 源列表中:
```shell
dnf config-manager --add-repo https://gitea.example.com/api/packages/{owner}/rpm/{group}.repo
```
| 位符 | 描述 |
| 位符 | 描述 |
| ------- |--------------------------------------|
| `owner` | 软件包的所有者 |
| `group` | 任何名,例如 `centos/7``el-7``fc38` |
| `owner` | 套件的所有者 |
| `group` | 任何名,例如 `centos/7``el-7``fc38` |
如果注册表是私有的,在URL中提供凭据。您可以使用密或[个人访问令牌](development/api-usage.md#通过-api-认证)
如果註冊表是私有的,在URL中提供憑據。您可以使用密或[個人存取權杖](development/api-usage.md#透過-api-認證)
```shell
dnf config-manager --add-repo https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/rpm/{group}.repo
```
还必须将凭据添加到 `/etc/yum.repos.d` 中的 `rpm.repo` 文件中的URL中。
還必須將憑據添加到 `/etc/yum.repos.d` 中的 `rpm.repo` 文件中的URL中。
## 发布软件包
## 發佈套件
发布RPM软件包`*.rpm`请执行带有软件包内容的 HTTP `PUT` 操作。
發佈RPM套件`*.rpm`請執行帶有套件內容的 HTTP `PUT` 操作。
```
PUT https://gitea.example.com/api/packages/{owner}/rpm/{group}/upload
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- |--------------|
| `owner` | 软件包的所有者 |
| `group` | 软件包自定义分组名称 |
| `owner` | 套件的所有者 |
| `group` | 套件自訂分組名稱 |
使用HTTP基本身份验证的示例请求:
使用HTTP基本身份驗證的範例請求:
```shell
curl --user your_username:your_password_or_token \
@@ -56,49 +56,49 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/rpm/centos/el7/version/upload
```
如果您使用 2FA 或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)替代密。您无法将具有相同名的文件两次发布到软件包中。您必须先删除现有的软件包版本。
如果您使用 2FA 或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)替代密。您無法將具有相同名的文件兩次發佈到套件中。您必須先刪除現有的套件版本。
服务器将以以下HTTP状态码响应
伺服器將以以下HTTP狀態碼響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ----------------- | ------------------------------------------------ |
| `201 Created` | 软件包已发布 |
| `400 Bad Request` | 软件包无效 |
| `409 Conflict` | 具有相同参数组合的软件包文件已存在于该软件包中 |
| `201 Created` | 套件已發佈 |
| `400 Bad Request` | 套件無效 |
| `409 Conflict` | 具有相同參數組合的套件文件已存在於該套件中 |
## 删除软件包
## 刪除套件
除 RPM 软件包,请执行 HTTP `DELETE` 操作。如果有文件剩余,这也将删除软件包版本。
除 RPM 套件,請執行 HTTP `DELETE` 操作。如果有文件剩餘,這也將刪除套件版本。
```
DELETE https://gitea.example.com/api/packages/{owner}/rpm/{group}/package/{package_name}/{package_version}/{architecture}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | -------------- |
| `owner` | 软件包的所有者 |
| `group` | 软件包自定义分组 |
| `package_name` | 软件包名称 |
| `package_version` | 软件包版本 |
| `architecture` | 软件包架构 |
| `owner` | 套件的所有者 |
| `group` | 套件自訂分組 |
| `package_name` | 套件名稱 |
| `package_version` | 套件版本 |
| `architecture` | 套件架構 |
使用HTTP基本身份验证的示例请求:
使用HTTP基本身份驗證的範例請求:
```shell
curl --user your_username:your_token_or_password -X DELETE \
https://gitea.example.com/api/packages/testuser/rpm/centos/el7/package/test-package/1.0.0/x86_64
```
服务器将以以下HTTP状态码响应
伺服器將以以下HTTP狀態碼響應
| HTTP 状态码 | 含 |
| HTTP 狀態碼 | 含 |
| ---------------- | ------------------ |
| `204 No Content` | 成功 |
| `404 Not Found` | 未找到软件包或文件 |
| `404 Not Found` | 未找到套件或文件 |
## 安装软件包
## 安裝套件
RPM注册表安装软件包,请执行以下命令:
RPM註冊表安裝套件,請執行以下命令:
```shell
# use latest version

View File

@@ -4,27 +4,27 @@ slug: "rubygems"
sidebar_position: 110
---
# RubyGems 软件包注册
# RubyGems 套件註冊
您的用户或组织发布 [RubyGems](https://guides.rubygems.org/) 软件包
您的使用者或組織發佈 [RubyGems](https://guides.rubygems.org/) 套件
## 要求
要使用RubyGems软件包注册表,您需要使用 [gem](https://guides.rubygems.org/command-reference/) 命令行工具来消费和发布软件包
要使用RubyGems套件註冊表,您需要使用 [gem](https://guides.rubygems.org/command-reference/) 命令行工具來消費和發佈套件
## 配置软件包注册
## 設定套件註冊
注册软件包注册表,请编辑 `~/.gem/credentials` 文件添加:
註冊套件註冊表,請編輯 `~/.gem/credentials` 文件添加:
```ini
---
https://gitea.example.com/api/packages/{owner}/rubygems: Bearer {token}
```
| 参数 | 描述 |
| 參數 | 描述 |
| ------- | ------------------------------------------------------------------------------------- |
| `owner` | 软件包的所有者 |
| `token` | 您的[个人访问令牌](development/api-usage.md#通过-api-认证) |
| `owner` | 套件的所有者 |
| `token` | 您的[個人存取權杖](development/api-usage.md#透過-api-認證) |
例如:
@@ -33,18 +33,18 @@ https://gitea.example.com/api/packages/{owner}/rubygems: Bearer {token}
https://gitea.example.com/api/packages/testuser/rubygems: Bearer 3bd626f84b01cd26b873931eace1e430a5773cc4
```
## 发布软件包
## 發佈套件
过运行以下命令来发布软件包
過運行以下命令來發布套件
```shell
gem push --host {host} {package_file}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | ------------------------ |
| `host` | 软件包注册表的URL |
| `package_file` | 软件包 `.gem` 文件的路 |
| `host` | 套件註冊表的URL |
| `package_file` | 套件 `.gem` 文件的路 |
例如:
@@ -52,15 +52,15 @@ gem push --host {host} {package_file}
gem push --host https://gitea.example.com/api/packages/testuser/rubygems test_package-1.0.0.gem
```
如果已存在相同名和版本的软件包,您将无法发布软件包。您必须先删除现有的软件包
如果已存在相同名和版本的套件,您將無法發佈套件。您必須先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安装软件包,您可以使用 [Bundler](https://bundler.io) 或 `gem`
從套件註冊表安裝套件,您可以使用 [Bundler](https://bundler.io) 或 `gem`
### Bundler
在您的 `Gemfile` 中添加一新的 `source`
在您的 `Gemfile` 中添加一新的 `source`
```
source "https://gitea.example.com/api/packages/{owner}/rubygems" do
@@ -68,10 +68,10 @@ source "https://gitea.example.com/api/packages/{owner}/rubygems" do
end
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
例如:
@@ -81,7 +81,7 @@ source "https://gitea.example.com/api/packages/testuser/rubygems" do
end
```
后运行以下命令:
後運行以下命令:
```shell
bundle install
@@ -89,16 +89,16 @@ bundle install
### gem
行以下命令:
行以下命令:
```shell
gem install --host https://gitea.example.com/api/packages/{owner}/rubygems {package_name}
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | -------------- |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包名称 |
| `owner` | 套件的所有者 |
| `package_name` | 套件名稱 |
例如:
@@ -106,7 +106,7 @@ gem install --host https://gitea.example.com/api/packages/{owner}/rubygems {pack
gem install --host https://gitea.example.com/api/packages/testuser/rubygems test_package
```
## 支的命令
## 支的命令
```
gem install

View File

@@ -4,69 +4,69 @@ slug: "storage"
sidebar_position: 5
---
# 存
#
本文描述了软件包注册表的存储方式以及如何管理存
本文描述了套件註冊表的儲存方式以及如何管理存。
## 去重
软件包注册表具有置的去重功能,可以对上传的 Blob 行去重理。
如果上传了两个相同的文件,只在文件系上保存一 Blob。
这样可以保不会浪费空间用于重复的文件。
套件註冊表具有置的去重功能,可以對上傳的 Blob 行去重理。
如果上傳了兩個相同的文件,只在文件系上保存一 Blob。
這樣可以保不會浪費空間用於重複的文件。
如果上传了两个具有相同文件的软件包,这两个软件包将显示相同的大小,但在文件系上,它只需要一半的大小。
当删除一个软件包时,只会删除对底层 Blob 的引用。
Blob 不会被删除,因此它仍然用文件系上的空
当上传新的软件包时,现有的 Blob 可能再次被引用。
如果上傳了兩個具有相同文件的套件,這兩個套件將顯示相同的大小,但在文件系上,它只需要一半的大小。
當刪除一個套件時,只會刪除對底層 Blob 的引用。
Blob 不會被刪除,因此它仍然用文件系上的空
當上傳新的套件時,現有的 Blob 可能再次被引用。
这些无引用的 Blob 在一清理任中被除。
配置设置 `OLDER_THAN` 可以配置无引用的 Blob 在被除之前保留的时间
這些無引用的 Blob 在一清理任中被除。
設定 `OLDER_THAN` 可以設定無引用的 Blob 在被除之前保留的時間
## 清理规则
## 清理規則
软件包注册表可能会随着时间的推移而得很大,如果不行清理的
议删除不必要的软件包并设置清理规则以自管理软件包注册表的使用情
个软件包所有者(用户或组织)都可以管理应用于其软件包的清理规则
套件註冊表可能會隨著時間的推移而得很大,如果不行清理的
議刪除不必要的套件並設定清理規則以自管理套件註冊表的使用情
個套件所有者(使用者或組織)都可以管理應用於其套件的清理規則
| 设置 | 描述 |
| 設定 | 描述 |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| 用 | 打开或关闭清理规则。 |
| 型 | 每个规则管理特定的软件包类型。 |
| 模式应用于完整的软件包名称 | 如果用,则应用以下模式到完整的软件包名称`package/version`),否只使用版本`version`)。 |
| 保留最近的版本 | 对于每个软件包要始保留的版本量。 |
| 保留以下模式匹配的版本 | 定要保留哪些版本的正则表达式模式。空模式表示不保留任何版本,而 `.+` 表示保留所有版本。即使未配置,容器注册表也始保留 `latest` 版本。 |
| 除早多少天的版本 | 仅删除早于所选天数的版本。 |
| 删除与以下模式匹配的版本 | 定要除哪些版本的正则表达式模式。空模式或 `.+` 表示如果有其他设置指定,则删除所有软件包。 |
| 用 | 打開或關閉清理規則。 |
| 型 | 每個規則管理特定的套件類型。 |
| 模式應用於完整的套件名稱 | 如果用,則應用以下模式到完整的套件名稱`package/version`),否只使用版本`version`)。 |
| 保留最近的版本 | 對於每個套件要始保留的版本量。 |
| 保留以下模式匹配的版本 | 定要保留哪些版本的正則表達式模式。空模式表示不保留任何版本,而 `.+` 表示保留所有版本。即使未設定,容器註冊表也始保留 `latest` 版本。 |
| 除早多少天的版本 | 僅刪除早於所選天數的版本。 |
| 刪除與以下模式匹配的版本 | 定要除哪些版本的正則表達式模式。空模式或 `.+` 表示如果有其他設定指定,則刪除所有套件。 |
清理规则都可以示受影响的软件包的预览
可以用来检查清理规则是否正确配置
清理規則都可以示受影響的套件的預覽
可以用來檢查清理規則是否正確設定
### 正则表达式示
### 正則表達式範
则表达式模式会自动使用 `\A``\z` 锚点进行包
不要在正则表达式模式中包含任何 `\A``\z``^``$` 标记,因为它们不是必要的。
模式是不分大小的, Gitea 中的软件包注册表的行相匹配。
則表達式模式會自動使用 `\A``\z` 錨點進行包
不要在正則表達式模式中包含任何 `\A``\z``^``$` 標記,因為它們不是必要的。
模式是不分大小的, Gitea 中的套件註冊表的行相匹配。
| Pattern | Description |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `.*` | 匹配任何可能的版本。 |
| `v.+` | 匹配以 `v` 开头的版本。 |
| `release` | 匹配版本号为 `release`。 |
| `release.*` | 匹配以 `release` 命名或以 `release` 开头的版本。 |
| `v.+` | 匹配以 `v` 開頭的版本。 |
| `release` | 匹配版本號為 `release`。 |
| `release.*` | 匹配以 `release` 命名或以 `release` 開頭的版本。 |
| `.+-temp-.+` | 匹配包含 `-temp-` 的版本。 |
| `v.+\|release` | 匹配以 `v` 开头的版本或版本号为 `release`。 |
| `package/v.+\|other/release` | 匹配以 `v` 开头的 package 的版本或 `other` 的版本号为 `release`。需要用*模式应用于完整的软件包名称*设置。 |
| `v.+\|release` | 匹配以 `v` 開頭的版本或版本號為 `release`。 |
| `package/v.+\|other/release` | 匹配以 `v` 開頭的 package 的版本或 `other` 的版本號為 `release`。需要用*模式應用於完整的套件名稱*設定。 |
### 清理规则的工作原理
### 清理規則的工作原理
清理规则是清理任的一部分,定期行。
清理規則是清理任的一部分,定期行。
清理规则
清理規則
1. 收集所有属于所有者注册表的特定软件包类型的软件包
2. 对于每个软件包,收集所有版本。
3. *保留最近的版本* 的值,列表中排除版本。
4. *保留以下模式匹配的版本* 的值,列表中排除任何版本。
5. *除早多少天的版本* 的值,列表中排除比这个值更近的版本。
6. *删除与以下模式匹配的版本* 的值,列表中排除任何不匹配的版本。
7. 除剩的版本。
1. 收集所有屬於所有者註冊表的特定套件類型的套件
2. 對於每個套件,收集所有版本。
3. *保留最近的版本* 的值,列表中排除版本。
4. *保留以下模式匹配的版本* 的值,列表中排除任何版本。
5. *除早多少天的版本* 的值,列表中排除比這個值更近的版本。
6. *刪除與以下模式匹配的版本* 的值,列表中排除任何不匹配的版本。
7. 除剩的版本。

View File

@@ -4,39 +4,39 @@ slug: "swift"
sidebar_position: 115
---
# Swift 软件包注册
# Swift 套件註冊
您的用户或组织发布 [Swift](https://www.swift.org/) 软件包
您的使用者或組織發佈 [Swift](https://www.swift.org/) 套件
## 要求
要使用 Swift 软件包注册表,您需要使用 [swift](https://www.swift.org/getting-started/) 消费软件包,并使用 HTTP 客端(如 `curl`发布软件包
要使用 Swift 套件註冊表,您需要使用 [swift](https://www.swift.org/getting-started/) 消費套件,並使用 HTTP 客端(如 `curl`發佈套件
## 配置软件包注册
## 設定套件註冊
注册软件包注册表并提供凭据,请执行以下命令:
註冊套件註冊表並提供憑據,請執行以下命令:
```shell
swift package-registry set https://gitea.example.com/api/packages/{owner}/swift -login {username} -password {password}
```
| 位符 | 描述 |
| 位符 | 描述 |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `owner` | 软件包的所有者。 |
| `username` | 您的 Gitea 用户名。 |
| `password` | 您的 Gitea 密。如果您使用两步验证或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)代替密。 |
| `owner` | 套件的所有者。 |
| `username` | 您的 Gitea 使用者名稱。 |
| `password` | 您的 Gitea 密。如果您使用兩步驗證或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)代替密。 |
是可的,只有在软件包注册表是私有的情下才需要。
是可的,只有在套件註冊表是私有的情下才需要。
## 发布软件包
## 發佈套件
首先,您需要打包软件包的内容:
首先,您需要打包套件的內容:
```shell
swift package archive-source
```
发布软件包,请执行一个带有软件包内容的 HTTP `PUT` 求,将内容放在求正文中。
發佈套件,請執行一個帶有套件內容的 HTTP `PUT` 求,將內容放在求正文中。
```shell --user your_username:your_password_or_token \
curl -X PUT --user {username}:{password} \
@@ -46,21 +46,21 @@ curl -X PUT --user {username}:{password} \
https://gitea.example.com/api/packages/{owner}/swift/{scope}/{name}/{version}
```
| 位符 | 描述 |
| 位符 | 描述 |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `username` | 您的 Gitea 用户名。 |
| `password` | 您的 Gitea 密。如果您使用两步验证或 OAuth使用[个人访问令牌](development/api-usage.md#通过-api-认证)代替密。 |
| `owner` | 软件包的所有者。 |
| `scope` | 软件包的作用域。 |
| `name` | 软件包的名。 |
| `version` | 软件包的版本。 |
| `metadata` | (可选)软件包的元数据。以 JSON 编码的子集,格式考 https://schema.org/SoftwareSourceCode |
| `username` | 您的 Gitea 使用者名稱。 |
| `password` | 您的 Gitea 密。如果您使用兩步驗證或 OAuth使用[個人存取權杖](development/api-usage.md#透過-api-認證)代替密。 |
| `owner` | 套件的所有者。 |
| `scope` | 套件的作用域。 |
| `name` | 套件的名。 |
| `version` | 套件的版本。 |
| `metadata` | (可選)套件的元資料。以 JSON 編碼的子集,格式考 https://schema.org/SoftwareSourceCode |
如果已存在相同名和版本的软件包,则无法发布软件包。您必首先删除现有的软件包
如果已存在相同名和版本的套件,則無法發佈套件。您必首先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安 Swift 软件包,请将其添加到 `Package.swift` 文件的依赖项列表中:
從套件註冊表安 Swift 套件,請將其添加到 `Package.swift` 文件的依賴項列表中:
```
dependencies: [
@@ -68,13 +68,13 @@ dependencies: [
]
```
| 参数 | 描述 |
| 參數 | 描述 |
| --------- | -------------- |
| `scope` | 软件包的作用域 |
| `name` | 软件包的名 |
| `version` | 软件包的版本 |
| `scope` | 套件的作用域 |
| `name` | 套件的名 |
| `version` | 套件的版本 |
后,执行以下命令来安装它:
後,執行以下命令來安裝它:
```shell
swift package resolve

View File

@@ -4,30 +4,30 @@ slug: "vagrant"
sidebar_position: 120
---
# Vagrant 软件包注册
# Vagrant 套件註冊
您的用户或组织发布 [Vagrant](https://www.vagrantup.com/) 软件包
您的使用者或組織發佈 [Vagrant](https://www.vagrantup.com/) 套件
## 要求
要使用 Vagrant 软件包注册表,您需要安 [Vagrant](https://www.vagrantup.com/downloads) 使用类似于 `curl` 的工具行 HTTP 求。
要使用 Vagrant 套件註冊表,您需要安 [Vagrant](https://www.vagrantup.com/downloads) 使用類似於 `curl` 的工具行 HTTP 求。
## 发布软件包
## 發佈套件
通过执行 HTTP PUT 请求将 Vagrant box 发布到注册表:
透過執行 HTTP PUT 請求將 Vagrant box 發佈到註冊表:
```
PUT https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}/{package_version}/{provider}.box
```
| 参数 | 描述 |
| 參數 | 描述 |
| ----------------- | ------------------------------------------------------------------ |
| `owner` | 软件包的所有者 |
| `package_name` | 软件包的名 |
| `package_version` | 软件包的版本,容 semver 格式 |
| `provider` | [的提供程序名称](https://www.vagrantup.com/docs/providers)之一 |
| `owner` | 套件的所有者 |
| `package_name` | 套件的名 |
| `package_version` | 套件的版本,容 semver 格式 |
| `provider` | [的提供程式名稱](https://www.vagrantup.com/docs/providers)之一 |
Hyper-V box 的例:
Hyper-V box 的例:
```shell
curl --user your_username:your_password_or_token \
@@ -35,20 +35,20 @@ curl --user your_username:your_password_or_token \
https://gitea.example.com/api/packages/testuser/vagrant/test_system/1.0.0/hyperv.box
```
如果已存在相同名、版本和提供程序的软件包,则无法发布软件包。您必首先删除现有的软件包
如果已存在相同名、版本和提供程式的套件,則無法發佈套件。您必首先刪除現有的套件
## 安装软件包
## 安裝套件
从软件包注册表安装软件包,请执行以下命令:
從套件註冊表安裝套件,請執行以下命令:
```shell
vagrant box add "https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}"
```
| 参数 | 描述 |
| 參數 | 描述 |
| -------------- | --------------- |
| `owner` | 软件包的所有者. |
| `package_name` | 软件包的名 |
| `owner` | 套件的所有者. |
| `package_name` | 套件的名 |
例如:
@@ -56,10 +56,10 @@ vagrant box add "https://gitea.example.com/api/packages/{owner}/vagrant/{package
vagrant box add "https://gitea.example.com/api/packages/testuser/vagrant/test_system"
```
这将安装软件包的最新版本。要添加特定版本,使用` --box-version` 参数
如果注册表是私有的,您可以您的[个人访问令牌](development/api-usage.md#通过-api-认证)传递给 `VAGRANT_CLOUD_TOKEN` 环境变量。
這將安裝套件的最新版本。要添加特定版本,使用` --box-version` 參數
如果註冊表是私有的,您可以您的[個人存取權杖](development/api-usage.md#透過-api-認證)傳遞給 `VAGRANT_CLOUD_TOKEN` 環境變量。
## 支的命令
## 支的命令
```
vagrant box add

View File

@@ -4,12 +4,12 @@ slug: "profile-readme"
sidebar_position: 12
---
# 个人资料 README
# 個人資料 README
要在您的 Gitea 个人资料页面显示一 Markdown 文件,只需创建一个名为 `.profile`仓库,并编辑其中的 `README.md` 文件。Gitea 将自动获取该文件在您的仓库上方示。
要在您的 Gitea 個人資料頁面顯示一 Markdown 文件,只需建立一個名為 `.profile`儲存庫,並編輯其中的 `README.md` 文件。Gitea 將自動獲取該文件在您的儲存庫上方示。
注意:您可以将此仓库设为私有。这样可以藏您的源文件,使其对公众不可见,并允许您将某些文件设为私有。但是README.md 文件是您个人资料上唯一存在的文件。如果您希望完全私有化 .profile 仓库,则需删除或重命名 README.md 文件。
注意:您可以將此儲存庫設為私有。這樣可以藏您的源文件,使其對公眾不可見,並允許您將某些文件設為私有。但是README.md 文件是您個人資料上唯一存在的文件。如果您希望完全私有化 .profile 儲存庫,則需刪除或重命名 README.md 文件。
用户示`.profile/README.md`:
使用者範`.profile/README.md`:
![个人资料自述文件截](/images/usage/profile-readme.png)
![個人資料自述文件截](/images/usage/profile-readme.png)

View File

@@ -7,12 +7,12 @@ aliases:
- /zh-tw/clone-filters
---
# 克隆过滤器 (部分克隆)
# 克隆過濾器 (部分克隆)
Git 引入了 `--filter` 选项用于 `git clone` 命令,该选项可以过滤掉大文件和象(如 blob从而创建一个仓库的部分克隆。克隆过滤器对于大型仓库和/或按流量计费的连接特有用,因完全克隆(不使用 `--filter`)可能很昂(需要下所有历史数据)。
Git 引入了 `--filter` 選項用於 `git clone` 命令,該選項可以過濾掉大文件和象(如 blob從而建立一個儲存庫的部分克隆。克隆過濾器對於大型儲存庫和/或按流量計費的連接特有用,因完全克隆(不使用 `--filter`)可能很昂(需要下所有歷史資料)。
需要 Git 2.22 或更高版本,无论是在 Gitea 服器上是在客端上都需要如此。了使克隆过滤器正常工作,请确保客端上的 Git 版本至少与服务器上的版本相同(或更高)。以管理身份登到 Gitea后转到管理后台 -> 应用配置,查看服器的 Git 版本。
需要 Git 2.22 或更高版本,無論是在 Gitea 服器上是在客端上都需要如此。了使克隆過濾器正常工作,請確保客端上的 Git 版本至少與伺服器上的版本相同(或更高)。以管理身份登到 Gitea後轉到管理後臺 -> 應用設定,查看服器的 Git 版本。
默认情况下,克隆过滤器是用的,除非在 `[git]` `DISABLE_PARTIAL_CLONE` 设置为 `true`
預設情況下,克隆過濾器是用的,除非在 `[git]` `DISABLE_PARTIAL_CLONE` 設定為 `true`
请参阅 [GitHub 博客文章:解部分克隆](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/) 以取克隆过滤器的常用法( Blob 和无树的克隆),以及 [GitLab 部分克隆文](https://docs.gitlab.com/ee/topics/git/partial_clone.html) 以取更高的用法(例如按文件大小过滤和取消过滤以将部分克隆转换为完全克隆)。
請參閱 [GitHub 部落格文章:解部分克隆](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/) 以取克隆過濾器的常用法( Blob 和無樹的克隆),以及 [GitLab 部分克隆文](https://docs.gitlab.com/ee/topics/git/partial_clone.html) 以取更高的用法(例如按文件大小過濾和取消過濾以將部分克隆轉換為完全克隆)。

View File

@@ -7,32 +7,32 @@ aliases:
- /zh-tw/incoming-email
---
# 件接收
# 件接收
Gitea 支持通过接收邮件执行多操作。本面描述如何进行设置
Gitea 支援通過接收郵件執行多操作。本面描述如何進行設定
## 要求
理接收的电子邮件需要用 IMAP 功能的电子邮件帐户
的策略是使用 [电子邮件子地址](https://en.wikipedia.org/wiki/Email_address#Sub-addressing),但也可以使用 catch-all 箱。
接收电子邮件地址中包含一个用户/操作特定的令牌,告 Gitea 应执行哪操作。
此令牌应该出现`To``Delivered-To` 头字段中。
理接收的電子郵件需要用 IMAP 功能的電子郵件帳戶
的策略是使用 [電子郵件子地址](https://en.wikipedia.org/wiki/Email_address#Sub-addressing),但也可以使用 catch-all 箱。
接收電子電子郵件地址中包含一個使用者/操作特定的令牌,告 Gitea 應執行哪操作。
此令牌應該出現`To``Delivered-To` 頭欄位中。
Gitea 会尝试检测自动回复并跳过它们,电子邮件服务器也应该配置以减少接收到的干(垃圾件、通讯订阅等)。
Gitea 會嘗試檢測自動回覆並跳過它們,電子郵件伺服器也應該設定以減少接收到的干(垃圾件、通訊訂閱等)。
## 配置
## 設定
要激活理接收的电子邮件消息功能,您需要在配置文件中配置 `email.incoming` 部分。
要激活理接收的電子郵件消息功能,您需要在設定文件中設定 `email.incoming` 部分。
`REPLY_TO_ADDRESS` 包含电子邮件客户端将要回的地址。
地址需要包含 `%{token}` 位符,该占位符被替换为描述用户/操作的令牌。
位符在地址中只能出一次,且必须位于地址的用户部分(`@` 之前)。
`REPLY_TO_ADDRESS` 包含電子郵件客戶端將要回的地址。
地址需要包含 `%{token}` 位符,該佔位符被替換為描述使用者/操作的令牌。
位符在地址中只能出一次,且必須位於地址的使用者部分(`@` 之前)。
使用电子邮件子地址的例可能如下:`incoming+%{token}@example.com`
使用電子郵件子地址的例可能如下:`incoming+%{token}@example.com`
如果使用 catch-all 箱,则占位符可以出在地址的用户部分的任何位置:`incoming+%{token}@example.com``incoming_%{token}@example.com``%{token}@example.com`
如果使用 catch-all 箱,則佔位符可以出在地址的使用者部分的任何位置:`incoming+%{token}@example.com``incoming_%{token}@example.com``%{token}@example.com`
## 安全性
选择用于接收传入电子邮件的域要小心。
在子域名上接收传入电子邮件,例如 `incoming.example.com`,以防止与运行在 `example.com` 上的其他服可能存在的安全问题
選擇用於接收傳入電子郵件的域要小心。
在子域名上接收傳入電子郵件,例如 `incoming.example.com`,以防止與運行在 `example.com` 上的其他服可能存在的安全問題

View File

@@ -4,12 +4,12 @@ slug: "profile-readme"
sidebar_position: 12
---
# 个人资料 README
# 個人資料 README
要在您的 Gitea 个人资料页面显示一 Markdown 文件,只需创建一个名为 `.profile`仓库,并编辑其中的 `README.md` 文件。Gitea 将自动获取该文件在您的仓库上方示。
要在您的 Gitea 個人資料頁面顯示一 Markdown 文件,只需建立一個名為 `.profile`儲存庫,並編輯其中的 `README.md` 文件。Gitea 將自動獲取該文件在您的儲存庫上方示。
注意:您可以将此仓库设为私有。这样可以藏您的源文件,使其对公众不可见,并允许您将某些文件设为私有。但是README.md 文件是您个人资料上唯一存在的文件。如果您希望完全私有化 .profile 仓库,则需删除或重命名 README.md 文件。
注意:您可以將此儲存庫設為私有。這樣可以藏您的源文件,使其對公眾不可見,並允許您將某些文件設為私有。但是README.md 文件是您個人資料上唯一存在的文件。如果您希望完全私有化 .profile 儲存庫,則需刪除或重命名 README.md 文件。
用户示`.profile/README.md`:
使用者範`.profile/README.md`:
![个人资料自述文件截](/images/usage/profile-readme.png)
![個人資料自述文件截](/images/usage/profile-readme.png)

View File

@@ -9,53 +9,53 @@ aliases:
# 推送
提交推送到 Gitea 服务器时,还有一些外的功能。
提交推送到 Gitea 伺服器時,還有一些外的功能。
## 通推送打 PR
## 通推送打 PR
您第一次提交推送到非默认分支,您收到一个链接,您可以单击该链接访问分支主分支的比较页面。
从那里,您可以轻松创建一个拉取求,即使您想要其目指向另一分支。
您第一次提交推送到非預設分支,您收到一個鏈接,您可以單擊該鏈接訪問分支主分支的比較頁面。
從那裡,您可以輕鬆建立一個拉取求,即使您想要其目指向另一分支。
![Gitea 推送提示](/gitea-push-hint.png)
## 推送选项
## 推送選項
在 Gitea `1.13` 版本中,添加了一些 [推送选项](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt) 的支
在 Gitea `1.13` 版本中,添加了一些 [推送選項](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt) 的支
### 支持的选项
### 支援的選項
- `repo.private` (true|false) - 更改仓库的可性。
- `repo.private` (true|false) - 更改儲存庫的可性。
这在与 push-to-create 合使用时特别有用。
這在與 push-to-create 合使用時特別有用。
- `repo.template` (true|false) - 更改仓库是否模板。
- `repo.template` (true|false) - 更改儲存庫是否模板。
将仓库的可性更改为公开的示例:
將儲存庫的可性更改為公開的範例:
```shell
git push -o repo.private=false -u origin main
```
## 推送
## 推送建
推送建是一功能,允许您将提交推送到在 Gitea 中尚不存在的仓库。这对于自动化和允许用户创建仓库而无需通 Web 面非常有用。此功能默认处于禁用状态
推送建是一功能,允許您將提交推送到在 Gitea 中尚不存在的儲存庫。這對於自動化和允許使用者建立儲存庫而無需通 Web 面非常有用。此功能預設處於禁用狀態
### 用推送
### 用推送建
`app.ini` 文件中, `ENABLE_PUSH_CREATE_USER` 设置为 `true`,如果您希望允许用户在自己的用户帐户和所属的组织中创建仓库,将 `ENABLE_PUSH_CREATE_ORG` 设置为 `true`。重新启动 Gitea 以使更改生效。您可以在 [配置速查表](../administration/config-cheat-sheet.md#仓库) 中解有关这两个选项的更多信息
`app.ini` 文件中, `ENABLE_PUSH_CREATE_USER` 設定為 `true`,如果您希望允許使用者在自己的使用者帳戶和所屬的組織中建立儲存庫,將 `ENABLE_PUSH_CREATE_ORG` 設定為 `true`。重新啟動 Gitea 以使更改生效。您可以在 [設定速查表](../../administration/config-cheat-sheet.md#儲存庫-repository) 中解有關這兩個選項的更多資訊
### 使用推送
### 使用推送建
您在前目中有一 git 仓库,您可以通过运行以下命令提交推送到在 Gitea 中尚不存在的仓库
您在前目中有一 git 儲存庫,您可以透過運行以下命令提交推送到在 Gitea 中尚不存在的儲存庫
```shell
# 添加要推送到的远程仓库
git remote add origin git@{domain}:{username}/{尚不存在的仓库名称}.git
# 添加要推送到的遠程倉庫
git remote add origin git@{domain}:{username}/{尚不存在的倉庫名稱}.git
# 推送到远程仓库
# 推送到遠程倉庫
git push -u origin main
```
这假设您使用的是 SSH 程,但您也可以使用 HTTPS 程。
這假設您使用的是 SSH 程,但您也可以使用 HTTPS 程。
推送创建将默认使用 `app.ini` 中定的可`DEFAULT_PUSH_CREATE_PRIVATE`
推送建立將預設使用 `app.ini` 中定的可`DEFAULT_PUSH_CREATE_PRIVATE`

View File

@@ -6,90 +6,90 @@ aliases:
- /zh-tw/repo-mirror
---
# 仓库镜
# 儲存庫鏡
仓库镜像允许将仓库与外部源之间进行镜像。您可以使用它在仓库之间镜像分支、标签和提交。
儲存庫鏡像允許將儲存庫與外部源之間進行鏡像。您可以使用它在儲存庫之間鏡像分支、標籤和提交。
## 使用
## 使用
以下是一些仓库镜像的可能使用景:
以下是一些儲存庫鏡像的可能使用景:
-移到了 Gitea但仍需要在其他源中保留您的项目。在这种情况下,您可以简单地设置它以进行镜像到 Gitea拉取这样您的 Gitea 例中就可以取到所有必要的提交史、标签和分支。
- 您在其他源中有一些旧项目,您不再主使用,但出于归档目的不想除。在这种情况下,您可以创建一个推送像,以便您的活的 Gitea 仓库可以其更改推送到位置。
-移到了 Gitea但仍需要在其他源中保留您的專案。在這種情況下,您可以簡單地設定它以進行鏡像到 Gitea拉取這樣您的 Gitea 例中就可以取到所有必要的提交史、標籤和分支。
- 您在其他源中有一些舊專案,您不再主使用,但出於歸檔目的不想除。在這種情況下,您可以建立一個推送像,以便您的活的 Gitea 儲存庫可以其更改推送到位置。
## 从远程仓库拉取
## 從遠程儲存庫拉取
对于现有的远程仓库,您可以按照以下步骤设置拉取像:
對於現有的遠程儲存庫,您可以按照以下步驟設定拉取像:
1. 在右上角的“建...”菜单中选择“迁移外部仓库”。
2. 选择远程仓库服务
3. 输入仓库的 URL。
4. 如果仓库需要身份验证,请填写您的身份验证信息
5. 中“该仓库将是一个镜像”复选框。
6. 选择“迁移仓库”以保存配置
1. 在右上角的“建...”菜單中選擇“遷移外部儲存庫”。
2. 選擇遠程儲存庫服務
3. 輸入儲存庫的 URL。
4. 如果儲存庫需要身份驗證,請填寫您的身份驗證資訊
5. 中“該儲存庫將是一個鏡像”複選框。
6. 選擇“遷移儲存庫”以保存設定
在,该仓库会定期从远程仓库进行镜像。您可以通过在仓库设置中选择“立即同步”来强制进行同步。
在,該儲存庫會定期從遠程儲存庫進行鏡像。您可以透過在儲存庫設定中選擇“立即同步”來強制進行同步。
:::warning
:exclamation::exclamation: **注意:**您只能尚不存在您的例上的仓库设置拉取像。一旦仓库创建成功,您就法再将其转换为拉取像。:exclamation::exclamation:
:exclamation::exclamation: **注意:**您只能尚不存在您的例上的儲存庫設定拉取像。一旦儲存庫建立成功,您就法再將其轉換為拉取像。:exclamation::exclamation:
:::
## 推送到远程仓库
## 推送到遠程儲存庫
对于现有的仓库,您可以按照以下步骤设置推送像:
對於現有的儲存庫,您可以按照以下步驟設定推送像:
1.仓库中,到**设置** > **仓库**,然后进入**镜像设置**部分。
2. 入一个仓库的 URL。
3. 如果仓库需要身份验证,请展开**授**部分并填写您的身份验证信息。请注意,所求的**密**也可以是您的访问令牌
4. 选择**添加推送像**以保存配置
1.儲存庫中,到**設定** > **儲存庫**,然後進入**鏡像設定**部分。
2. 入一個儲存庫的 URL。
3. 如果儲存庫需要身份驗證,請展開**授**部分並填寫您的身份驗證資訊。請注意,所求的**密**也可以是您的存取權杖
4. 選擇**添加推送像**以保存設定
该仓库现在会定期像到远程仓库。您可以通过选择**立即同步**来强制同步。如果出现错误,会显示一消息助您解决问题
該儲存庫現在會定期像到遠程儲存庫。您可以透過選擇**立即同步**來強制同步。如果出現錯誤,會顯示一消息助您解決問題
:::warning
:exclamation::exclamation: **注意:** 这将强制推送到远程仓库。这将覆盖远程仓库中的任何更改! :exclamation::exclamation:
:exclamation::exclamation: **注意:** 這將強制推送到遠程儲存庫。這將覆蓋遠程儲存庫中的任何更改! :exclamation::exclamation:
:::
### Gitea 向 GitHub 设置推送
### Gitea 向 GitHub 設定推送
Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作:
Gitea 設定鏡像到 GitHub您需要按照以下步驟進行操作:
1. 创建一个具有中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交史,您也可以使用有的远程仓库
3. 在您的 Gitea 仓库设置中,填**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git`
4. 使用您的 GitHub 用户名填写**授**字段,并将个人访问令牌作为**密**。
5. (可选,适用于 Gitea 1.18+选择`推送新提交同步`这样一旦有更改,镜像将会及时更新。如果您意,您可以禁用定期同步。
6. 选择**添加推送像**以保存配置
1. 建立一個具有中 _public_repo_ 選項的 [GitHub 個人存取權杖](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
2. 在 GitHub 上建立一個同名的儲存庫。與 Gitea 不同GitHub 不支援通過推送到遠程來建立儲存庫。如果您的現有遠程儲存庫與您的 Gitea 儲存庫具有相同的提交史,您也可以使用有的遠程儲存庫
3. 在您的 Gitea 儲存庫設定中,填**Git 遠程儲存庫 URL**`https://github.com/<your_github_group>/<your_github_project>.git`
4. 使用您的 GitHub 使用者名稱填寫**授**欄位,並將個人存取權杖作為**密**。
5. (可選,適用於 Gitea 1.18+選擇`推送新提交同步`這樣一旦有更改,鏡像將會及時更新。如果您意,您可以禁用定期同步。
6. 選擇**添加推送像**以保存設定
仓库会很快行推送。要制推送,请选择**立即同步**按
儲存庫會很快行推送。要制推送,請選擇**立即同步**按
### Gitea 向 GitLab 设置推送
### Gitea 向 GitLab 設定推送
Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作:
Gitea 設定鏡像到 GitLab您需要按照以下步驟進行操作:
1. 建具有 _write_repository_ 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
2.**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`
3. 在**授**字段中填 `oauth2`**用户名**并将您的 GitLab 个人访问令牌作为**密**。
4. 选择**添加推送像**以保存配置
1.具有 _write_repository_ 作用域的 [GitLab 個人存取權杖](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
2.**Git 遠程儲存庫 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`
3. 在**授**欄位中填 `oauth2`**使用者名稱**並將您的 GitLab 個人存取權杖作為**密**。
4. 選擇**添加推送像**以保存設定
仓库会很快行推送。要制推送,请选择**立即同步**按
儲存庫會很快行推送。要制推送,請選擇**立即同步**按
### Gitea 向 Bitbucket 设置推送
### Gitea 向 Bitbucket 設定推送
Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作:
Gitea 設定鏡像到 Bitbucket您需要按照以下步驟進行操作:
1. 创建一个具有_Repository Write_ 选项的 [Bitbucket 用密](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
2.**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`
3. 使用您的 Bitbucket 用户名填写**授**字段,并将应用密码作为**密**。
4. 选择**添加推送像**以保存配置
1. 建立一個具有_Repository Write_ 選項的 [Bitbucket 用密](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
2.**Git 遠程儲存庫 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`
3. 使用您的 Bitbucket 使用者名稱填寫**授**欄位,並將應用密碼作為**密**。
4. 選擇**添加推送像**以保存設定
仓库会很快行推送。要制推送,请选择**立即同步**按
儲存庫會很快行推送。要制推送,請選擇**立即同步**按
### 镜像现有的 ssh 仓库
### 鏡像現有的 ssh 儲存庫
Gitea 不支持从 ssh 仓库进行镜像。如果您想要像一 ssh 仓库,您需要将其转换为 http 仓库。您可以使用以下命令将现有的 ssh 仓库转换为 http 仓库
Gitea 不支援從 ssh 儲存庫進行鏡像。如果您想要像一 ssh 儲存庫,您需要將其轉換為 http 儲存庫。您可以使用以下命令將現有的 ssh 儲存庫轉換為 http 儲存庫
1. 确保运行 gitea 的用户有权限访问您试图从 shell 像到的 git 仓库
2. 在 Web 面的版本库设置 > git 子中为镜像添加一接收后钩子。
1. 確保運行 gitea 的使用者有權限訪問您試圖從 shell 像到的 git 儲存庫
2. 在 Web 面的版本庫設定 > git 子中為鏡像添加一接收後鉤子。
```
#!/usr/bin/env bash

View File

@@ -6,66 +6,66 @@ aliases:
- /zh-tw/template-repositories
---
# 模板仓库
# 模板儲存庫
Gitea `1.11.0` 及以上版本引入了模板仓库,并且其中一个实现的功能是自动展开模板文件中的特定量。
Gitea `1.11.0` 及以上版本引入了模板儲存庫,並且其中一個實現的功能是自動展開模板文件中的特定量。
要告 Gitea 哪些文件需要展,您必在模板仓库`.gitea`中包含一 `template` 文件。
要告 Gitea 哪些文件需要展,您必在模板儲存庫`.gitea`中包含一 `template` 文件。
Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。它与传统`.gitignore` 法非常相似,但可能存在微的差
Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。它與傳統`.gitignore` 法非常相似,但可能存在微的差
## `.gitea/template` 文件
## `.gitea/template` 文件
所有路都是相对于仓库的根目
所有路都是相對於儲存庫的根目
```gitignore
# 仓库中的所有 .go 文件
# 倉庫中的所有 .go 文件
**.go
# text 目中的所有文本文件
# text 目中的所有文本文件
text/*.txt
# 特定文件
a/b/c/d.json
# 匹配批理文件的大小写变体
# 匹配批理文件的大小寫變體
**.[bB][aA][tT]
```
**注意:** 当从模板生成仓库时`.gitea`中的 `template` 文件将被删除。
**注意:** 當從模板生成儲存庫時`.gitea`中的 `template` 文件將被刪除。
## 参数展开
## 參數展開
上述通配符匹配的任何文件中,将会扩展某些量。
上述通配符匹配的任何文件中,將會擴展某些量。
文件名和路的匹配也可以被展,并且会经过谨慎的清理理,以支跨平台的文件系
文件名和路的匹配也可以被展,並且會經過謹慎的清理理,以支跨平台的文件系
所有量都必须采`$VAR``${VAR}`的形式。要转义扩展,使用`$$`,例如`$$VAR``$${VAR}`
所有量都必須採`$VAR``${VAR}`的形式。要轉義擴展,使用`$$`,例如`$$VAR``$${VAR}`
| 量 | 扩展为 | 可转换 |
| 量 | 擴展為 | 可轉換 |
| -------------------- | ----------------------------- | ------ |
| REPO_NAME | 生成的仓库名称 | ✓ |
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
| TEMPLATE_DESCRIPTION | 模板仓库描述 | ✘ |
| REPO_OWNER | 生成的仓库所有者 | ✓ |
| TEMPLATE_OWNER | 模板仓库所有者 | ✓ |
| REPO_LINK | 生成的仓库链接 | ✘ |
| TEMPLATE_LINK | 模板仓库链接 | ✘ |
| REPO_HTTPS_URL | 生成的仓库的 HTTP(S) 克隆接 | ✘ |
| TEMPLATE_HTTPS_URL | 模板仓库的 HTTP(S) 克隆接 | ✘ |
| REPO_SSH_URL | 生成的仓库的 SSH 克隆接 | ✘ |
| TEMPLATE_SSH_URL | 模板仓库的 SSH 克隆接 | ✘ |
| REPO_NAME | 生成的儲存庫名稱 | ✓ |
| TEMPLATE_NAME | 模板儲存庫名稱 | ✓ |
| REPO_DESCRIPTION | 生成的儲存庫描述 | ✘ |
| TEMPLATE_DESCRIPTION | 模板儲存庫描述 | ✘ |
| REPO_OWNER | 生成的儲存庫所有者 | ✓ |
| TEMPLATE_OWNER | 模板儲存庫所有者 | ✓ |
| REPO_LINK | 生成的儲存庫鏈接 | ✘ |
| TEMPLATE_LINK | 模板儲存庫鏈接 | ✘ |
| REPO_HTTPS_URL | 生成的儲存庫的 HTTP(S) 克隆接 | ✘ |
| TEMPLATE_HTTPS_URL | 模板儲存庫的 HTTP(S) 克隆接 | ✘ |
| REPO_SSH_URL | 生成的儲存庫的 SSH 克隆接 | ✘ |
| TEMPLATE_SSH_URL | 模板儲存庫的 SSH 克隆接 | ✘ |
## 转换器 :robot:
## 轉換器 :robot:
Gitea `1.12.0` 添加了一些转换器以应用于上述用的量。
Gitea `1.12.0` 添加了一些轉換器以應用於上述用的量。
例如,要以 `PASCAL`-case `REPO_NAME`,你的模板使用 `${REPO_NAME_PASCAL}`
例如,要以 `PASCAL`-case `REPO_NAME`,你的模板使用 `${REPO_NAME_PASCAL}`
`go-sdk` 传递给可用的转换器的效果如下...
`go-sdk` 傳遞給可用的轉換器的效果如下...
| 转换器 | 效果 |
| 轉換器 | 效果 |
| ------ | ------ |
| SNAKE | go_sdk |
| KEBAB | go-sdk |

View File

@@ -51,7 +51,7 @@ Gitea 支援以下對外 Webhook 整合:
### 設定 Webhook
建立 Webhook 時,主要設定項目包括:
建立 Webhook 時,主要設定專案包括:
- `Target URL`:接收投遞的目標位址。
- `HTTP Method`:通用 Webhook 通常使用 `POST`
@@ -565,7 +565,7 @@ http_response_code(204);
#### `pull_request_review_approved`
當 pull request review 以准形式提交時,會觸發此事件。
當 pull request review 以准形式提交時,會觸發此事件。
**動作類型:** `reviewed`

View File

@@ -12,7 +12,7 @@
"message": "Actions"
},
"sidebar.docs.category.packages": {
"message": "軟體包"
"message": "套件"
},
"sidebar.docs.category.Development": {
"message": "開發"

View File

@@ -6,28 +6,28 @@ aliases:
- /zh-tw/adding-legal-pages
---
# 添加法律
# 添加法律
一些法域(例如盟)要求在站上添加特定的法律面(例如私政策)。按照以下步骤将它们添加到你的 Gitea 例中。
一些法域(例如盟)要求在站上添加特定的法律面(例如私政策)。按照以下步驟將它們添加到你的 Gitea 例中。
## 获取页
## 獲取頁
Gitea 源代码附带了示例页面,位 `contrib/legal`中。将它们复制`custom/public/assets/`下。例如,如果要添加私政策:
Gitea 源程式碼附帶了範例頁面,位 `contrib/legal`中。將它們複製`custom/public/assets/`下。例如,如果要添加私政策:
```
wget -O /path/to/custom/public/assets/privacy.html https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/legal/privacy.html.sample
```
在,你需要编辑该页面以足你的需求。特是,你必更改电子邮件地址、址以及 "Your Gitea Instance" 相的引用,以匹配你的情
在,你需要編輯該頁面以滿足你的需求。特是,你必更改電子電子郵件地址、址以及 "Your Gitea Instance" 相的引用,以匹配你的情
请务必不要放置暗示 Gitea 项目对你的服务器负责的一般服务条款或隐私声明。
請務必不要放置暗示 Gitea 專案對你的伺服器負責的一般服務條款或隱私聲明。
## 使其可
## 使其可
建或追加到 `/path/to/custom/templates/custom/extra_links_footer.tmpl` 文件中:
或追加到 `/path/to/custom/templates/custom/extra_links_footer.tmpl` 文件中:
```go
<a class="item" href="{{AppSubUrl}}/assets/privacy.html">私政策</a>
<a class="item" href="{{AppSubUrl}}/assets/privacy.html">私政策</a>
```
Gitea 以查看更改。
Gitea 以查看更改。

View File

@@ -8,208 +8,208 @@ aliases:
- /zh-tw/authentication
---
# 认证
# 認證
## 轻量级目录访问协议Lightweight Directory Access ProtocolLDAP
## 輕量級目錄訪問協議Lightweight Directory Access ProtocolLDAP
通过 BindDN 的 LDAP 和简单认证方式 LDAP 共享以下字段:
透過 BindDN 的 LDAP 和簡單認證方式 LDAP 共享以下欄位:
- 认证名称 **(必)**
- 認證名稱 **(必)**
- 分配新授方法的名
- 分配新授方法的名
-**(必)**
-**(必)**
- LDAP 服的主地址.
- LDAP 服的主地址.
- 例如:`mydomain.com`
- 端口 **(必)**
- 端口 **(必)**
- LDAP 服的端口.
- LDAP 服的端口.
- 例如: LDAP `389`/ LDAPs `636`
- 安全协议 (可)
- 安全協議 (可)
- 接 LDAP 服务器时是否使用 TLS 协议
- 接 LDAP 伺服器時是否使用 TLS 協議
- 管理员过滤规则 (可)
- 管理員過濾規則 (可)
- LDAP 过滤器,用指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
- 例:`(objectClass=adminAccount)`
- 适用于 Microsoft Active DirectoryAD例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- LDAP 過濾器,用指定哪些使用者應該被賦予管理員特權。如果使用者帳戶符合過濾器條件,則該使用者將被授予管理員權限。
- 例:`(objectClass=adminAccount)`
- 適用於 Microsoft Active DirectoryAD例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- 用户名属性(可
- 使用者名稱屬性(可
- 用户 LDAP 记录中包含用户名称的属性。在第一次成功登录后,将使用指定的性值作新的 Gitea 账户用户名。若留空,使用登录表单上提供的用户名
- 提供的登录名与多个属性匹配时,这一选项非常有用,但是有一特定属性应该用于 Gitea 账户名称,请参阅"用户过滤器"。
- 例:uid
- 适用于 Microsoft Active DirectoryAD例:`sAMAccountName`
- 使用者 LDAP 記錄中包含使用者名稱稱的屬性。在第一次成功登入後,將使用指定的性值作新的 Gitea 帳號名稱。若留空,使用登入表單上提供的使用者名稱
- 提供的登入名與多個屬性匹配時,這一選項非常有用,但是有一特定屬性應該用於 Gitea 帳號名稱,請參閱"使用者過濾器"。
- 例:uid
- 適用於 Microsoft Active DirectoryAD例:`sAMAccountName`
- 名字性(可
- 名字性(可
- 用户 LDAP 记录中包含用户名字的性。将用于填充他们的账户信息
- 例:givenName
- 使用者 LDAP 記錄中包含使用者名稱字的性。將用於填充他們的帳號資訊
- 例:givenName
- 姓氏性(可
- 姓氏性(可
- 用户 LDAP 记录中包含用户姓氏的性。将用于填充他们的账户信息
- 例:`sn`
- 使用者 LDAP 記錄中包含使用者姓氏的性。將用於填充他們的帳號資訊
- 例:`sn`
- 电子邮件属**(必)**
- 用户 LDAP 记录中包含用户电子邮件地址的性。将用于填充他们的账户信息
- 例:`mail`
- 電子郵件屬**(必)**
- 使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。將用於填充他們的帳號資訊
- 例:`mail`
### LDAP(via BindDN)
需要额外设置以下字段:
需要額外設定以下欄位:
- 定 DN (可)
- 定 DN (可)
- 搜索用户时绑定到 LDAP 服器的 DN。可以留空以行匿名搜索。
- 例: `cn=Search,dc=mydomain,dc=com`
- 搜索使用者時綁定到 LDAP 服器的 DN。可以留空以行匿名搜索。
- 例: `cn=Search,dc=mydomain,dc=com`
- 定密 (可)
- 定密 (可)
- 上述指定的 Bind DN绑定区别名)的密,如果有的。注意:该密码在服务器上使用 SECRET_KEY 行加密存。仍然建议确保 Bind DN 具有可能少的限。
- 上述指定的 Bind DN綁定區別名)的密,如果有的。注意:該密碼在伺服器上使用 SECRET_KEY 行加密存。仍然建議確保 Bind DN 具有可能少的限。
- 用户搜索基 **(必)**
- 使用者搜索基 **(必)**
- 是用搜索用户帐户的 LDAP 基础路径.
- 例: `ou=Users,dc=mydomain,dc=com`
- 是用搜索使用者帳戶的 LDAP 基礎路徑.
- 例: `ou=Users,dc=mydomain,dc=com`
- 用户过滤规则 **(必)**
- LDAP 过滤器声明如何查找试图进行身份验证的用户记录
`%[1]s`匹配参数将替换为登录表单中给出的登
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替换,应使用 `%[1]s`,例如在提供的登录名与多个属性(如用户标识符、电子邮件甚至电话号码)进行匹配
- 例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 启用用户同步
- 这个选项启用了一个周期性任,用于将 Gitea 用户与 LDAP 服务器进行同步。默认的同步期是每 24 小
但您可以在 app.ini 文件中行更改。
此部分的详细说明,请参阅[sample
- 使用者過濾規則 **(必)**
- LDAP 過濾器聲明如何查找試圖進行身份驗證的使用者記錄
`%[1]s`匹配參數將替換為登入表單中給出的登
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替換,應使用 `%[1]s`,例如在提供的登入名與多個屬性(如使用者標識符、電子郵件甚至電話號碼)進行匹配
- 例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 啟用使用者同步
- 這個選項啟用了一個週期性任,用於將 Gitea 使用者與 LDAP 伺服器進行同步。預設的同步期是每 24 小
但您可以在 app.ini 文件中行更改。
此部分的詳細說明,請參閱[sample
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
的*cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
在初始行任务时,将根据给定的设置创建所有 LDAP 匹配的用户,因此在使用大型企 LDAP 目录时需要小心。
的*cron.sync_external_users* 部分的註釋。前面提到的*User Search Base*和*User Filter*
設定將限制哪些使用者可以使用 Gitea 以及哪些使用者將被同步。
在初始行任務時,將根據給定的設定建立所有 LDAP 匹配的使用者,因此在使用大型企 LDAP 目錄時需要小心。
### LDAP(simple auth)
需要额外设置以下字段:
需要額外設定以下欄位:
- 用户 DN **(必)**
- 使用者 DN **(必)**
- 用作用户 DN 的模板。匹配参数 `%s` 将替换为登录表单中的登名。
- 例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 用作使用者 DN 的模板。匹配參數 `%s` 將替換為登入表單中的登名。
- 例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 用户搜索基 (可)
- 使用者搜索基 (可)
- 用户搜索基准声明哪些用户帐户将被搜索.
- 例: `ou=Users,dc=mydomain,dc=com`
- 使用者搜索基準聲明哪些使用者帳戶將被搜索.
- 例: `ou=Users,dc=mydomain,dc=com`
- 用户过滤规则 **(必)**
- LDAP 过滤器声明何时允许用户登录
`%[1]s`匹配参数将替换为登录表单中给出的登名。
- 例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 使用者過濾規則 **(必)**
- LDAP 過濾器聲明何時允許使用者登入
`%[1]s`匹配參數將替換為登入表單中給出的登名。
- 例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
### 使用 LDAP 验证分组成员
### 使用 LDAP 驗證分組成員
使用以下字段:
使用以下欄位:
-搜索基 DN(可)
-搜索基 DN(可)
- 使用的 LDAP DN。
- 例: `ou=group,dc=mydomain,dc=com`
- 使用的 LDAP DN。
- 例: `ou=group,dc=mydomain,dc=com`
- 组名过滤器 (可)
- 組名過濾器 (可)
- LDAP 过滤器,明如何在上述 DN 中查找有效
- 例: `(|(cn=gitea_users)(cn=admins))`
- LDAP 過濾器,明如何在上述 DN 中查找有效
- 例: `(|(cn=gitea_users)(cn=admins))`
- 中的用户属性 (可)
- 中的使用者屬性 (可)
- 中列出了哪个用户的 LDAP 性。
- 例: `uid`
- 中列出了哪個使用者的 LDAP 性。
- 例: `uid`
- 用户组属性 (可)
-个组的 LDAP 性包含一个高于用户属性名称的数组
- 例: `memberUid`
- 使用者組屬性 (可)
-個組的 LDAP 性包含一個高於使用者屬性名稱的數組
- 例: `memberUid`
## 可插拔式认证模块(Pluggable Authentication Module,PAM)
## 可插拔式認證模組(Pluggable Authentication Module,PAM)
这个过程启用了 PAMPluggable Authentication Modules认证。用户仍然可以通过用户管理手添加到系中。
PAM 提供了一种机制,通过对用户进行 PAM 认证来自动将其添加到当前数据库中。为了与普通的 Linux 密一起使用,
行 Gitea 的用户还必须具有`/etc/shadow`读取权限,以便在使用公钥登录时检查账户的有效性。
這個過程啟用了 PAMPluggable Authentication Modules認證。使用者仍然可以透過使用者管理手添加到系中。
PAM 提供了一種機制,通過對使用者進行 PAM 認證來自動將其添加到當前資料庫中。為了與普通的 Linux 密一起使用,
行 Gitea 的使用者還必須具有`/etc/shadow`讀取權限,以便在使用公鑰登入時檢查帳號的有效性。
**注意**:如果用户已将 SSH 公添加到 Gitea 中,使用些密可能会绕过登录检查系。因此,
如果您希望禁用使用 PAM 行身份验证的用户,应该在 Gitea 中手禁用该账户,使用置的用户管理功能。
**注意**:如果使用者已將 SSH 公添加到 Gitea 中,使用些密可能會繞過登入檢查系。因此,
如果您希望禁用使用 PAM 行身份驗證的使用者,應該在 Gitea 中手禁用該帳號,使用置的使用者管理功能。
1. 配置和安装准备.
-议您创建一个管理用户.
-取消自动注册.
1. 一旦数据库已初始化完成,使用新建的管理员账户登录.
1. 航至用户设置(右上角的图标),然后选择
`Site Administration` -> `Authentication Sources`, 并选择
1. 設定和安裝準備.
-議您建立一個管理使用者.
-取消自動註冊.
1. 一旦資料庫已初始化完成,使用新建的管理員帳號登入.
1. 航至使用者設定(右上角的圖標),然後選擇
`Site Administration` -> `Authentication Sources`, 並選擇
`Add Authentication Source`.
1.写字段如下:
- 认证类型:`PAM`
-:任何有效的值都可以,如果您意,可以使用"System Authentication"。
- PAM 服务名称:从/etc/pam.d/目录下选择适用于所需认证的正文件[^1]。
- PAM 电子邮件域:用户认证时要附加的电子邮件后缀。例如,如果登录系统期望一个名为 gituse 的用户
并且将此字段设置为 mail.com Gitea 在验证一个 GIT 例的用户时将期望 user emai 字段为gituser@mail.com[^2]。
1.寫欄位如下:
- 認證類型:`PAM`
-:任何有效的值都可以,如果您意,可以使用"System Authentication"。
- PAM 服務名稱:從/etc/pam.d/目錄下選擇適用於所需認證的正文件[^1]。
- PAM 電子郵件域:使用者認證時要附加的電子郵件後綴。例如,如果登入系統期望一個名為 gituse 的使用者
並且將此欄位設定為 mail.com Gitea 在驗證一個 GIT 例的使用者時將期望 user emai 欄位為gituser@mail.com[^2]。
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
而官方提供的二制文件通常不会默认启用此功能。PAM 需要保系上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
**Note**: PAM 支援通過[build-time flags](installation/from-source.md)添加,
而官方提供的二制文件通常不會預設啟用此功能。PAM 需要保系上有必要的 libpam 動態庫,並且編譯器可以訪問必要的 PAM 開發頭文件。
[^1]:
例如,在 Debian "Bullseye"上使用标准 Linux 登,可以使用`common-session-noninteractive`这个值对于其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用行版的文档以确认
例如,在 Debian "Bullseye"上使用標準 Linux 登,可以使用`common-session-noninteractive`這個值對於其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的請查閱您所使用行版的文件以確認
[^2]: **PAM 的必选项** 注意:在上面的例中,用户将作为`gituser`而不是`gituser@mail.com`到 Gitea 的 Web 面。
[^2]: **PAM 的必選項** 注意:在上面的例中,使用者將作為`gituser`而不是`gituser@mail.com`到 Gitea 的 Web 面。
## 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
## 簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)
选项允许 Gitea 以 Gitea 用户身份登 SMTP 主机。请设置以下字段:
選項允許 Gitea 以 Gitea 使用者身份登 SMTP 主機。請設定以下欄位:
- 身份验证名称 **(必)**
- 身份驗證名稱 **(必)**
- 分配新授方法的名
- 分配新授方法的名
- SMTP 验证类**(必)**
- SMTP 驗證類**(必)**
-于连接 SMTP 主机的验证类plain 或 login
-於連接 SMTP 主機的驗證類plain 或 login
-**(必)**
-**(必)**
- SMTP 服的主地址
- SMTP 服的主地址
- 例如:`smtp.mydomain.com`
- 端口 **(必)**
- 端口 **(必)**
- SMTP 服的端口
- SMTP 服的端口
- 例如: `587`
-的域名
-的域名
- 如果使用公共 SMTP 主或有多域的 SMTP 主,限制哪些域可以登
限制哪些域可以登
- 例: `gitea.com,mydomain.com,mydomain2.com`
- 如果使用公共 SMTP 主或有多域的 SMTP 主,限制哪些域可以登
限制哪些域可以登
- 例: `gitea.com,mydomain.com,mydomain2.com`
- 制使用 SMTPS
- 默认情况下将使用 SMTPS 接到端口 465.如果您希望 smtp 用其他端口,自行设置
-,如果服器提供' STARTTLS '展名,则将使用此展名
- TLS 验证
- 禁用 TLS 验证身份.
- 该认证源处于激活状态
- 用或禁用此身份验证
- 制使用 SMTPS
- 預設情況下將使用 SMTPS 接到端口 465.如果您希望 smtp 用其他端口,自行設定
-,如果服器提供' STARTTLS '展名,則將使用此展名
- TLS 驗證
- 禁用 TLS 驗證身份.
- 該認證源處於激活狀態
- 用或禁用此身份驗證
## FreeIPA
- 要使用 FreeIPA 凭据登录 Gitea需要 Gitea 创建一个绑定帐户
创建一个绑定帐户:
- 在 FreeIPA 服务器上创建一个 gitea.ldif 文件,并将`dc=example,dc=com`换为您的`dn`,然提供一个适当安全的密
- 要使用 FreeIPA 憑據登入 Gitea需要 Gitea 建立一個綁定帳戶
建立一個綁定帳戶:
- 在 FreeIPA 伺服器上建立一個 gitea.ldif 文件,並將`dc=example,dc=com`換為您的`dn`,然提供一個適當安全的密
```sh
dn: uid=gitea,cn=sysaccounts,cn=etc,dc=example,dc=com
@@ -222,76 +222,76 @@ PAM 提供了一种机制,通过对用户进行 PAM 认证来自动将其添
nsIdleTimeout: 0
```
- 入 LDIF 文件(如果需要,请将 localhost 更改 IPA 服器)。系统会提示您入 Directory Manager 的密。:
- 入 LDIF 文件(如果需要,請將 localhost 更改 IPA 服器)。系統會提示您入 Directory Manager 的密。:
```sh
ldapmodify -h localhost -p 389 -x -D \
"cn=Directory Manager" -W -f gitea.ldif
```
- `gitea_users`添加 IPA :
- `gitea_users`添加 IPA :
```sh
ipa group-add --desc="Gitea Users" gitea_users
```
- **提示**:对于 IPA 凭证错误,运行' kinit admin '提供域管理帐户密码.
- 以管理身份登 Gitea点击 Admin Panel 下的`Authentication`。然后单击`Add New Source`并填写详细信息,更改所有适当的地方。
- **提示**:對於 IPA 憑證錯誤,運行' kinit admin '提供域管理帳戶密碼.
- 以管理身份登 Gitea點擊 Admin Panel 下的`Authentication`。然後單擊`Add New Source`並填寫詳細資訊,更改所有適當的地方。
## SPNEGO with SSPI (Kerberos/NTLM, for Windows only)
Gitea 支持通过 Windows 置的安全支提供程序接口Security Support Provider InterfaceSSPI实现 SPNEGO 单点登录认证(由 RFC4559 定的方案),用于服务器的 Web 部分。SSPI 在 Windows 境中工作,即当服务器和客端都在 Windows 操作系统上运行时
Gitea 支援通過 Windows 置的安全支提供程式介面Security Support Provider InterfaceSSPI實現 SPNEGO 單點登入認證(由 RFC4559 定的方案),用於伺服器的 Web 部分。SSPI 在 Windows 境中工作,即當伺服器和客端都在 Windows 操作系統上運行時
在激活 SSPI 单点登录认证SSO之前您需要准备您的境:
在激活 SSPI 單點登入認證SSO之前您需要準備您的境:
- 在 Active Directory 中创建一个单独的用户账户gitea.exe 进程将在该账户下运行(例如,在 domain.local 域下创建一个名为 user 的账户:
- 为运行 gitea.exe 的主机创建一个服务主体名称Service Principal NameSPN类别为 HTTP:
- 在 Active Directory 中建立一個單獨的使用者帳號gitea.exe 進程將在該帳號下運行(例如,在 domain.local 域下建立一個名為 user 的帳號:
- 為運行 gitea.exe 的主機建立一個服務主體名稱Service Principal NameSPN類別為 HTTP:
- 以特权域用户(例如域管理)的身份启动“命令提示符”或“PowerShell”。
- 行下面的命令, host.domain.local 替换为 Web 用程序将运行的服务器的完全限定域名FQDN domain\user 替换为在前一步中创建的账户名称:
- 以特權域使用者(例如域管理)的身份啟動“命令提示符”或“PowerShell”。
- 行下面的命令, host.domain.local 替換為 Web 用程式將運行的伺服器的完全限定域名FQDN domain\user 替換為在前一步中建立的帳號名稱:
```sh
setspn -A HTTP/host.domain.local domain\user
```
在遵循上述步之前,请确保您按照以下流程行操作:
在遵循上述步之前,請確保您按照以下流程行操作:
1. 用之前创建的用户登录(如果已经登录,请先注销)。
2. 保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`设置为 Web 用程序将运行的服务器的完全限定域名FQDN之前创建服务主体名称时使用的一致(例如,`host.domain.local`)。
3. 启动 Web 服器(行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一 `SPNEGO with SSPI` 认证源,以用 SSPI 认证
5. 在域中的客户端计算机上,使用任何域用户登录(与运行`gitea.exe`的服器不同)。
6. 如果您使用 Chrome 或 Edge 浏览器,请将 Web 用程的 URL 添加到“本地站”(`Internet选项 -> 安全 -> 本地站 -> 站`)。
7. 启动 Chrome 或 Edge 浏览器,航到 Gitea 的 FQDN URL例如`http://host.domain.local:3000`)。
8. 在控制面板中点击“Sign In”按,然后选择 SSPI将会自动使用前登录到计算机的用户进行登
9. 如果法正常工作,请确保:
- 您不是在行`gitea.exe`的同一台服务器上行 Web 浏览器。应该在与服务器不同的域加入计算机(客端)上行 Web 浏览器。如果客端和服器都在同一台计算机上运行, NTLM 将优先于 Kerberos。
- 主上只有一`HTTP/...`的 SPN。
- SPN 中只包含主名,不包含端口
- Web 用程的 URL 添加到"本地站"。
- 服器和客端的时钟差异不超 5 分(取决于组策略)。
- 在 Internet Explorer 中用了"集成 Windows 身份验证"(在"高级设置"下)。
1. 用之前建立的使用者登入(如果已經登入,請先註銷)。
2. 保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`設定為 Web 用程式將運行的伺服器的完全限定域名FQDN之前建立服務主體名稱時使用的一致(例如,`host.domain.local`)。
3. 啟動 Web 服器(行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一 `SPNEGO with SSPI` 認證源,以用 SSPI 認證
5. 在域中的客戶端計算機上,使用任何域使用者登入(與運行`gitea.exe`的服器不同)。
6. 如果您使用 Chrome 或 Edge 瀏覽器,請將 Web 用程的 URL 添加到“本地站”(`Internet選項 -> 安全 -> 本地站 -> 站`)。
7. 啟動 Chrome 或 Edge 瀏覽器,航到 Gitea 的 FQDN URL例如`http://host.domain.local:3000`)。
8. 在控制面板中點擊“Sign In”按,然後選擇 SSPI將會自動使用前登入到計算機的使用者進行登
9. 如果法正常工作,請確保:
- 您不是在行`gitea.exe`的同一臺伺服器上行 Web 瀏覽器。應該在與伺服器不同的域加入計算機(客端)上行 Web 瀏覽器。如果客端和服器都在同一臺計算機上運行, NTLM 將優先於 Kerberos。
- 主上只有一`HTTP/...`的 SPN。
- SPN 中只包含主名,不包含端口
- Web 用程的 URL 添加到"本地站"。
- 服器和客端的時鐘差異不超 5 分(取決於組策略)。
- 在 Internet Explorer 中用了"整合 Windows 身份驗證"(在"高級設定"下)。
遵循些步,您应该能够成功用和使用 SSPI 单点登录认证SSO
遵循些步,您應該能夠成功用和使用 SSPI 單點登入認證SSO
## 反向代理认证
## 反向代理認證
Gitea 支持通过读取反向代理传递的 HTTP 中的登名或者 email 地址来支持反向代理来认证。默认是不用的,你可以用以下配置启用。
Gitea 支援通過讀取反向代理傳遞的 HTTP 中的登名或者 email 地址來支援反向代理來認證。預設是不用的,你可以用以下設定啟用。
```ini
[service]
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
```
默认的登录用户名的 HTTP 是 `X-WEBAUTH-USER`,你可以通过修改 `REVERSE_PROXY_AUTHENTICATION_USER` 来变更它。如果用户不存在,可以自动创建用户,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。
預設的登入使用者名稱的 HTTP 是 `X-WEBAUTH-USER`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_USER` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。
默认的登录用户 Email 的 HTTP 是 `X-WEBAUTH-EMAIL`,你可以通过修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 来变更它。如果用户不存在,可以自动创建用户,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。你也可以通过修改 `ENABLE_REVERSE_PROXY_EMAIL` 来启用或停用这个 HTTP
預設的登入使用者 Email 的 HTTP 是 `X-WEBAUTH-EMAIL`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。你也可以透過修改 `ENABLE_REVERSE_PROXY_EMAIL` 來啟用或停用這個 HTTP
如果设置了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`则用户的全名会从 `X-WEBAUTH-FULLNAME` 取,这样在自动创建用户时将使用这个字段作为用户全名,你也可以通过修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 来变更 HTTP
如果設定了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`則使用者的全名會從 `X-WEBAUTH-FULLNAME` 取,這樣在自動建立使用者時將使用這個欄位作為使用者全名,你也可以透過修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 來變更 HTTP
你也可以通过修改 `REVERSE_PROXY_TRUSTED_PROXIES` 来设置反向代理的 IP 地址范围,加安全性,默认值是 `127.0.0.0/8,::1/128`。 通 `REVERSE_PROXY_LIMIT` 可以设置最多信任几级反向代理。
你也可以透過修改 `REVERSE_PROXY_TRUSTED_PROXIES` 來設定反向代理的 IP 地址範圍,加安全性,預設值是 `127.0.0.0/8,::1/128`。 通 `REVERSE_PROXY_LIMIT` 可以設定最多信任幾級反向代理。
你可以通过以下配置为 API 用此认证方法:
你可以透過以下設定為 API 用此認證方法:
```ini
[service]
@@ -299,5 +299,5 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION_API = true
```
:::note
此方法用 API ,反向代理负责处理 CSRF 保
此方法用 API ,反向代理負責處理 CSRF 保
:::

View File

@@ -8,19 +8,19 @@ aliases:
- /zh-tw/backup-and-restore
---
# 备份与恢复
# 備份與恢復
Gitea 已经实现`dump` 命令可以用来备份所有需要的文件到一 zip 压缩文件。该压缩文件可以被用来进行数据恢复
Gitea 已經實現`dump` 命令可以用來備份所有需要的文件到一 zip 壓縮文件。該壓縮文件可以被用來進行資料恢復
## 份一致性
## 份一致性
为了确保 Gitea 例的一致性,在份期间必须关闭它。
為了確保 Gitea 例的一致性,在份期間必須關閉它。
Gitea 包括数据库、文件和 Git 仓库,当它被使用所有些都会发生变化。例如,当迁移正在进行时,在数据库中创建一个事务,而 Git 仓库正在被制。如果备份发生在移的中Git 仓库可能是不完整的,尽管数据库声称它是完整的,因它是在之后被转储的。避免这种竞争条件的唯一方法是在份期停止 Gitea 例。
Gitea 包括資料庫、文件和 Git 儲存庫,當它被使用所有些都會發生變化。例如,當遷移正在進行時,在資料庫中建立一個事務,而 Git 儲存庫正在被制。如果備份發生在移的中Git 儲存庫可能是不完整的,儘管資料庫聲稱它是完整的,因它是在之後被轉儲的。避免這種競爭條件的唯一方法是在份期停止 Gitea 例。
## 份命令 (`dump`)
## 份命令 (`dump`)
到 git 用户的权限: `su git`. 再 Gitea 目录运`./gitea dump`。一般会显示类似如下的出:
到 git 使用者的權限: `su git`. 再 Gitea 目錄運`./gitea dump`。一般會顯示類似如下的出:
```
2016/12/27 22:32:09 Creating tmp work dir: /tmp/gitea-dump-417443001
@@ -31,20 +31,20 @@ Gitea 包括数据库、文件和 Git 仓库,当它被使用时所有这些都
2016/12/27 22:32:34 Finish dumping in file gitea-dump-1482906742.zip
```
生成的 `gitea-dump-1482906742.zip` 文件将会包含如下容:
生成的 `gitea-dump-1482906742.zip` 文件將會包含如下容:
- `app.ini` - 如果原先存储在默认的 custom/ 目之外,则是配置文件的可副本
- `custom/` - 所有保存在 `custom/`下的配置和自定义的文件。
- `data/` - 数据目录APP_DATA_PATH如果使用文件会话,则不包括会话。该目录包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 包括 SQLite 文件。
- `repos/` - 仓库目录的完整副本。
- `gitea-db.sql` - 数据库 dump 出的 SQL。
- `log/` - Logs 文件,如果用作移不是必的。
- `app.ini` - 如果原先儲存在預設的 custom/ 目之外,則是設定文件的可副本
- `custom/` - 所有保存在 `custom/`下的設定和自訂的文件。
- `data/` - 資料目錄APP_DATA_PATH如果使用文件會話,則不包括會話。該目錄包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 包括 SQLite 文件。
- `repos/` - 儲存庫目錄的完整副本。
- `gitea-db.sql` - 資料庫 dump 出的 SQL。
- `log/` - Logs 文件,如果用作移不是必的。
间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
間備份文件將會在臨時目錄進行建立,如果您要重新指定臨時目錄,可以用 `--tempdir` 參數,或者用 `TMPDIR` 環境變量。
## 备份数据库
## 備份資料庫
`gitea dump` 建的 SQL 转储使用 XORMGitea 管理可能更喜使用本地的 MySQL 和 PostgreSQL 转储工具。使用 XORM 转储数据库时仍然存在一些问题,可能会导致在尝试恢复时出现问题
`gitea dump`的 SQL 轉儲使用 XORMGitea 管理可能更喜使用本地的 MySQL 和 PostgreSQL 轉儲工具。使用 XORM 轉儲資料庫時仍然存在一些問題,可能會導致在嘗試恢復時出現問題
```sh
# mysql
@@ -55,23 +55,23 @@ pg_dump -U $USER $DATABASE > gitea-db.sql
### 使用 Docker `dump`
在使用 Docker ,使用 `dump` 命令有一些注意事
在使用 Docker ,使用 `dump` 命令有一些注意事
`gitea/conf/app.ini` 中指定的 `RUN_USER = <OS_USERNAME>` 执行该命令;且,为了让备份文件夹的压缩过程能够顺利执行,`docker exec` 命令必`--tempdir` 内部执行。
`gitea/conf/app.ini` 中指定的 `RUN_USER = <OS_USERNAME>` 執行該命令;且,為了讓備份文件夾的壓縮過程能夠順利執行,`docker exec` 命令必`--tempdir` 內部執行。
例:
例:
```none
docker exec -u <OS_USERNAME> -it -w <--tempdir> $(docker ps -qf 'name=^<NAME_OF_DOCKER_CONTAINER>$') bash -c '/usr/local/bin/gitea dump -c </path/to/app.ini>'
```
\*注意:`--tempdir` 指的是 Gitea 使用的 Docker 境的临时目录;如果您有指定自定义`--tempdir`,那 Gitea 使用 `/tmp` 或 Docker 容器的 `TMPDIR` 环境变量。对于 `--tempdir`请相应调整您的 `docker exec` 命令选项
\*注意:`--tempdir` 指的是 Gitea 使用的 Docker 境的臨時目錄;如果您有指定自`--tempdir`,那 Gitea 使用 `/tmp` 或 Docker 容器的 `TMPDIR` 環境變量。對於 `--tempdir`請相應調整您的 `docker exec` 命令選項
结果应该是一文件,存在指定的 `--tempdir` 中,类似于`gitea-dump-1482906742.zip`
結果應該是一文件,存在指定的 `--tempdir` 中,類似於`gitea-dump-1482906742.zip`
## 恢命令 (`restore`)
## 恢命令 (`restore`)
当前还没有恢命令,恢需要人工行。主要是把文件和数据库进行恢
當前還沒有恢命令,恢需要人工行。主要是把文件和資料庫進行恢
例如:
@@ -94,54 +94,54 @@ psql -U $USER -d $DATABASE < gitea-db.sql
service gitea restart
```
如果安方式生了化(例如 二制 -> Docker或者 Gitea 安到了之前安不同的目录,则需要重新生成仓库 Git 子。
如果安方式生了化(例如 二制 -> Docker或者 Gitea 安到了之前安不同的目錄,則需要重新生成儲存庫 Git 子。
在 Gitea 运行时,并从 Gitea 二制文件所在的目录执行:`./gitea admin regenerate hooks`
在 Gitea 運行時,並從 Gitea 二制文件所在的目錄執行:`./gitea admin regenerate hooks`
这样可以确保仓库 Git 子中的用程序和配置文件路径与当前安一致。如果些路径没有更新,仓库`push` 操作将失败
這樣可以確保儲存庫 Git 子中的用程式和設定文件路徑與當前安一致。如果些路徑沒有更新,儲存庫`push` 操作將失敗
### 使用 Docker (`restore`)
在基 Docker 的 Gitea 例中,也有恢命令的支。恢复过程与前面描述的步相同,但路不同。
在基 Docker 的 Gitea 例中,也有恢命令的支。恢復過程與前面描述的步相同,但路不同。
例:
例:
```sh
# 在容器中打 bash 会话
# 在容器中打 bash 會話
docker exec --user git -it 2a83b293548e bash
# 在容器内解压您的份文件
# 在容器內解壓您的份文件
unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
# 恢 Gitea 数据
# 恢 Gitea 數據
mv data/* /data/gitea
# 恢复仓库本身
# 恢復倉庫本身
mv repos/* /data/git/gitea-repositories/
# 整文件
# 調整文件
chown -R git:git /data
# 重新生成 Git
# 重新生成 Git
/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks
```
Gitea 容器中的默认用户`git`1000:1000用您的 Gitea 容器 ID 或名称替换 `2a83b293548e`
Gitea 容器中的預設使用者`git`1000:1000用您的 Gitea 容器 ID 或名稱替換 `2a83b293548e`
### 使用 Docker-rootless (`restore`)
在 Docker-rootless 容器中的恢工作流程只是要使用的目不同:
在 Docker-rootless 容器中的恢工作流程只是要使用的目不同:
```sh
# 在容器中打 bash 会话
# 在容器中打 bash 會話
docker exec --user git -it 2a83b293548e bash
# 在容器内解压您的份文件
# 在容器內解壓您的份文件
unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
# 恢 app.ini
# 恢 app.ini
mv data/conf/app.ini /etc/gitea/app.ini
# 恢 Gitea 数据
# 恢 Gitea 數據
mv data/* /var/lib/gitea
# 恢复仓库本身
# 恢復倉庫本身
mv repos/* /var/lib/gitea/git/gitea-repositories
# 整文件
# 調整文件
chown -R git:git /etc/gitea/app.ini /var/lib/gitea
# 重新生成 Git
# 重新生成 Git
/usr/local/bin/gitea -c '/etc/gitea/app.ini' admin regenerate hooks
```

View File

@@ -8,37 +8,37 @@ aliases:
- /zh-tw/cmd-embedded
---
# 嵌入源提取工具
# 嵌入源提取工具
Gitea 的可行文件包含了行所需的所有源:模板、片、式表和翻文件。你可以通过`custom`下的相应路径中放置替文件来覆盖其中的任何源(详见 [定义 Gitea 配置](../administration/customizing-gitea.md))。
Gitea 的可行文件包含了行所需的所有源:模板、片、式表和翻文件。你可以透過`custom`下的相應路徑中放置替文件來覆蓋其中的任何源(詳見 [ Gitea 設定](../administration/customizing-gitea.md))。
取嵌入源的副本以进行编辑,可以使用 CLI 中的 `embedded` 命令,通操作系的 shell 行。
取嵌入源的副本以進行編輯,可以使用 CLI 中的 `embedded` 命令,通操作系的 shell 行。
**注意:** 嵌入源提取工具包含在 Gitea 1.12 及以上版本中。
**注意:** 嵌入源提取工具包含在 Gitea 1.12 及以上版本中。
## 源列表
## 源列表
要列出嵌入在 Gitea 可行文件中的源,使用以下法:
要列出嵌入在 Gitea 可行文件中的源,使用以下法:
```sh
gitea embedded list [--include-vendored] [patterns...]
```
`--include-vendored` 标志使命令包括被供的文件,些文件通常被排除在外;即自外部的文件,些文件是 Gitea 所需的(例如 [octicons](https://octicons.github.com/) 等)。
`--include-vendored` 標誌使命令包括被供的文件,些文件通常被排除在外;即自外部的文件,些文件是 Gitea 所需的(例如 [octicons](https://octicons.github.com/) 等)。
可以提供一系列文件搜索模式。Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。以下是一些例:
可以提供一系列文件搜索模式。Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 作其 glob 法。以下是一些例:
- 列出所有模板文件,无论在哪个虚拟目录下:`**.tmpl`
- 列出所有件模板文件:`templates/mail/**.tmpl`
列出 `public/assets/img`下的所有文件:`public/assets/img/**`
- 列出所有模板文件,無論在哪個虛擬目錄下:`**.tmpl`
- 列出所有件模板文件:`templates/mail/**.tmpl`
列出 `public/assets/img`下的所有文件:`public/assets/img/**`
不要忘记为模式使用引,因空格、`*` 和其他字符可能命令行解器有特殊含
不要忘記為模式使用引,因空格、`*` 和其他字符可能命令行解器有特殊含
如果未提供模式,列出所有文件。
如果未提供模式,列出所有文件。
### 例:列出所有嵌入文件
### 例:列出所有嵌入文件
列出所有路中包含 `openid` 的嵌入文件:
列出所有路中包含 `openid` 的嵌入文件:
```sh
$ gitea embedded list '**openid**'
@@ -52,33 +52,33 @@ templates/user/auth/signup_openid_register.tmpl
templates/user/settings/security_openid.tmpl
```
## 提取
## 提取
要提取嵌入在 Gitea 可行文件中的源,使用以下法:
要提取嵌入在 Gitea 可行文件中的源,使用以下法:
```sh
gitea [--config {file}] embedded extract [--destination {dir}|--custom] [--overwrite|--rename] [--include-vendored] {patterns...}
```
`--config` 选项用于告知 Gitea `app.ini` 配置文件的位置(如果不在默认位置)。此选项仅在使用 `--custom` 标志时使用。
`--config` 選項用於告知 Gitea `app.ini` 設定文件的位置(如果不在預設位置)。此選項僅在使用 `--custom` 標誌時使用。
`--destination` 选项用于指定提取文件的目标目录。默认为当前目
`--destination` 選項用於指定提取文件的目標目錄。預設為當前目
`--custom` 标志告知 Gitea 直接文件提取到 `custom`中。使其正常工作,命令需要知道 `app.ini` 配置文件的位置(通 `--config` 指定),且根据配置的不同,需要 Gitea 通常启动的目录运行。有关详细信息,请参阅 [定义 Gitea 配置](../administration/customizing-gitea.md)。
`--custom` 標誌告知 Gitea 直接文件提取到 `custom`中。使其正常工作,命令需要知道 `app.ini` 設定文件的位置(通 `--config` 指定),且根據設定的不同,需要 Gitea 通常啟動的目錄運行。有關詳細資訊,請參閱 [ Gitea 設定](../administration/customizing-gitea.md)。
`--overwrite` 标志允许覆盖目标目录中的任何有文件。
`--overwrite` 標誌允許覆蓋目標目錄中的任何有文件。
`--rename` 标志告知 Gitea 将目标目录中的任何有文件重命名 `filename.bak`。之前的 `.bak` 文件被覆
`--rename` 標誌告知 Gitea 將目標目錄中的任何有文件重命名 `filename.bak`。之前的 `.bak` 文件被覆
至少需要提供一文件搜索模式;有模式的法和例,请参阅上述 `list` 子命令。
至少需要提供一文件搜索模式;有模式的法和例,請參閱上述 `list` 子命令。
### 重要提示
请确保**只提取需要自定义的文件**。位 `custom`中的文件不受到 Gitea 的升级过程的影响。当 Gitea 升到新版本(通过替换可执行文件)时,许多嵌入文件将发生变化。Gitea 尊重使用在 `custom`中找到的任何文件,即使些文件是的和不容的。
請確保**只提取需要自的文件**。位 `custom`中的文件不受到 Gitea 的升級過程的影響。當 Gitea 升到新版本(通過替換可執行文件)時,許多嵌入文件將發生變化。Gitea 尊重使用在 `custom`中找到的任何文件,即使些文件是的和不容的。
### 例:提取件模板
### 例:提取件模板
将邮件模板提取到临时目录
將郵件模板提取到臨時目錄
```sh
$ mkdir tempdir

View File

@@ -10,523 +10,523 @@ aliases:
## 用法
`gitea [全局选项] 命令 [命令或全局选项] [参数...]`
`gitea [全域選項] 命令 [命令或全域選項] [參數...]`
## 全局选项
## 全域選項
所有全局选项均可被放置在命令级别
所有全域選項均可被放置在命令級別
- `--help``-h`显示帮助文本退出。可
- `--version``-v`示版本信息并退出。可。 (例:`Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`)。
- `--custom-path path``-C path`Gitea 自定义文件的路。可。 (默认值:`AppWorkPath`/custom 或 `$GITEA_CUSTOM`)。
- `--config path``-c path`Gitea 配置文件的路。可。 (默认值:`custom`/conf/app.ini)。
- `--work-path path``-w path`Gitea 的 `AppWorkPath`。可。 (默认LOCATION_OF_GITEA_BINARY 或 `$GITEA_WORK_DIR`)
- `--help``-h`顯示幫助文本退出。可
- `--version``-v`示版本資訊並退出。可。 (例:`Gitea version 1.1.0+218-g7b907ed built with: bindata, sqlite`)。
- `--custom-path path``-C path`Gitea 自文件的路。可。 (預設值:`AppWorkPath`/custom 或 `$GITEA_CUSTOM`)。
- `--config path``-c path`Gitea 設定文件的路。可。 (預設值:`custom`/conf/app.ini)。
- `--work-path path``-w path`Gitea 的 `AppWorkPath`。可。 (預設LOCATION_OF_GITEA_BINARY 或 `$GITEA_WORK_DIR`)
注意:默认的 custom-path、config 和 work-path 也可以在构建时更改(如果需要)。
注意:預設的 custom-path、config 和 work-path 也可以在構建時更改(如果需要)。
## 命令
### web
启动服务器:
啟動伺服器:
- 选项
- `--port number``-p number`:端口。可。 (默认3000)。覆盖配置文件中的设置
- `--install-port number`行安装页面的端口。可。 (默认3000)。覆盖配置文件中的设置
- `--pid path``-P path`Pid 文件的路。可
- `--quiet``-q`:只在控制台上输出 Fatal 日,用于在设置日志之前出的日
- `--verbose`:在控制台上输出跟踪日志,用于在设置日志之前出的日
- 例:
- 選項
- `--port number``-p number`:端口。可。 (預設3000)。覆蓋設定文件中的設定
- `--install-port number`行安裝頁面的端口。可。 (預設3000)。覆蓋設定文件中的設定
- `--pid path``-P path`Pid 文件的路。可
- `--quiet``-q`:只在控制檯上輸出 Fatal 日,用於在設定日誌之前出的日
- `--verbose`:在控制檯上輸出跟蹤日誌,用於在設定日誌之前出的日
- 例:
- `gitea web`
- `gitea web --port 80`
- `gitea web --config /etc/gitea.ini --pid /some/custom/gitea.pid`
- 注意:
- Gitea 不以 root 用户身份行。要定到低 1024 的端口,您可以在 Linux 上使用 setcap 命令:`sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`。每次更新 Gitea 都需要重新行此操作。
- Gitea 不以 root 使用者身份行。要定到低 1024 的端口,您可以在 Linux 上使用 setcap 命令:`sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`。每次更新 Gitea 都需要重新行此操作。
### admin
管理操作:
管理操作:
- 命令:
- `user`
- `list`
- 选项
- `--admin`列出管理员用户。可
- 描述:列出所有现有用户
- 例:
- 選項
- `--admin`列出管理員使用者。可
- 描述:列出所有現有使用者
- 例:
- `gitea admin user list`
- `delete`
- 选项
- `--email`:要除的用户的电子邮件。
- `--username`:要除的用户的用户名
- `--id`:要除的用户的 ID。
-提供 `--id``--username``--email` 中的一。如果提供多个,则所有件必匹配。
- 例:
- 選項
- `--email`:要除的使用者的電子郵件。
- `--username`:要除的使用者的使用者名稱
- `--id`:要除的使用者的 ID。
-提供 `--id``--username``--email` 中的一。如果提供多個,則所有件必匹配。
- 例:
- `gitea admin user delete --id 1`
- `create`
- 选项
- `--name value`用户名。必填。自 Gitea 1.9.0 版本起,改用 `--username` 标志
- `--username value`用户名。必填。Gitea 1.9.0 新增。
- `--password value`:密。必填。
- `--email value`箱。必填。
- `--admin`:如果提供此选项,将创建一个管理员用户。可
- `--access-token`:如果提供,将为用户创建访问令牌。可。(默认false
- `--must-change-password`:如果提供,创建的用户将在初始登录后需要选择一个新密。可。(默认true
- `--random-password`:如果提供,使用随机生成的密码作为创建用户的密`--password` 的值被忽略。可
- `--random-password-length`:如果提供,将用于配置随机生成密码的长度。可。(默认12
- 例:
- 選項
- `--name value`使用者名稱。必填。自 Gitea 1.9.0 版本起,改用 `--username` 標誌
- `--username value`使用者名稱。必填。Gitea 1.9.0 新增。
- `--password value`:密。必填。
- `--email value`箱。必填。
- `--admin`:如果提供此選項,將建立一個管理員使用者。可
- `--access-token`:如果提供,將為使用者建立存取權杖。可。(預設false
- `--must-change-password`:如果提供,建立的使用者將在初始登入後需要選擇一個新密。可。(預設true
- `--random-password`:如果提供,使用隨機生成的密碼作為建立使用者的密`--password` 的值被忽略。可
- `--random-password-length`:如果提供,將用於設定隨機生成密碼的長度。可。(預設12
- 例:
- `gitea admin user create --username myname --password asecurepassword --email me@example.com`
- `change-password`
- 选项
- `--username value``-u value`用户名。必填。
- `--password value``-p value`:新密。必填。
- 例:
- 選項
- `--username value``-u value`使用者名稱。必填。
- `--password value``-p value`:新密。必填。
- 例:
- `gitea admin user change-password --username myname --password asecurepassword`
- `must-change-password`
- 参数
- `[username...]`:需要更改密码的用户
- 选项
- `--all``-A`制所有用户更改密
- `--exclude username``-e username`:排除定的用户。可以多次设置
- `--unset`:撤销对给定用户的强制密更改
- 參數
- `[username...]`:需要更改密碼的使用者
- 選項
- `--all``-A`制所有使用者更改密
- `--exclude username``-e username`:排除定的使用者。可以多次設定
- `--unset`:撤銷對給定使用者的強制密更改
- `regenerate`
- 选项
- `hooks`:重新生成所有仓库的 Git Hooks。
- 選項
- `hooks`:重新生成所有儲存庫的 Git Hooks。
- `keys`:重新生成 authorized_keys 文件。
- 例:
- 例:
- `gitea admin regenerate hooks`
- `gitea admin regenerate keys`
- `auth`
- `list`
- 描述:列出所有存在的外部认证源。
- 例:
- 描述:列出所有存在的外部認證源。
- 例:
- `gitea admin auth list`
- `delete`
- 选项
- `--id`:要除的源的 ID。必填。
- 例:
- 選項
- `--id`:要除的源的 ID。必填。
- 例:
- `gitea admin auth delete --id 1`
- `add-oauth`
- 选项
- `--name`用程序名称
- 選項
- `--name`用程式名稱
- `--provider`OAuth2 提供者。
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自动发现 URL在使用 OpenID Connect 作提供程序时需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自定义 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自定义租户 ID。
- `--custom-auth-url`:使用自定义授权 URLGitLab/GitHub 的选项)。
- `--custom-token-url`:使用自定义令牌 URLGitLab/GitHub 的选项)。
- `--custom-profile-url`:使用自定义配置文件 URLGitLab/GitHub 的选项)。
- `--custom-email-url`:使用自定义电子邮件 URLGitHub 的选项)。
- `--icon-url`OAuth2 登源的自定义图标 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加范围。(可
- `--required-claim-name`:必须设置的声明名,以允许用户使用此源登。(可
- `--required-claim-value`:必须设置的声明值,以允许用户使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理员用户的组声明值。(可
- `--restricted-group`:受限用户的组声明值。(可
- `--group-team-map`组与组织团队之间的 JSON 映射。(可
- `--group-team-map-removal`:根据组自动激活团队成员资格的除。(可
- 例:
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自動發現 URL在使用 OpenID Connect 作提供程式時需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自訂租戶 ID。
- `--custom-auth-url`:使用自訂授權 URLGitLab/GitHub 的選項)。
- `--custom-token-url`:使用自令牌 URLGitLab/GitHub 的選項)。
- `--custom-profile-url`:使用自訂設定文件 URLGitLab/GitHub 的選項)。
- `--custom-email-url`:使用自訂電子郵件 URLGitHub 的選項)。
- `--icon-url`OAuth2 登源的自訂圖標 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加範圍。(可
- `--required-claim-name`:必須設定的聲明名,以允許使用者使用此源登。(可
- `--required-claim-value`:必須設定的聲明值,以允許使用者使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理員使用者的組聲明值。(可
- `--restricted-group`:受限使用者的組聲明值。(可
- `--group-team-map`組與組織團隊之間的 JSON 映射。(可
- `--group-team-map-removal`:根據組自動激活團隊成員資格的除。(可
- 例:
- `gitea admin auth add-oauth --name external-github --provider github --key OBTAIN_FROM_SOURCE --secret OBTAIN_FROM_SOURCE`
- `update-oauth`
- 选项
- 選項
- `--id`:要更新的源的 ID。必填。
- `--name`用程序名称
- `--name`用程式名稱
- `--provider`OAuth2 提供者。
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自动发现 URL在使用 OpenID Connect 作提供程序时需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自定义 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自定义租户 ID。
- `--custom-auth-url`:使用自定义授权 URLGitLab/GitHub 的选项)。
- `--custom-token-url`:使用自定义令牌 URLGitLab/GitHub 的选项)。
- `--custom-profile-url`:使用自定义配置文件 URLGitLab/GitHub 的选项)。
- `--custom-email-url`:使用自定义电子邮件 URLGitHub 的选项)。
- `--icon-url`OAuth2 登源的自定义图标 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加范围
- `--required-claim-name`:必须设置的声明名,以允许用户使用此源登。(可
- `--required-claim-value`:必须设置的声明值,以允许用户使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理员用户的组声明值。(可
- `--restricted-group`:受限用户的组声明值。(可
- 例:
- `--key`:客端 IDKey
- `--secret`:客端密
- `--auto-discover-url`OpenID Connect 自動發現 URL在使用 OpenID Connect 作提供程式時需要)。
- `--use-custom-urls`:在 GitLab/GitHub OAuth 端上使用自 URL。
- `--custom-tenant-id`:在 OAuth 端上使用自訂租戶 ID。
- `--custom-auth-url`:使用自訂授權 URLGitLab/GitHub 的選項)。
- `--custom-token-url`:使用自令牌 URLGitLab/GitHub 的選項)。
- `--custom-profile-url`:使用自訂設定文件 URLGitLab/GitHub 的選項)。
- `--custom-email-url`:使用自訂電子郵件 URLGitHub 的選項)。
- `--icon-url`OAuth2 登源的自訂圖標 URL。
- `--skip-local-2fa`:允源覆本地 2FA。
- `--scopes`求此 OAuth2 源的附加範圍
- `--required-claim-name`:必須設定的聲明名,以允許使用者使用此源登。(可
- `--required-claim-value`:必須設定的聲明值,以允許使用者使用此源登。(可
- `--group-claim-name`:提供此源的名的明名。(可
- `--admin-group`:管理員使用者的組聲明值。(可
- `--restricted-group`:受限使用者的組聲明值。(可
- 例:
- `gitea admin auth update-oauth --id 1 --name external-github-updated`
- `add-smtp`
- 选项
- `--name`用程序名称。必填。
- `--auth-type`SMTP 认证类PLAIN/LOGIN/CRAM-MD5默认为 PLAIN。
- `--host`SMTP 主。必填。
- 選項
- `--name`用程式名稱。必填。
- `--auth-type`SMTP 認證類PLAIN/LOGIN/CRAM-MD5預設為 PLAIN。
- `--host`SMTP 主。必填。
- `--port`SMTP 端口。必填。
- `--force-smtps`SMTPS 始在端口 465 上使用。设置此选项以强制在其他端口上使用 SMTPS。
- `--skip-verify`:跳 TLS 验证
- `--helo-hostname`送 HELO 使用的主名。留空以发送当前主名。
- `--force-smtps`SMTPS 始在端口 465 上使用。設定此選項以強制在其他端口上使用 SMTPS。
- `--skip-verify`:跳 TLS 驗證
- `--helo-hostname`送 HELO 使用的主名。留空以發送當前主名。
- `--disable-helo`:禁用 SMTP helo。
- `--allowed-domains`:留空以允所有域。使用逗',')分隔多域。
- `--skip-local-2fa`:跳 2FA 登
- `--active`用此认证源。
备注
`--force-smtps``--skip-verify``--disable-helo``--skip-local-2fs``--active` 选项可以用以下形式使用:
- `--option``--option=true`启用选项
- `--option=false` 以禁用选项
如果未指定这些选项,则`update-smtp` 中不更改值,或者在 `add-smtp`使用默认`false` 值。
- 例:
- `--allowed-domains`:留空以允所有域。使用逗',')分隔多域。
- `--skip-local-2fa`:跳 2FA 登
- `--active`用此認證源。
備註
`--force-smtps``--skip-verify``--disable-helo``--skip-local-2fs``--active` 選項可以用以下形式使用:
- `--option``--option=true`啟用選項
- `--option=false` 以禁用選項
如果未指定這些選項,則`update-smtp` 中不更改值,或者在 `add-smtp`使用預設`false` 值。
- 例:
- `gitea admin auth add-smtp --name ldap --host smtp.mydomain.org --port 587 --skip-verify --active`
- `update-smtp`
- 选项
- 選項
- `--id`:要更新的源的 ID。必填。
- 其他选项与 `add-smtp` 共享
- 例:
- 其他選項與 `add-smtp` 共享
- 例:
- `gitea admin auth update-smtp --id 1 --host smtp.mydomain.org --port 587 --skip-verify=false`
- `gitea admin auth update-smtp --id 1 --active=false`
- `add-ldap`:添加新的 LDAP Bind DN认证
- 选项
- `--name value`认证名称。必填。
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称。必填。
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 服务器时使用的端口。必填。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径。必填。
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。必填。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。必填。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--bind-dn value`:在搜索用户时绑定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中获取属性。
- `--synchronize-users`启用用户同步。
- `--page-size value`:搜索面大小。
- 例:
- `add-ldap`:添加新的 LDAP Bind DN認證
- 選項
- `--name value`認證名稱。必填。
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱。必填。
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 伺服器時使用的端口。必填。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑。必填。
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。必填。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。必填。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--bind-dn value`:在搜索使用者時綁定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中獲取屬性。
- `--synchronize-users`啟用使用者同步。
- `--page-size value`:搜索面大小。
- 例:
- `gitea admin auth add-ldap --name ldap --security-protocol unencrypted --host mydomain.org --port 389 --user-search-base "ou=Users,dc=mydomain,dc=org" --user-filter "(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))" --email-attribute mail`
- `update-ldap`:更新有的 LDAP Bind DN认证
- 选项
- `--id value`认证源的 ID。必填。
- `--name value`认证名称
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 服务器时使用的端口。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--bind-dn value`:在搜索用户时绑定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中获取属性。
- `--synchronize-users`启用用户同步。
- `--page-size value`:搜索面大小。
- 例:
- `update-ldap`:更新有的 LDAP Bind DN認證
- 選項
- `--id value`認證源的 ID。必填。
- `--name value`認證名稱
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 伺服器時使用的端口。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--bind-dn value`:在搜索使用者時綁定到 LDAP 服器的 DN。
- `--bind-password value`定 DN 的密(如果有)。
- `--attributes-in-bind`:在定 DN 上下文中獲取屬性。
- `--synchronize-users`啟用使用者同步。
- `--page-size value`:搜索面大小。
- 例:
- `gitea admin auth update-ldap --id 1 --name "my ldap auth source"`
- `gitea admin auth update-ldap --id 1 --username-attribute uid --firstname-attribute givenName --surname-attribute sn`
- `add-ldap-simple`:添加新的 LDAP简单身份验证)认证
- 选项
- `--name value`认证名称。必填。
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称。必填。
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 服务器时使用的端口。必填。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。必填。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。必填。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--user-dn value`用户的 DN。必填。
- 例:
- `add-ldap-simple`:添加新的 LDAP簡單身份驗證)認證
- 選項
- `--name value`認證名稱。必填。
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱。必填。
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。必填。
- `--port value`接到 LDAP 伺服器時使用的端口。必填。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。必填。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。必填。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--user-dn value`使用者的 DN。必填。
- 例:
- `gitea admin auth add-ldap-simple --name ldap --security-protocol unencrypted --host mydomain.org --port 389 --user-dn "cn=%s,ou=Users,dc=mydomain,dc=org" --user-filter "(&(objectClass=posixAccount)(cn=%s))" --email-attribute mail`
- `update-ldap-simple`:更新有的 LDAP简单身份验证)认证
- 选项
- `--id value`认证源的 ID。必填。
- `--name value`认证名称
- `--not-active`:停用认证源。
- `--security-protocol value`:安全协议名称
- `--skip-tls-verify`:禁用 TLS 验证
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 服务器时使用的端口。
- `--user-search-base value`用户帐户将在其中搜索的 LDAP 基础路径
- `--user-filter value`明如何查找试图进行身份验证的用户记录的 LDAP 过滤器。
- `--admin-filter value`:指定是否授予用户管理员特权的 LDAP 过滤器。
- `--restricted-filter value`:指定是否应将用户设置为受限状态的 LDAP 过滤器。
- `--username-attribute value`用户 LDAP 记录中包含用户名的属性。
- `--firstname-attribute value`用户 LDAP 记录中包含用户名字的性。
- `--surname-attribute value`用户 LDAP 记录中包含用户姓氏的性。
- `--email-attribute value`用户 LDAP 记录中包含用户电子邮件地址的性。
- `--public-ssh-key-attribute value`用户 LDAP 记录中包含用户公共 SSH 密钥的属性。
- `--avatar-attribute value`用户 LDAP 记录中包含用户头像的性。
- `--user-dn value`用户的 DN。
- 例:
- `update-ldap-simple`:更新有的 LDAP簡單身份驗證)認證
- 選項
- `--id value`認證源的 ID。必填。
- `--name value`認證名稱
- `--not-active`:停用認證源。
- `--security-protocol value`:安全協議名稱
- `--skip-tls-verify`:禁用 TLS 驗證
- `--host value`LDAP 服器的地址。
- `--port value`接到 LDAP 伺服器時使用的端口。
- `--user-search-base value`使用者帳戶將在其中搜索的 LDAP 基礎路徑
- `--user-filter value`明如何查找試圖進行身份驗證的使用者記錄的 LDAP 過濾器。
- `--admin-filter value`:指定是否授予使用者管理員特權的 LDAP 過濾器。
- `--restricted-filter value`:指定是否應將使用者設定為受限狀態的 LDAP 過濾器。
- `--username-attribute value`使用者 LDAP 記錄中包含使用者名稱的屬性。
- `--firstname-attribute value`使用者 LDAP 記錄中包含使用者名稱字的性。
- `--surname-attribute value`使用者 LDAP 記錄中包含使用者姓氏的性。
- `--email-attribute value`使用者 LDAP 記錄中包含使用者電子電子郵件地址的性。
- `--public-ssh-key-attribute value`使用者 LDAP 記錄中包含使用者公共 SSH 密鑰的屬性。
- `--avatar-attribute value`使用者 LDAP 記錄中包含使用者頭像的性。
- `--user-dn value`使用者的 DN。
- 例:
- `gitea admin auth update-ldap-simple --id 1 --name "my ldap auth source"`
- `gitea admin auth update-ldap-simple --id 1 --username-attribute uid --firstname-attribute givenName --surname-attribute sn`
### cert
生成自名的 SSL 证书。将输出到前目下的`cert.pem``key.pem`文件中,并且会覆盖任何有文件。
生成自名的 SSL 證書。將輸出到前目下的`cert.pem``key.pem`文件中,並且會覆蓋任何有文件。
- 选项
- `--host value`:逗分隔的主名和 IP 地址列表,此证书适用于这些主。支使用通配符。必填。
- `--ecdsa-curve value`:用生成密的 ECDSA 曲线。可。有效选项为 P224、P256、P384、P521。
- `--rsa-bits value`:要生成的 RSA 密的大小。可。如果设置了--ecdsa-curve忽略此选项。(默认3072
- `--start-date value`证书的创建日期。可。(格式:`Jan 1 15:04:05 2011`)。
- `--duration value`证书有效期。可。(默认8760h0m0s
- `--ca`:如果提供此选项,则证书将生成自己的证书颁发机构。可
- 例:
- 選項
- `--host value`:逗分隔的主名和 IP 地址列表,此證書適用於這些主。支使用通配符。必填。
- `--ecdsa-curve value`:用生成密的 ECDSA 曲。可。有效選項為 P224、P256、P384、P521。
- `--rsa-bits value`:要生成的 RSA 密的大小。可。如果設定了--ecdsa-curve忽略此選項。(預設3072
- `--start-date value`證書的建立日期。可。(格式:`Jan 1 15:04:05 2011`)。
- `--duration value`證書有效期。可。(預設8760h0m0s
- `--ca`:如果提供此選項,則證書將生成自己的證書頒發機構。可
- 例:
- `gitea cert --host git.example.com,example.com,www.example.com --ca`
### dump
所有文件和数据库导出到一 zip 文件中。出文件保存在前目下,类似于`gitea-dump-1482906742.zip`
所有文件和資料庫導出到一 zip 文件中。出文件保存在前目下,類似於`gitea-dump-1482906742.zip`
- 选项
- `--file name``-f name`:指定要创建的导出文件的名。可。(默认gitea-dump-[timestamp].zip
- `--tempdir path``-t path`:指定临时目录的路。可。(默认值:/tmp
- `--skip-repository``-R`:跳过仓库的导出。可
- `--skip-custom-dir`:跳过自定义目录的导出。可
- `--skip-lfs-data`:跳 LFS 数据的导出。可
- `--skip-attachment-data`:跳附件数据的导出。可
- `--skip-package-data`:跳过包数据的导出。可
- `--skip-log`:跳过日志数据的导出。可
- `--database``-d`:指定数据库的 SQL 法。可
- `--verbose``-V`:如果提供此选项,显示附加详细信息。可
- `--type`设置导出的格式。可。(默认zip
- 例:
- 選項
- `--file name``-f name`:指定要建立的導出文件的名。可。(預設gitea-dump-[timestamp].zip
- `--tempdir path``-t path`:指定臨時目錄的路。可。(預設值:/tmp
- `--skip-repository``-R`:跳過儲存庫的導出。可
- `--skip-custom-dir`:跳過自訂目錄的導出。可
- `--skip-lfs-data`:跳 LFS 資料的導出。可
- `--skip-attachment-data`:跳附件資料的導出。可
- `--skip-package-data`:跳過包資料的導出。可
- `--skip-log`:跳過日誌資料的導出。可
- `--database``-d`:指定資料庫的 SQL 法。可
- `--verbose``-V`:如果提供此選項,顯示附加詳細資訊。可
- `--type`設定導出的格式。可。(預設zip
- 例:
- `gitea dump`
- `gitea dump --verbose`
### generate
于在配置文件中生成随机值和令牌。对于自动部署生成值非常有用。
於在設定文件中生成隨機值和令牌。對於自動部署生成值非常有用。
- 命令:
- `secret`:
- 选项:
- `INTERNAL_TOKEN`: 用于内部 API 用身份验证的令牌。
- `JWT_SECRET`: 用 LFS 和 OAUTH2 JWT 身份验证的密LFS_JWT_SECRET 是此选项的别名,用于向后兼容)。
- `SECRET_KEY`: 全局密钥
- 例:
- 選項:
- `INTERNAL_TOKEN`: 用於內部 API 調用身份驗證的令牌。
- `JWT_SECRET`: 用 LFS 和 OAUTH2 JWT 身份驗證的密LFS_JWT_SECRET 是此選項的別名,用於向後相容)。
- `SECRET_KEY`: 全域密鑰
- 例:
- `gitea generate secret INTERNAL_TOKEN`
- `gitea generate secret JWT_SECRET`
- `gitea generate secret SECRET_KEY`
### keys
提供一 SSHD AuthorizedKeysCommand。需要在 sshd 配置文件中进行配置:
提供一 SSHD AuthorizedKeysCommand。需要在 sshd 設定文件中進行設定:
```ini
...
# -e 的值和 AuthorizedKeysCommandUser 应与运行 Gitea 的用名匹配
# -e 的值和 AuthorizedKeysCommandUser 應與運行 Gitea 的用名匹配
AuthorizedKeysCommandUser git
AuthorizedKeysCommand /path/to/gitea keys -e git -u %u -t %t -k %k
```
命令返回适用于提供的密的合 authorized_keys 行。您还应`app.ini``[server]` 部分设置`SSH_CREATE_AUTHORIZED_KEYS_FILE=false`
命令返回適用於提供的密的合 authorized_keys 行。您還應`app.ini``[server]` 部分設定`SSH_CREATE_AUTHORIZED_KEYS_FILE=false`
注意: opensshd 要求 Gitea 程由 root 有,且不可由或其他人入。程序必须使用绝对路径指定。
注意: Gitea 必须在运行此命令时处于运行状态才能成功。
注意: opensshd 要求 Gitea 程由 root 有,且不可由或其他人入。程式必須使用絕對路徑指定。
注意: Gitea 必須在運行此命令時處於運行狀態才能成功。
### migrate
迁移数据库。该命令可用在首次启动服务器之前行其他命令。此命令是等的。
遷移資料庫。該命令可用在首次啟動伺服器之前行其他命令。此命令是等的。
### doctor check
Gitea 实例进行诊断,可以修一些可修复的问题
默认只运行部分查,外的查可以考:
Gitea 實例進行診斷,可以修一些可修復的問題
預設只運行部分查,外的查可以考:
- `gitea doctor check --list` - 列出所有可用的
- `gitea doctor check --all` - 行所有可用的
- `gitea doctor check --default` - 运行默认的检
- `gitea doctor check --run [check(s),]...` - 行指定的名字的
- `gitea doctor check --list` - 列出所有可用的
- `gitea doctor check --all` - 行所有可用的
- `gitea doctor check --default` - 運行預設的檢
- `gitea doctor check --run [check(s),]...` - 行指定的名字的
有些问题可以通过设置 `--fix` 选项进行自动修复
外的日可以通过 `--log-file=...` 进行设置
有些問題可以透過設定 `--fix` 選項進行自動修復
外的日可以透過 `--log-file=...` 進行設定
#### doctor recreate-table
,在迁移时,旧的列和默认值可能会在数据库模式中保持不变。这可能会导致警告,如下所示:
,在遷移時,舊的列和預設值可能會在資料庫模式中保持不變。這可能會導致警告,如下所示:
```
2020/08/02 11:32:29 ...rm/session_schema.go:360:Sync() [W] Table user Column keep_activity_private db default is , struct default is 0
```
您可以通过以下方式 Gitea 重新创建这些表,并将旧数据复制到新表中,并适当设置默认值:
您可以透過以下方式 Gitea 重新建立這些表,並將舊資料複製到新表中,並適當設定預設值:
```
gitea doctor recreate-table user
```
您可以使用以下方式 Gitea 重新创建多个表:
您可以使用以下方式 Gitea 重新建立多個表:
```
gitea doctor recreate-table table1 table2 ...
```
如果您希望 Gitea 重新建所有表,直接用:
如果您希望 Gitea 重新建所有表,直接調用:
```
gitea doctor recreate-table
```
烈建议在运行这些命令之前份您的数据库
烈建議在運行這些命令之前份您的資料庫
### doctor convert
将现有的 MySQL 数据库从 utf8 转换为 utf8mb4或者把 MSSQL 数据库从 varchar 转换为 nvarchar。
將現有的 MySQL 資料庫從 utf8 轉換為 utf8mb4或者把 MSSQL 資料庫從 varchar 轉換為 nvarchar。
### manager
管理行中的服器操作:
管理行中的服器操作:
- 命令:
- `shutdown`: 雅地关闭运行中的
- `restart`: 雅地重新启动运行中的程(对于 Windows 服器尚未实现
- `flush-queues`: 刷新行中的程中的
- 选项:
- `--timeout value`: 刷新程的超时时间(默认值: 1m0s
- `--non-blocking`: 设置为 true以在返回之前不等待刷新完成
- `logging`: 整日命令
- `shutdown`: 雅地關閉運行中的
- `restart`: 雅地重新啟動運行中的程(對於 Windows 服器尚未實現
- `flush-queues`: 刷新行中的程中的
- 選項:
- `--timeout value`: 刷新程的超時時間(預設值: 1m0s
- `--non-blocking`: 設定為 true以在返回之前不等待刷新完成
- `logging`: 調整日命令
- 命令:
- `pause`: 停日志记录
- `pause`: 停日誌記錄
- 注意:
- 如果日志级别低于此级别,日志级别将被临时提升 INFO。
- Gitea 在一定程度上缓冲日志,并在超过该点后丢弃日志
- `resume`: 恢复日志记录
- `release-and-reopen`: 使 Gitea 放和重新打开用于日志记录的文件和接(相当于向 Gitea 送 SIGUSR1 信)。
- `remove name`: 除指定的日志记录
- 选项:
- `--group group`, `-g group`: 从中删除子记录器的组(默认为`default`
- `add`: 添加日志记录
- 如果日誌級別低於此級別,日誌級別將被臨時提升 INFO。
- Gitea 在一定程度上緩衝日誌,並在超過該點後丟棄日誌
- `resume`: 恢復日誌記錄
- `release-and-reopen`: 使 Gitea 放和重新打開用於日誌記錄的文件和接(相當於向 Gitea 送 SIGUSR1 信)。
- `remove name`: 除指定的日誌記錄
- 選項:
- `--group group`, `-g group`: 從中刪除子記錄器的組(預設為`default`
- `add`: 添加日誌記錄
- 命令:
- `console`: 添加控制台日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--stderr`: 控制台日志输出到 stderr - 仅适用于控制
- `file`: 添加文件日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--filename value`, `-f value`: 日志记录器的文件名
- `--rotate`, `-r`: 轮转日志
- `--max-size value`, `-s value`: 在轮转之前的最大大小(以字节为单位)
- `--daily`, `-d`: 每天轮转日志
- `--max-days value`, `-D value`: 保留的每日日的最大
- `--compress`, `-z`: 压缩轮转的日
- `--compression-level value`, `-Z value`: 使用的压缩级别
- `conn`: 添加网络连接日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--reconnect-on-message`, `-R`: 对于每个消息重新接主
- `--reconnect`, `-r`: 接中断时重新接主
- `--protocol value`, `-P value`: 设置要使用的协议tcp、unix 或 udp默认为 tcp
- `--address value`, `-a value`: 要接到的主地址和端口(默认为:7020
- `smtp`: 添加 SMTP 日志记录
- 选项:
- `--group value`, `-g value`: 要添加日志记录器的 - 默认为"default"
- `--name value`, `-n value`: 新日志记录器的名 - 默认为模式
- `--level value`, `-l value`: 新日志记录器的日志级别
- `--stacktrace-level value`, `-L value`: 堆栈跟踪日志级别
- `--flags value`, `-F value`: 日志记录器的标志
- `--expression value`, `-e value`: 日志记录器的匹配表
- `--prefix value`, `-p value`: 日志记录器的前
- `--color`: 在日中使用
- `--username value`, `-u value`: 邮件服务器用户名
- `--password value`, `-P value`: 邮件服务器密
- `--host value`, `-H value`: 邮件服务器主机(默认为: 127.0.0.1:25
- `--send-to value`, `-s value`: 要送到的电子邮件地址
- `--subject value`, `-S value`: 发送电子邮件的主题标题
- `processes`: 示 Gitea 程和 Goroutine 信息
- 选项:
- `--flat`: 以平面表格形式显示进程,而不是树形结构
- `--no-system`: 不示系统进
- `--stacktraces`: 显示与进程关联的 Goroutine 的堆栈跟踪
- `--json`: 输出为 JSON 格式
- `--cancel PID`: 向具有 PID 的进程发送取消命令(仅适用于非系统进程)
- `console`: 添加控制檯日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--stderr`: 控制檯日誌輸出到 stderr - 僅適用於控制
- `file`: 添加文件日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--filename value`, `-f value`: 日誌記錄器的文件名
- `--rotate`, `-r`: 輪轉日誌
- `--max-size value`, `-s value`: 在輪轉之前的最大大小(以位元組為單位)
- `--daily`, `-d`: 每天輪轉日誌
- `--max-days value`, `-D value`: 保留的每日日的最大
- `--compress`, `-z`: 壓縮輪轉的日
- `--compression-level value`, `-Z value`: 使用的壓縮級別
- `conn`: 添加網路連接日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--reconnect-on-message`, `-R`: 對於每個消息重新接主
- `--reconnect`, `-r`: 接中斷時重新接主
- `--protocol value`, `-P value`: 設定要使用的協議tcp、unix 或 udp預設為 tcp
- `--address value`, `-a value`: 要接到的主地址和端口(預設為:7020
- `smtp`: 添加 SMTP 日誌記錄
- 選項:
- `--group value`, `-g value`: 要添加日誌記錄器的 - 預設為"default"
- `--name value`, `-n value`: 新日誌記錄器的名 - 預設為模式
- `--level value`, `-l value`: 新日誌記錄器的日誌級別
- `--stacktrace-level value`, `-L value`: 堆棧跟蹤日誌級別
- `--flags value`, `-F value`: 日誌記錄器的標誌
- `--expression value`, `-e value`: 日誌記錄器的匹配表
- `--prefix value`, `-p value`: 日誌記錄器的前
- `--color`: 在日中使用
- `--username value`, `-u value`: 郵件伺服器使用者名稱
- `--password value`, `-P value`: 郵件伺服器密
- `--host value`, `-H value`: 郵件伺服器主機(預設為: 127.0.0.1:25
- `--send-to value`, `-s value`: 要送到的電子電子郵件地址
- `--subject value`, `-S value`: 發送電子郵件的主題標題
- `processes`: 示 Gitea 程和 Goroutine 資訊
- 選項:
- `--flat`: 以平面表格形式顯示進程,而不是樹形結構
- `--no-system`: 不示系統進
- `--stacktraces`: 顯示與進程關聯的 Goroutine 的堆棧跟蹤
- `--json`: 輸出為 JSON 格式
- `--cancel PID`: 向具有 PID 的進程發送取消命令(僅適用於非系統進程)
### dump-repo
`dump-repo` Git/GitHub/Gitea/GitLab 中转储存储库数据
`dump-repo` Git/GitHub/Gitea/GitLab 中轉儲儲存庫資料
- 选项
- `--git_service service`Git 服,可以是 `git``github``gitea``gitlab`。如果 `clone_addr` 可以被识别,则可以忽略此选项
- `--repo_dir dir``-r dir`存储数据的存储库目录路径
- `--clone_addr addr`被克隆的 URL目前可以是 git/github/gitea/gitlab 的 http/https URL。例如https://github.com/lunny/tango.git
- `--auth_username lunny`访问 `clone_addr`用户名
- `--auth_password <password>`访问 `clone_addr` 的密
- `--auth_token <token>`访问 `clone_addr`人令牌。
- `--owner_name lunny`:如果非空,数据将存储在具有所有者名的目中。
- `--repo_name tango`:如果非空,数据将存储在具有存储库名称的目中。
- `--units <units>`:要移的项目,一或多个项目应以逗分隔。允许的项目有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有项目
- 選項
- `--git_service service`Git 服,可以是 `git``github``gitea``gitlab`。如果 `clone_addr` 可以被識別,則可以忽略此選項
- `--repo_dir dir``-r dir`儲存資料的儲存庫目錄路徑
- `--clone_addr addr`被克隆的 URL目前可以是 git/github/gitea/gitlab 的 http/https URL。例如https://github.com/lunny/tango.git
- `--auth_username lunny`訪問 `clone_addr`使用者名稱
- `--auth_password <password>`訪問 `clone_addr` 的密
- `--auth_token <token>`訪問 `clone_addr`人令牌。
- `--owner_name lunny`:如果非空,資料將儲存在具有所有者名的目中。
- `--repo_name tango`:如果非空,資料將儲存在具有儲存庫名稱的目中。
- `--units <units>`:要移的專案,一或多個專案應以逗分隔。允許的專案有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有專案
### restore-repo
`restore-repo` 从磁盘目录中还原存储库数据
`restore-repo` 從磁盤目錄中還原儲存庫資料
- 选项
- `--repo_dir dir``-r dir`还原数据的存储库目录路径
- `--owner_name lunny`原目所有者名
- `--repo_name tango`原目标存储库名称
- `--units <units>`:要原的项目,一或多个项目应以逗分隔。允许的项目有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有项目
- 選項
- `--repo_dir dir``-r dir`還原資料的儲存庫目錄路徑
- `--owner_name lunny`原目所有者名
- `--repo_name tango`原目標儲存庫名稱
- `--units <units>`:要原的專案,一或多個專案應以逗分隔。允許的專案有 wiki, issues, labels, releases, release_assets, milestones, pull_requests, comments。如果空,表示所有專案
### actions generate-runner-token
生成一供 Runner 使用的新令牌,用于向服务器注册
生成一供 Runner 使用的新令牌,用於向伺服器註冊
- 选项
- `--scope {owner}[/{repo}]``-s {owner}[/{repo}]`:限制 Runner 的范围,没有范围表示 Runner 可用所有仓库,但你也可以其限制特定的仓库或所有者。
- 選項
- `--scope {owner}[/{repo}]``-s {owner}[/{repo}]`:限制 Runner 的範圍,沒有範圍表示 Runner 可用所有儲存庫,但你也可以其限制特定的儲存庫或所有者。
注册全局 Runner
註冊全域 Runner
```
gitea actions generate-runner-token
```
注册特定组织的 Runner例如 `org`
註冊特定組織的 Runner例如 `org`
```
gitea actions generate-runner-token -s org
```
注册特定仓库的 Runner例如 `username/test-repo`
註冊特定儲存庫的 Runner例如 `username/test-repo`
```
gitea actions generate-runner-token -s username/test-repo

Some files were not shown because too many files have changed in this diff Show More