Update zh tw languages and fix some broken links

This commit is contained in:
Lunny Xiao
2026-07-01 14:47:51 -07:00
parent 9558006c39
commit a084bdb556
842 changed files with 31137 additions and 31065 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -51,7 +51,7 @@ Gitea 支援以下對外 Webhook 整合:
### 設定 Webhook
建立 Webhook 時,主要設定項目包括:
建立 Webhook 時,主要設定專案包括:
- `Target URL`:接收投遞的目標位址。
- `HTTP Method`:通用 Webhook 通常使用 `POST`
@@ -132,7 +132,7 @@ Gitea 也會同時送出對應的 GitHub 與 Gogs 風格標頭。
#### `Event` 與 `Event-Type`
某些 Gitea Webhook 訂閱會被歸類到同一個規範化事件名稱下。例如issue 指派
投遞會歸類到 issue 事件組:
投遞會歸類到 issue 事件組:
```http
X-Gitea-Event: issues
@@ -565,7 +565,7 @@ http_response_code(204);
#### `pull_request_review_approved`
當 pull request review 以准形式提交時,會觸發此事件。
當 pull request review 以准形式提交時,會觸發此事件。
**動作類型:** `reviewed`