mirror of
https://gitea.com/gitea/docs.git
synced 2026-07-22 02:37:42 +00:00
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:
@@ -10,9 +10,9 @@ sidebar_position: 20
|
||||
|
||||
## 要求
|
||||
|
||||
目前 runner 支持兩種運行模式。一種是在 docker 容器中運行,另一種是在主機上運行。如果選擇在 [docker](https://docker.com) 容器中運行作業,建議先 [安裝 docker](https://docs.docker.com/engine/install/) 並確保 docker 守護進程正在運行。
|
||||
目前 runner 支援兩種運行模式。一種是在 docker 容器中運行,另一種是在主機上運行。如果選擇在 [docker](https://docker.com) 容器中運行作業,建議先 [安裝 docker](https://docs.docker.com/engine/install/) 並確保 docker 守護進程正在運行。
|
||||
|
||||
其他與 Docker API 兼容的 OCI 容器引擎也應該可以工作,但未經測試。
|
||||
其他與 Docker API 相容的 OCI 容器引擎也應該可以工作,但未經測試。
|
||||
|
||||
但是,如果您確定只想在主機上直接運行作業,則不需要 docker。
|
||||
|
||||
@@ -26,52 +26,52 @@ sidebar_position: 20
|
||||
但是,如果您想使用最新的夜間構建,可以從 [下載頁面](https://dl.gitea.com/act_runner/) 下載。
|
||||
|
||||
下載二進制文件時,請確保下載了適合您平台的正確文件。
|
||||
如果您使用的是類 Unix 操作系統,可以通過運行以下命令進行檢查。
|
||||
如果您使用的是類 Unix 操作系統,可以透過運行以下命令進行檢查。
|
||||
|
||||
```bash
|
||||
chmod +x act_runner
|
||||
./act_runner --version
|
||||
```
|
||||
|
||||
如果看到版本信息,則表示您已下載了正確的二進制文件。
|
||||
如果看到版本資訊,則表示您已下載了正確的二進制文件。
|
||||
|
||||
### 獲取註冊令牌
|
||||
|
||||
您可以在不同級別註冊 runner,它可以是:
|
||||
|
||||
- 實例級別:runner 將為實例中的所有倉庫運行作業。
|
||||
- 組織級別:runner 將為組織中的所有倉庫運行作業。
|
||||
- 倉庫級別:runner 將為其所屬的倉庫運行作業。
|
||||
- 實例級別:runner 將為實例中的所有儲存庫運行作業。
|
||||
- 組織級別:runner 將為組織中的所有儲存庫運行作業。
|
||||
- 儲存庫級別:runner 將為其所屬的儲存庫運行作業。
|
||||
|
||||
請注意,即使倉庫有自己的倉庫級別 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`。
|
||||
|
||||
註冊令牌也可以從 gitea [命令行界面](../../administration/command-line.md#actions-generate-runner-token) 獲取:
|
||||
註冊令牌也可以從 gitea [命令行介面](/administration/command-line#actions-generate-runner-token) 獲取:
|
||||
|
||||
```
|
||||
gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
```
|
||||
|
||||
令牌在註銷並使用 web 界面中的令牌重置鏈接替換為新令牌之前,對註冊多個 runner 有效。
|
||||
令牌在註銷並使用 Web 介面中的令牌重置鏈接替換為新令牌之前,對註冊多個 runner 有效。
|
||||
|
||||
### 配置
|
||||
### 設定
|
||||
|
||||
配置是通過配置文件完成的。它是可選的,當未指定配置文件時,將使用默認配置。您可以通過運行以下命令生成配置文件:
|
||||
設定是通過設定文件完成的。它是可選的,當未指定設定文件時,將使用預設設定。您可以透過運行以下命令生成設定文件:
|
||||
|
||||
```bash
|
||||
./act_runner generate-config
|
||||
```
|
||||
|
||||
默認配置是安全的,可以直接使用。
|
||||
預設設定是安全的,可以直接使用。
|
||||
|
||||
```bash
|
||||
./act_runner generate-config > config.yaml
|
||||
@@ -82,24 +82,24 @@ gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
|
||||
在運行 act runner 之前需要註冊,因為 runner 需要知道從哪裡獲取作業。這對於 Gitea 實例識別 runner 也很重要。
|
||||
|
||||
如果使用二進制包安裝,可以通過運行以下命令註冊 act runner。
|
||||
如果使用二進制包安裝,可以透過運行以下命令註冊 act runner。
|
||||
|
||||
```bash
|
||||
./act_runner register
|
||||
```
|
||||
|
||||
或者,您可以使用 `--config` 選項指定前面提到的配置文件。
|
||||
或者,您可以使用 `--config` 選項指定前面提到的設定文件。
|
||||
|
||||
```bash
|
||||
./act_runner --config config.yaml register
|
||||
```
|
||||
|
||||
您將被要求逐步輸入註冊信息,包括:
|
||||
您將被要求逐步輸入註冊資訊,包括:
|
||||
|
||||
- Gitea 實例 URL,例如 `https://gitea.com/` 或 `http://192.168.8.8:3000/`。
|
||||
- 註冊令牌。
|
||||
- runner 名稱,可選。如果留空,將使用主機名。
|
||||
- runner 標籤,可選。如果留空,將使用默認標籤。
|
||||
- runner 標籤,可選。如果留空,將使用預設標籤。
|
||||
|
||||
您可能會對 runner 標籤感到困惑,稍後將解釋。
|
||||
|
||||
@@ -110,16 +110,16 @@ gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
```
|
||||
|
||||
註冊 runner 後,您可以在當前目錄中找到一個名為 `.runner` 的新文件。
|
||||
該文件存儲註冊信息。
|
||||
該文件儲存註冊資訊。
|
||||
請不要手動編輯它。
|
||||
如果該文件丟失或損壞,您可以簡單地刪除它並重新註冊。
|
||||
|
||||
如果您想將註冊信息存儲在其他位置,可以在配置文件中指定,
|
||||
如果您想將註冊資訊儲存在其他位置,可以在設定文件中指定,
|
||||
並且不要忘記指定 `--config` 選項。
|
||||
|
||||
### 在命令行中啟動 runner
|
||||
|
||||
註冊 runner 後,可以通過運行以下命令運行它:
|
||||
註冊 runner 後,可以透過運行以下命令運行它:
|
||||
|
||||
```shell
|
||||
./act_runner daemon
|
||||
@@ -135,7 +135,7 @@ runner 將從 Gitea 實例中獲取作業並自動運行它們。
|
||||
|
||||
### 使用 Systemd 啟動 runner
|
||||
|
||||
也可以將 act-runner 作為 [systemd](https://en.wikipedia.org/wiki/Systemd) 服務運行。在系統上創建一個非特權的 `act_runner` 用戶,並在 `/etc/systemd/system/act_runner.service` 中創建以下文件。`ExecStart` 和 `WorkingDirectory` 中的路徑可能需要根據您安裝 `act_runner` 二進制文件、其配置文件和 `act_runner` 用戶的主目錄進行調整。
|
||||
也可以將 act-runner 作為 [systemd](https://en.wikipedia.org/wiki/Systemd) 服務運行。在系統上建立一個非特權的 `act_runner` 使用者,並在 `/etc/systemd/system/act_runner.service` 中建立以下文件。`ExecStart` 和 `WorkingDirectory` 中的路徑可能需要根據您安裝 `act_runner` 二進制文件、其設定文件和 `act_runner` 使用者的主目錄進行調整。
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
@@ -165,11 +165,11 @@ sudo systemctl daemon-reload
|
||||
sudo systemctl enable act_runner --now
|
||||
```
|
||||
|
||||
如果使用 Docker,應在啟動服務之前將 `act_runner` 用戶添加到 `docker` 組。請記住,這實際上給了 `act_runner` 對系統的 root 訪問權限 [[1]](https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。
|
||||
如果使用 Docker,應在啟動服務之前將 `act_runner` 使用者添加到 `docker` 組。請記住,這實際上給了 `act_runner` 對系統的 root 存取權限 [[1]](https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。
|
||||
|
||||
### 使用 LaunchDaemon(macOS) 啟動 runner
|
||||
|
||||
Mac 使用 `launchd` 代替 systemd 註冊守護進程。默認情況下,守護進程以 root 用戶身份運行,因此如果需要,可以通過 `dscl` 工具創建一個非特權的 `_act_runner` 用戶。然後應在 `/Library/LaunchDaemon/com.gitea.act_runner.plist` 目錄中創建以下文件。`WorkingDirectory`、`ProgramArguments`、`StandardOutPath`、`StandardErrPath` 和 `HOME` 環境變量的路徑可能需要更新以反映您的安裝。此外,任何不在示例 `PATH` 中的可執行文件都需要顯式包含,並且不會從現有配置中繼承。
|
||||
Mac 使用 `launchd` 代替 systemd 註冊守護進程。預設情況下,守護進程以 root 使用者身份運行,因此如果需要,可以透過 `dscl` 工具建立一個非特權的 `_act_runner` 使用者。然後應在 `/Library/LaunchDaemon/com.gitea.act_runner.plist` 目錄中建立以下文件。`WorkingDirectory`、`ProgramArguments`、`StandardOutPath`、`StandardErrPath` 和 `HOME` 環境變量的路徑可能需要更新以反映您的安裝。此外,任何不在範例 `PATH` 中的可執行文件都需要顯式包含,並且不會從現有設定中繼承。
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -214,7 +214,7 @@ Mac 使用 `launchd` 代替 systemd 註冊守護進程。默認情況下,守
|
||||
sudo launchctl load /Library/LaunchDaemon/com.gitea.act_runner.plist
|
||||
```
|
||||
|
||||
您還可以設置 Linux 服務或 Windows 服務,以便 runner 自動運行。
|
||||
您還可以設定 Linux 服務或 Windows 服務,以便 runner 自動運行。
|
||||
|
||||
## 使用 docker 映像安裝
|
||||
|
||||
@@ -233,15 +233,15 @@ docker pull docker.io/gitea/act_runner:latest # 用於最新的穩定版本
|
||||
docker pull docker.io/gitea/act_runner:nightly # 用於最新的夜間構建
|
||||
```
|
||||
|
||||
### 配置
|
||||
### 設定
|
||||
|
||||
配置是可選的,但您也可以使用 docker 生成配置文件:
|
||||
設定是可選的,但您也可以使用 docker 生成設定文件:
|
||||
|
||||
```bash
|
||||
docker run --entrypoint="" --rm -it docker.io/gitea/act_runner:latest act_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 ...
|
||||
@@ -252,7 +252,7 @@ docker run -v $PWD/config.yaml:/config.yaml -e CONFIG_FILE=/config.yaml ...
|
||||
|
||||
### 使用 docker 啟動 runner
|
||||
|
||||
如果您使用的是 docker 映像,行為會略有不同。在這種情況下,註冊和運行結合為一步,因此您需要在運行 act runner 時指定註冊信息。
|
||||
如果您使用的是 docker 映像,行為會略有不同。在這種情況下,註冊和運行結合為一步,因此您需要在運行 act runner 時指定註冊資訊。
|
||||
|
||||
使用 docker run 快速啟動如下。您需要從上述步驟中獲取 `<registration_token>`,並為 `<runner_name>` 提供一個特殊的唯一名稱
|
||||
|
||||
@@ -265,7 +265,7 @@ docker run \
|
||||
-d docker.io/gitea/act_runner:nightly
|
||||
```
|
||||
|
||||
有更多參數可以配置它。
|
||||
有更多參數可以設定它。
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
@@ -288,7 +288,7 @@ docker run \
|
||||
|
||||
### 使用 docker compose 啟動 runner
|
||||
|
||||
您還可以使用以下 `docker-compose.yml` 設置 runner:
|
||||
您還可以使用以下 `docker-compose.yml` 設定 runner:
|
||||
|
||||
```yml
|
||||
version: "3.8"
|
||||
@@ -309,23 +309,23 @@ services:
|
||||
|
||||
使用 docker 時,不需要進入容器並手動運行 `./act_runner daemon` 命令。容器成功啟動後,它將顯示為您的 Gitea 實例中的活動 runner。
|
||||
|
||||
## 高級配置
|
||||
## 高級設定
|
||||
|
||||
### 使用 docker 映像啟動 runner 時配置緩存
|
||||
### 使用 docker 映像啟動 runner 時設定緩存
|
||||
|
||||
如果您不打算在工作流中使用 `actions/cache`,可以忽略此部分。
|
||||
|
||||
如果在沒有任何額外配置的情況下使用 `actions/cache`,它將返回以下錯誤:
|
||||
如果在沒有任何額外設定的情況下使用 `actions/cache`,它將返回以下錯誤:
|
||||
|
||||
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT IP:PORT
|
||||
|
||||
發生此錯誤是因為 runner 容器和作業容器位於不同的網絡上,因此作業容器無法訪問 runner 容器。
|
||||
發生此錯誤是因為 runner 容器和作業容器位於不同的網路上,因此作業容器無法訪問 runner 容器。
|
||||
|
||||
因此,必須配置緩存操作以確保其正常運行。請按照以下步驟操作:
|
||||
因此,必須設定緩存操作以確保其正常運行。請按照以下步驟操作:
|
||||
|
||||
- 1.獲取運行 runner 容器的主機的 LAN IP 地址。
|
||||
- 2.查找運行 runner 容器的主機上的可用端口號。
|
||||
- 3.在配置文件中配置以下設置:
|
||||
- 3.在設定文件中設定以下設定:
|
||||
|
||||
```yaml
|
||||
cache:
|
||||
@@ -350,17 +350,17 @@ docker run \
|
||||
|
||||
runner 的標籤用於確定 runner 可以運行哪些作業以及如何運行它們。
|
||||
|
||||
默認標籤是 `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` 的作業,並且作業將在 docker 容器中運行,映像為 `node:16-bullseye`。
|
||||
|
||||
如果默認映像不足以滿足您的需求,並且您有足夠的磁盤空間使用更好更大的映像,可以將其更改為 `ubuntu-22.04:docker://<the image you like>`。
|
||||
如果預設映像不足以滿足您的需求,並且您有足夠的磁盤空間使用更好更大的映像,可以將其更改為 `ubuntu-22.04:docker://<the image you like>`。
|
||||
您可以在 [act images](https://github.com/nektos/act/blob/master/IMAGES.md) 上找到更多有用的映像。
|
||||
|
||||
如果您想在主機上直接運行作業,可以將其更改為 `ubuntu-22.04:host` 或僅 `ubuntu-22.04`,`:host` 是可選的。
|
||||
但是,我們建議您使用一個特殊的名稱,如 `linux_amd64:host` 或 `windows:host` 以避免誤用。
|
||||
|
||||
從 Gitea 1.21 開始,您可以通過修改 runner 配置文件中的 `runners.labels` 來更改標籤(如果您沒有配置文件,請參考 [配置教程](#configuration))。
|
||||
從 Gitea 1.21 開始,您可以透過修改 runner 設定文件中的 `runners.labels` 來更改標籤(如果您沒有設定文件,請參考 設定教學)。
|
||||
重新啟動 runner 後,它將使用這些新標籤,即通過調用 `./act_runner daemon --config config.yaml`。
|
||||
|
||||
@@ -6,12 +6,12 @@ sidebar_position: 110
|
||||
|
||||
# 徽章
|
||||
|
||||
Gitea 內置了徽章系統,允許您在其他地方顯示倉庫的狀態。您可以使用以下徽章:
|
||||
Gitea 內置了徽章系統,允許您在其他地方顯示儲存庫的狀態。您可以使用以下徽章:
|
||||
|
||||
## 工作流程徽章
|
||||
|
||||
Gitea Actions 工作流程徽章是一個顯示最新工作流程運行狀態的徽章。
|
||||
它設計為與 [GitHub Actions 工作流程徽章](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge) 兼容。
|
||||
它設計為與 [GitHub Actions 工作流程徽章](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge) 相容。
|
||||
|
||||
您可以使用以下 URL 獲取徽章:
|
||||
|
||||
@@ -19,8 +19,8 @@ Gitea Actions 工作流程徽章是一個顯示最新工作流程運行狀態的
|
||||
https://your-gitea-instance.com/{owner}/{repo}/actions/workflows/{workflow_file}/badge.svg?branch={branch}&event={event}
|
||||
```
|
||||
|
||||
- `{owner}`: 倉庫的所有者。
|
||||
- `{repo}`: 倉庫的名稱。
|
||||
- `{owner}`: 儲存庫的所有者。
|
||||
- `{repo}`: 儲存庫的名稱。
|
||||
- `{workflow_file}`: 工作流程文件的名稱。
|
||||
- `{branch}`: 可選。工作流程的分支。默認為倉庫的默認分支。
|
||||
- `{event}`: 可選。工作流程的事件。默認為無。
|
||||
- `{branch}`: 可選。工作流程的分支。預設為儲存庫的預設分支。
|
||||
- `{event}`: 可選。工作流程的事件。預設為無。
|
||||
|
||||
@@ -6,25 +6,25 @@ sidebar_position: 120
|
||||
|
||||
# 與 GitHub Actions 的比較
|
||||
|
||||
儘管 Gitea Actions 設計為與 GitHub Actions 兼容,但它們之間仍存在一些差異。
|
||||
儘管 Gitea Actions 設計為與 GitHub Actions 相容,但它們之間仍存在一些差異。
|
||||
|
||||
## 附加功能
|
||||
|
||||
### 絕對操作 URL
|
||||
|
||||
Gitea Actions 支持通過絕對 URL 定義操作,這意味著您可以使用來自任何 git 倉庫的操作。
|
||||
Gitea Actions 支援通過絕對 URL 定義操作,這意味著您可以使用來自任何 git 儲存庫的操作。
|
||||
例如 `uses: https://github.com/actions/checkout@v4` 或 `uses: http://your_gitea.com/owner/repo@branch`。
|
||||
|
||||
### 用 Go 編寫的操作
|
||||
|
||||
Gitea Actions 支持用 Go 編寫操作。
|
||||
請參閱 [創建 Go 操作](https://blog.gitea.com/creating-go-actions/)。
|
||||
Gitea Actions 支援用 Go 編寫操作。
|
||||
請參閱 [建立 Go 操作](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`
|
||||
|
||||
@@ -68,58 +68,58 @@ GitHub Actions 不支持這一點。https://docs.github.com/en/actions/using-wor
|
||||
|
||||
請參閱 [GitHub Actions 的工作流程語法](https://docs.github.com/en/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]`。
|
||||
|
||||
## 缺少的功能
|
||||
|
||||
### 包倉庫授權
|
||||
### 包儲存庫授權
|
||||
|
||||
在倉庫內運行的作業的 `GITEA_TOKEN` 應該能夠發布到相關的包倉庫(即上傳 OCI 映像)。請參閱 [自動令牌身份驗證](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) 中的“包”範圍的“默認訪問”。
|
||||
在儲存庫內運行的作業的 `GITEA_TOKEN` 應該能夠發布到相關的包儲存庫(即上傳 OCI 映像)。請參閱 [自動令牌身份驗證](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) 中的“包”範圍的“預設訪問”。
|
||||
|
||||
目前 Gitea Actions 尚未實現此功能。Gitea Actions 的一個解決方法是使用個人訪問令牌(PAT)。請參閱此 [github 問題和評論](https://github.com/go-gitea/gitea/issues/23642#issuecomment-2119876692) 以跟踪此功能。
|
||||
目前 Gitea Actions 尚未實現此功能。Gitea Actions 的一個解決方法是使用個人存取權杖(PAT)。請參閱此 [github 問題和評論](https://github.com/go-gitea/gitea/issues/23642#issuecomment-2119876692) 以跟蹤此功能。
|
||||
|
||||
### 問題匹配器
|
||||
|
||||
問題匹配器是一種掃描操作輸出以查找指定正則表達式模式並在 UI 中突出顯示該信息的方法。
|
||||
問題匹配器是一種掃描操作輸出以查找指定正則表達式模式並在 UI 中突出顯示該資訊的方法。
|
||||
請參閱 [問題匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
|
||||
|
||||
目前 Gitea Actions 忽略它。
|
||||
|
||||
### 創建錯誤註釋
|
||||
### 建立錯誤註釋
|
||||
|
||||
請參閱 [為錯誤創建註釋](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)
|
||||
請參閱 [為錯誤建立註釋](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)
|
||||
|
||||
目前 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 功能
|
||||
|
||||
### 預處理和後處理步驟
|
||||
|
||||
預處理和後處理步驟在作業日誌用戶界面中沒有自己的部分。
|
||||
預處理和後處理步驟在作業日誌使用者介面中沒有自己的部分。
|
||||
|
||||
### 服務步驟
|
||||
|
||||
服務步驟在作業日誌用戶界面中沒有自己的部分。
|
||||
服務步驟在作業日誌使用者介面中沒有自己的部分。
|
||||
|
||||
## 不同的行為
|
||||
|
||||
### 下載操作
|
||||
|
||||
以前(1.21.0 之前),`[actions].DEFAULT_ACTIONS_URL` 默認為 `https://gitea.com`。
|
||||
以前(1.21.0 之前),`[actions].DEFAULT_ACTIONS_URL` 預設為 `https://gitea.com`。
|
||||
我們已經限制了此選項僅允許兩個值(`github` 和 `self`)。
|
||||
當設置為 `github` 時,新的默認值,Gitea 將從 `https://github.com` 下載非完全限定的操作。
|
||||
例如,如果您使用 `uses: actions/checkout@v4`,它將從 `https://github.com/actions/checkout.git` 下載 checkout 倉庫。
|
||||
當設定為 `github` 時,新的預設值,Gitea 將從 `https://github.com` 下載非完全限定的操作。
|
||||
例如,如果您使用 `uses: actions/checkout@v4`,它將從 `https://github.com/actions/checkout.git` 下載 checkout 儲存庫。
|
||||
|
||||
如果您想從其他 git 託管服務器下載操作,可以使用絕對 URL,例如 `uses: https://gitea.com/actions/checkout@v4`。
|
||||
如果您想從其他 git 託管伺服器下載操作,可以使用絕對 URL,例如 `uses: https://gitea.com/actions/checkout@v4`。
|
||||
|
||||
如果您的 Gitea 實例位於內部網或受限區域,您可以將 URL 設置為 `self`,以便默認僅從您自己的實例下載操作。
|
||||
如果您的 Gitea 實例位於內部網或受限區域,您可以將 URL 設定為 `self`,以便預設僅從您自己的實例下載操作。
|
||||
當然,您仍然可以在工作流程中使用絕對 URL。
|
||||
|
||||
有關 `[actions].DEFAULT_ACTIONS_URL` 配置的更多詳細信息,請參閱 [配置備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
|
||||
有關 `[actions].DEFAULT_ACTIONS_URL` 設定的更多詳細資訊,請參閱 [設定備忘單](../../administration/config-cheat-sheet.md)。
|
||||
|
||||
### 上下文可用性
|
||||
|
||||
|
||||
@@ -6,78 +6,78 @@ sidebar_position: 140
|
||||
|
||||
# Gitea Actions 的設計
|
||||
|
||||
Gitea Actions 有多個組件。本文件將分別描述它們。
|
||||
Gitea Actions 有多個元件。本文件將分別描述它們。
|
||||
|
||||
## Act
|
||||
|
||||
[nektos/act](https://github.com/nektos/act) 項目是一個出色的工具,允許您在本地運行 GitHub Actions。
|
||||
[nektos/act](https://github.com/nektos/act) 專案是一個出色的工具,允許您在本地運行 GitHub Actions。
|
||||
我們受此啟發,想知道是否可以為 Gitea 運行操作。
|
||||
|
||||
然而,雖然 [nektos/act](https://github.com/nektos/act) 被設計為命令行工具,但我們實際上需要的是一個專門為 Gitea 進行修改的 Go 庫。
|
||||
所以我們將其分叉為 [gitea/act](https://gitea.com/gitea/act)。
|
||||
|
||||
這是一個軟分叉,將定期跟隨上游。
|
||||
儘管添加了一些自定義提交,但我們將盡量避免更改太多原始代碼。
|
||||
儘管添加了一些自訂提交,但我們將盡量避免更改太多原始程式碼。
|
||||
|
||||
分叉的 act 只是 Gitea 特定用法的 shim 或適配器。
|
||||
已經進行了一些額外的提交,例如:
|
||||
|
||||
- 將執行日誌輸出到 logger 鉤子,以便可以報告給 Gitea
|
||||
- 禁用 GraphQL URL,因為 Gitea 不支持它
|
||||
- 禁用 GraphQL URL,因為 Gitea 不支援它
|
||||
- 為每個作業啟動一個新容器,而不是重用,以確保隔離。
|
||||
|
||||
這些修改沒有理由合併到上游。
|
||||
如果用戶只想在本地運行受信任的操作,這些修改沒有意義。
|
||||
如果使用者只想在本地運行受信任的操作,這些修改沒有意義。
|
||||
|
||||
然而,未來可能會有重疊,例如兩個項目都需要的錯誤修復或新功能。
|
||||
在這些情況下,我們將把更改貢獻回上游倉庫。
|
||||
然而,未來可能會有重疊,例如兩個專案都需要的錯誤修復或新功能。
|
||||
在這些情況下,我們將把更改貢獻回上游儲存庫。
|
||||
|
||||
## Act runner
|
||||
|
||||
Gitea 的 runner 被稱為 act runner,因為它基於 act。
|
||||
|
||||
像其他 CI runner 一樣,我們將其設計為 Gitea 的外部部分,這意味著它應該在與 Gitea 不同的服務器上運行。
|
||||
像其他 CI runner 一樣,我們將其設計為 Gitea 的外部部分,這意味著它應該在與 Gitea 不同的伺服器上運行。
|
||||
|
||||
為了確保 runner 連接到正確的 Gitea 實例,我們需要使用令牌註冊它。
|
||||
此外,runner 將向 Gitea 介紹自己並通過報告其標籤來聲明它可以運行的作業類型。
|
||||
|
||||
前面提到過,工作流程文件中的 `runs-on: ubuntu-latest` 意味著作業將在具有 `ubuntu-latest` 標籤的 runner 上運行。
|
||||
但是 runner 如何知道運行 `ubuntu-latest`?答案在於將標籤映射到環境。
|
||||
這就是為什麼在註冊期間添加自定義標籤時,您需要輸入一些複雜的內容,如 `my_custom_label:docker://centos:7`。
|
||||
這就是為什麼在註冊期間添加自訂標籤時,您需要輸入一些複雜的內容,如 `my_custom_label:docker://centos:7`。
|
||||
這意味著 runner 可以接受需要在 `my_custom_label` 上運行的作業,並將其通過 docker 容器運行,映像為 `centos:7`。
|
||||
|
||||
然而,docker 並不是唯一的選擇。
|
||||
act 還支持直接在主機上運行作業。
|
||||
act 還支援直接在主機上運行作業。
|
||||
這是通過標籤如 `linux_arm:host` 實現的。
|
||||
這個標籤表示 runner 可以接受需要在 `linux_arm` 上運行的作業,並直接在主機上運行它。
|
||||
|
||||
標籤的設計遵循格式 `label[:schema[:args]]`。
|
||||
如果省略 schema,則默認為 `host`。
|
||||
如果省略 schema,則預設為 `host`。
|
||||
所以,
|
||||
|
||||
- `my_custom_label:docker://node:18`: 使用 `node:18` Docker 映像運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label:host`: 直接在主機上運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label`: 與 `my_custom_label:host` 相同。
|
||||
- `my_custom_label:vm:ubuntu-latest`: (僅示例,未實現)使用 `ubuntu-latest` ISO 的虛擬機運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label:vm:ubuntu-latest`: (僅範例,未實現)使用 `ubuntu-latest` ISO 的虛擬機運行標籤為 `my_custom_label` 的作業。
|
||||
|
||||
## 通信協議
|
||||
|
||||
由於 act runner 是 Gitea 的獨立部分,我們需要一個協議來讓 runner 與 Gitea 實例通信。
|
||||
然而,我們認為讓 Gitea 監聽一個新端口不是一個好主意。
|
||||
相反,我們希望重用 HTTP 端口,這意味著我們需要一個與 HTTP 兼容的協議。
|
||||
相反,我們希望重用 HTTP 端口,這意味著我們需要一個與 HTTP 相容的協議。
|
||||
我們選擇使用 gRPC over HTTP。
|
||||
|
||||
我們使用 [actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 來將它們連接起來。
|
||||
有關 gRPC 的更多信息可以在 [其網站](https://grpc.io/) 上找到。
|
||||
有關 gRPC 的更多資訊可以在 [其網站](https://grpc.io/) 上找到。
|
||||
|
||||
## 網絡架構
|
||||
## 網路架構
|
||||
|
||||
讓我們來看看整體網絡架構。
|
||||
讓我們來看看整體網路架構。
|
||||
這將幫助您排除一些問題,並解釋為什麼用 Gitea 實例的回環地址註冊 runner 是個壞主意。
|
||||
|
||||

|
||||
|
||||
圖片中標記了四個網絡連接,箭頭的方向表示建立連接的方向。
|
||||
圖片中標記了四個網路連接,箭頭的方向表示建立連接的方向。
|
||||
|
||||
### 連接 1,act runner 到 Gitea 實例
|
||||
|
||||
@@ -85,33 +85,33 @@ act runner 必須能夠連接到 Gitea 以接收任務並發送回執行結果
|
||||
|
||||
### 連接 2,作業容器到 Gitea 實例
|
||||
|
||||
作業容器與 runner 有不同的網絡命名空間,即使它們在同一台機器上。
|
||||
如果工作流程中有 `actions/checkout@v4`,它們需要連接到 Gitea 以獲取代碼。
|
||||
運行某些作業並不總是需要獲取代碼,但在大多數情況下是必需的。
|
||||
作業容器與 runner 有不同的網路命名空間,即使它們在同一臺機器上。
|
||||
如果工作流程中有 `actions/checkout@v4`,它們需要連接到 Gitea 以獲取程式碼。
|
||||
運行某些作業並不總是需要獲取程式碼,但在大多數情況下是必需的。
|
||||
|
||||
如果您使用回環地址註冊 runner,當它在同一台機器上時,runner 可以連接到 Gitea。
|
||||
但是,如果作業容器嘗試從 localhost 獲取代碼,則會失敗,因為 Gitea 不在同一容器中。
|
||||
如果您使用回環地址註冊 runner,當它在同一臺機器上時,runner 可以連接到 Gitea。
|
||||
但是,如果作業容器嘗試從 localhost 獲取程式碼,則會失敗,因為 Gitea 不在同一容器中。
|
||||
|
||||
### 連接 3,act runner 到互聯網
|
||||
|
||||
當您使用一些操作如 `actions/checkout@v4` 時,act runner 會下載腳本,而不是作業容器。
|
||||
默認情況下,它從 [github.com](http://github.com/) 下載,因此需要訪問互聯網。如果您將 `DEFAULT_ACTIONS_URL` 配置為 `self`,則它將默認從您的 Gitea 實例下載。然後在下載操作本身時不會連接到互聯網。
|
||||
它還默認從 Docker Hub 下載一些 docker 映像,這也需要訪問互聯網。
|
||||
預設情況下,它從 [github.com](http://github.com/) 下載,因此需要訪問互聯網。如果您將 `DEFAULT_ACTIONS_URL` 設定為 `self`,則它將預設從您的 Gitea 實例下載。然後在下載操作本身時不會連接到互聯網。
|
||||
它還預設從 Docker Hub 下載一些 docker 映像,這也需要訪問互聯網。
|
||||
|
||||
然而,訪問互聯網並不是絕對必要的。
|
||||
您可以配置您的 Gitea 實例從您的內聯設施中獲取操作或映像。
|
||||
您可以設定您的 Gitea 實例從您的內聯設施中獲取操作或映像。
|
||||
|
||||
事實上,您的 Gitea 實例可以同時作為操作市場和映像註冊表。
|
||||
您可以將操作倉庫從 GitHub 鏡像到您的 Gitea 實例,並正常使用它們。
|
||||
您可以將操作儲存庫從 GitHub 鏡像到您的 Gitea 實例,並正常使用它們。
|
||||
而 [Gitea 容器註冊表](usage/packages/container.md) 可以用作 Docker 映像註冊表。
|
||||
|
||||
### 連接 4,作業容器到互聯網
|
||||
|
||||
當使用如 `actions/setup-go@v5` 的操作時,可能需要從互聯網下載資源以在作業容器中設置 Go 語言環境。
|
||||
當使用如 `actions/setup-go@v5` 的操作時,可能需要從互聯網下載資源以在作業容器中設定 Go 語言環境。
|
||||
因此,訪問互聯網是這些操作成功完成所必需的。
|
||||
|
||||
然而,這也是可選的。
|
||||
您可以使用自己的自定義操作來避免依賴互聯網訪問,或者您可以使用打包的 Docker 映像來運行已安裝所有依賴項的作業。
|
||||
您可以使用自己的自訂操作來避免依賴互聯網訪問,或者您可以使用打包的 Docker 映像來運行已安裝所有依賴項的作業。
|
||||
|
||||
## 總結
|
||||
|
||||
@@ -119,4 +119,4 @@ act runner 必須能夠連接到 Gitea 以接收任務並發送回執行結果
|
||||
訪問互聯網是可選的,但沒有它將需要一些額外的工作。
|
||||
換句話說:runner 最好能夠自己查詢互聯網,但您不需要將其暴露在互聯網上(無論是入站還是出站)。
|
||||
|
||||
如果您在使用 Gitea Actions 時遇到任何網絡問題,希望上圖可以幫助您排除它們。
|
||||
如果您在使用 Gitea Actions 時遇到任何網路問題,希望上圖可以幫助您排除它們。
|
||||
|
||||
@@ -8,9 +8,9 @@ sidebar_position: 200
|
||||
|
||||
這頁包含了一些關於 Gitea Actions 的常見問題和解答。
|
||||
|
||||
## 是否可以預設禁用新倉庫的 Actions?
|
||||
## 是否可以預設禁用新儲存庫的 Actions?
|
||||
|
||||
可以,當你為實例啟用 Actions 時,你可以選擇預設為所有新倉庫啟用 `actions` 單元。
|
||||
可以,當你為實例啟用 Actions 時,你可以選擇預設為所有新儲存庫啟用 `actions` 單元。
|
||||
|
||||
```ini
|
||||
[repository]
|
||||
@@ -21,13 +21,13 @@ DEFAULT_REPO_UNITS = ...,repo.actions
|
||||
## 我們應該在工作流程文件中使用 `${{ github.xyz }}` 還是 `${{ gitea.xyz }}`?
|
||||
|
||||
你可以使用 `github.xyz`,Gitea 也能正常運作。
|
||||
如前所述,Gitea Actions 設計上與 GitHub Actions 兼容。
|
||||
如前所述,Gitea Actions 設計上與 GitHub Actions 相容。
|
||||
然而,我們建議使用 `gitea.xyz`,以防 Gitea 添加了 GitHub 沒有的功能,避免在工作流程文件中出現不同種類的 secrets(而且你是在 Gitea 上使用這個工作流程,而不是 GitHub)。
|
||||
不過,這完全是可選的,因為目前兩者的效果相同。
|
||||
|
||||
## 使用 `actions/checkout@v4` 等 actions 時,runner 會下載腳本到哪裡?
|
||||
|
||||
在 GitHub 上有成千上萬的 [actions 腳本](https://github.com/marketplace?type=actions),當你寫 `uses: actions/checkout@v4` 時,它會默認從 [github.com/actions/checkout](http://github.com/actions/checkout) 下載腳本。
|
||||
在 GitHub 上有成千上萬的 [actions 腳本](https://github.com/marketplace?type=actions),當你寫 `uses: actions/checkout@v4` 時,它會預設從 [github.com/actions/checkout](http://github.com/actions/checkout) 下載腳本。
|
||||
但如果你想從其他地方(如 gitea.com)而不是 GitHub 使用 actions 怎麼辦?
|
||||
|
||||
好消息是你可以指定 URL 前綴來從任何地方使用 actions。
|
||||
@@ -40,26 +40,26 @@ DEFAULT_REPO_UNITS = ...,repo.actions
|
||||
|
||||
注意,`https://` 或 `http://` 前綴是必要的!
|
||||
|
||||
這是與 GitHub Actions 的一個區別,後者僅支持來自 GitHub 的 actions 腳本。
|
||||
但這應該允許用戶在運行 Actions 時有更多的靈活性。
|
||||
這是與 GitHub Actions 的一個區別,後者僅支援來自 GitHub 的 actions 腳本。
|
||||
但這應該允許使用者在運行 Actions 時有更多的靈活性。
|
||||
|
||||
另外,如果你希望你的 runners 默認從你自己的 Gitea 實例下載 actions,你可以通過設置 `[actions].DEFAULT_ACTIONS_URL` 來配置。
|
||||
參見 [配置備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
|
||||
另外,如果你希望你的 runners 預設從你自己的 Gitea 實例下載 actions,你可以透過設定 `[actions].DEFAULT_ACTIONS_URL` 來設定。
|
||||
參見 [設定備忘單](../../administration/config-cheat-sheet.md)。
|
||||
|
||||
## 如何限制 runners 的權限?
|
||||
|
||||
Runners 只具有連接到你的 Gitea 實例的權限。
|
||||
當任何 runner 接收到一個要運行的任務時,它將臨時獲得與該任務相關的倉庫的有限權限。
|
||||
如果你想給 runner 更多的權限,允許它訪問更多的私有倉庫或外部系統,你可以傳遞 [secrets](usage/actions/secrets.md) 給它。
|
||||
當任何 runner 接收到一個要運行的任務時,它將臨時獲得與該任務相關的儲存庫的有限權限。
|
||||
如果你想給 runner 更多的權限,允許它訪問更多的私有儲存庫或外部系統,你可以傳遞 [secrets](usage/actions/secrets.md) 給它。
|
||||
|
||||
對 Actions 進行精細的權限控制是一項複雜的工作。
|
||||
未來,我們將為 Gitea 添加更多選項,使其更具可配置性,例如允許更多的寫入訪問倉庫或讀取同一組織中所有倉庫的訪問權限。
|
||||
未來,我們將為 Gitea 添加更多選項,使其更具可設定性,例如允許更多的寫入訪問儲存庫或讀取同一組織中所有儲存庫的存取權限。
|
||||
|
||||
## 如何避免被黑客攻擊?
|
||||
|
||||
有兩種類型的可能攻擊:未知的 runner 竊取你的倉庫中的代碼或 secrets,或惡意腳本控制你的 runner。
|
||||
有兩種類型的可能攻擊:未知的 runner 竊取你的儲存庫中的程式碼或 secrets,或惡意腳本控制你的 runner。
|
||||
|
||||
避免前者意味著不允許你不認識的人為你的倉庫、組織或實例註冊 runners。
|
||||
避免前者意味著不允許你不認識的人為你的儲存庫、組織或實例註冊 runners。
|
||||
|
||||
後者則有點複雜。
|
||||
如果你為你的公司使用私人 Gitea 實例,你可能不需要擔心安全問題,因為你信任你的同事並且可以追究他們的責任。
|
||||
@@ -67,20 +67,20 @@ Runners 只具有連接到你的 Gitea 實例的權限。
|
||||
對於公共實例,情況有點不同。
|
||||
以下是我們在 [gitea.com](http://gitea.com/) 上的做法:
|
||||
|
||||
- 我們只為 "gitea" 組織註冊 runners,因此我們的 runners 不會執行來自其他倉庫的任務。
|
||||
- 我們只為 "gitea" 組織註冊 runners,因此我們的 runners 不會執行來自其他儲存庫的任務。
|
||||
- 我們的 runners 總是使用隔離的容器運行任務。雖然可以直接在主機上這樣做,但我們選擇不這樣做以提高安全性。
|
||||
- 要運行 fork pull requests 的 actions,需要批准。參見 [#22803](https://github.com/go-gitea/gitea/pull/22803)。
|
||||
- 如果有人在 [gitea.com](http://gitea.com/) 上為他們的倉庫或組織註冊了他們自己的 runner,我們不反對,只是不會在我們的組織中使用它。然而,他們應該注意確保該 runner 不被他們不認識的其他用戶使用。
|
||||
- 如果有人在 [gitea.com](http://gitea.com/) 上為他們的儲存庫或組織註冊了他們自己的 runner,我們不反對,只是不會在我們的組織中使用它。然而,他們應該注意確保該 runner 不被他們不認識的其他使用者使用。
|
||||
|
||||
## act runner 支持哪些操作系統?
|
||||
## act runner 支援哪些操作系統?
|
||||
|
||||
它在 Linux、macOS 和 Windows 上運行良好。
|
||||
雖然理論上支持其他操作系統,但它們需要進一步測試。
|
||||
雖然理論上支援其他操作系統,但它們需要進一步測試。
|
||||
|
||||
需要注意的一點是,如果你選擇直接在主機上運行任務而不是在任務容器中,操作系統之間的環境差異可能會導致意外的失敗。
|
||||
|
||||
例如,bash 在大多數情況下在 Windows 上不可用,而 act 嘗試默認使用 bash 運行腳本。
|
||||
因此,你需要在工作流程文件中指定 `powershell` 為默認 shell,參見 [defaults.run](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
|
||||
例如,bash 在大多數情況下在 Windows 上不可用,而 act 嘗試預設使用 bash 運行腳本。
|
||||
因此,你需要在工作流程文件中指定 `powershell` 為預設 shell,參見 [defaults.run](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
|
||||
|
||||
```yaml
|
||||
defaults:
|
||||
@@ -88,7 +88,7 @@ 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 系統,還是一個自動化工具。
|
||||
@@ -120,32 +120,32 @@ defaults:
|
||||
|
||||
目前,act runner 嘗試匹配標籤中的每個人並使用它找到的第一個匹配。
|
||||
|
||||
## runner 的代理標籤和自定義標籤有什麼區別?
|
||||
## runner 的代理標籤和自訂標籤有什麼區別?
|
||||
|
||||

|
||||
|
||||
代理標籤是在註冊期間由 runner 向 Gitea 實例報告的。
|
||||
另一方面,自定義標籤是由 Gitea 管理員或組織或倉庫的所有者手動添加的(取決於 runner 的級別)。
|
||||
另一方面,自訂標籤是由 Gitea 管理員或組織或儲存庫的所有者手動添加的(取決於 runner 的級別)。
|
||||
|
||||
然而,這裡的設計需要改進,因為它目前有一些粗糙的邊緣。
|
||||
你可以向已註冊的 runner 添加自定義標籤,例如 `centos`,這意味著 runner 將接收具有 `runs-on: centos` 的任務。
|
||||
然而,runner 可能不知道為這個標籤使用哪個環境,導致它使用默認映像或導致邏輯死胡同。
|
||||
這個默認值可能不符合用戶的期望。
|
||||
你可以向已註冊的 runner 添加自訂標籤,例如 `centos`,這意味著 runner 將接收具有 `runs-on: centos` 的任務。
|
||||
然而,runner 可能不知道為這個標籤使用哪個環境,導致它使用預設映像或導致邏輯死衚衕。
|
||||
這個預設值可能不符合使用者的期望。
|
||||
參見 [runtime.go#L71](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
|
||||
|
||||
同時,我們建議你重新註冊你的 runner,如果你想更改它的標籤。
|
||||
|
||||
## Gitea Actions runner 會有更多的實現嗎?
|
||||
|
||||
雖然我們希望提供更多選擇,但我們有限的人力意味著 act runner 將是唯一官方支持的 runner。
|
||||
然而,Gitea 和 act runner 都是完全開源的,所以任何人都可以創建一個新的/更好的實現。
|
||||
無論你如何決定,我們都支持你的選擇。
|
||||
如果你 fork 了 act runner 來創建你自己的版本:如果你能並且認為你的更改也會幫助其他人,請將更改貢獻回來。
|
||||
雖然我們希望提供更多選擇,但我們有限的人力意味著 act runner 將是唯一官方支援的 runner。
|
||||
然而,Gitea 和 act runner 都是完全開源的,所以任何人都可以建立一個新的/更好的實現。
|
||||
無論你如何決定,我們都支援你的選擇。
|
||||
如果你 fork 了 act 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)。
|
||||
|
||||
| 觸發事件 | 活動類型 |
|
||||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@@ -10,25 +10,25 @@ sidebar_position: 1
|
||||
|
||||
## 名稱
|
||||
|
||||
它類似並兼容於 [GitHub Actions](https://github.com/features/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"。
|
||||
- "Actions" 可能指上述任何一個,取決於上下文。在本文件中,它指的是 "Gitea Actions"。
|
||||
- "action" 或 "actions" 指的是一些腳本/外掛,如 "actions/checkout@v4" 或 "actions/cache@v3"。
|
||||
|
||||
## Runners
|
||||
|
||||
就像其他 CI/CD 解決方案一樣,Gitea 不會自己運行作業,而是將作業委派給 runners。
|
||||
Gitea Actions 的 runner 稱為 [act runner](https://gitea.com/gitea/act_runner),它是一個獨立的程序,也是用 Go 編寫的。
|
||||
Gitea Actions 的 runner 稱為 [act runner](https://gitea.com/gitea/act_runner),它是一個獨立的程式,也是用 Go 編寫的。
|
||||
它基於 [nektos/act](http://github.com/nektos/act) 的 [fork](https://gitea.com/gitea/act)。
|
||||
|
||||
由於 runner 是獨立部署的,可能會有潛在的安全問題。
|
||||
為了避免這些問題,請遵循兩個簡單的規則:
|
||||
|
||||
- 不要為你不信任的倉庫、組織或實例使用你不信任的 runner。
|
||||
- 不要為你不信任的倉庫、組織或實例提供 runner。
|
||||
- 不要為你不信任的儲存庫、組織或實例使用你不信任的 runner。
|
||||
- 不要為你不信任的儲存庫、組織或實例提供 runner。
|
||||
|
||||
對於內部使用的 Gitea 實例,如企業或個人使用的實例,這兩個規則都不是問題,它們自然如此。
|
||||
然而,對於公共 Gitea 實例,如 [gitea.com](https://gitea.com),在添加或使用 runners 時應記住這兩個規則。
|
||||
|
||||
@@ -8,33 +8,33 @@ sidebar_position: 10
|
||||
|
||||
本頁將引導你使用 Gitea Actions 的過程。
|
||||
|
||||
## 設置 Gitea
|
||||
## 設定 Gitea
|
||||
|
||||
首先,你需要一個 Gitea 實例。
|
||||
你可以按照 [文檔](installation/from-package.md) 設置一個新實例或升級現有實例。
|
||||
你可以按照 [文件](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)。
|
||||
|
||||
### 設置 runner
|
||||
### 設定 runner
|
||||
|
||||
Gitea Actions 需要 [act runner](https://gitea.com/gitea/act_runner) 來運行作業。
|
||||
為了避免消耗過多資源並影響 Gitea 實例,建議在與 Gitea 實例不同的機器上啟動 runners。
|
||||
|
||||
你可以使用 [預構建的二進位文件](http://dl.gitea.com/act_runner) 或 [docker 映像](https://hub.docker.com/r/gitea/act_runner/tags) 設置 runner。
|
||||
你可以使用 [預構建的二進位文件](http://dl.gitea.com/act_runner) 或 [docker 映像](https://hub.docker.com/r/gitea/act_runner/tags) 設定 runner。
|
||||
|
||||
在進一步操作之前,我們建議使用預構建的二進位文件作為命令行運行它,以確保它適用於你的環境,特別是如果你在本地主機上運行 runner。
|
||||
如果出現問題,這樣也更容易調試。
|
||||
|
||||
runner 可以在隔離的 Docker 容器中運行作業,因此你需要確保已安裝 Docker 並且 Docker 守護進程正在運行。
|
||||
雖然這不是絕對必要的,因為 runner 也可以直接在主機上運行作業,這取決於你如何配置它。
|
||||
雖然這不是絕對必要的,因為 runner 也可以直接在主機上運行作業,這取決於你如何設定它。
|
||||
然而,建議使用 Docker 來運行作業,因為這樣更安全且更易於管理。
|
||||
|
||||
在運行 runner 之前,你應該首先使用以下命令將其註冊到你的 Gitea 實例:
|
||||
@@ -47,22 +47,22 @@ runner 可以在隔離的 Docker 容器中運行作業,因此你需要確保
|
||||
|
||||
`instance` 指的是你的 Gitea 實例的地址,如 `http://192.168.8.8:3000` 或 `https://gitea.com`。
|
||||
runner 和作業容器(由 runner 啟動以執行作業)將連接到此地址。
|
||||
這意味著它可能與你的 Gitea 實例的 `ROOT_URL` 不同,後者是為網頁訪問配置的。
|
||||
這意味著它可能與你的 Gitea 實例的 `ROOT_URL` 不同,後者是為網頁訪問設定的。
|
||||
使用回環地址如 `127.0.0.1` 或 `localhost` 總是個壞主意。
|
||||
如果你不確定使用哪個地址,通常 LAN 地址是正確的選擇。
|
||||
|
||||
`token` 用於身份驗證和識別,如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`。
|
||||
每個令牌可以用來創建多個 runners,直到使用重置鏈接替換為新令牌。
|
||||
你可以從以下位置獲取不同級別的令牌來創建相應級別的 runners:
|
||||
每個令牌可以用來建立多個 runners,直到使用重置鏈接替換為新令牌。
|
||||
你可以從以下位置獲取不同級別的令牌來建立相應級別的 runners:
|
||||
|
||||
- 實例級別:管理員設置頁面,如 `<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`。
|
||||
|
||||

|
||||
|
||||
註冊後,一個名為 `.runner` 的新文件將出現在當前目錄中。
|
||||
該文件存儲註冊信息。
|
||||
該文件儲存註冊資訊。
|
||||
請不要手動編輯它。
|
||||
如果該文件丟失或損壞,你可以簡單地刪除它並重新註冊。
|
||||
|
||||
@@ -76,20 +76,20 @@ runner 和作業容器(由 runner 啟動以執行作業)將連接到此地
|
||||
|
||||

|
||||
|
||||
你可以訪問 [Act runner](usage/actions/act-runner.md) 獲取更多信息。
|
||||
你可以訪問 [Act runner](usage/actions/act-runner.md) 獲取更多資訊。
|
||||
|
||||
### 使用 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`。
|
||||
|
||||

|
||||
|
||||
接下來的步驟可能相當複雜。
|
||||
你需要學習 [工作流程語法](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions) 並編寫你想要的工作流程文件。
|
||||
|
||||
然而,我們可以從一個簡單的示例開始:
|
||||
然而,我們可以從一個簡單的範例開始:
|
||||
|
||||
```yaml
|
||||
name: Gitea Actions Demo
|
||||
@@ -115,22 +115,22 @@ jobs:
|
||||
|
||||
:::warning
|
||||
|
||||
某些 actions 可能無法在 SHA256 倉庫中正常運行,或者當 Gitea 在子路徑上運行時。這包括 [actions/checkout](https://github.com/actions/checkout/issues/1843)。
|
||||
某些 actions 可能無法在 SHA256 儲存庫中正常運行,或者當 Gitea 在子路徑上運行時。這包括 [actions/checkout](https://github.com/actions/checkout/issues/1843)。
|
||||
|
||||
:::
|
||||
|
||||
你可以將其作為擴展名為 `.yaml` 的文件上傳到倉庫的 `.gitea/workflows/` 目錄中,例如 `.gitea/workflows/demo.yaml`。
|
||||
你可以將其作為擴展名為 `.yaml` 的文件上傳到儲存庫的 `.gitea/workflows/` 目錄中,例如 `.gitea/workflows/demo.yaml`。
|
||||
你可能會注意到這與 [GitHub Actions 快速入門](https://docs.github.com/en/actions/quickstart) 非常相似。
|
||||
那是因為 Gitea Actions 設計上盡可能與 GitHub Actions 兼容。
|
||||
那是因為 Gitea Actions 設計上盡可能與 GitHub Actions 相容。
|
||||
|
||||
請注意,示例文件中包含一些表情符號。
|
||||
請確保你的數據庫支持它們,特別是當使用 MySQL 時。
|
||||
請注意,範例文件中包含一些表情符號。
|
||||
請確保你的資料庫支援它們,特別是當使用 MySQL 時。
|
||||
如果字符集不是 `utf8mb4`,將會出現錯誤,如 `Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`。
|
||||
有關更多信息,請參見 [數據庫準備](../../installation/database-preparation.md#mysqlmariadb)。
|
||||
有關更多資訊,請參見 [資料庫準備](../../installation/database-preparation.md#mysqlmariadb)。
|
||||
|
||||
或者,你可以刪除示例文件中的所有表情符號並重試。
|
||||
或者,你可以刪除範例文件中的所有表情符號並重試。
|
||||
|
||||
行 `on: [push]` 表示當你向此倉庫推送提交時,工作流程將被觸發。
|
||||
行 `on: [push]` 表示當你向此儲存庫推送提交時,工作流程將被觸發。
|
||||
然而,當你上傳 YAML 文件時,它也會推送一個提交,因此你應該在 Actions 標籤中看到一個新任務。
|
||||
|
||||

|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 50
|
||||
|
||||
# Secrets
|
||||
|
||||
Secrets 允許你在用戶、組織或倉庫中存儲敏感信息。
|
||||
Secrets 允許你在使用者、組織或儲存庫中儲存敏感資訊。
|
||||
Secrets 在 Gitea 1.19+ 可用,並且在 1.20+ 啟用 ACTIONS 時可見。
|
||||
|
||||
## 命名你的 secrets
|
||||
@@ -17,15 +17,15 @@ Secrets 在 Gitea 1.19+ 可用,並且在 1.20+ 啟用 ACTIONS 時可見。
|
||||
- Secret 名稱不得以 `GITHUB_` 和 `GITEA_` 前綴開頭。
|
||||
- Secret 名稱不得以數字開頭。
|
||||
- Secret 名稱不區分大小寫。
|
||||
- Secret 名稱在創建它們的級別上必須是唯一的。
|
||||
- Secret 名稱在建立它們的級別上必須是唯一的。
|
||||
|
||||
例如,在倉庫級別創建的 secret 必須在該倉庫中具有唯一名稱,而在組織級別創建的 secret 必須在該級別上具有唯一名稱。
|
||||
例如,在儲存庫級別建立的 secret 必須在該儲存庫中具有唯一名稱,而在組織級別建立的 secret 必須在該級別上具有唯一名稱。
|
||||
|
||||
### 使用 secrets
|
||||
|
||||
創建配置變數後,它們將自動填充到 `secrets` 上下文中。
|
||||
可以通過表達式 `${{ secrets.SECRET_NAME }}` 在工作流程中訪問它們。
|
||||
建立設定變數後,它們將自動填充到 `secrets` 上下文中。
|
||||
可以透過表達式 `${{ secrets.SECRET_NAME }}` 在工作流程中訪問它們。
|
||||
|
||||
### 優先級
|
||||
|
||||
如果在多個級別存在同名 secret,則最低級別的 secret 優先。例如,如果組織級別的 secret 與倉庫級別的 secret 同名,則倉庫級別的 secret 優先。
|
||||
如果在多個級別存在同名 secret,則最低級別的 secret 優先。例如,如果組織級別的 secret 與儲存庫級別的 secret 同名,則儲存庫級別的 secret 優先。
|
||||
|
||||
@@ -6,8 +6,8 @@ sidebar_position: 25
|
||||
|
||||
# 變數
|
||||
|
||||
您可以在用戶、組織和倉庫級別創建配置變數。
|
||||
變數的級別取決於您創建它的位置。創建變數時,鍵將被轉換為大寫。您需要在 yaml 文件中使用大寫。
|
||||
您可以在使用者、組織和儲存庫級別建立設定變數。
|
||||
變數的級別取決於您建立它的位置。建立變數時,鍵將被轉換為大寫。您需要在 yaml 文件中使用大寫。
|
||||
|
||||
## 命名規則
|
||||
|
||||
@@ -17,15 +17,15 @@ sidebar_position: 25
|
||||
- 變數名稱不得以 `GITHUB_` 和 `GITEA_` 前綴開頭。
|
||||
- 變數名稱不得以數字開頭。
|
||||
- 變數名稱不區分大小寫。
|
||||
- 變數名稱在創建它們的級別上必須是唯一的。
|
||||
- 變數名稱在建立它們的級別上必須是唯一的。
|
||||
- 變數名稱不得以 `CI` 開頭。
|
||||
|
||||
## 使用變數
|
||||
|
||||
創建配置變數後,它們將自動填充到 `vars` 上下文中。
|
||||
可以通過表達式 `${{ vars.VARIABLE_NAME }}` 在工作流程中訪問它們。
|
||||
建立設定變數後,它們將自動填充到 `vars` 上下文中。
|
||||
可以透過表達式 `${{ vars.VARIABLE_NAME }}` 在工作流程中訪問它們。
|
||||
|
||||
## 優先級
|
||||
|
||||
如果在多個級別存在同名變數,則最低級別的變數優先:
|
||||
倉庫變數將始終優先於組織/用戶變數。
|
||||
儲存庫變數將始終優先於組織/使用者變數。
|
||||
|
||||
@@ -8,17 +8,17 @@ 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 或更高版本才能正常運行。
|
||||
:::
|
||||
|
||||
## 使用 AGit 創建 PR
|
||||
## 使用 AGit 建立 PR
|
||||
|
||||
AGit 允許在推送代碼到遠程倉庫時創建 PR(合併請求)。
|
||||
AGit 允許在推送程式碼到遠程儲存庫時建立 PR(合併請求)。
|
||||
通過在推送時使用特定的 refspec(git 中已知的位置標識符),可以實現這一功能。
|
||||
下面的示例說明了這一點:
|
||||
下面的範例說明瞭這一點:
|
||||
|
||||
```shell
|
||||
git push origin HEAD:refs/for/main
|
||||
@@ -28,7 +28,7 @@ git push origin HEAD:refs/for/main
|
||||
|
||||
- `HEAD`:目標分支
|
||||
- `refs/<for|draft|for-review>/<branch>`:目標 PR 類型
|
||||
- `for`:創建一個以 `<branch>` 為目標分支的普通 PR
|
||||
- `for`:建立一個以 `<branch>` 為目標分支的普通 PR
|
||||
- `draft`/`for-review`:目前被靜默忽略
|
||||
- `<branch>/<session>`:要打開 PR 的目標分支
|
||||
- `-o <topic|title|description>`:PR 的選項
|
||||
@@ -38,7 +38,7 @@ git push origin HEAD:refs/for/main
|
||||
- `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"
|
||||
|
||||
@@ -9,17 +9,17 @@ aliases:
|
||||
|
||||
# AGit
|
||||
|
||||
在 Gitea `1.13` 版本中,添加了對 [AGit](https://git-repo.info/en/2020/03/agit-flow-and-git-repo/) 的支援。AGit 允許用戶在沒有倉庫寫入權限的情況下直接創建拉取請求,也不需要分叉倉庫。這有助於減少重複倉庫的數量,降低不必要的磁盤使用量。
|
||||
在 Gitea `1.13` 版本中,添加了對 [AGit](https://git-repo.info/en/2020/03/agit-flow-and-git-repo/) 的支援。AGit 允許使用者在沒有儲存庫寫入權限的情況下直接建立拉取請求,也不需要分叉儲存庫。這有助於減少重複儲存庫的數量,降低不必要的磁盤使用量。
|
||||
|
||||
:::note
|
||||
伺服器端需要 Git 版本 2.29 或更高版本才能正常運行。
|
||||
:::
|
||||
|
||||
## 使用 AGit 創建 PR
|
||||
## 使用 AGit 建立 PR
|
||||
|
||||
AGit 允許在推送代碼到遠程倉庫時創建 PR(合併請求)。
|
||||
AGit 允許在推送程式碼到遠程儲存庫時建立 PR(合併請求)。
|
||||
通過在推送時使用特定的 refspec(git 中已知的位置標識符),可以實現這一功能。
|
||||
下面的示例說明了這一點:
|
||||
下面的範例說明瞭這一點:
|
||||
|
||||
```shell
|
||||
git push origin HEAD:refs/for/main
|
||||
@@ -28,10 +28,10 @@ git push origin HEAD:refs/for/main
|
||||
該命令的結構如下:
|
||||
|
||||
- `HEAD`:目標分支
|
||||
- `origin`:目標倉庫(不是分叉!)
|
||||
- `origin`:目標儲存庫(不是分叉!)
|
||||
- `HEAD`:包含您提議更改的本地分支
|
||||
- `refs/<for|draft|for-review>/<branch>`:目標 PR 類型和配置
|
||||
- `for`:創建一個以 `<branch>` 為目標分支的普通 PR
|
||||
- `refs/<for|draft|for-review>/<branch>`:目標 PR 類型和設定
|
||||
- `for`:建立一個以 `<branch>` 為目標分支的普通 PR
|
||||
- `draft`/`for-review`:目前被靜默忽略
|
||||
- `<branch>/`:您希望將更改合併到的分支
|
||||
- `-o <topic|title|description>`:PR 的選項
|
||||
@@ -41,7 +41,7 @@ git push origin HEAD:refs/for/main
|
||||
- `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"
|
||||
|
||||
@@ -13,7 +13,7 @@ Gitea 支援查看文件的逐行修訂歷史,也稱為 blame 視圖。
|
||||
|
||||
1. 導航到並打開您要查看行歷史的文件。
|
||||
1. 點擊文件標題欄中的 `Blame` 按鈕。
|
||||
1. 新視圖顯示文件的逐行修訂歷史,左側顯示作者和提交信息。
|
||||
1. 新視圖顯示文件的逐行修訂歷史,左側顯示作者和提交資訊。
|
||||
1. 要導航到較舊的提交,點擊  圖標。
|
||||
|
||||
## 在 blame 視圖中忽略提交
|
||||
@@ -21,9 +21,9 @@ Gitea 支援查看文件的逐行修訂歷史,也稱為 blame 視圖。
|
||||
所有在 `.git-blame-ignore-revs` 文件中指定的修訂都會在 blame 視圖中隱藏。
|
||||
這對於隱藏重新格式化的更改並保留 `git blame` 的好處特別有用。
|
||||
被忽略的提交更改或添加的行將歸咎於更改該行或附近行的上一個提交。
|
||||
`.git-blame-ignore-revs` 文件必須位於倉庫的根目錄中。
|
||||
有關文件格式的更多信息,請參見 [git blame --ignore-revs-file 文檔](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-file)。
|
||||
`.git-blame-ignore-revs` 文件必須位於儲存庫的根目錄中。
|
||||
有關文件格式的更多資訊,請參見 [git blame --ignore-revs-file 文件](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-file)。
|
||||
|
||||
### 在 blame 視圖中繞過 `.git-blame-ignore-revs`
|
||||
|
||||
如果文件的 blame 視圖顯示有關忽略修訂的消息,您可以通過附加 url 參數 `?bypass-blame-ignore=true` 查看正常的 blame 視圖。
|
||||
如果文件的 blame 視圖顯示有關忽略修訂的消息,您可以透過附加 url 參數 `?bypass-blame-ignore=true` 查看正常的 blame 視圖。
|
||||
|
||||
@@ -6,42 +6,42 @@ aliases:
|
||||
- /zh-tw/webhooks
|
||||
---
|
||||
|
||||
# 封鎖用戶
|
||||
# 封鎖使用者
|
||||
|
||||
Gitea 支援封鎖用戶,以限制他們如何與您和您的內容互動。
|
||||
Gitea 支援封鎖使用者,以限制他們如何與您和您的內容互動。
|
||||
|
||||
您可以在帳戶設置中、從用戶的個人資料或從用戶創建的評論中封鎖用戶。
|
||||
用戶不會直接收到封鎖通知,但當他們嘗試與您互動時,他們可能會注意到他們被封鎖。
|
||||
您可以在帳戶設定中、從使用者的個人資料或從使用者建立的評論中封鎖使用者。
|
||||
使用者不會直接收到封鎖通知,但當他們嘗試與您互動時,他們可能會注意到他們被封鎖。
|
||||
組織所有者也可以封鎖任何不是組織成員的人。
|
||||
如果被封鎖的用戶具有管理員權限,即使被封鎖,他們仍然可以執行所有操作。
|
||||
如果被封鎖的使用者具有管理員權限,即使被封鎖,他們仍然可以執行所有操作。
|
||||
|
||||
### 當您封鎖用戶時
|
||||
### 當您封鎖使用者時
|
||||
|
||||
- 用戶停止關注您
|
||||
- 您停止關注用戶
|
||||
- 用戶的星標從您的倉庫中移除
|
||||
- 您的星標從他們的倉庫中移除
|
||||
- 用戶停止關注您的倉庫
|
||||
- 您停止關注他們的倉庫
|
||||
- 用戶的問題分配從您的倉庫中移除
|
||||
- 您的問題分配從他們的倉庫中移除
|
||||
- 用戶被移除為您倉庫的合作者
|
||||
- 您被移除為他們倉庫的合作者
|
||||
- 任何待處理的倉庫轉移到或從被封鎖的用戶取消
|
||||
- 使用者停止關注您
|
||||
- 您停止關注使用者
|
||||
- 使用者的星標從您的儲存庫中移除
|
||||
- 您的星標從他們的儲存庫中移除
|
||||
- 使用者停止關注您的儲存庫
|
||||
- 您停止關注他們的儲存庫
|
||||
- 使用者的問題分配從您的儲存庫中移除
|
||||
- 您的問題分配從他們的儲存庫中移除
|
||||
- 使用者被移除為您儲存庫的合作者
|
||||
- 您被移除為他們儲存庫的合作者
|
||||
- 任何待處理的儲存庫轉移到或從被封鎖的使用者取消
|
||||
|
||||
### 當您封鎖用戶時,用戶無法
|
||||
### 當您封鎖使用者時,使用者無法
|
||||
|
||||
- 關注您
|
||||
- 關注您的倉庫
|
||||
- 星標您的倉庫
|
||||
- 分叉您的倉庫
|
||||
- 將倉庫轉移給您
|
||||
- 在您的倉庫上打開問題或拉取請求
|
||||
- 評論您創建的問題或拉取請求
|
||||
- 評論您倉庫上的問題或拉取請求
|
||||
- 關注您的儲存庫
|
||||
- 星標您的儲存庫
|
||||
- 分叉您的儲存庫
|
||||
- 將儲存庫轉移給您
|
||||
- 在您的儲存庫上打開問題或拉取請求
|
||||
- 評論您建立的問題或拉取請求
|
||||
- 評論您儲存庫上的問題或拉取請求
|
||||
- 對您在問題或拉取請求上的評論做出反應
|
||||
- 對您倉庫上的問題或拉取請求的評論做出反應
|
||||
- 對您儲存庫上的問題或拉取請求的評論做出反應
|
||||
- 將您分配到問題或拉取請求
|
||||
- 將您添加為他們倉庫的合作者
|
||||
- 通過 @提及您的用戶名向您發送通知
|
||||
- 將您添加為他們儲存庫的合作者
|
||||
- 通過 @提及您的使用者名稱向您發送通知
|
||||
- 被添加為團隊成員(如果被組織封鎖)
|
||||
|
||||
@@ -8,14 +8,14 @@ aliases:
|
||||
|
||||
# 克隆過濾器(部分克隆)
|
||||
|
||||
Git 引入了 `--filter` 選項到 `git clone` 命令,該選項過濾掉大文件和對象(如 blobs),以創建倉庫的部分克隆。
|
||||
克隆過濾器對於大型倉庫和/或計量連接特別有用,在這種情況下,完整克隆(沒有 `--filter`)可能會很昂貴(因為必須下載所有歷史數據)。
|
||||
Git 引入了 `--filter` 選項到 `git clone` 命令,該選項過濾掉大文件和對象(如 blobs),以建立儲存庫的部分克隆。
|
||||
克隆過濾器對於大型儲存庫和/或計量連接特別有用,在這種情況下,完整克隆(沒有 `--filter`)可能會很昂貴(因為必須下載所有歷史資料)。
|
||||
|
||||
這需要 Gitea 伺服器和客戶端上的 Git 版本 2.22 或更高版本。為了使克隆過濾器正常工作,請確保客戶端上的 Git 版本至少與伺服器上的版本相同(或更高)。以管理員身份登錄到 Gitea 伺服器,前往站點管理 -> 配置以查看伺服器的 Git 版本。
|
||||
這需要 Gitea 伺服器和客戶端上的 Git 版本 2.22 或更高版本。為了使克隆過濾器正常工作,請確保客戶端上的 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)
|
||||
以瞭解更高級的用例(如按文件大小過濾和移除過濾器以將部分克隆轉換為完整克隆)。
|
||||
|
||||
@@ -6,9 +6,9 @@ aliases:
|
||||
- /zh-tw/code-owners
|
||||
---
|
||||
|
||||
# 代碼所有者
|
||||
# 程式碼所有者
|
||||
|
||||
Gitea 維護代碼所有者文件。它會按以下順序在以下位置查找:
|
||||
Gitea 維護程式碼所有者文件。它會按以下順序在以下位置查找:
|
||||
|
||||
- `./CODEOWNERS`
|
||||
- `./docs/CODEOWNERS`
|
||||
@@ -21,7 +21,7 @@ Gitea 維護代碼所有者文件。它會按以下順序在以下位置查找
|
||||
正則表達式以 golang Regex 格式指定。
|
||||
正則表達式可以以 `!` 開頭表示否定規則 - 匹配除指定文件外的所有文件。
|
||||
|
||||
示例文件:
|
||||
範例文件:
|
||||
|
||||
```bash
|
||||
.*\\.go @user1 @user2 # 這是評論
|
||||
|
||||
@@ -8,28 +8,28 @@ aliases:
|
||||
|
||||
# 收件郵件
|
||||
|
||||
Gitea 支援通過收件郵件執行多種操作。本頁描述了如何設置此功能。
|
||||
Gitea 支援通過收件郵件執行多種操作。本頁描述瞭如何設定此功能。
|
||||
|
||||
## 要求
|
||||
|
||||
處理收件郵件消息需要一個啟用 IMAP 的電子郵件帳戶。
|
||||
推薦的策略是使用 [電子郵件子地址](https://en.wikipedia.org/wiki/Email_address#Sub-addressing) 但捕獲所有郵箱也可以工作。
|
||||
接收電子郵件地址包含一個用戶/操作特定的令牌,該令牌告訴 Gitea 應執行哪個操作。
|
||||
該令牌預期在 `To` 和 `Delivered-To` 標頭字段中。
|
||||
接收電子電子郵件地址包含一個使用者/操作特定的令牌,該令牌告訴 Gitea 應執行哪個操作。
|
||||
該令牌預期在 `To` 和 `Delivered-To` 標頭欄位中。
|
||||
|
||||
Gitea 嘗試檢測自動回覆以跳過,電子郵件伺服器也應配置以減少收件噪音(垃圾郵件、新聞簡報)。
|
||||
Gitea 嘗試檢測自動回覆以跳過,電子郵件伺服器也應設定以減少收件噪音(垃圾郵件、新聞簡報)。
|
||||
|
||||
## 配置
|
||||
## 設定
|
||||
|
||||
要啟用處理收件郵件消息,您必須在配置文件中配置 `email.incoming` 部分。
|
||||
要啟用處理收件郵件消息,您必須在設定文件中設定 `email.incoming` 部分。
|
||||
|
||||
`REPLY_TO_ADDRESS` 包含電子郵件客戶端將回覆的地址。
|
||||
此地址需要包含 `%{token}` 佔位符,該佔位符將被描述用戶/操作的令牌替換。
|
||||
此佔位符必須僅出現在地址的用戶部分(在 `@` 之前)。
|
||||
此地址需要包含 `%{token}` 佔位符,該佔位符將被描述使用者/操作的令牌替換。
|
||||
此佔位符必須僅出現在地址的使用者部分(在 `@` 之前)。
|
||||
|
||||
使用電子郵件子地址的示例可能如下所示:`incoming+%{token}@example.com`
|
||||
使用電子郵件子地址的範例可能如下所示:`incoming+%{token}@example.com`
|
||||
|
||||
如果使用捕獲所有郵箱,佔位符可以出現在地址的用戶部分的任何位置:`incoming+%{token}@example.com`、`incoming_%{token}@example.com`、`%{token}@example.com`
|
||||
如果使用捕獲所有郵箱,佔位符可以出現在地址的使用者部分的任何位置:`incoming+%{token}@example.com`、`incoming_%{token}@example.com`、`%{token}@example.com`
|
||||
|
||||
## 安全性
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ aliases:
|
||||
|
||||
# 問題和拉取請求模板
|
||||
|
||||
一些項目有一個標準的問題列表,當用戶創建問題或拉取請求時需要回答。Gitea 支援將模板添加到倉庫的**默認分支**,以便在用戶創建問題和拉取請求時自動填充表單。這將減少獲取一些澄清細節的初始來回。
|
||||
目前無法在全局範圍內提供通用的問題/拉取請求模板。
|
||||
一些專案有一個標準的問題列表,當使用者建立問題或拉取請求時需要回答。Gitea 支援將模板添加到儲存庫的**預設分支**,以便在使用者建立問題和拉取請求時自動填充表單。這將減少獲取一些澄清細節的初始來回。
|
||||
目前無法在全域範圍內提供通用的問題/拉取請求模板。
|
||||
|
||||
此外,新問題頁面的 URL 可以後綴 `?title=Issue+Title&body=Issue+Text`,表單將使用這些字符串填充。如果存在模板,這些字符串將被使用而不是模板。
|
||||
|
||||
@@ -36,7 +36,7 @@ aliases:
|
||||
- `.github/issue_template.yaml`
|
||||
- `.github/issue_template.yml`
|
||||
|
||||
問題配置的可能文件名:
|
||||
問題設定的可能文件名:
|
||||
|
||||
- `.gitea/ISSUE_TEMPLATE/config.yaml`
|
||||
- `.gitea/ISSUE_TEMPLATE/config.yml`
|
||||
@@ -70,7 +70,7 @@ aliases:
|
||||
|
||||
## 目錄名
|
||||
|
||||
或者,用戶可以在特殊目錄中創建多個問題模板,並允許用戶選擇一個更具針對性地解決他們的問題。
|
||||
或者,使用者可以在特殊目錄中建立多個問題模板,並允許使用者選擇一個更具針對性地解決他們的問題。
|
||||
|
||||
問題模板的可能目錄名:
|
||||
|
||||
@@ -102,14 +102,14 @@ labels:
|
||||
這是模板!
|
||||
```
|
||||
|
||||
在上述示例中,當用戶看到他們可以提交的問題列表時,這將顯示為 `模板名稱`,描述為 `此模板用於測試!`。提交問題時,問題標題將預填充為 `[TEST]`,而問題正文將預填充為 `這是模板!`。
|
||||
在上述範例中,當使用者看到他們可以提交的問題列表時,這將顯示為 `模板名稱`,描述為 `此模板用於測試!`。提交問題時,問題標題將預填充為 `[TEST]`,而問題正文將預填充為 `這是模板!`。
|
||||
問題將分配給 `user1`。
|
||||
問題還將分配兩個標籤,
|
||||
`bug` 和 `需要幫助`,問題將引用 `main`。
|
||||
|
||||
## yaml 模板語法
|
||||
|
||||
此示例 YAML 配置文件使用多個輸入定義了一個問題表單來報告錯誤。
|
||||
此範例 YAML 設定文件使用多個輸入定義了一個問題表單來報告錯誤。
|
||||
|
||||
```yaml
|
||||
name: 錯誤報告
|
||||
@@ -187,62 +187,62 @@ body:
|
||||
|
||||
### Markdown
|
||||
|
||||
您可以使用 `markdown` 元素在表單中顯示 Markdown,為用戶提供額外的上下文,但默認情況下不會提交。
|
||||
您可以使用 `markdown` 元素在表單中顯示 Markdown,為使用者提供額外的上下文,但預設情況下不會提交。
|
||||
|
||||
屬性:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| ----- | -------------------------------- | ---- | ------ | ------ | ------ |
|
||||
| value | 渲染的文本。支持 Markdown 格式。 | 必需 | 字符串 | - | - |
|
||||
| value | 渲染的文本。支援 Markdown 格式。 | 必需 | 字符串 | - | - |
|
||||
|
||||
visible: 默認為 **[form]**
|
||||
visible: 預設為 **[form]**
|
||||
|
||||
### Textarea
|
||||
|
||||
您可以使用 `textarea` 元素在表單中添加多行文本字段。貢獻者還可以在 `textarea` 字段中附加文件。
|
||||
您可以使用 `textarea` 元素在表單中添加多行文本欄位。貢獻者還可以在 `textarea` 欄位中附加文件。
|
||||
|
||||
屬性:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| ----------- | -------------------------------------------------------------------------------------------------- | ---- | ------ | -------- | ------------------ |
|
||||
| label | 預期用戶輸入的簡要描述,也顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| label | 預期使用者輸入的簡要描述,也顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| hide_label | 如果為 true,則標籤通常用作標題不可見。 | 可選 | 布爾值 | false | - |
|
||||
| description | 文本區的描述,以提供上下文或指導,顯示在表單中。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| placeholder | 當空時在文本區中呈現的半透明佔位符。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| value | 預填充在文本區中的文本。 | 可選 | 字符串 | - | - |
|
||||
| render | 如果提供了值,提交的文本將格式化為代碼塊。提供此鍵時,文本區將不會擴展以附加文件或 Markdown 編輯。 | 可選 | 字符串 | - | Gitea 已知的語言。 |
|
||||
| render | 如果提供了值,提交的文本將格式化為程式碼塊。提供此鍵時,文本區將不會擴展以附加文件或 Markdown 編輯。 | 可選 | 字符串 | - | Gitea 已知的語言。 |
|
||||
|
||||
驗證:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| -------- | ---------------------------- | ---- | ------ | ------ | ------ |
|
||||
| required | 在元素完成之前阻止表單提交。 | 可選 | 布爾值 | false | - |
|
||||
|
||||
visible: 默認為 **[form, content]**
|
||||
visible: 預設為 **[form, content]**
|
||||
|
||||
### Input
|
||||
|
||||
您可以使用 `input` 元素在表單中添加單行文本字段。
|
||||
您可以使用 `input` 元素在表單中添加單行文本欄位。
|
||||
|
||||
屬性:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| ----------- | ------------------------------------------------ | ---- | ------ | -------- | ------ |
|
||||
| label | 預期用戶輸入的簡要描述,也顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| label | 預期使用者輸入的簡要描述,也顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| hide_label | 如果為 true,則標籤通常用作標題不可見。 | 可選 | 布爾值 | false | - |
|
||||
| description | 該字段的描述,以提供上下文或指導,顯示在表單中。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| placeholder | 當空時在字段中呈現的半透明佔位符。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| value | 預填充在字段中的文本。 | 可選 | 字符串 | - | - |
|
||||
| description | 該欄位的描述,以提供上下文或指導,顯示在表單中。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| placeholder | 當空時在欄位中呈現的半透明佔位符。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| value | 預填充在欄位中的文本。 | 可選 | 字符串 | - | - |
|
||||
|
||||
驗證:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| --------- | ------------------------------------------------ | ---- | ------ | ------ | ------------------------------------------------------------------- |
|
||||
| required | 在元素完成之前阻止表單提交。 | 可選 | 布爾值 | false | - |
|
||||
| is_number | 在元素填寫數字之前阻止表單提交。 | 可選 | 布爾值 | false | - |
|
||||
| regex | 在元素填寫與正則表達式匹配的值之前阻止表單提交。 | 可選 | 字符串 | - | 一個 [正則表達式](https://en.wikipedia.org/wiki/Regular_expression) |
|
||||
|
||||
visible: 默認為 **[form, content]**
|
||||
visible: 預設為 **[form, content]**
|
||||
|
||||
### Dropdown
|
||||
|
||||
@@ -250,22 +250,22 @@ visible: 默認為 **[form, content]**
|
||||
|
||||
屬性:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| ----------- | --------------------------------------------------------------------------- | ---- | ---------- | -------- | ------ |
|
||||
| label | 預期用戶輸入的簡要描述,顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| label | 預期使用者輸入的簡要描述,顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| hide_label | 如果為 true,則標籤通常用作標題不可見。 | 可選 | 布爾值 | false | - |
|
||||
| description | 下拉菜單的描述,以提供額外的上下文或指導,顯示在表單中。 | 可選 | 字符串 | 空字符串 | - |
|
||||
| multiple | 確定用戶是否可以選擇多個選項。 | 可選 | 布爾值 | false | - |
|
||||
| list | 如果為 true,顯示為列表。如果為 false,則將項目打印在一行上,並用逗號分隔。 | 可選 | 布爾值 | false | - |
|
||||
| options | 用戶可以選擇的選項數組。不能為空,所有選擇必須是不同的。 | 必需 | 字符串數組 | - | - |
|
||||
| multiple | 確定使用者是否可以選擇多個選項。 | 可選 | 布爾值 | false | - |
|
||||
| list | 如果為 true,顯示為列表。如果為 false,則將專案打印在一行上,並用逗號分隔。 | 可選 | 布爾值 | false | - |
|
||||
| options | 使用者可以選擇的選項數組。不能為空,所有選擇必須是不同的。 | 必需 | 字符串數組 | - | - |
|
||||
|
||||
驗證:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| -------- | ---------------------------- | ---- | ------ | ------ | ------ |
|
||||
| required | 在元素完成之前阻止表單提交。 | 可選 | 布爾值 | false | - |
|
||||
|
||||
visible: 默認為 **[form, content]**
|
||||
visible: 預設為 **[form, content]**
|
||||
|
||||
### Checkboxes
|
||||
|
||||
@@ -273,26 +273,26 @@ visible: 默認為 **[form, content]**
|
||||
|
||||
屬性:
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 有效值 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 有效值 |
|
||||
| ----------- | ---------------------------------------------------- | ---- | ------ | -------- | ------ |
|
||||
| label | 預期用戶輸入的簡要描述,顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| label | 預期使用者輸入的簡要描述,顯示在表單中。 | 必需 | 字符串 | - | - |
|
||||
| hide_label | 如果為 true,則標籤通常用作標題不可見。 | 可選 | 布爾值 | false | - |
|
||||
| description | 一組複選框的描述,顯示在表單中。支持 Markdown 格式。 | 必需 | 字符串 | 空字符串 | - |
|
||||
| options | 用戶可以選擇的複選框數組。語法見下文。 | 必需 | 數組 | - | - |
|
||||
| description | 一組複選框的描述,顯示在表單中。支援 Markdown 格式。 | 必需 | 字符串 | 空字符串 | - |
|
||||
| options | 使用者可以選擇的複選框數組。語法見下文。 | 必需 | 數組 | - | - |
|
||||
|
||||
對於選項數組中的每個值,您可以設置以下鍵。
|
||||
對於選項數組中的每個值,您可以設定以下鍵。
|
||||
|
||||
| 鍵 | 描述 | 必需 | 類型 | 默認值 | 選項 |
|
||||
| 鍵 | 描述 | 必需 | 類型 | 預設值 | 選項 |
|
||||
| -------- | -------------------------------------------------------------------------------------------- | ---- | ---------- | ------ | ---- |
|
||||
| label | 選項的標識符,顯示在表單中。支持 Markdown 格式,用於粗體或斜體文本格式和超鏈接。 | 必需 | 字符串 | - | - |
|
||||
| label | 選項的標識符,顯示在表單中。支援 Markdown 格式,用於粗體或斜體文本格式和超鏈接。 | 必需 | 字符串 | - | - |
|
||||
| required | 在元素完成之前阻止表單提交。 | 可選 | 布爾值 | false | - |
|
||||
| visible | 特定複選框僅在表單中顯示,在創建的問題中顯示,或兩者都顯示。有效選項是 "form" 和 "content"。 | 可選 | 字符串數組 | false | - |
|
||||
| visible | 特定複選框僅在表單中顯示,在建立的問題中顯示,或兩者都顯示。有效選項是 "form" 和 "content"。 | 可選 | 字符串數組 | false | - |
|
||||
|
||||
visible: 默認為 **[form, content]**
|
||||
visible: 預設為 **[form, content]**
|
||||
|
||||
## 問題配置語法
|
||||
## 問題設定語法
|
||||
|
||||
這是一個問題配置文件的示例
|
||||
這是一個問題設定文件的範例
|
||||
|
||||
```yaml
|
||||
blank_issues_enabled: true
|
||||
@@ -304,10 +304,10 @@ contact_links:
|
||||
|
||||
### 可能的選項
|
||||
|
||||
| 鍵 | 描述 | 類型 | 默認值 |
|
||||
| 鍵 | 描述 | 類型 | 預設值 |
|
||||
| -------------------- | ---------------------------------- | ------------ | ------ |
|
||||
| blank_issues_enabled | 如果設置為 false,用戶必須使用模板 | 布爾值 | true |
|
||||
| contact_links | 自定義鏈接顯示在選擇框中 | 聯繫鏈接數組 | 空數組 |
|
||||
| blank_issues_enabled | 如果設定為 false,使用者必須使用模板 | 布爾值 | true |
|
||||
| contact_links | 自訂鏈接顯示在選擇框中 | 聯繫鏈接數組 | 空數組 |
|
||||
|
||||
### 聯繫鏈接
|
||||
|
||||
|
||||
@@ -10,19 +10,19 @@ aliases:
|
||||
|
||||
您可以使用標籤來分類問題和拉取請求,並改善對它們的概覽。
|
||||
|
||||
## 創建標籤
|
||||
## 建立標籤
|
||||
|
||||
對於倉庫,可以通過轉到 `問題` 並點擊 `標籤` 來創建標籤。
|
||||
對於儲存庫,可以透過轉到 `問題` 並點擊 `標籤` 來建立標籤。
|
||||
|
||||
對於組織,您可以定義組織範圍內的標籤,這些標籤將與所有組織倉庫共享,包括已存在的倉庫和新創建的倉庫。組織範圍內的標籤可以在組織 `設置` 中創建。
|
||||
對於組織,您可以定義組織範圍內的標籤,這些標籤將與所有組織儲存庫共享,包括已存在的儲存庫和新建立的儲存庫。組織範圍內的標籤可以在組織 `設定` 中建立。
|
||||
|
||||
標籤必須有一個必需的名稱、一個必需的顏色、一個可選的描述,並且必須是排他性的或非排他性的(請參見下文的 `範圍標籤`)。
|
||||
|
||||
創建倉庫時,您可以使用 `問題標籤` 選項確保存在某些標籤。此選項列出了一些在您的實例中[全局配置的標籤集](../administration/customizing-gitea.md#labels)。創建倉庫時,將創建其包含的所有標籤。
|
||||
建立儲存庫時,您可以使用 `問題標籤` 選項確保存在某些標籤。此選項列出了一些在您的實例中[全域設定的標籤集](../administration/customizing-gitea.md)。建立儲存庫時,將建立其包含的所有標籤。
|
||||
|
||||
## 範圍標籤
|
||||
|
||||
範圍標籤用於確保最多只有一個具有相同範圍的標籤分配給問題或拉取請求。例如,如果標籤 `kind/bug` 和 `kind/enhancement` 設置了排他選項,則一個問題只能被分類為 bug 或 enhancement。
|
||||
範圍標籤用於確保最多隻有一個具有相同範圍的標籤分配給問題或拉取請求。例如,如果標籤 `kind/bug` 和 `kind/enhancement` 設定了排他選項,則一個問題只能被分類為 bug 或 enhancement。
|
||||
|
||||
範圍標籤的名稱中必須包含 `/`(不能在名稱的任一端)。標籤的範圍基於**最後一個** `/` 確定,因此例如標籤 `scope/subscope/item` 的範圍是 `scope/subscope`。
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@ aliases:
|
||||
|
||||
同樣,當提交消息被列出時,它們會被解析,並且當它們被推送到主分支時可以觸發操作。
|
||||
|
||||
為了防止創建意外引用,有一些規則來識別它們。例如,它們不應包含在代碼文本中。它們還應該與周圍文本合理地分開(例如,使用空格)。
|
||||
為了防止建立意外引用,有一些規則來識別它們。例如,它們不應包含在程式碼文本中。它們還應該與周圍文本合理地分開(例如,使用空格)。
|
||||
|
||||
## 用戶、團隊和組織提及
|
||||
## 使用者、團隊和組織提及
|
||||
|
||||
當找到 `@username` 形式的文本並且 `username` 與現有用戶的名稱匹配時,會創建一個提及引用。這將通過將文本更改為該用戶的個人資料鏈接來顯示,並根據用戶是否具有訪問內容的必要權限,可能會為被提及的用戶創建通知。
|
||||
當找到 `@username` 形式的文本並且 `username` 與現有使用者的名稱匹配時,會建立一個提及引用。這將通過將文本更改為該使用者的個人資料鏈接來顯示,並根據使用者是否具有訪問內容的必要權限,可能會為被提及的使用者建立通知。
|
||||
|
||||
示例:
|
||||
範例:
|
||||
|
||||
> [@John](#),你能看看這個嗎?
|
||||
|
||||
@@ -29,61 +29,61 @@ aliases:
|
||||
|
||||
當適用時,團隊將收到郵件通知,但整個組織不會。
|
||||
|
||||
提交消息不會產生用戶通知。
|
||||
提交消息不會產生使用者通知。
|
||||
|
||||
## 提交
|
||||
|
||||
可以使用其 SHA1 哈希或至少七個字符的一部分來引用提交。它們將顯示為對應提交的鏈接。
|
||||
|
||||
示例:
|
||||
範例:
|
||||
|
||||
> 這個錯誤是在 [e59ff077](#) 中引入的
|
||||
|
||||
## 問題和拉取請求
|
||||
|
||||
可以使用簡單的 `#1234` 表示法創建對其他問題或拉取請求的引用,其中 _1234_ 是同一倉庫中問題或拉取請求的編號。這些引用將顯示為指向引用內容的鏈接。
|
||||
可以使用簡單的 `#1234` 表示法建立對其他問題或拉取請求的引用,其中 _1234_ 是同一儲存庫中問題或拉取請求的編號。這些引用將顯示為指向引用內容的鏈接。
|
||||
|
||||
創建此類引用的效果是,在引用的文檔中創建一個通知,前提是引用的創建者對其具有閱讀權限。
|
||||
建立此類引用的效果是,在引用的文件中建立一個通知,前提是引用的建立者對其具有閱讀權限。
|
||||
|
||||
示例:
|
||||
範例:
|
||||
|
||||
> 這似乎與 [#1234](#) 有關
|
||||
|
||||
也可以使用 `owner/repository#1234` 的形式引用其他倉庫中的問題和拉取請求:
|
||||
也可以使用 `owner/repository#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)。
|
||||
|
||||
示例:
|
||||
範例:
|
||||
|
||||
> 此 PR _closes_ [#1234](#)
|
||||
|
||||
如果接受可操作引用,這將在引用的問題上創建一個通知,宣布當合併引用的 PR 時將關閉該問題。
|
||||
如果接受可操作引用,這將在引用的問題上建立一個通知,宣佈當合併引用的 PR 時將關閉該問題。
|
||||
|
||||
要接受可操作引用,必須滿足以下條件之一:
|
||||
|
||||
- 評論者在創建引用時具有關閉或重新打開問題的權限。
|
||||
- 評論者在建立引用時具有關閉或重新打開問題的權限。
|
||||
- 引用在提交消息中。
|
||||
- 引用作為拉取請求描述的一部分發佈。
|
||||
|
||||
在最後一種情況下,只有在合併拉取請求的人具有權限時,問題才會被關閉或重新打開。
|
||||
|
||||
此外,只有拉取請求和提交消息可以創建操作,只有問題可以通過這種方式關閉或重新打開。
|
||||
此外,只有拉取請求和提交消息可以建立操作,只有問題可以透過這種方式關閉或重新打開。
|
||||
|
||||
默認關鍵字是:
|
||||
預設關鍵字是:
|
||||
|
||||
- **關閉**:close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved
|
||||
- **重新打開**:reopen, reopens, reopened
|
||||
|
||||
## 拉取請求和提交消息中的時間跟蹤
|
||||
|
||||
當提交或合併拉取請求導致自動關閉問題時,可以通過提交消息添加解決此問題所花費的時間。
|
||||
當提交或合併拉取請求導致自動關閉問題時,可以透過提交消息添加解決此問題所花費的時間。
|
||||
|
||||
要指定解決問題所花費的時間,您需要在問題號後指定格式為 `@<number><time-unit>` 的時間。在一條提交消息中,您可以為每個問題指定多個修復問題和花費的時間。
|
||||
|
||||
@@ -97,7 +97,7 @@ aliases:
|
||||
|
||||
指定時間的數字(`<number>`)也可以是小數,例如 `@1.5h` 代表一個半小時。可以組合多個時間單位,例如 `@1h10m` 代表 1 小時 10 分鐘。
|
||||
|
||||
提交消息示例:
|
||||
提交消息範例:
|
||||
|
||||
> Fixed #123 spent @1h, refs #102, fixes #124 @1.5h
|
||||
|
||||
@@ -105,17 +105,17 @@ aliases:
|
||||
|
||||
## 外部跟蹤器
|
||||
|
||||
Gitea 支援使用外部問題跟蹤器,並且可以在拉取請求中創建對外部託管問題的引用。然而,如果外部跟蹤器使用編號來識別問題,它們將與 Gitea 中託管的拉取請求無法區分。為了解決這個問題,Gitea 允許使用 `!` 標記來識別拉取請求。例如:
|
||||
Gitea 支援使用外部問題跟蹤器,並且可以在拉取請求中建立對外部託管問題的引用。然而,如果外部跟蹤器使用編號來識別問題,它們將與 Gitea 中託管的拉取請求無法區分。為瞭解決這個問題,Gitea 允許使用 `!` 標記來識別拉取請求。例如:
|
||||
|
||||
> 這是問題 [#1234](#),鏈接到外部跟蹤器。
|
||||
> 這是拉取請求 [!1234](#),鏈接到 Gitea 中的拉取請求。
|
||||
|
||||
`!` 和 `#` 可以互換使用於問題和拉取請求,除了這種情況,需要區分。如果倉庫使用外部跟蹤器,squash 合併的提交消息將默認使用 `!` 作為引用。
|
||||
`!` 和 `#` 可以互換使用於問題和拉取請求,除了這種情況,需要區分。如果儲存庫使用外部跟蹤器,squash 合併的提交消息將預設使用 `!` 作為引用。
|
||||
|
||||
## 問題和拉取請求引用摘要
|
||||
|
||||
此表說明了不同種類的問題和拉取請求的交叉引用。
|
||||
在示例中,`User1/Repo1` 指的是使用引用的倉庫,而 `UserZ/RepoZ` 表示不同的倉庫。
|
||||
此表說明瞭不同種類的問題和拉取請求的交叉引用。
|
||||
在範例中,`User1/Repo1` 指的是使用引用的儲存庫,而 `UserZ/RepoZ` 表示不同的儲存庫。
|
||||
|
||||
| User1/Repo1 中的引用 | Repo1 問題是外部的 | RepoZ 問題是外部的 | 應渲染 |
|
||||
| --------------------- | :----------------: | :----------------: | ----------------------------------------------- |
|
||||
@@ -138,10 +138,10 @@ Gitea 支援使用外部問題跟蹤器,並且可以在拉取請求中創建
|
||||
| _不支援_ | - | yes | 指向 `UserZ/RepoZ` 的外部問題 `AAA-1234` 的鏈接 |
|
||||
| `UserZ/RepoZ!1234` | - | yes | 指向 `UserZ/RepoZ` 中的拉取請求 1234 的鏈接 |
|
||||
|
||||
_最後一部分是針對使用字母數字格式的外部問題跟蹤器的倉庫。_
|
||||
_最後一部分是針對使用字母數字格式的外部問題跟蹤器的儲存庫。_
|
||||
|
||||
_**-**:不適用。_
|
||||
|
||||
:::note
|
||||
在具有不同類型問題(外部與內部)的倉庫之間的自動引用尚未完全支援,可能會渲染無效鏈接。
|
||||
在具有不同類型問題(外部與內部)的儲存庫之間的自動引用尚未完全支援,可能會渲染無效鏈接。
|
||||
:::
|
||||
|
||||
@@ -10,7 +10,7 @@ aliases:
|
||||
|
||||
## 文件名
|
||||
|
||||
PR 默認合併消息模板的可能文件名:
|
||||
PR 預設合併消息模板的可能文件名:
|
||||
|
||||
- `.gitea/default_merge_message/MERGE_TEMPLATE.md`
|
||||
- `.gitea/default_merge_message/REBASE_TEMPLATE.md`
|
||||
@@ -23,12 +23,12 @@ PR 默認合併消息模板的可能文件名:
|
||||
|
||||
您可以在這些模板中使用以下變量,這些變量包含在 `${}` 中,遵循 [os.Expand](https://pkg.go.dev/os#Expand) 語法:
|
||||
|
||||
- BaseRepoOwnerName: 此拉取請求的基礎倉庫所有者名稱
|
||||
- BaseRepoName: 此拉取請求的基礎倉庫名稱
|
||||
- BaseBranch: 此拉取請求的基礎倉庫目標分支名稱
|
||||
- HeadRepoOwnerName: 此拉取請求的頭部倉庫所有者名稱
|
||||
- HeadRepoName: 此拉取請求的頭部倉庫名稱
|
||||
- HeadBranch: 此拉取請求的頭部倉庫分支名稱
|
||||
- BaseRepoOwnerName: 此拉取請求的基礎儲存庫所有者名稱
|
||||
- BaseRepoName: 此拉取請求的基礎儲存庫名稱
|
||||
- BaseBranch: 此拉取請求的基礎儲存庫目標分支名稱
|
||||
- HeadRepoOwnerName: 此拉取請求的頭部儲存庫所有者名稱
|
||||
- HeadRepoName: 此拉取請求的頭部儲存庫名稱
|
||||
- HeadBranch: 此拉取請求的頭部儲存庫分支名稱
|
||||
- PullRequestTitle: 拉取請求的標題
|
||||
- PullRequestDescription: 拉取請求的描述
|
||||
- PullRequestPosterName: 拉取請求的發起人名稱
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 45
|
||||
|
||||
# 遷移
|
||||
|
||||
您可以將倉庫從其他 Git 服務遷移到您的 Gitea 實例。
|
||||
您可以將儲存庫從其他 Git 服務遷移到您的 Gitea 實例。
|
||||
|
||||
## 如何從 Gogs/GitHub/GitLab 遷移到 Gitea
|
||||
|
||||
@@ -16,9 +16,9 @@ sidebar_position: 45
|
||||
|
||||
要從 GitHub 遷移到 Gitea,您可以使用 Gitea 的內置遷移表單。
|
||||
|
||||
為了遷移問題、拉取請求等項目,您需要至少輸入您的用戶名。
|
||||
為了遷移問題、拉取請求等專案,您需要至少輸入您的使用者名稱。
|
||||
|
||||
[示例(需要登錄)](https://demo.gitea.com/repo/migrate)
|
||||
[範例(需要登入)](https://demo.gitea.com/repo/migrate)
|
||||
|
||||
要從 GitLab 遷移到 Gitea,您可以使用這個非官方工具:
|
||||
|
||||
@@ -26,7 +26,7 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
||||
|
||||
## 如何從 AWS CodeCommit 遷移到 Gitea
|
||||
|
||||
- 要使用 AWS CodeCommit API,Gitea 需要訪問密鑰 ID 和秘密訪問密鑰。出於安全原因,我們建議創建一個具有最低必要權限的新用戶,並為遷移生成訪問密鑰 ID 和秘密訪問密鑰。此用戶所需的最低權限如下:
|
||||
- 要使用 AWS CodeCommit API,Gitea 需要訪問密鑰 ID 和祕密訪問密鑰。出於安全原因,我們建議建立一個具有最低必要權限的新使用者,並為遷移生成訪問密鑰 ID 和祕密訪問密鑰。此使用者所需的最低權限如下:
|
||||
|
||||
```
|
||||
{
|
||||
@@ -50,6 +50,6 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
||||
|
||||
- 如果您不需要遷移拉取請求,可以刪除 `ListPullRequests`、`GetPullRequest` 和 `GetCommentsForPullRequest` 操作。
|
||||
|
||||
- 有關如何創建 IAM 用戶並分配權限的說明,您可以參考此 [AWS 文檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)。
|
||||
- 有關如何建立 IAM 使用者並分配權限的說明,您可以參考此 [AWS 文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)。
|
||||
|
||||
- 要克隆此倉庫,Gitea 需要 HTTPS Git 憑據。您可以根據此 [AWS 文檔](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) 創建 HTTPS Git 憑據。
|
||||
- 要克隆此儲存庫,Gitea 需要 HTTPS Git 憑據。您可以根據此 [AWS 文件](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) 建立 HTTPS Git 憑據。
|
||||
|
||||
@@ -7,22 +7,22 @@ weight: 15
|
||||
# 多因素身份驗證 (MFA)
|
||||
|
||||
多因素身份驗證(也稱為 MFA 或 2FA)通過要求除密碼外的時間敏感憑據來增強安全性。
|
||||
如果密碼後來被洩露,則無法登錄 Gitea,帳戶將保持安全。
|
||||
如果密碼後來被洩露,則無法登入 Gitea,帳戶將保持安全。
|
||||
Gitea 支援 TOTP(基於時間的一次性密碼)令牌和使用 Webauthn API 的基於 FIDO 的硬件密鑰。
|
||||
|
||||
可以在用戶設置頁面的“安全”選項卡中配置 MFA。
|
||||
可以在使用者設定頁面的“安全”選項卡中設定 MFA。
|
||||
|
||||
## MFA 考慮事項
|
||||
|
||||
在用戶上啟用 MFA 會影響 Git HTTP 協議如何與 Git CLI 一起使用。
|
||||
此界面不支援 MFA,並且在啟用 MFA 時嘗試正常使用密碼將不再可能。
|
||||
如果 SSH 不是 Git 操作的選項,可以在用戶設置頁面的“應用程序”選項卡中生成訪問令牌。
|
||||
此訪問令牌可以像密碼一樣使用,以允許 Git CLI 通過 HTTP 工作。
|
||||
在使用者上啟用 MFA 會影響 Git HTTP 協議如何與 Git CLI 一起使用。
|
||||
此介面不支援 MFA,並且在啟用 MFA 時嘗試正常使用密碼將不再可能。
|
||||
如果 SSH 不是 Git 操作的選項,可以在使用者設定頁面的“應用程式”選項卡中生成存取權杖。
|
||||
此存取權杖可以像密碼一樣使用,以允許 Git CLI 通過 HTTP 工作。
|
||||
|
||||
:::warning
|
||||
由於其本質,訪問令牌繞過了 MFA 的安全性優勢。
|
||||
由於其本質,存取權杖繞過了 MFA 的安全性優勢。
|
||||
它必須保持安全,並且應僅作為最後的手段使用。
|
||||
:::
|
||||
|
||||
Gitea API 支援在 `X-Gitea-OTP` 標頭中提供相關的 TOTP 密碼,如 [API 使用](development/api-usage.md) 中所述。
|
||||
應盡可能使用此方法代替訪問令牌。
|
||||
應盡可能使用此方法代替存取權杖。
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 4
|
||||
|
||||
# Alpine 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Alpine](https://pkgs.alpinelinux.org/) 套件。
|
||||
為您的使用者或組織發布 [Alpine](https://pkgs.alpinelinux.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,7 +14,7 @@ sidebar_position: 4
|
||||
|
||||
以下範例使用 `apk`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊 Alpine 註冊表,請將 URL 添加到已知的 apk 來源列表中(`/etc/apk/repositories`):
|
||||
|
||||
@@ -26,15 +26,15 @@ https://gitea.example.com/api/packages/{owner}/alpine/<branch>/<repository>
|
||||
| ------------ | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `branch` | 要使用的分支。 |
|
||||
| `repository` | 要使用的倉庫。 |
|
||||
| `repository` | 要使用的儲存庫。 |
|
||||
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人訪問令牌](development/api-usage.md#authentication):
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人存取權杖](development/api-usage.md#認證):
|
||||
|
||||
```
|
||||
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
|
||||
@@ -58,7 +58,7 @@ PUT https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repository}
|
||||
| ------------ | ------------------------------------------------------------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `branch` | 分支可能與操作系統的發行版本匹配,例如:`v3.17`。 |
|
||||
| `repository` | 倉庫可以用來[分組套件](https://wiki.alpinelinux.org/wiki/Repositories) 或者只是 `main` 或類似的。 |
|
||||
| `repository` | 儲存庫可以用來[分組套件](https://wiki.alpinelinux.org/wiki/Repositories) 或者只是 `main` 或類似的。 |
|
||||
|
||||
使用 HTTP 基本身份驗證的範例請求:
|
||||
|
||||
@@ -68,16 +68,16 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
您不能將同名文件兩次發布到套件中。您必須先刪除現有的套件文件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------------- |
|
||||
| `201 Created` | 套件已發布。 |
|
||||
| `400 Bad Request` | 套件名稱、版本、分支、倉庫或架構無效。 |
|
||||
| `400 Bad Request` | 套件名稱、版本、分支、儲存庫或架構無效。 |
|
||||
| `409 Conflict` | 套件中已存在具有相同參數組合的套件文件。 |
|
||||
|
||||
## 刪除套件
|
||||
@@ -92,7 +92,7 @@ DELETE https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repositor
|
||||
| -------------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `branch` | 要使用的分支。 |
|
||||
| `repository` | 要使用的倉庫。 |
|
||||
| `repository` | 要使用的儲存庫。 |
|
||||
| `architecture` | 套件架構。 |
|
||||
| `filename` | 要刪除的文件。 |
|
||||
|
||||
@@ -103,7 +103,7 @@ 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 狀態碼 | 含義 |
|
||||
| ---------------- | ------------------ |
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 5
|
||||
|
||||
# Arch 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Arch](https://archlinux.org/packages/) 套件。該註冊表可以作為一個完全運行的 [Arch linux 鏡像](https://wiki.archlinux.org/title/mirrors),直接連接到 `/etc/pacman.conf`。
|
||||
為您的使用者或組織發布 [Arch](https://archlinux.org/packages/) 套件。該註冊表可以作為一個完全運行的 [Arch linux 鏡像](https://wiki.archlinux.org/title/mirrors),直接連接到 `/etc/pacman.conf`。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,9 +14,9 @@ sidebar_position: 5
|
||||
|
||||
以下範例使用 `pacman`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
在您可以使用套件註冊表之前,您需要下載套件驗證密鑰並將註冊表添加到 pacman 配置中。
|
||||
在您可以使用套件註冊表之前,您需要下載套件驗證密鑰並將註冊表添加到 pacman 設定中。
|
||||
|
||||
下載套件驗證密鑰。
|
||||
|
||||
@@ -37,7 +37,7 @@ pacman-key --add repository.key
|
||||
pacman-key --lsign-key {key id}
|
||||
```
|
||||
|
||||
現在將註冊表配置添加到 `/etc/pacman.conf`。
|
||||
現在將註冊表設定添加到 `/etc/pacman.conf`。
|
||||
|
||||
```conf
|
||||
[{owner}.gitea.example.com]
|
||||
@@ -48,12 +48,12 @@ Server = https://gitea.example.com/api/packages/{owner}/arch/{repository}/{archi
|
||||
| 佔位符 | 描述 |
|
||||
| -------------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `repository` | 要使用的倉庫。 |
|
||||
| `repository` | 要使用的儲存庫。 |
|
||||
| `architecture` | 要使用的架構。 |
|
||||
|
||||
請參閱擁有者的套件概述以查看可用的 `repository` 和 `architecture`。
|
||||
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人訪問令牌](development/api-usage.md#authentication):
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人存取權杖](development/api-usage.md#認證):
|
||||
|
||||
```
|
||||
Server = https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/arch/{repository}/{architecture}
|
||||
@@ -70,7 +70,7 @@ PUT https://gitea.example.com/api/packages/{owner}/arch/{repository}
|
||||
| 參數 | 描述 |
|
||||
| ------------ | -------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `repository` | 倉庫可以用來分組套件或只是 `core` 或類似的。 |
|
||||
| `repository` | 儲存庫可以用來分組套件或只是 `core` 或類似的。 |
|
||||
|
||||
使用 HTTP 基本身份驗證的範例請求:
|
||||
|
||||
@@ -80,16 +80,16 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/arch/core
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
您不能將同名文件兩次發布到套件中。您必須先刪除現有的套件文件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ------------------------------------------ |
|
||||
| `201 Created` | 套件已發布。 |
|
||||
| `400 Bad Request` | 套件的某些部分無效。錯誤消息包含更多信息。 |
|
||||
| `400 Bad Request` | 套件的某些部分無效。錯誤消息包含更多資訊。 |
|
||||
| `409 Conflict` | 套件中已存在具有相同參數組合的套件文件。 |
|
||||
|
||||
## 安裝套件
|
||||
@@ -115,7 +115,7 @@ DELETE https://gitea.example.com/api/packages/{owner}/arch/{repository}/{package
|
||||
| 參數 | 描述 |
|
||||
| ----------------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `repository` | 要使用的倉庫。 |
|
||||
| `repository` | 要使用的儲存庫。 |
|
||||
| `architecture` | 套件架構。 |
|
||||
| `package_name` | 套件名稱。 |
|
||||
| `package_version` | 套件版本。 |
|
||||
@@ -127,7 +127,7 @@ curl --user your_username:your_token_or_password -X DELETE \
|
||||
https://gitea.example.com/api/packages/testuser/arch/core/test-package/1.0.0/x86-64
|
||||
```
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ---------------- | ------------------ |
|
||||
|
||||
@@ -6,35 +6,35 @@ sidebar_position: 5
|
||||
|
||||
# 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 將可用套件的信息存儲在一個 git 存儲庫中的套件索引中。
|
||||
此存儲庫是使用註冊表所必需的。
|
||||
以下部分描述了如何創建它。
|
||||
Cargo 將可用套件的資訊儲存在一個 git 儲存庫中的套件索引中。
|
||||
此儲存庫是使用註冊表所必需的。
|
||||
以下部分描述瞭如何建立它。
|
||||
|
||||
## 索引存儲庫
|
||||
## 索引儲存庫
|
||||
|
||||
Cargo 將可用套件的信息存儲在一個 git 存儲庫中的套件索引中。
|
||||
在 Gitea 中,此存儲庫具有特殊名稱 `_cargo-index`。
|
||||
上傳套件後,其元數據會自動寫入索引。
|
||||
此存儲庫的內容不應手動修改。
|
||||
Cargo 將可用套件的資訊儲存在一個 git 儲存庫中的套件索引中。
|
||||
在 Gitea 中,此儲存庫具有特殊名稱 `_cargo-index`。
|
||||
上傳套件後,其元資料會自動寫入索引。
|
||||
此儲存庫的內容不應手動修改。
|
||||
|
||||
用戶或組織的套件設置頁面允許創建索引存儲庫以及配置文件。
|
||||
如果需要,此操作將重寫配置文件。
|
||||
使用者或組織的套件設定頁面允許建立索引儲存庫以及設定文件。
|
||||
如果需要,此操作將重寫設定文件。
|
||||
這在例如 Gitea 實例域名更改時很有用。
|
||||
|
||||
如果出現 Gitea 中存儲的套件與索引存儲庫中的信息不同步的情況,設置頁面允許重建索引存儲庫。
|
||||
此操作會遍歷註冊表中的所有套件並將其信息寫入索引。
|
||||
如果出現 Gitea 中儲存的套件與索引儲存庫中的資訊不同步的情況,設定頁面允許重建索引儲存庫。
|
||||
此操作會遍歷註冊表中的所有套件並將其資訊寫入索引。
|
||||
如果有很多套件,這個過程可能需要一些時間。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,必須更新 Cargo 配置。
|
||||
將以下文本添加到當前用戶主目錄中的配置文件(例如 `~/.cargo/config.toml`):
|
||||
要註冊套件註冊表,必須更新 Cargo 設定。
|
||||
將以下文本添加到當前使用者主目錄中的設定文件(例如 `~/.cargo/config.toml`):
|
||||
|
||||
```
|
||||
[registry]
|
||||
@@ -52,8 +52,8 @@ index = "sparse+https://gitea.example.com/api/packages/{owner}/cargo/" # Sparse
|
||||
| ------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
如果註冊表是私有的或您想發布新套件,您必須配置您的憑證。
|
||||
將憑證部分添加到當前用戶主目錄中的憑證文件(例如 `~/.cargo/credentials.toml`):
|
||||
如果註冊表是私有的或您想發布新套件,您必須設定您的憑證。
|
||||
將憑證部分添加到當前使用者主目錄中的憑證文件(例如 `~/.cargo/credentials.toml`):
|
||||
|
||||
```
|
||||
[registries.gitea]
|
||||
@@ -62,17 +62,17 @@ token = "Bearer {token}"
|
||||
|
||||
| 參數 | 描述 |
|
||||
| ------- | ------------------------------------------------------------ |
|
||||
| `token` | 您的 [個人訪問令牌](development/api-usage.md#authentication) |
|
||||
| `token` | 您的 [個人存取權杖](development/api-usage.md#認證) |
|
||||
|
||||
## Git vs Sparse
|
||||
|
||||
目前,cargo 支持兩種從註冊表中獲取 crate 的方式:Git 索引和 sparse 索引。
|
||||
目前,cargo 支援兩種從註冊表中獲取 crate 的方式:Git 索引和 sparse 索引。
|
||||
Sparse 索引是最新的方法,與 git 相比,在更新 crate 時提供了更好的性能。
|
||||
自 Rust 1.68 起,sparse 是 crates.io 的默認方法。
|
||||
自 Rust 1.68 起,sparse 是 crates.io 的預設方法。
|
||||
|
||||
## 發布套件
|
||||
|
||||
在您的項目中運行以下命令來發布套件:
|
||||
在您的專案中運行以下命令來發布套件:
|
||||
|
||||
```shell
|
||||
cargo publish
|
||||
@@ -92,7 +92,7 @@ cargo add {package_name}
|
||||
| -------------- | ---------- |
|
||||
| `package_name` | 套件名稱。 |
|
||||
|
||||
## 支持的命令
|
||||
## 支援的命令
|
||||
|
||||
```
|
||||
cargo publish
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 10
|
||||
|
||||
# Chef 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Chef](https://chef.io/) 食譜。
|
||||
為您的使用者或組織發布 [Chef](https://chef.io/) 食譜。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,14 +14,14 @@ sidebar_position: 10
|
||||
|
||||
## 認證
|
||||
|
||||
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'
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 15
|
||||
|
||||
# Composer 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Composer](https://getcomposer.org/) 套件。
|
||||
為您的使用者或組織發布 [Composer](https://getcomposer.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -15,7 +15,7 @@ sidebar_position: 15
|
||||
## 發布套件
|
||||
|
||||
要發布 Composer 套件,請執行 HTTP PUT 操作,請求體中包含套件內容。
|
||||
套件內容必須是包含 `composer.json` 文件的壓縮 PHP 項目。
|
||||
套件內容必須是包含 `composer.json` 文件的壓縮 PHP 專案。
|
||||
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
@@ -49,9 +49,9 @@ 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#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------- |
|
||||
@@ -59,7 +59,7 @@ curl --user your_username:your_password_or_token \
|
||||
| `400 Bad Request` | 套件無效。 |
|
||||
| `409 Conflict` | 已存在具有相同參數組合的套件文件。 |
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您需要將其添加到 Composer 的 `config.json` 文件中(通常可以在 `<user-home-dir>/.composer/config.json` 下找到):
|
||||
|
||||
@@ -90,8 +90,8 @@ curl --user your_username:your_password_or_token \
|
||||
| 參數 | 描述 |
|
||||
| ---------- | ------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼或個人訪問令牌。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼或個人存取權杖。 |
|
||||
|
||||
## 安裝套件
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ sidebar_position: 20
|
||||
|
||||
# Conan 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Conan](https://conan.io/) 套件。
|
||||
為您的使用者或組織發布 [Conan](https://conan.io/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用 Conan 套件註冊表,您需要使用 [conan](https://conan.io/downloads.html) 命令行工具來消費和發布套件。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您需要配置一個新的 Conan 遠程:
|
||||
要註冊套件註冊表,您需要設定一個新的 Conan 遠程:
|
||||
|
||||
```shell
|
||||
conan remote add {remote} https://gitea.example.com/api/packages/{owner}/conan
|
||||
@@ -24,8 +24,8 @@ conan user --remote {remote} --password {password} {username}
|
||||
| 參數 | 描述 |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `remote` | 遠程名稱。 |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
例如:
|
||||
@@ -56,7 +56,7 @@ 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)。
|
||||
|
||||
## 安裝套件
|
||||
|
||||
@@ -77,7 +77,7 @@ conan install --remote={remote} {recipe}
|
||||
conan install --remote=gitea ConanPackage/1.2@gitea/final
|
||||
```
|
||||
|
||||
## 支持的命令
|
||||
## 支援的命令
|
||||
|
||||
```
|
||||
conan install
|
||||
|
||||
@@ -6,13 +6,13 @@ sidebar_position: 25
|
||||
|
||||
# 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)。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表並提供憑證,請編輯您的 `.condarc` 文件:
|
||||
|
||||
@@ -28,7 +28,7 @@ default_channels:
|
||||
| ------- | -------------- |
|
||||
| `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/...`)。
|
||||
|
||||
@@ -54,11 +54,11 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/conda/package-1.0.conda
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------- |
|
||||
|
||||
@@ -6,15 +6,15 @@ sidebar_position: 30
|
||||
|
||||
# 容器註冊表
|
||||
|
||||
為您的用戶或組織發布符合 [Open Container Initiative](https://opencontainers.org/) 規範的映像。
|
||||
容器註冊表遵循 OCI 規範,支持所有兼容的映像,如 [Docker](https://www.docker.com/) 和 [Helm Charts](https://helm.sh/)。
|
||||
為您的使用者或組織發布符合 [Open Container Initiative](https://opencontainers.org/) 規範的映像。
|
||||
容器註冊表遵循 OCI 規範,支援所有相容的映像,如 [Docker](https://www.docker.com/) 和 [Helm Charts](https://helm.sh/)。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用容器註冊表,您可以使用特定映像類型的工具。
|
||||
以下範例使用 `docker` 客戶端。
|
||||
|
||||
## 登錄到容器註冊表
|
||||
## 登入到容器註冊表
|
||||
|
||||
要推送映像或如果映像在私有註冊表中,您必須進行身份驗證:
|
||||
|
||||
@@ -22,7 +22,7 @@ sidebar_position: 30
|
||||
docker login gitea.example.com
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
## 映像命名規則
|
||||
|
||||
@@ -49,12 +49,12 @@ docker tag {some-existing-image}:{tag} {registry}/{owner}/{image}:{tag}
|
||||
`gitea.example.com/testuser/my/image`
|
||||
|
||||
:::note
|
||||
註冊表僅支持不區分大小寫的標籤名稱。因此 `image:tag` 和 `image:Tag` 被視為相同的映像和標籤。
|
||||
註冊表僅支援不區分大小寫的標籤名稱。因此 `image:tag` 和 `image:Tag` 被視為相同的映像和標籤。
|
||||
:::
|
||||
|
||||
## 推送映像
|
||||
|
||||
通過執行以下命令推送映像:
|
||||
透過執行以下命令推送映像:
|
||||
|
||||
```shell
|
||||
docker push gitea.example.com/{owner}/{image}:{tag}
|
||||
@@ -74,7 +74,7 @@ docker push gitea.example.com/testuser/myimage:latest
|
||||
|
||||
## 拉取映像
|
||||
|
||||
通過執行以下命令拉取映像:
|
||||
透過執行以下命令拉取映像:
|
||||
|
||||
```shell
|
||||
docker pull gitea.example.com/{owner}/{image}:{tag}
|
||||
|
||||
@@ -6,15 +6,15 @@ sidebar_position: 35
|
||||
|
||||
# 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/)。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您需要將其添加到 `Rprofile.site`,可以是系統級別、用戶級別(`~/.Rprofile`)或項目級別:
|
||||
要註冊套件註冊表,您需要將其添加到 `Rprofile.site`,可以是系統級別、使用者級別(`~/.Rprofile`)或專案級別:
|
||||
|
||||
```
|
||||
options("repos" = c(getOption("repos"), c(gitea="https://gitea.example.com/api/packages/{owner}/cran")))
|
||||
@@ -60,11 +60,11 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/cran/bin?platform=windows&rversion=4.2
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------- |
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 40
|
||||
|
||||
# Debian 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Debian](https://www.debian.org/distrib/packages) 套件。
|
||||
為您的使用者或組織發布 [Debian](https://www.debian.org/distrib/packages) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,7 +14,7 @@ sidebar_position: 40
|
||||
|
||||
以下範例使用 `apt`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊 Debian 註冊表,請將 URL 添加到已知的 apt 來源列表中:
|
||||
|
||||
@@ -26,9 +26,9 @@ echo "deb [signed-by=/etc/apt/keyrings/gitea-{owner}.asc] https://gitea.example.
|
||||
| -------------- | ---------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `distribution` | 要使用的發行版。 |
|
||||
| `component` | 要使用的組件。 |
|
||||
| `component` | 要使用的元件。 |
|
||||
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人訪問令牌](development/api-usage.md#authentication):
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人存取權杖](development/api-usage.md#認證):
|
||||
|
||||
```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
|
||||
@@ -58,7 +58,7 @@ PUT https://gitea.example.com/api/packages/{owner}/debian/pool/{distribution}/{c
|
||||
| -------------- | ---------------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `distribution` | 發行版可能與操作系統的發行名稱匹配,例如:`bionic`。 |
|
||||
| `component` | 組件可以用來分組套件或只是 `main` 或類似的。 |
|
||||
| `component` | 元件可以用來分組套件或只是 `main` 或類似的。 |
|
||||
|
||||
使用 HTTP 基本身份驗證的範例請求:
|
||||
|
||||
@@ -68,11 +68,11 @@ 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#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
如果已經存在同名、同版本、同發行版、同組件和同架構的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
如果已經存在同名、同版本、同發行版、同元件和同架構的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------- |
|
||||
@@ -94,7 +94,7 @@ DELETE https://gitea.example.com/api/packages/{owner}/debian/pool/{distribution}
|
||||
| `package_name` | 套件名稱。 |
|
||||
| `package_version` | 套件版本。 |
|
||||
| `distribution` | 套件發行版。 |
|
||||
| `component` | 套件組件。 |
|
||||
| `component` | 套件元件。 |
|
||||
| `architecture` | 套件架構。 |
|
||||
|
||||
使用 HTTP 基本身份驗證的範例請求:
|
||||
@@ -104,7 +104,7 @@ curl --user your_username:your_token_or_password -X DELETE \
|
||||
https://gitea.example.com/api/packages/testuser/debian/pool/bionic/main/test-package/1.0.0/amd64
|
||||
```
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ---------------- | ------------------ |
|
||||
|
||||
@@ -6,11 +6,11 @@ sidebar_position: 500
|
||||
|
||||
# 通用套件註冊表
|
||||
|
||||
為您的用戶或組織發布通用文件,如發布的二進制文件或其他輸出。
|
||||
為您的使用者或組織發布通用文件,如發布的二進制文件或其他輸出。
|
||||
|
||||
## 認證到套件註冊表
|
||||
|
||||
要認證到套件註冊表,您需要提供[自定義 HTTP 標頭或使用 HTTP 基本認證](development/api-usage.md#authentication)。
|
||||
要認證到套件註冊表,您需要提供[自訂 HTTP 標頭或使用 HTTP 基本認證](development/api-usage.md#認證)。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -36,9 +36,9 @@ 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#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ---------------------------------- |
|
||||
@@ -70,7 +70,7 @@ 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 狀態碼 | 含義 |
|
||||
| --------------- | ------------------ |
|
||||
@@ -98,7 +98,7 @@ curl --user your_username:your_token_or_password -X DELETE \
|
||||
https://gitea.example.com/api/packages/testuser/generic/test_package/1.0.0
|
||||
```
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ---------------- | ------------ |
|
||||
@@ -127,7 +127,7 @@ 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 狀態碼 | 含義 |
|
||||
| ---------------- | ------------------ |
|
||||
|
||||
@@ -6,13 +6,13 @@ sidebar_position: 45
|
||||
|
||||
# Go 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 Go 套件。
|
||||
為您的使用者或組織發布 Go 套件。
|
||||
|
||||
## 發布套件
|
||||
|
||||
要發布 Go 套件,請執行 HTTP `PUT` 操作,請求體中包含套件內容。
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
套件必須遵循[文檔結構](https://go.dev/ref/mod#zip-files)。
|
||||
套件必須遵循[文件結構](https://go.dev/ref/mod#zip-files)。
|
||||
|
||||
```
|
||||
PUT https://gitea.example.com/api/packages/{owner}/go/upload
|
||||
@@ -22,7 +22,7 @@ PUT https://gitea.example.com/api/packages/{owner}/go/upload
|
||||
| ------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
要認證到套件註冊表,您需要提供[自定義 HTTP 標頭或使用 HTTP 基本認證](development/api-usage.md#authentication):
|
||||
要認證到套件註冊表,您需要提供[自訂 HTTP 標頭或使用 HTTP 基本認證](development/api-usage.md#認證):
|
||||
|
||||
```shell
|
||||
curl --user your_username:your_password_or_token \
|
||||
@@ -30,11 +30,11 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/go/upload
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | -------------------------- |
|
||||
@@ -63,4 +63,4 @@ GOPROXY=https://gitea.example.com/api/packages/{owner}/go go install {package_na
|
||||
|
||||
如果套件的擁有者是私有的,您需要[提供憑證](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)。
|
||||
|
||||
@@ -6,11 +6,11 @@ sidebar_position: 50
|
||||
|
||||
# Helm Chart 註冊表
|
||||
|
||||
為您的用戶或組織發布 [Helm](https://helm.sh/) 圖表。
|
||||
為您的使用者或組織發布 [Helm](https://helm.sh/) 圖表。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用 Helm Chart 註冊表,請使用簡單的 HTTP 客戶端,如 `curl` 或 [`helm cm-push`](https://github.com/chartmuseum/helm-push/) 插件。
|
||||
要使用 Helm Chart 註冊表,請使用簡單的 HTTP 客戶端,如 `curl` 或 [`helm cm-push`](https://github.com/chartmuseum/helm-push/) 外掛。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -20,7 +20,7 @@ sidebar_position: 50
|
||||
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
|
||||
@@ -29,9 +29,9 @@ helm cm-push ./{chart_file}.tgz {repo}
|
||||
|
||||
| 參數 | 描述 |
|
||||
| ------------ | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `repo` | 倉庫的名稱。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
| `repo` | 儲存庫的名稱。 |
|
||||
| `chart_file` | Helm Chart 存檔。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
@@ -47,9 +47,9 @@ helm install {name} {repo}/{chart}
|
||||
|
||||
| 參數 | 描述 |
|
||||
| ---------- | ------------------------------- |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼或個人訪問令牌。 |
|
||||
| `repo` | 倉庫的名稱。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼或個人存取權杖。 |
|
||||
| `repo` | 儲存庫的名稱。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `name` | 本地名稱。 |
|
||||
| `chart` | Helm Chart 的名稱。 |
|
||||
|
||||
@@ -6,16 +6,16 @@ sidebar_position: 60
|
||||
|
||||
# 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`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您首先需要將訪問令牌添加到 [`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>
|
||||
@@ -58,12 +58,12 @@ sidebar_position: 60
|
||||
|
||||
| 參數 | 描述 |
|
||||
| -------------- | -------------------------------------------------------------- |
|
||||
| `access_token` | 您的 [個人訪問令牌](development/api-usage.md#authentication)。 |
|
||||
| `access_token` | 您的 [個人存取權杖](development/api-usage.md#認證)。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
### Gradle 變體
|
||||
|
||||
當您計劃在項目中添加來自 Gitea 實例的一些套件時,應該將其添加到倉庫部分:
|
||||
當您計劃在專案中添加來自 Gitea 實例的一些套件時,應該將其添加到儲存庫部分:
|
||||
|
||||
```groovy
|
||||
repositories {
|
||||
@@ -123,7 +123,7 @@ mvn deploy:deploy-file -Durl=https://gitea.example.com/api/packages/{owner}/mave
|
||||
|
||||
## 安裝套件
|
||||
|
||||
要從套件註冊表中安裝 Maven 套件,請在項目 `pom.xml` 文件中添加新的依賴項:
|
||||
要從套件註冊表中安裝 Maven 套件,請在專案 `pom.xml` 文件中添加新的依賴項:
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
@@ -145,7 +145,7 @@ implementation "com.test.package:test_project:1.0.0"
|
||||
mvn install
|
||||
```
|
||||
|
||||
## 支持的命令
|
||||
## 支援的命令
|
||||
|
||||
```
|
||||
mvn install
|
||||
|
||||
@@ -6,19 +6,19 @@ sidebar_position: 70
|
||||
|
||||
# NPM 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [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/)和非範圍套件。
|
||||
|
||||
以下範例使用 `npm` 工具和範圍 `@test`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您需要配置一個新的包源。
|
||||
要註冊套件註冊表,您需要設定一個新的包源。
|
||||
|
||||
```shell
|
||||
npm config set {scope}:registry=https://gitea.example.com/api/packages/{owner}/npm/
|
||||
@@ -29,7 +29,7 @@ npm config set -- '//gitea.example.com/api/packages/{owner}/npm/:_authToken' "{t
|
||||
| ------- | -------------------------------------------------------------- |
|
||||
| `scope` | 套件的範圍。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `token` | 您的 [個人訪問令牌](development/api-usage.md#authentication)。 |
|
||||
| `token` | 您的 [個人存取權杖](development/api-usage.md#認證)。 |
|
||||
|
||||
例如:
|
||||
|
||||
@@ -47,7 +47,7 @@ npm config set -- '//gitea.example.com/api/packages/testuser/npm/:_authToken' "p
|
||||
|
||||
## 發布套件
|
||||
|
||||
在您的項目中運行以下命令來發布套件:
|
||||
在您的專案中運行以下命令來發布套件:
|
||||
|
||||
```shell
|
||||
npm publish
|
||||
@@ -95,7 +95,7 @@ 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}
|
||||
@@ -117,9 +117,9 @@ 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
|
||||
|
||||
@@ -6,17 +6,17 @@ sidebar_position: 80
|
||||
|
||||
# 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(如 Visual Studio)中的 NuGet 功能。
|
||||
有關 NuGet 客戶端的更多信息,請參閱[官方文檔](https://docs.microsoft.com/zh-tw/nuget/install-nuget-client-tools)。
|
||||
要使用 NuGet 套件註冊表,您可以使用命令行介面工具以及各種 IDE(如 Visual Studio)中的 NuGet 功能。
|
||||
有關 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
|
||||
@@ -25,8 +25,8 @@ dotnet nuget add source --name {source_name} --username {username} --password {p
|
||||
| 參數 | 描述 |
|
||||
| ------------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `source_name` | 所需的源名稱。 |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
例如:
|
||||
@@ -35,7 +35,7 @@ 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`](https://docs.microsoft.com/zh-tw/dotnet/core/tools/dotnet-nuget-push) 參數。在這種情況下,您需要提供 [個人訪問令牌](development/api-usage.md#authentication)。
|
||||
您可以在沒有憑證的情況下添加源,並在發布套件時使用 [`--api-key`](https://docs.microsoft.com/zh-tw/dotnet/core/tools/dotnet-nuget-push) 參數。在這種情況下,您需要提供 [個人存取權杖](development/api-usage.md#認證)。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -60,7 +60,7 @@ dotnet nuget push --source gitea test_package.1.0.0.nupkg
|
||||
|
||||
### 符號包
|
||||
|
||||
NuGet 套件註冊表支持符號服務器。嵌入在符號包(`.snupkg`)中的 PDB 文件可以被客戶端請求。
|
||||
NuGet 套件註冊表支援符號伺服器。嵌入在符號包(`.snupkg`)中的 PDB 文件可以被客戶端請求。
|
||||
為此,請將 NuGet 套件註冊表註冊為符號源:
|
||||
|
||||
```
|
||||
@@ -97,7 +97,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
|
||||
|
||||
@@ -8,9 +8,9 @@ sidebar_position: 1
|
||||
|
||||
從 Gitea **1.17** 開始,套件註冊表可以用作常見套件管理器的公共或私有註冊表。
|
||||
|
||||
## 支持的套件管理器
|
||||
## 支援的套件管理器
|
||||
|
||||
目前支持以下套件管理器:
|
||||
目前支援以下套件管理器:
|
||||
|
||||
| 名稱 | 語言 | 套件客戶端 |
|
||||
| ---------------------------------------- | ---------- | --------------------------- |
|
||||
@@ -37,59 +37,59 @@ sidebar_position: 1
|
||||
| [Swift](usage/packages/swift.md) | Swift | `swift` |
|
||||
| [Vagrant](usage/packages/vagrant.md) | - | `vagrant` |
|
||||
|
||||
**以下段落僅適用於套件未全局禁用的情況!**
|
||||
**以下段落僅適用於套件未全域禁用的情況!**
|
||||
|
||||
## 存儲庫-套件
|
||||
## 儲存庫-套件
|
||||
|
||||
套件始終屬於擁有者(用戶或組織),而不是存儲庫。
|
||||
要將(已上傳的)套件鏈接到存儲庫,請打開該套件的設置頁面並選擇要鏈接此套件的存儲庫。
|
||||
套件始終屬於擁有者(使用者或組織),而不是儲存庫。
|
||||
要將(已上傳的)套件鏈接到儲存庫,請打開該套件的設定頁面並選擇要鏈接此套件的儲存庫。
|
||||
整個套件將被鏈接,而不僅僅是單個版本。
|
||||
|
||||
鏈接套件會顯示在存儲庫的套件列表中,並在套件網站上顯示指向存儲庫的鏈接(以及指向存儲庫問題的鏈接)。
|
||||
鏈接套件會顯示在儲存庫的套件列表中,並在套件網站上顯示指向儲存庫的鏈接(以及指向儲存庫問題的鏈接)。
|
||||
|
||||
## 訪問限制
|
||||
|
||||
| 套件擁有者類型 | 用戶 | 組織 |
|
||||
| 套件擁有者類型 | 使用者 | 組織 |
|
||||
| -------------- | -------------------------------------------- | -------------------------------------------- |
|
||||
| **讀** 訪問 | 公共,如果用戶也是公共的;否則僅對此用戶可見 | 公共,如果組織是公共的,否則僅對組織成員可見 |
|
||||
| **寫** 訪問 | 僅限擁有者 | 具有管理或寫入訪問權限的組織成員 |
|
||||
| **讀** 訪問 | 公共,如果使用者也是公共的;否則僅對此使用者可見 | 公共,如果組織是公共的,否則僅對組織成員可見 |
|
||||
| **寫** 訪問 | 僅限擁有者 | 具有管理或寫入存取權限的組織成員 |
|
||||
|
||||
注意:這些訪問限制[可能會更改](https://github.com/go-gitea/gitea/issues/19270),將通過專用的組織團隊權限添加更細粒度的控制。
|
||||
|
||||
## 創建或上傳套件
|
||||
## 建立或上傳套件
|
||||
|
||||
根據套件的類型,使用相應的套件管理器。請查看特定套件管理器的子頁面以獲取說明。
|
||||
|
||||
## 查看套件
|
||||
|
||||
您可以在存儲庫頁面上查看存儲庫的套件。
|
||||
您可以在儲存庫頁面上查看儲存庫的套件。
|
||||
|
||||
1. 轉到存儲庫。
|
||||
1. 轉到儲存庫。
|
||||
1. 在導航欄中轉到 **Packages**。
|
||||
|
||||
要查看有關套件的更多詳細信息,請選擇套件的名稱。
|
||||
要查看有關套件的更多詳細資訊,請選擇套件的名稱。
|
||||
|
||||
## 下載套件
|
||||
|
||||
要從存儲庫下載套件:
|
||||
要從儲存庫下載套件:
|
||||
|
||||
1. 在導航欄中轉到 **Packages**。
|
||||
1. 選擇套件的名稱以查看詳細信息。
|
||||
1. 選擇套件的名稱以查看詳細資訊。
|
||||
1. 在 **Assets** 部分中,選擇要下載的套件文件的名稱。
|
||||
|
||||
## 刪除套件
|
||||
|
||||
在套件註冊表中發布套件後,您無法編輯它。相反,您必須刪除並重新創建它。
|
||||
在套件註冊表中發布套件後,您無法編輯它。相反,您必須刪除並重新建立它。
|
||||
|
||||
要從存儲庫中刪除套件:
|
||||
要從儲存庫中刪除套件:
|
||||
|
||||
1. 在導航欄中轉到 **Packages**。
|
||||
1. 選擇套件的名稱以查看詳細信息。
|
||||
1. 選擇套件的名稱以查看詳細資訊。
|
||||
1. 單擊 **Delete package** 以永久刪除套件。
|
||||
|
||||
## 禁用套件註冊表
|
||||
|
||||
套件註冊表會自動啟用。要為單個存儲庫禁用它:
|
||||
套件註冊表會自動啟用。要為單個儲存庫禁用它:
|
||||
|
||||
1. 在導航欄中轉到 **Settings**。
|
||||
1. 禁用 **Enable Repository Packages Registry**。
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 90
|
||||
|
||||
# Pub 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Pub](https://dart.dev/guides/packages) 套件。
|
||||
為您的使用者或組織發布 [Pub](https://dart.dev/guides/packages) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,7 +14,7 @@ sidebar_position: 90
|
||||
|
||||
以下範例使用 dart。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表並提供憑證,請執行:
|
||||
|
||||
@@ -26,7 +26,7 @@ dart pub token add https://gitea.example.com/api/packages/{owner}/pub
|
||||
| ------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
您需要提供您的 [個人訪問令牌](development/api-usage.md#authentication)。
|
||||
您需要提供您的 [個人存取權杖](development/api-usage.md#認證)。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -40,7 +40,7 @@ publish_to: https://gitea.example.com/api/packages/{owner}/pub
|
||||
| ------- | -------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
|
||||
現在您可以通過運行以下命令來發布套件:
|
||||
現在您可以透過運行以下命令來發布套件:
|
||||
|
||||
```shell
|
||||
dart pub publish
|
||||
|
||||
@@ -6,13 +6,13 @@ sidebar_position: 100
|
||||
|
||||
# PyPI 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [PyPI](https://pypi.org/) 套件。
|
||||
為您的使用者或組織發布 [PyPI](https://pypi.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用 PyPI 套件註冊表,您需要使用工具 [pip](https://pypi.org/project/pip/) 來消費和 [twine](https://pypi.org/project/twine/) 來發布套件。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,您需要編輯本地 `~/.pypirc` 文件。添加
|
||||
|
||||
@@ -29,8 +29,8 @@ password = {password}
|
||||
| 佔位符 | 描述 |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -54,8 +54,8 @@ pip install --index-url https://{username}:{password}@gitea.example.com/api/pack
|
||||
|
||||
| 參數 | 描述 |
|
||||
| -------------- | ------------------------------- |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼或個人訪問令牌。 |
|
||||
| `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
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 105
|
||||
|
||||
# RPM 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [RPM](https://rpm.org/) 套件。
|
||||
為您的使用者或組織發布 [RPM](https://rpm.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,7 +14,7 @@ sidebar_position: 105
|
||||
|
||||
以下範例使用 `dnf`。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊 RPM 註冊表,請將 URL 添加到已知來源列表中:
|
||||
|
||||
@@ -37,13 +37,13 @@ dnf config-manager --add-repo https://gitea.example.com/api/packages/testuser/rp
|
||||
dnf config-manager --add-repo https://gitea.example.com/api/packages/testuser/rpm/centos/el7.repo
|
||||
```
|
||||
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人訪問令牌](development/api-usage.md#authentication):
|
||||
如果註冊表是私有的,請在 URL 中提供憑證。您可以使用密碼或 [個人存取權杖](development/api-usage.md#認證):
|
||||
|
||||
```shell
|
||||
dnf config-manager --add-repo https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/rpm/{group}.repo
|
||||
```
|
||||
|
||||
您還需要將憑證添加到創建的 `.repo` 文件中的 URL 中,位於 `/etc/yum.repos.d`。
|
||||
您還需要將憑證添加到建立的 `.repo` 文件中的 URL 中,位於 `/etc/yum.repos.d`。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -72,10 +72,10 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/rpm/centos/el7/upload
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
您不能將同名文件兩次發布到套件中。您必須先刪除現有的套件版本。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ------------------------------------ |
|
||||
@@ -111,7 +111,7 @@ 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 狀態碼 | 含義 |
|
||||
| ---------------- | ------------------ |
|
||||
|
||||
@@ -6,13 +6,13 @@ sidebar_position: 110
|
||||
|
||||
# RubyGems 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [RubyGems](https://guides.rubygems.org/) 套件。
|
||||
為您的使用者或組織發布 [RubyGems](https://guides.rubygems.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用 RubyGems 套件註冊表,您需要使用 [gem](https://guides.rubygems.org/command-reference/) 命令行工具來消費和發布套件。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表,請編輯 `~/.gem/credentials` 文件並添加:
|
||||
|
||||
@@ -24,7 +24,7 @@ https://gitea.example.com/api/packages/{owner}/rubygems: Bearer {token}
|
||||
| 參數 | 描述 |
|
||||
| ------- | -------------------------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `token` | 您的 [個人訪問令牌](development/api-usage.md#authentication)。 |
|
||||
| `token` | 您的 [個人存取權杖](development/api-usage.md#認證)。 |
|
||||
|
||||
例如:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4,9 +4,9 @@ slug: "storage"
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# 存儲
|
||||
# 儲存
|
||||
|
||||
本文檔描述了套件註冊表的存儲及其管理方式。
|
||||
本文件描述了套件註冊表的儲存及其管理方式。
|
||||
|
||||
## 去重
|
||||
|
||||
@@ -19,29 +19,29 @@ sidebar_position: 3
|
||||
此時不會刪除 blob,因此它們仍然需要文件系統上的空間。
|
||||
當上傳新套件時,現有的 blob 可能會再次被引用。
|
||||
|
||||
這些未引用的 blob 會被[清理作業](../../administration/config-cheat-sheet.md#cron---cleanup-expired-packages-croncleanup_packages)刪除。
|
||||
配置設置 `OLDER_THAN` 配置了未引用的 blob 在刪除前保留的時間。
|
||||
這些未引用的 blob 會被[清理作業](../../administration/config-cheat-sheet.md)刪除。
|
||||
設定 `OLDER_THAN` 設定了未引用的 blob 在刪除前保留的時間。
|
||||
|
||||
## 清理規則
|
||||
|
||||
隨著時間的推移,套件註冊表可能會變得很大而不進行清理。
|
||||
建議刪除不必要的套件並設置清理規則以自動管理套件註冊表的使用。
|
||||
每個套件擁有者(用戶或組織)管理應用於其套件的清理規則。
|
||||
建議刪除不必要的套件並設定清理規則以自動管理套件註冊表的使用。
|
||||
每個套件擁有者(使用者或組織)管理應用於其套件的清理規則。
|
||||
|
||||
| 設置 | 描述 |
|
||||
| 設定 | 描述 |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 啟用 | 打開或關閉清理規則。 |
|
||||
| 類型 | 每個規則管理特定的套件類型。 |
|
||||
| 將模式應用於完整的套件名稱 | 如果啟用,下面的模式將應用於完整的套件名稱(`package/version`)。否則僅應用於版本(`version`)。 |
|
||||
| 保留最新的 | 每個套件要*始終*保留的版本數量。 |
|
||||
| 保留匹配的版本 | 確定要保留的版本的正則表達式模式。空模式不保留任何版本,而 `.+` 保留所有版本。即使未配置,容器註冊表也會始終保留 `latest` 版本。 |
|
||||
| 保留匹配的版本 | 確定要保留的版本的正則表達式模式。空模式不保留任何版本,而 `.+` 保留所有版本。即使未設定,容器註冊表也會始終保留 `latest` 版本。 |
|
||||
| 刪除早於的版本 | 只刪除早於選定天數的版本。 |
|
||||
| 刪除匹配的版本 | 確定要刪除的版本的正則表達式模式。空模式或 `.+` 將導致刪除所有套件,如果沒有其他設置告訴否則。 |
|
||||
| 刪除匹配的版本 | 確定要刪除的版本的正則表達式模式。空模式或 `.+` 將導致刪除所有套件,如果沒有其他設定告訴否則。 |
|
||||
|
||||
每個清理規則都可以顯示受影響套件的預覽。
|
||||
這可以用來檢查清理規則是否配置正確。
|
||||
這可以用來檢查清理規則是否設定正確。
|
||||
|
||||
### 正則表達式示例
|
||||
### 正則表達式範例
|
||||
|
||||
正則表達式模式會自動用 `\A` 和 `\z` 錨點包圍。
|
||||
不要在正則表達式模式中包含任何 `\A`、`\z`、`^` 或 `$` 符號,因為它們不是必需的。
|
||||
@@ -55,11 +55,11 @@ sidebar_position: 3
|
||||
| `release.*` | 匹配命名為或以 `release` 開頭的版本。 |
|
||||
| `.+-temp-.+` | 匹配包含 `-temp-` 的版本。 |
|
||||
| `v.+\|release` | 匹配以 `v` 開頭的版本或命名為 `release` 的版本。 |
|
||||
| `package/v.+\|other/release` | 匹配套件 `package` 的以 `v` 開頭的版本或套件 `other` 的版本 `release`。這需要啟用設置*將模式應用於完整的套件名稱*。 |
|
||||
| `package/v.+\|other/release` | 匹配套件 `package` 的以 `v` 開頭的版本或套件 `other` 的版本 `release`。這需要啟用設定*將模式應用於完整的套件名稱*。 |
|
||||
|
||||
### 清理規則的工作原理
|
||||
|
||||
清理規則是[清理作業](../../administration/config-cheat-sheet.md#cron---cleanup-expired-packages-croncleanup_packages)的一部分,並定期運行。
|
||||
清理規則是[清理作業](../../administration/config-cheat-sheet.md)的一部分,並定期運行。
|
||||
|
||||
清理規則:
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ sidebar_position: 115
|
||||
|
||||
# Swift 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Swift](https://www.swift.org/) 套件。
|
||||
為您的使用者或組織發布 [Swift](https://www.swift.org/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
要使用 Swift 套件註冊表,您需要使用 [swift](https://www.swift.org/getting-started/) 來消費和使用 HTTP 客戶端(如 `curl`)來發布套件。
|
||||
|
||||
## 配置套件註冊表
|
||||
## 設定套件註冊表
|
||||
|
||||
要註冊套件註冊表並提供憑證,請執行:
|
||||
|
||||
@@ -24,10 +24,10 @@ swift package-registry login https://gitea.example.com/api/packages/{owner}/swif
|
||||
| 佔位符 | 描述 |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
|
||||
登錄是可選的,僅在套件註冊表是私有時需要。
|
||||
登入是可選的,僅在套件註冊表是私有時需要。
|
||||
|
||||
## 發布套件
|
||||
|
||||
@@ -49,17 +49,17 @@ curl -X PUT --user {username}:{password} \
|
||||
|
||||
| 佔位符 | 描述 |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `username` | 您的 Gitea 用戶名。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。 |
|
||||
| `username` | 您的 Gitea 使用者名稱。 |
|
||||
| `password` | 您的 Gitea 密碼。如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。 |
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `scope` | 套件範圍。 |
|
||||
| `name` | 套件名稱。 |
|
||||
| `version` | 套件版本。 |
|
||||
| `metadata` | (可選)套件的元數據。JSON 編碼的 https://schema.org/SoftwareSourceCode 子集 |
|
||||
| `metadata` | (可選)套件的元資料。JSON 編碼的 https://schema.org/SoftwareSourceCode 子集 |
|
||||
|
||||
如果已經存在同名同版本的套件,您不能發布該套件。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ------------------------------------ |
|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 120
|
||||
|
||||
# Vagrant 套件註冊表
|
||||
|
||||
為您的用戶或組織發布 [Vagrant](https://www.vagrantup.com/) 套件。
|
||||
為您的使用者或組織發布 [Vagrant](https://www.vagrantup.com/) 套件。
|
||||
|
||||
## 需求
|
||||
|
||||
@@ -14,7 +14,7 @@ sidebar_position: 120
|
||||
|
||||
## 發布套件
|
||||
|
||||
通過執行 HTTP PUT 請求來發布 Vagrant box:
|
||||
透過執行 HTTP PUT 請求來發布 Vagrant box:
|
||||
|
||||
```
|
||||
PUT https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}/{package_version}/{provider}.box
|
||||
@@ -25,7 +25,7 @@ PUT https://gitea.example.com/api/packages/{owner}/vagrant/{package_name}/{packa
|
||||
| `owner` | 套件的擁有者。 |
|
||||
| `package_name` | 套件名稱。 |
|
||||
| `package_version` | 套件版本,符合 semver。 |
|
||||
| `provider` | [支持的提供者名稱](https://www.vagrantup.com/docs/providers)之一。 |
|
||||
| `provider` | [支援的提供者名稱](https://www.vagrantup.com/docs/providers)之一。 |
|
||||
|
||||
上傳 Hyper-V box 的範例:
|
||||
|
||||
@@ -35,11 +35,11 @@ curl --user your_username:your_password_or_token \
|
||||
https://gitea.example.com/api/packages/testuser/vagrant/test_system/1.0.0/hyperv.box
|
||||
```
|
||||
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人訪問令牌](development/api-usage.md#authentication) 代替密碼。
|
||||
如果您使用 2FA 或 OAuth,請使用 [個人存取權杖](development/api-usage.md#認證) 代替密碼。
|
||||
|
||||
如果已經存在同名、同版本和同提供者的 box,您不能發布該 box。您必須先刪除現有的套件。
|
||||
|
||||
服務器響應以下 HTTP 狀態碼。
|
||||
伺服器響應以下 HTTP 狀態碼。
|
||||
|
||||
| HTTP 狀態碼 | 含義 |
|
||||
| ----------------- | ------------------------------------ |
|
||||
@@ -67,9 +67,9 @@ vagrant box add "https://gitea.example.com/api/packages/testuser/vagrant/test_sy
|
||||
```
|
||||
|
||||
這將安裝套件的最新版本。要添加特定版本,請使用 `--box-version` 參數。
|
||||
如果註冊表是私有的,您可以在 `VAGRANT_CLOUD_TOKEN` 環境變量中傳遞您的 [個人訪問令牌](development/api-usage.md#authentication)。
|
||||
如果註冊表是私有的,您可以在 `VAGRANT_CLOUD_TOKEN` 環境變量中傳遞您的 [個人存取權杖](development/api-usage.md#認證)。
|
||||
|
||||
## 支持的命令
|
||||
## 支援的命令
|
||||
|
||||
```
|
||||
vagrant box add
|
||||
|
||||
@@ -8,69 +8,69 @@ aliases:
|
||||
|
||||
# 權限
|
||||
|
||||
Gitea 支援倉庫的權限,以便您可以為不同的人提供不同的訪問權限。首先,我們需要了解 `單元`。
|
||||
Gitea 支援儲存庫的權限,以便您可以為不同的人提供不同的存取權限。首先,我們需要了解 `單元`。
|
||||
|
||||
## 單元
|
||||
|
||||
在 Gitea 中,我們稱倉庫的子模塊為 `單元`。現在我們有以下可能的單元。
|
||||
在 Gitea 中,我們稱儲存庫的子模組為 `單元`。現在我們有以下可能的單元。
|
||||
|
||||
| 名稱 | 描述 | 權限 |
|
||||
| ---------- | ------------------------------- | --------- |
|
||||
| 代碼 | 訪問源代碼、文件、提交和分支。 | 讀取 寫入 |
|
||||
| 程式碼 | 訪問源程式碼、文件、提交和分支。 | 讀取 寫入 |
|
||||
| 問題 | 組織錯誤報告、任務和里程碑。 | 讀取 寫入 |
|
||||
| 拉取請求 | 啟用拉取請求和代碼審查。 | 讀取 寫入 |
|
||||
| 發佈 | 跟蹤項目版本和下載。 | 讀取 寫入 |
|
||||
| 維基 | 與合作者編寫和共享文檔。 | 讀取 寫入 |
|
||||
| 拉取請求 | 啟用拉取請求和程式碼審查。 | 讀取 寫入 |
|
||||
| 發佈 | 跟蹤專案版本和下載。 | 讀取 寫入 |
|
||||
| 維基 | 與合作者編寫和共享文件。 | 讀取 寫入 |
|
||||
| 外部維基 | 鏈接到外部維基 | 讀取 |
|
||||
| 外部跟蹤器 | 鏈接到外部問題跟蹤器 | 讀取 |
|
||||
| 項目 | 模板倉庫的 URL | 讀取 寫入 |
|
||||
| 包 | 與此倉庫鏈接的包 | 讀取 寫入 |
|
||||
| 專案 | 模板儲存庫的 URL | 讀取 寫入 |
|
||||
| 包 | 與此儲存庫鏈接的包 | 讀取 寫入 |
|
||||
| 操作 | 審查操作日誌或重新啟動/取消管道 | 讀取 寫入 |
|
||||
| 設置 | 管理倉庫 | 管理 |
|
||||
| 設定 | 管理儲存庫 | 管理 |
|
||||
|
||||
有了不同的權限,人們可以對這些單元執行不同的操作。
|
||||
|
||||
| 名稱 | 讀取 | 寫入 | 管理 |
|
||||
| ---------- | -------------------------------- | ----------------------- | -------- |
|
||||
| 代碼 | 查看代碼樹、文件、提交、分支等。 | 推送代碼。 | - |
|
||||
| 問題 | 查看問題並創建新問題。 | 添加標籤、分配、關閉 | - |
|
||||
| 拉取請求 | 查看拉取請求並創建新拉取請求。 | 添加標籤、分配、關閉 | - |
|
||||
| 發佈 | 查看發佈並下載文件。 | 創建/編輯發佈 | - |
|
||||
| 維基 | 查看維基頁面。克隆維基倉庫。 | 創建/編輯維基頁面,推送 | - |
|
||||
| 程式碼 | 查看程式碼樹、文件、提交、分支等。 | 推送程式碼。 | - |
|
||||
| 問題 | 查看問題並建立新問題。 | 添加標籤、分配、關閉 | - |
|
||||
| 拉取請求 | 查看拉取請求並建立新拉取請求。 | 添加標籤、分配、關閉 | - |
|
||||
| 發佈 | 查看發佈並下載文件。 | 建立/編輯發佈 | - |
|
||||
| 維基 | 查看維基頁面。克隆維基儲存庫。 | 建立/編輯維基頁面,推送 | - |
|
||||
| 外部維基 | 鏈接到外部維基 | - | - |
|
||||
| 外部跟蹤器 | 鏈接到外部問題跟蹤器 | - | - |
|
||||
| 項目 | 查看項目的列 | 更改列中的問題 | - |
|
||||
| 專案 | 查看專案的列 | 更改列中的問題 | - |
|
||||
| 包 | 查看包 | 上傳/刪除包 | - |
|
||||
| 操作 | 查看操作日誌 | 批准/取消/重新啟動 | - |
|
||||
| 設置 | - | - | 管理倉庫 |
|
||||
| 設定 | - | - | 管理儲存庫 |
|
||||
|
||||
個人倉庫和組織倉庫的權限之間存在一些差異。
|
||||
個人儲存庫和組織儲存庫的權限之間存在一些差異。
|
||||
|
||||
## 個人倉庫
|
||||
## 個人儲存庫
|
||||
|
||||
對於個人倉庫,創建者是倉庫的唯一所有者,對更改或刪除此倉庫沒有任何限制。倉庫所有者可以添加合作者來幫助維護倉庫。合作者可以具有 `讀取`、`寫入` 和 `管理` 權限。
|
||||
對於個人儲存庫,建立者是儲存庫的唯一所有者,對更改或刪除此儲存庫沒有任何限制。儲存庫所有者可以添加合作者來幫助維護儲存庫。合作者可以具有 `讀取`、`寫入` 和 `管理` 權限。
|
||||
|
||||
對於私有倉庫,體驗類似於訪問匿名公共倉庫。您可以訪問倉庫中的所有可用內容,包括克隆代碼、創建問題、回應問題評論、提交拉取請求等。如果您具有“寫入”權限,則可以推送代碼到倉庫的特定分支,前提是分支保護規則允許。此外,您可以更改維基頁面。具有“管理”權限,您可以修改倉庫的設置。
|
||||
對於私有儲存庫,體驗類似於訪問匿名公共儲存庫。您可以訪問儲存庫中的所有可用內容,包括克隆程式碼、建立問題、回應問題評論、提交拉取請求等。如果您具有“寫入”權限,則可以推送程式碼到儲存庫的特定分支,前提是分支保護規則允許。此外,您可以更改維基頁面。具有“管理”權限,您可以修改儲存庫的設定。
|
||||
|
||||
但如果您不是該倉庫的所有者,則無法刪除或轉移此倉庫。
|
||||
但如果您不是該儲存庫的所有者,則無法刪除或轉移此儲存庫。
|
||||
|
||||
## 組織倉庫
|
||||
## 組織儲存庫
|
||||
|
||||
對於個人倉庫,所有者是創建它的用戶。對於組織倉庫,所有者是該組織所有者團隊的成員。所有權限取決於團隊權限設置。
|
||||
對於個人儲存庫,所有者是建立它的使用者。對於組織儲存庫,所有者是該組織所有者團隊的成員。所有權限取決於團隊權限設定。
|
||||
|
||||
### 所有者團隊
|
||||
|
||||
創建組織時將創建所有者團隊,創建者將成為所有者團隊的第一個成員。所有者團隊不能被刪除,並且至少有一名成員。
|
||||
建立組織時將建立所有者團隊,建立者將成為所有者團隊的第一個成員。所有者團隊不能被刪除,並且至少有一名成員。
|
||||
|
||||
### 管理員團隊
|
||||
|
||||
創建團隊時,有兩種類型的團隊。一個是管理員團隊,另一個是普通團隊。可以創建管理員團隊來管理一些倉庫,其成員可以對這些倉庫執行任何操作。只有所有者或管理員團隊的成員可以創建新團隊。
|
||||
建立團隊時,有兩種類型的團隊。一個是管理員團隊,另一個是普通團隊。可以建立管理員團隊來管理一些儲存庫,其成員可以對這些儲存庫執行任何操作。只有所有者或管理員團隊的成員可以建立新團隊。
|
||||
|
||||
### 普通團隊
|
||||
|
||||
組織中的普通團隊具有單元權限設置。它可以有成員和倉庫範圍。
|
||||
組織中的普通團隊具有單元權限設定。它可以有成員和儲存庫範圍。
|
||||
|
||||
- 團隊可以訪問此組織中的所有倉庫或特殊倉庫。
|
||||
- 團隊還可以被允許創建新倉庫或不允許。
|
||||
- 團隊可以訪問此組織中的所有儲存庫或特殊儲存庫。
|
||||
- 團隊還可以被允許建立新儲存庫或不允許。
|
||||
|
||||
普通團隊可以創建以執行其權限允許的操作。一個成員可以加入多個團隊。
|
||||
普通團隊可以建立以執行其權限允許的操作。一個成員可以加入多個團隊。
|
||||
|
||||
@@ -6,11 +6,11 @@ sidebar_position: 12
|
||||
|
||||
# 個人資料 README
|
||||
|
||||
要在您的 Gitea 用戶或組織個人資料頁面中顯示 Markdown 文件,請創建一個名為 `.profile` 的倉庫,並添加一個名為 `README.md` 的新文件。
|
||||
Gitea 將自動在您的個人資料中顯示該文件的內容,在您的倉庫上方的新“概覽”中。
|
||||
要在您的 Gitea 使用者或組織個人資料頁面中顯示 Markdown 文件,請建立一個名為 `.profile` 的儲存庫,並添加一個名為 `README.md` 的新文件。
|
||||
Gitea 將自動在您的個人資料中顯示該文件的內容,在您的儲存庫上方的新“概覽”中。
|
||||
|
||||
將 `.profile` 倉庫設為私有將隱藏個人資料 README。
|
||||
將 `.profile` 儲存庫設為私有將隱藏個人資料 README。
|
||||
|
||||
具有 `.profile/README.md` 的用戶示例:
|
||||
具有 `.profile/README.md` 的使用者範例:
|
||||
|
||||

|
||||
|
||||
@@ -8,22 +8,22 @@ aliases:
|
||||
|
||||
# 受保護標籤
|
||||
|
||||
受保護標籤允許控制誰有權創建或更新 Git 標籤。每個規則允許您匹配單個標籤名稱,或使用適當的模式來控制多個標籤。
|
||||
受保護標籤允許控制誰有權建立或更新 Git 標籤。每個規則允許您匹配單個標籤名稱,或使用適當的模式來控制多個標籤。
|
||||
|
||||
## 設置受保護標籤
|
||||
## 設定受保護標籤
|
||||
|
||||
要保護標籤,您需要按照以下步驟操作:
|
||||
|
||||
1. 轉到倉庫的 **設置** > **標籤** 頁面。
|
||||
1. 轉到儲存庫的 **設定** > **標籤** 頁面。
|
||||
1. 輸入要匹配的名稱模式。您可以使用單個名稱、[glob 模式](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正則表達式。
|
||||
1. 選擇允許的用戶和/或團隊。如果您將這些字段留空,則沒有人可以創建或修改此標籤。
|
||||
1. 選擇 **保存** 以保存配置。
|
||||
1. 選擇允許的使用者和/或團隊。如果您將這些欄位留空,則沒有人可以建立或修改此標籤。
|
||||
1. 選擇 **保存** 以保存設定。
|
||||
|
||||
## 模式受保護標籤
|
||||
|
||||
該模式使用 [glob](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正則表達式來匹配標籤名稱。對於正則表達式,您需要將模式括在斜杠中。
|
||||
該模式使用 [glob](https://pkg.go.dev/github.com/gobwas/glob#Compile) 或正則表達式來匹配標籤名稱。對於正則表達式,您需要將模式括在斜槓中。
|
||||
|
||||
示例:
|
||||
範例:
|
||||
|
||||
| 類型 | 模式受保護標籤 | 可能匹配的標籤 |
|
||||
| ----- | ------------------------ | --------------------------------------- |
|
||||
|
||||
@@ -8,34 +8,34 @@ aliases:
|
||||
|
||||
# 拉取請求
|
||||
|
||||
拉取請求(PR)是一種提議對倉庫進行更改的方法。
|
||||
拉取請求(PR)是一種提議對儲存庫進行更改的方法。
|
||||
它是一個請求,要求將一個分支合併到另一個分支,並附有對所做更改的描述。
|
||||
拉取請求通常用於貢獻者提議更改,並由維護者審查和合併這些更改。
|
||||
|
||||
## 創建拉取請求
|
||||
## 建立拉取請求
|
||||
|
||||
要創建 PR,您需要按照以下步驟操作:
|
||||
要建立 PR,您需要按照以下步驟操作:
|
||||
|
||||
1. **分叉倉庫** - 如果您沒有直接更改倉庫的權限,您需要將倉庫分叉到自己的帳戶。
|
||||
這會創建一個您可以進行更改的倉庫副本。
|
||||
1. **分叉儲存庫** - 如果您沒有直接更改儲存庫的權限,您需要將儲存庫分叉到自己的帳戶。
|
||||
這會建立一個您可以進行更改的儲存庫副本。
|
||||
|
||||
2. **創建分支(可選)** - 在您的分叉倉庫中創建一個包含您要提議的更改的新分支。
|
||||
2. **建立分支(可選)** - 在您的分叉儲存庫中建立一個包含您要提議的更改的新分支。
|
||||
給分支起一個描述性名稱,表明更改的用途。
|
||||
|
||||
3. **進行更改** - 進行您想要的更改,提交並推送到您的分叉倉庫。
|
||||
3. **進行更改** - 進行您想要的更改,提交並推送到您的分叉儲存庫。
|
||||
|
||||
4. **創建 PR** - 轉到原始倉庫並轉到“拉取請求”選項卡。點擊“新建拉取請求”按鈕,選擇您的新分支作為源分支。
|
||||
為您的拉取請求輸入描述性標題和描述,然後點擊“創建拉取請求”。
|
||||
4. **建立 PR** - 轉到原始儲存庫並轉到“拉取請求”選項卡。點擊“新建拉取請求”按鈕,選擇您的新分支作為源分支。
|
||||
為您的拉取請求輸入描述性標題和描述,然後點擊“建立拉取請求”。
|
||||
|
||||
## 審查拉取請求
|
||||
|
||||
創建 PR 後,會觸發審查過程。倉庫的維護者會收到 PR 的通知,並可以審查所做的更改。
|
||||
建立 PR 後,會觸發審查過程。儲存庫的維護者會收到 PR 的通知,並可以審查所做的更改。
|
||||
他們可以留下評論、請求更改或批准更改。
|
||||
|
||||
如果維護者請求更改,您需要在您的分支中進行這些更改,並將更改推送到您的分叉倉庫。
|
||||
如果維護者請求更改,您需要在您的分支中進行這些更改,並將更改推送到您的分叉儲存庫。
|
||||
PR 將自動更新為新更改。
|
||||
|
||||
如果維護者批准更改,他們可以將 PR 合併到倉庫中。
|
||||
如果維護者批准更改,他們可以將 PR 合併到儲存庫中。
|
||||
|
||||
## 關閉拉取請求
|
||||
|
||||
@@ -46,15 +46,15 @@ PR 將自動更新為新更改。
|
||||
|
||||
將拉取請求標記為進行中將防止該拉取請求被意外合併。
|
||||
要將拉取請求標記為進行中,您必須在其標題前加上 `WIP:` 或 `[WIP]`(不區分大小寫)。
|
||||
這些值可以在您的 `app.ini` 文件中配置:
|
||||
這些值可以在您的 `app.ini` 文件中設定:
|
||||
|
||||
```ini
|
||||
[repository.pull-request]
|
||||
WORK_IN_PROGRESS_PREFIXES=WIP:,[WIP]
|
||||
```
|
||||
|
||||
列表中的第一個值將用於幫助程序。
|
||||
列表中的第一個值將用於幫助程式。
|
||||
|
||||
## 拉取請求模板
|
||||
|
||||
您可以在 [問題和拉取請求模板](usage/issue-pull-request-templates.md) 頁面找到有關拉取請求模板的更多信息。
|
||||
您可以在 [問題和拉取請求模板](usage/../issue-pull-request-templates) 頁面找到有關拉取請求模板的更多資訊。
|
||||
|
||||
@@ -9,45 +9,45 @@ aliases:
|
||||
|
||||
# 推送
|
||||
|
||||
將提交推送到 Gitea 服務器時,有一些附加功能。
|
||||
將提交推送到 Gitea 伺服器時,有一些附加功能。
|
||||
|
||||
## 通過推送打開 PR
|
||||
|
||||
當您第一次將提交推送到非默認分支時,
|
||||
當您第一次將提交推送到非預設分支時,
|
||||
您將收到一個鏈接,您可以點擊該鏈接訪問您的分支與主分支的比較頁面。
|
||||
從那裡,即使您想針對另一個分支,也可以輕鬆創建拉取請求。
|
||||
從那裡,即使您想針對另一個分支,也可以輕鬆建立拉取請求。
|
||||
|
||||

|
||||
|
||||
## 推送選項
|
||||
|
||||
在 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) - 更改儲存庫的可見性。
|
||||
|
||||
這在與推送創建結合使用時特別有用。
|
||||
這在與推送建立結合使用時特別有用。
|
||||
|
||||
- `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#repository-repository) 中閱讀有關這兩個選項的更多信息。
|
||||
在 `app.ini` 文件中,將 `ENABLE_PUSH_CREATE_USER` 設定為 `true`,如果您希望允許使用者在其自己的使用者帳戶中建立儲存庫,並在他們是成員的組織中建立儲存庫,則將 `ENABLE_PUSH_CREATE_ORG` 設定為 `true`。重新啟動 Gitea 以使更改生效。您可以在 [設定備忘單](../administration/config-cheat-sheet.md#儲存庫repository) 中閱讀有關這兩個選項的更多資訊。
|
||||
|
||||
### 使用推送創建
|
||||
### 使用推送建立
|
||||
|
||||
假設您在當前目錄中有一個 git 倉庫,您可以通過運行以下命令推送到 Gitea 中尚不存在的倉庫:
|
||||
假設您在當前目錄中有一個 git 儲存庫,您可以透過運行以下命令推送到 Gitea 中尚不存在的儲存庫:
|
||||
|
||||
```shell
|
||||
# 添加您要推送的遠程
|
||||
@@ -59,4 +59,4 @@ git push -u origin main
|
||||
|
||||
這假設您使用的是 SSH 遠程,但您也可以使用 HTTPS 遠程。
|
||||
|
||||
推送創建將默認為 `app.ini` 中定義的 `DEFAULT_PUSH_CREATE_PRIVATE` 的可見性。
|
||||
推送建立將預設為 `app.ini` 中定義的 `DEFAULT_PUSH_CREATE_PRIVATE` 的可見性。
|
||||
|
||||
@@ -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. 創建一個 [GitHub 個人訪問令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token),並勾選 _public_repo_ 框。如果您的倉庫使用 GitHub Actions 進行持續集成,還請勾選 **workflow** 框。
|
||||
2. 在 GitHub 上創建一個具有該名稱的倉庫。與 Gitea 不同,GitHub 不支持通過推送創建倉庫。如果它具有與您的 Gitea 倉庫相同的提交歷史記錄,您也可以使用現有的遠程倉庫。
|
||||
3. 在您的 Gitea 倉庫設置中,填寫 **Git 遠程倉庫 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
||||
4. 使用您的 GitHub 用戶名和個人訪問令牌作為 **密碼** 填寫 **授權** 字段。
|
||||
1. 建立一個 [GitHub 個人存取權杖](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token),並勾選 _public_repo_ 框。如果您的儲存庫使用 GitHub Actions 進行持續整合,還請勾選 **workflow** 框。
|
||||
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. 選擇 **添加推送鏡像** 以保存配置。
|
||||
6. 選擇 **添加推送鏡像** 以保存設定。
|
||||
|
||||
倉庫隨後會很快推送。要強制推送,選擇 **立即同步** 按鈕。
|
||||
儲存庫隨後會很快推送。要強制推送,選擇 **立即同步** 按鈕。
|
||||
|
||||
### 從 Gitea 到 GitLab 設置推送鏡像
|
||||
### 從 Gitea 到 GitLab 設定推送鏡像
|
||||
|
||||
要從 Gitea 設置到 GitLab 的鏡像,您需要按照以下步驟操作:
|
||||
要從 Gitea 設定到 GitLab 的鏡像,您需要按照以下步驟操作:
|
||||
|
||||
1. 創建一個 [GitLab 個人訪問令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html),並勾選 _write_repository_ 範圍。
|
||||
2. 填寫 **Git 遠程倉庫 URL**:`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`。
|
||||
3. 使用 `oauth2` 作為 **用戶名** 和您的 GitLab 個人訪問令牌作為 **密碼** 填寫 **授權** 字段。
|
||||
4. 選擇 **添加推送鏡像** 以保存配置。
|
||||
1. 建立一個 [GitLab 個人存取權杖](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html),並勾選 _write_repository_ 範圍。
|
||||
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. 創建一個 [Bitbucket 應用密碼](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/),並勾選 _Repository Write_ 框。
|
||||
2. 填寫 **Git 遠程倉庫 URL**:`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`。
|
||||
3. 使用您的 Bitbucket 用戶名和應用密碼作為 **密碼** 填寫 **授權** 字段。
|
||||
4. 選擇 **添加推送鏡像** 以保存配置。
|
||||
1. 建立一個 [Bitbucket 應用密碼](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/),並勾選 _Repository Write_ 框。
|
||||
2. 填寫 **Git 遠程儲存庫 URL**:`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`。
|
||||
3. 使用您的 Bitbucket 使用者名稱和應用密碼作為 **密碼** 填寫 **授權** 欄位。
|
||||
4. 選擇 **添加推送鏡像** 以保存設定。
|
||||
|
||||
倉庫隨後會很快推送。要強制推送,選擇 **立即同步** 按鈕。
|
||||
儲存庫隨後會很快推送。要強制推送,選擇 **立即同步** 按鈕。
|
||||
|
||||
### 鏡像現有的 ssh 倉庫
|
||||
### 鏡像現有的 ssh 儲存庫
|
||||
|
||||
目前 Gitea 不支持 ssh 推送鏡像。您可以通過向您的 Gitea 倉庫添加一個 `post-receive` 鉤子來手動推送來解決此問題。
|
||||
目前 Gitea 不支援 ssh 推送鏡像。您可以透過向您的 Gitea 儲存庫添加一個 `post-receive` 鉤子來手動推送來解決此問題。
|
||||
|
||||
1. 確保運行 Gitea 的用戶可以從 shell 訪問您嘗試鏡像到的 git 倉庫。
|
||||
2. 在 Web 界面的倉庫設置 > git 鉤子中,為鏡像添加一個 post-receive 鉤子。例如:
|
||||
1. 確保運行 Gitea 的使用者可以從 shell 訪問您嘗試鏡像到的 git 儲存庫。
|
||||
2. 在 Web 介面的儲存庫設定 > git 鉤子中,為鏡像添加一個 post-receive 鉤子。例如:
|
||||
|
||||
```
|
||||
#!/usr/bin/env bash
|
||||
|
||||
@@ -6,21 +6,21 @@ aliases:
|
||||
- /zh-tw/template-repositories
|
||||
---
|
||||
|
||||
# 模板倉庫
|
||||
# 模板儲存庫
|
||||
|
||||
自 Gitea `1.11` 起,您可以創建模板倉庫。
|
||||
創建基於模板的倉庫時,您可以複製其大部分內容,甚至自動注入變量。
|
||||
自 Gitea `1.11` 起,您可以建立模板儲存庫。
|
||||
建立基於模板的儲存庫時,您可以複製其大部分內容,甚至自動注入變量。
|
||||
|
||||
默認情況下,不會在任何文件中展開變量。
|
||||
預設情況下,不會在任何文件中展開變量。
|
||||
只有包含在 `.gitea/template` 文件中的模式內的文件才會被檢查是否包含變量。
|
||||
創建模板時,除 `.gitea/template` 文件外,所有文件都包含在內。
|
||||
建立模板時,除 `.gitea/template` 文件外,所有文件都包含在內。
|
||||
|
||||
Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 進行其 glob 語法。
|
||||
它與傳統的 `.gitignore` 非常相似,但可能存在細微差異。
|
||||
|
||||
## 示例 `.gitea/template` 文件
|
||||
## 範例 `.gitea/template` 文件
|
||||
|
||||
所有路徑均相對於倉庫的基礎
|
||||
所有路徑均相對於儲存庫的基礎
|
||||
|
||||
```gitignore
|
||||
# 展開倉庫中任何位置的所有 .go 文件
|
||||
@@ -40,37 +40,37 @@ a/b/c/d.json
|
||||
|
||||
在上述 glob 匹配的任何文件中,以下變量將被展開。
|
||||
|
||||
匹配的文件名和路徑也可以展開,並且經過保守的清理以支持跨平台文件系統。
|
||||
匹配的文件名和路徑也可以展開,並且經過保守的清理以支援跨平台文件系統。
|
||||
|
||||
您可以通過在變量前加上 `$` 或將其括在 `${}` 中來使用變量,因此 `$VAR` 和 `${VAR}` 都會在此位置插入 `VAR` 的值。
|
||||
您可以透過在變量前加上 `$` 或將其括在 `${}` 中來使用變量,因此 `$VAR` 和 `${VAR}` 都會在此位置插入 `VAR` 的值。
|
||||
要轉義展開,請使用 `$$`,例如 `$$VAR` 或 `$${VAR}`。
|
||||
|
||||
這些是 Gitea 目前識別的變量:
|
||||
|
||||
| 變量 | 展開為 | 可轉換 |
|
||||
| -------------------- | -------------------------------- | ------ |
|
||||
| YEAR | 生成倉庫的年份(即 `2024`) | ✘ |
|
||||
| MONTH | 生成倉庫的月份(即 `03`) | ✘ |
|
||||
| YEAR | 生成儲存庫的年份(即 `2024`) | ✘ |
|
||||
| MONTH | 生成儲存庫的月份(即 `03`) | ✘ |
|
||||
| MONTH_ENGLISH | 月份,但用英文表示(即 `March`) | ✓ |
|
||||
| DAY | 生成倉庫的日期(即 `02`) | ✘ |
|
||||
| REPO_NAME | 生成倉庫的名稱 | ✓ |
|
||||
| TEMPLATE_NAME | 模板倉庫的名稱 | ✓ |
|
||||
| REPO_DESCRIPTION | 生成倉庫的描述 | ✘ |
|
||||
| TEMPLATE_DESCRIPTION | 模板倉庫的描述 | ✘ |
|
||||
| REPO_OWNER | 生成倉庫的所有者 | ✓ |
|
||||
| TEMPLATE_OWNER | 模板倉庫的所有者 | ✓ |
|
||||
| REPO_LINK | 生成倉庫的 URL | ✘ |
|
||||
| TEMPLATE_LINK | 模板倉庫的 URL | ✘ |
|
||||
| REPO_HTTPS_URL | 生成倉庫的 HTTP(S) 克隆鏈接 | ✘ |
|
||||
| TEMPLATE_HTTPS_URL | 模板倉庫的 HTTP(S) 克隆鏈接 | ✘ |
|
||||
| REPO_SSH_URL | 生成倉庫的 SSH 克隆鏈接 | ✘ |
|
||||
| TEMPLATE_SSH_URL | 模板倉庫的 SSH 克隆鏈接 | ✘ |
|
||||
| DAY | 生成儲存庫的日期(即 `02`) | ✘ |
|
||||
| REPO_NAME | 生成儲存庫的名稱 | ✓ |
|
||||
| TEMPLATE_NAME | 模板儲存庫的名稱 | ✓ |
|
||||
| REPO_DESCRIPTION | 生成儲存庫的描述 | ✘ |
|
||||
| TEMPLATE_DESCRIPTION | 模板儲存庫的描述 | ✘ |
|
||||
| REPO_OWNER | 生成儲存庫的所有者 | ✓ |
|
||||
| TEMPLATE_OWNER | 模板儲存庫的所有者 | ✓ |
|
||||
| REPO_LINK | 生成儲存庫的 URL | ✘ |
|
||||
| TEMPLATE_LINK | 模板儲存庫的 URL | ✘ |
|
||||
| REPO_HTTPS_URL | 生成儲存庫的 HTTP(S) 克隆鏈接 | ✘ |
|
||||
| TEMPLATE_HTTPS_URL | 模板儲存庫的 HTTP(S) 克隆鏈接 | ✘ |
|
||||
| REPO_SSH_URL | 生成儲存庫的 SSH 克隆鏈接 | ✘ |
|
||||
| TEMPLATE_SSH_URL | 模板儲存庫的 SSH 克隆鏈接 | ✘ |
|
||||
|
||||
## 轉換器 :robot:
|
||||
|
||||
自 Gitea `1.12.0` 起,表中標記為可轉換的變量還具有應用了給定轉換器的替代版本。
|
||||
|
||||
可以通過將轉換器名稱附加到變量名稱來調用轉換後的變量。
|
||||
可以透過將轉換器名稱附加到變量名稱來調用轉換後的變量。
|
||||
例如,要獲取 `PASCAL` 大小寫的 `REPO_NAME`,您應該使用變量 `${REPO_NAME_PASCAL}`。
|
||||
|
||||
以下是可用的轉換器(假設輸入為 `go-sdk`):
|
||||
|
||||
@@ -8,8 +8,8 @@ aliases:
|
||||
|
||||
# Webhooks
|
||||
|
||||
Gitea 支援倉庫事件的 webhooks。這可以由倉庫管理員在設置頁面 `/:username/:reponame/settings/hooks` 中配置。webhooks 也可以在每個組織和整個系統範圍內配置。
|
||||
所有事件推送都是 POST 請求。目前支持的方法有:
|
||||
Gitea 支援儲存庫事件的 webhooks。這可以由儲存庫管理員在設定頁面 `/:username/:reponame/settings/hooks` 中設定。webhooks 也可以在每個組織和整個系統範圍內設定。
|
||||
所有事件推送都是 POST 請求。目前支援的方法有:
|
||||
|
||||
- Gitea(也可以是 GET 請求)
|
||||
- Gogs
|
||||
@@ -22,13 +22,13 @@ Gitea 支援倉庫事件的 webhooks。這可以由倉庫管理員在設置頁
|
||||
- Wechatwork
|
||||
- Packagist
|
||||
|
||||
### 事件信息
|
||||
### 事件資訊
|
||||
|
||||
:::warning
|
||||
自 Gitea 1.13.0 起,payload 中的 `secret` 字段已棄用,並將在 1.14.0 中刪除:https://github.com/go-gitea/gitea/issues/11755
|
||||
自 Gitea 1.13.0 起,payload 中的 `secret` 欄位已棄用,並將在 1.14.0 中刪除:https://github.com/go-gitea/gitea/issues/11755
|
||||
:::
|
||||
|
||||
以下是 Gitea 將發送到 Payload URL 的事件信息示例:
|
||||
以下是 Gitea 將發送到 Payload URL 的事件資訊範例:
|
||||
|
||||
```http
|
||||
X-GitHub-Delivery: f6266f16-1bf3-46a5-9ea4-602e06ead473
|
||||
@@ -110,10 +110,10 @@ X-Gitea-Event: push
|
||||
}
|
||||
```
|
||||
|
||||
### 示例
|
||||
### 範例
|
||||
|
||||
這是一個如何使用 webhooks 在推送請求到倉庫時運行 php 腳本的示例。
|
||||
在您的倉庫設置中,webhooks 下,設置一個 Gitea webhook,如下所示:
|
||||
這是一個如何使用 webhooks 在推送請求到儲存庫時運行 php 腳本的範例。
|
||||
在您的儲存庫設定中,webhooks 下,設定一個 Gitea webhook,如下所示:
|
||||
|
||||
- 目標 URL: http://mydomain.com/webhook.php
|
||||
- HTTP 方法: POST
|
||||
@@ -122,7 +122,7 @@ X-Gitea-Event: push
|
||||
- 觸發事件: 推送事件
|
||||
- 活躍: 已勾選
|
||||
|
||||
現在在您的服務器上創建 php 文件 webhook.php
|
||||
現在在您的伺服器上建立 php 文件 webhook.php
|
||||
|
||||
```php
|
||||
<?php
|
||||
@@ -180,8 +180,8 @@ if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
// 成功,執行操作
|
||||
```
|
||||
|
||||
webhook 設置中有一個測試傳遞按鈕,允許測試配置以及最近傳遞的列表。
|
||||
webhook 設定中有一個測試傳遞按鈕,允許測試設定以及最近傳遞的列表。
|
||||
|
||||
### 授權標頭
|
||||
|
||||
**從 1.19 開始**,Gitea hooks 可以配置為向 webhook 目標發送 [授權標頭](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)。
|
||||
**從 1.19 開始**,Gitea hooks 可以設定為向 webhook 目標發送 [授權標頭](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)。
|
||||
|
||||
Reference in New Issue
Block a user