mirror of
https://gitea.com/gitea/docs.git
synced 2026-07-23 04:57:42 +00:00
docs: add zh-tw folder (#195)
Signed-off-by: appleboy <appleboy.tw@gmail.com> Reviewed-on: https://gitea.com/gitea/docs/pulls/195 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: appleboy <appleboy.tw@gmail.com> Co-committed-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
// @ts-check
|
// @ts-check
|
||||||
// Note: type annotations allow type checking and IDEs autocompletion
|
// Note: type annotations allow type checking and IDEs autocompletion
|
||||||
|
|
||||||
import {themes as prismThemes} from 'prism-react-renderer';
|
import { themes as prismThemes } from "prism-react-renderer";
|
||||||
|
|
||||||
const lightCodeTheme = prismThemes.github;
|
const lightCodeTheme = prismThemes.github;
|
||||||
const darkCodeTheme = prismThemes.dracula;
|
const darkCodeTheme = prismThemes.dracula;
|
||||||
@@ -11,192 +11,204 @@ function sortItemsByCategory(items) {
|
|||||||
// type with "category" (directory) first
|
// type with "category" (directory) first
|
||||||
const sortedItems = items.sort(function (a, b) {
|
const sortedItems = items.sort(function (a, b) {
|
||||||
return a.type.localeCompare(b.type);
|
return a.type.localeCompare(b.type);
|
||||||
})
|
});
|
||||||
return sortedItems;
|
return sortedItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
const renderApiSSR = process.env.API_SSR !== 'false';
|
const renderApiSSR = process.env.API_SSR !== "false";
|
||||||
|
|
||||||
const apiConfig = [
|
const apiConfig = [
|
||||||
'redocusaurus',
|
"redocusaurus",
|
||||||
{
|
{
|
||||||
// Plugin Options for loading OpenAPI files
|
// Plugin Options for loading OpenAPI files
|
||||||
specs: renderApiSSR ? [
|
specs: renderApiSSR
|
||||||
|
? [
|
||||||
{
|
{
|
||||||
route: '/api/next/',
|
route: "/api/next/",
|
||||||
spec: 'static/swagger-latest.json',
|
spec: "static/swagger-latest.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/',
|
route: "/api/",
|
||||||
spec: 'static/swagger-23.json',
|
spec: "static/swagger-23.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/1.23/',
|
route: "/api/1.23/",
|
||||||
spec: 'static/swagger-23.json',
|
spec: "static/swagger-23.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/1.22/',
|
route: "/api/1.22/",
|
||||||
spec: 'static/swagger-22.json',
|
spec: "static/swagger-22.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/1.21/',
|
route: "/api/1.21/",
|
||||||
spec: 'static/swagger-21.json',
|
spec: "static/swagger-21.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/1.20/',
|
route: "/api/1.20/",
|
||||||
spec: 'static/swagger-20.json',
|
spec: "static/swagger-20.json",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
route: '/api/1.19/',
|
route: "/api/1.19/",
|
||||||
spec: 'static/swagger-19.json',
|
spec: "static/swagger-19.json",
|
||||||
}
|
},
|
||||||
]: [],
|
]
|
||||||
|
: [],
|
||||||
// Theme Options for modifying how redoc renders them
|
// Theme Options for modifying how redoc renders them
|
||||||
theme: {
|
theme: {
|
||||||
// Change with your site colors
|
// Change with your site colors
|
||||||
primaryColor: '#1890ff',
|
primaryColor: "#1890ff",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
|
|
||||||
const pageConfig = renderApiSSR ? {
|
const pageConfig = renderApiSSR
|
||||||
exclude: [
|
? {
|
||||||
'api/**',
|
exclude: ["api/**"],
|
||||||
],
|
}
|
||||||
}: {}
|
: {};
|
||||||
|
|
||||||
const globalVariables = {
|
const globalVariables = {
|
||||||
current: {
|
current: {
|
||||||
'goVersion': '1.23',
|
goVersion: "1.23",
|
||||||
'minGoVersion': '1.23',
|
minGoVersion: "1.23",
|
||||||
'minNodeVersion': '18',
|
minNodeVersion: "18",
|
||||||
'version': 'main-nightly',
|
version: "main-nightly",
|
||||||
'sourceVersion': 'main',
|
sourceVersion: "main",
|
||||||
'sourceBranch': 'main',
|
sourceBranch: "main",
|
||||||
'dockerVersion': 'nightly',
|
dockerVersion: "nightly",
|
||||||
'displayVersion': '1.24-dev'
|
displayVersion: "1.24-dev",
|
||||||
},
|
},
|
||||||
'1.23': {
|
1.23: {
|
||||||
'goVersion': '1.23',
|
goVersion: "1.23",
|
||||||
'minGoVersion': '1.22',
|
minGoVersion: "1.22",
|
||||||
'minNodeVersion': '18',
|
minNodeVersion: "18",
|
||||||
'version': '1.23.6',
|
version: "1.23.6",
|
||||||
'sourceVersion': 'v1.23.0',
|
sourceVersion: "v1.23.0",
|
||||||
'sourceBranch': 'release/v1.23',
|
sourceBranch: "release/v1.23",
|
||||||
'dockerVersion': '1.23.6',
|
dockerVersion: "1.23.6",
|
||||||
'displayVersion': '1.23.6'
|
displayVersion: "1.23.6",
|
||||||
},
|
},
|
||||||
'1.22': {
|
1.22: {
|
||||||
'goVersion': '1.22',
|
goVersion: "1.22",
|
||||||
'minGoVersion': '1.22',
|
minGoVersion: "1.22",
|
||||||
'minNodeVersion': '18',
|
minNodeVersion: "18",
|
||||||
'version': '1.22.6',
|
version: "1.22.6",
|
||||||
'sourceVersion': 'v1.22.6',
|
sourceVersion: "v1.22.6",
|
||||||
'sourceBranch': 'release/v1.22',
|
sourceBranch: "release/v1.22",
|
||||||
'dockerVersion': '1.22.6',
|
dockerVersion: "1.22.6",
|
||||||
'displayVersion': '1.22.6'
|
displayVersion: "1.22.6",
|
||||||
},
|
},
|
||||||
'1.21': {
|
1.21: {
|
||||||
'goVersion': '1.21',
|
goVersion: "1.21",
|
||||||
'minGoVersion': '1.21',
|
minGoVersion: "1.21",
|
||||||
'minNodeVersion': '18',
|
minNodeVersion: "18",
|
||||||
'version': '1.21.11',
|
version: "1.21.11",
|
||||||
'sourceVersion': 'v1.21.11',
|
sourceVersion: "v1.21.11",
|
||||||
'sourceBranch': 'release/v1.21',
|
sourceBranch: "release/v1.21",
|
||||||
'dockerVersion': '1.21.11',
|
dockerVersion: "1.21.11",
|
||||||
'displayVersion': '1.21.11'
|
displayVersion: "1.21.11",
|
||||||
},
|
},
|
||||||
'1.20': {
|
"1.20": {
|
||||||
'goVersion': '1.20',
|
goVersion: "1.20",
|
||||||
'minGoVersion': '1.20',
|
minGoVersion: "1.20",
|
||||||
'minNodeVersion': '16',
|
minNodeVersion: "16",
|
||||||
'version': '1.20.6',
|
version: "1.20.6",
|
||||||
'sourceVersion': 'v1.20.6',
|
sourceVersion: "v1.20.6",
|
||||||
'sourceBranch': 'release/v1.20',
|
sourceBranch: "release/v1.20",
|
||||||
'dockerVersion': '1.20.6',
|
dockerVersion: "1.20.6",
|
||||||
'displayVersion': '1.20.6'
|
displayVersion: "1.20.6",
|
||||||
},
|
},
|
||||||
'1.19': {
|
1.19: {
|
||||||
'goVersion': '1.20',
|
goVersion: "1.20",
|
||||||
'minGoVersion': '1.19',
|
minGoVersion: "1.19",
|
||||||
'minNodeVersion': '14',
|
minNodeVersion: "14",
|
||||||
'version': '1.19.4',
|
version: "1.19.4",
|
||||||
'sourceVersion': 'v1.19.4',
|
sourceVersion: "v1.19.4",
|
||||||
'sourceBranch': 'release/v1.19',
|
sourceBranch: "release/v1.19",
|
||||||
'dockerVersion': '1.19.4',
|
dockerVersion: "1.19.4",
|
||||||
'displayVersion': '1.19.4'
|
displayVersion: "1.19.4",
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
const versions = {
|
const versions = {
|
||||||
current: {
|
current: {
|
||||||
label: globalVariables['current'].displayVersion, // path is kept as next for dev (so users can always find "nightly" docs)
|
label: globalVariables["current"].displayVersion, // path is kept as next for dev (so users can always find "nightly" docs)
|
||||||
banner: 'unreleased',
|
banner: "unreleased",
|
||||||
},
|
},
|
||||||
'1.23': {
|
1.23: {
|
||||||
label: globalVariables['1.23'].displayVersion,
|
label: globalVariables["1.23"].displayVersion,
|
||||||
},
|
},
|
||||||
'1.22': {
|
1.22: {
|
||||||
label: globalVariables['1.22'].displayVersion,
|
label: globalVariables["1.22"].displayVersion,
|
||||||
},
|
},
|
||||||
'1.21': {
|
1.21: {
|
||||||
label: globalVariables['1.21'].displayVersion,
|
label: globalVariables["1.21"].displayVersion,
|
||||||
},
|
},
|
||||||
'1.20': {
|
"1.20": {
|
||||||
label: globalVariables['1.20'].displayVersion,
|
label: globalVariables["1.20"].displayVersion,
|
||||||
},
|
},
|
||||||
'1.19': {
|
1.19: {
|
||||||
label: globalVariables['1.19'].displayVersion,
|
label: globalVariables["1.19"].displayVersion,
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
/** @type {import('@docusaurus/types').Config} */
|
/** @type {import('@docusaurus/types').Config} */
|
||||||
const config = {
|
const config = {
|
||||||
title: 'Gitea Documentation',
|
title: "Gitea Documentation",
|
||||||
tagline: 'Git with a cup of tea',
|
tagline: "Git with a cup of tea",
|
||||||
url: 'https://docs.gitea.com',
|
url: "https://docs.gitea.com",
|
||||||
baseUrl: '/',
|
baseUrl: "/",
|
||||||
onBrokenLinks: 'warn',
|
onBrokenLinks: "warn",
|
||||||
onBrokenMarkdownLinks: 'warn',
|
onBrokenMarkdownLinks: "warn",
|
||||||
favicon: 'img/favicon.png',
|
favicon: "img/favicon.png",
|
||||||
future: {
|
future: {
|
||||||
experimental_faster: true
|
experimental_faster: true,
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
[
|
[
|
||||||
'docusaurus-plugin-plausible',
|
"docusaurus-plugin-plausible",
|
||||||
{
|
{
|
||||||
domain: 'docs.gitea.com',
|
domain: "docs.gitea.com",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
// for runner documentations
|
// for runner documentations
|
||||||
[
|
[
|
||||||
'@docusaurus/plugin-content-docs',
|
"@docusaurus/plugin-content-docs",
|
||||||
{
|
{
|
||||||
id: 'runner',
|
id: "runner",
|
||||||
path: 'runner',
|
path: "runner",
|
||||||
routeBasePath: 'runner',
|
routeBasePath: "runner",
|
||||||
//sidebarPath: './runner/sidebars.js',
|
//sidebarPath: './runner/sidebars.js',
|
||||||
versions: {
|
versions: {
|
||||||
current: {
|
current: {
|
||||||
label: 'main',
|
label: "main",
|
||||||
banner: 'unreleased',
|
banner: "unreleased",
|
||||||
},
|
},
|
||||||
"0.2.11": {
|
"0.2.11": {
|
||||||
path: '0.2.11',
|
path: "0.2.11",
|
||||||
label: '0.2.11',
|
label: "0.2.11",
|
||||||
}
|
|
||||||
},
|
},
|
||||||
lastVersion: '0.2.11',
|
},
|
||||||
editUrl: ({versionDocsDirPath, docPath, locale, version, permalink}) => {
|
lastVersion: "0.2.11",
|
||||||
return `https://gitea.com/gitea/docs/src/branch/main/${version === 'current' ? 'runner': `runner_versioned_docs/version-${version}`}/${docPath}`;
|
editUrl: ({
|
||||||
|
versionDocsDirPath,
|
||||||
|
docPath,
|
||||||
|
locale,
|
||||||
|
version,
|
||||||
|
permalink,
|
||||||
|
}) => {
|
||||||
|
return `https://gitea.com/gitea/docs/src/branch/main/${
|
||||||
|
version === "current"
|
||||||
|
? "runner"
|
||||||
|
: `runner_versioned_docs/version-${version}`
|
||||||
|
}/${docPath}`;
|
||||||
},
|
},
|
||||||
async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) {
|
async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) {
|
||||||
const { item } = args;
|
const { item } = args;
|
||||||
// Use the provided data to generate a custom sidebar slice
|
// Use the provided data to generate a custom sidebar slice
|
||||||
const sidebarItems = await defaultSidebarItemsGenerator(args);
|
const sidebarItems = await defaultSidebarItemsGenerator(args);
|
||||||
if (item.dirName !== 'usage') {
|
if (item.dirName !== "usage") {
|
||||||
return sidebarItems;
|
return sidebarItems;
|
||||||
} else {
|
} else {
|
||||||
return sortItemsByCategory(sidebarItems);
|
return sortItemsByCategory(sidebarItems);
|
||||||
@@ -207,44 +219,62 @@ const config = {
|
|||||||
],
|
],
|
||||||
|
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: 'en-us',
|
defaultLocale: "en-us",
|
||||||
locales: ['en-us', 'zh-cn'/*,'fr-fr', 'zh-tw'*/], // temporarily disable other locales
|
locales: ["en-us", "zh-cn", "zh-tw"],
|
||||||
localeConfigs: {
|
localeConfigs: {
|
||||||
'en-us': {
|
"en-us": {
|
||||||
label: 'English',
|
label: "English",
|
||||||
},
|
},
|
||||||
'zh-cn': {
|
"zh-cn": {
|
||||||
label: '中文',
|
label: "簡體中文",
|
||||||
|
},
|
||||||
|
"zh-tw": {
|
||||||
|
label: "繁體中文",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
presets: [
|
presets: [
|
||||||
[
|
[
|
||||||
'@docusaurus/preset-classic',
|
"@docusaurus/preset-classic",
|
||||||
//'classic',
|
//'classic',
|
||||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||||
({
|
({
|
||||||
docs: {
|
docs: {
|
||||||
sidebarPath: require.resolve('./sidebars.js'),
|
sidebarPath: require.resolve("./sidebars.js"),
|
||||||
routeBasePath: '/', // Serve the docs at the site's root
|
routeBasePath: "/", // Serve the docs at the site's root
|
||||||
editUrl: ({versionDocsDirPath, docPath, locale, version, permalink}) => {
|
editUrl: ({
|
||||||
|
versionDocsDirPath,
|
||||||
|
docPath,
|
||||||
|
locale,
|
||||||
|
version,
|
||||||
|
permalink,
|
||||||
|
}) => {
|
||||||
// Special case for awesome page
|
// Special case for awesome page
|
||||||
if (docPath.includes('awesome.md')) {
|
if (docPath.includes("awesome.md")) {
|
||||||
return `https://gitea.com/gitea/awesome-gitea/src/branch/main/README.md`
|
return `https://gitea.com/gitea/awesome-gitea/src/branch/main/README.md`;
|
||||||
}
|
}
|
||||||
if (locale === 'en-us') {
|
if (locale === "en-us") {
|
||||||
return `https://gitea.com/gitea/docs/src/branch/main/${version === 'current' ? 'docs': `versioned_docs/version-${version}`}/${docPath}`;
|
return `https://gitea.com/gitea/docs/src/branch/main/${
|
||||||
|
version === "current"
|
||||||
|
? "docs"
|
||||||
|
: `versioned_docs/version-${version}`
|
||||||
|
}/${docPath}`;
|
||||||
}
|
}
|
||||||
return `https://gitea.com/gitea/docs/src/branch/main/i18n/${locale}/docusaurus-plugin-content-docs/${version === 'current' ? 'current': `version-${version}`}/${docPath}`;
|
return `https://gitea.com/gitea/docs/src/branch/main/i18n/${locale}/docusaurus-plugin-content-docs/${
|
||||||
|
version === "current" ? "current" : `version-${version}`
|
||||||
|
}/${docPath}`;
|
||||||
},
|
},
|
||||||
versions: versions,
|
versions: versions,
|
||||||
lastVersion: '1.23',
|
lastVersion: "1.23",
|
||||||
async sidebarItemsGenerator({defaultSidebarItemsGenerator, ...args}) {
|
async sidebarItemsGenerator({
|
||||||
|
defaultSidebarItemsGenerator,
|
||||||
|
...args
|
||||||
|
}) {
|
||||||
const { item } = args;
|
const { item } = args;
|
||||||
// Use the provided data to generate a custom sidebar slice
|
// Use the provided data to generate a custom sidebar slice
|
||||||
const sidebarItems = await defaultSidebarItemsGenerator(args);
|
const sidebarItems = await defaultSidebarItemsGenerator(args);
|
||||||
if (item.dirName !== 'usage') {
|
if (item.dirName !== "usage") {
|
||||||
return sidebarItems;
|
return sidebarItems;
|
||||||
} else {
|
} else {
|
||||||
return sortItemsByCategory(sidebarItems);
|
return sortItemsByCategory(sidebarItems);
|
||||||
@@ -253,11 +283,11 @@ const config = {
|
|||||||
},
|
},
|
||||||
blog: false,
|
blog: false,
|
||||||
theme: {
|
theme: {
|
||||||
customCss: require.resolve('./src/css/custom.css'),
|
customCss: require.resolve("./src/css/custom.css"),
|
||||||
},
|
},
|
||||||
pages: pageConfig,
|
pages: pageConfig,
|
||||||
gtag: {
|
gtag: {
|
||||||
trackingID: 'G-KHM0KYT506'
|
trackingID: "G-KHM0KYT506",
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
@@ -265,25 +295,28 @@ const config = {
|
|||||||
],
|
],
|
||||||
markdown: {
|
markdown: {
|
||||||
preprocessor: ({ filePath, fileContent }) => {
|
preprocessor: ({ filePath, fileContent }) => {
|
||||||
var key = '';
|
var key = "";
|
||||||
var found = false;
|
var found = false;
|
||||||
for (key in globalVariables) {
|
for (key in globalVariables) {
|
||||||
let folderName = (key == 'current' ? 'current' : `version-${key}`);
|
let folderName = key == "current" ? "current" : `version-${key}`;
|
||||||
if (filePath.includes(`/${folderName}/`)) {
|
if (filePath.includes(`/${folderName}/`)) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (key == '' || !found) {
|
if (key == "" || !found) {
|
||||||
key = 'current';
|
key = "current";
|
||||||
}
|
}
|
||||||
|
|
||||||
let content = fileContent;
|
let content = fileContent;
|
||||||
for (const variable in globalVariables[key]) {
|
for (const variable in globalVariables[key]) {
|
||||||
content = content.replaceAll('@'+variable+'@', globalVariables[key][variable]);
|
content = content.replaceAll(
|
||||||
|
"@" + variable + "@",
|
||||||
|
globalVariables[key][variable]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return content
|
return content;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
themes: [
|
themes: [
|
||||||
@@ -295,164 +328,168 @@ const config = {
|
|||||||
highlightSearchTermsOnTargetPage: true,
|
highlightSearchTermsOnTargetPage: true,
|
||||||
explicitSearchResultPath: true,
|
explicitSearchResultPath: true,
|
||||||
indexBlog: false,
|
indexBlog: false,
|
||||||
docsRouteBasePath: "/"
|
docsRouteBasePath: "/",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
themeConfig:
|
themeConfig:
|
||||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||||
({
|
({
|
||||||
metadata: [
|
metadata: [
|
||||||
{name: 'keywords', content: 'gitea, git, devops, actions, packages, documentation, self-hosted, open-source, version control, gitlab, github'}
|
{
|
||||||
|
name: "keywords",
|
||||||
|
content:
|
||||||
|
"gitea, git, devops, actions, packages, documentation, self-hosted, open-source, version control, gitlab, github",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
colorMode: {
|
colorMode: {
|
||||||
defaultMode: 'light',
|
defaultMode: "light",
|
||||||
disableSwitch: false,
|
disableSwitch: false,
|
||||||
respectPrefersColorScheme: true,
|
respectPrefersColorScheme: true,
|
||||||
},
|
},
|
||||||
announcementBar: {
|
announcementBar: {
|
||||||
id: 'announcementBar-4', // Increment on change
|
id: "announcementBar-4", // Increment on change
|
||||||
content: `<a href="https://about.gitea.com/products/cloud">Try Gitea Cloud ☁️ for 30 days <span aria-hidden="true">→</span> Accelerate your Development & Deploys!</a>`,
|
content: `<a href="https://about.gitea.com/products/cloud">Try Gitea Cloud ☁️ for 30 days <span aria-hidden="true">→</span> Accelerate your Development & Deploys!</a>`,
|
||||||
},
|
},
|
||||||
navbar: {
|
navbar: {
|
||||||
title: 'Gitea',
|
title: "Gitea",
|
||||||
logo: {
|
logo: {
|
||||||
alt: 'Gitea Logo',
|
alt: "Gitea Logo",
|
||||||
src: 'img/gitea.svg',
|
src: "img/gitea.svg",
|
||||||
href: 'https://about.gitea.com/',
|
href: "https://about.gitea.com/",
|
||||||
target: '_self',
|
target: "_self",
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
type: 'doc',
|
type: "doc",
|
||||||
docId: 'index',
|
docId: "index",
|
||||||
position: 'left',
|
position: "left",
|
||||||
label: 'Docs',
|
label: "Docs",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: '/api/1.23/',
|
to: "/api/1.23/",
|
||||||
label: 'API',
|
label: "API",
|
||||||
position: 'left',
|
position: "left",
|
||||||
activeBaseRegex: 'api/(1.19|1.20|1.21|1.22|1.23|next)/',
|
activeBaseRegex: "api/(1.19|1.20|1.21|1.22|1.23|next)/",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: '/runner/0.2.11/',
|
to: "/runner/0.2.11/",
|
||||||
label: 'Runner',
|
label: "Runner",
|
||||||
position: 'left',
|
position: "left",
|
||||||
activeBaseRegex: 'runner/(0.2.11|next)/',
|
activeBaseRegex: "runner/(0.2.11|next)/",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
position: 'left',
|
position: "left",
|
||||||
label: 'Enterprise',
|
label: "Enterprise",
|
||||||
href: 'https://docs.gitea.com/enterprise',
|
href: "https://docs.gitea.com/enterprise",
|
||||||
className: 'internal-href',
|
className: "internal-href",
|
||||||
target: '_self',
|
target: "_self",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'search',
|
type: "search",
|
||||||
position: 'right',
|
position: "right",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'localeDropdown',
|
type: "localeDropdown",
|
||||||
position: 'right',
|
position: "right",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'docsVersionDropdown',
|
type: "docsVersionDropdown",
|
||||||
position: 'right',
|
position: "right",
|
||||||
dropdownActiveClassDisabled: true,
|
dropdownActiveClassDisabled: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'custom-Dropdown',
|
type: "custom-Dropdown",
|
||||||
label: 'API Version',
|
label: "API Version",
|
||||||
position: 'right',
|
position: "right",
|
||||||
items: [
|
items: [
|
||||||
{to: '/api/next/', label: '1.24-dev' },
|
{ to: "/api/next/", label: "1.24-dev" },
|
||||||
{to: '/api/1.23/', label: '1.23.6' },
|
{ to: "/api/1.23/", label: "1.23.6" },
|
||||||
{to: '/api/1.22/', label: '1.22.6' },
|
{ to: "/api/1.22/", label: "1.22.6" },
|
||||||
{to: '/api/1.21/', label: '1.21.11' },
|
{ to: "/api/1.21/", label: "1.21.11" },
|
||||||
{to: '/api/1.20/', label: '1.20.6' },
|
{ to: "/api/1.20/", label: "1.20.6" },
|
||||||
{to: '/api/1.19/', label: '1.19.4' },
|
{ to: "/api/1.19/", label: "1.19.4" },
|
||||||
],
|
],
|
||||||
routerRgx: '\/api\/',
|
routerRgx: "/api/",
|
||||||
classNames: 'api-dropdown',
|
classNames: "api-dropdown",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'custom-Dropdown',
|
type: "custom-Dropdown",
|
||||||
label: 'Runner Version',
|
label: "Runner Version",
|
||||||
position: 'right',
|
position: "right",
|
||||||
items: [
|
items: [
|
||||||
{to: '/runner/next/', label: 'development' },
|
{ to: "/runner/next/", label: "development" },
|
||||||
{to: '/runner/0.2.11/', label: '0.2.11' },
|
{ to: "/runner/0.2.11/", label: "0.2.11" },
|
||||||
],
|
],
|
||||||
routerRgx: '\/runner\/',
|
routerRgx: "/runner/",
|
||||||
classNames: 'runner-dropdown',
|
classNames: "runner-dropdown",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
to: 'help/support',
|
to: "help/support",
|
||||||
position: 'right',
|
position: "right",
|
||||||
label: 'Support',
|
label: "Support",
|
||||||
activeBaseRegex: 'help/support',
|
activeBaseRegex: "help/support",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: 'https://gitea.com/user/login',
|
href: "https://gitea.com/user/login",
|
||||||
label: 'Sign In',
|
label: "Sign In",
|
||||||
position: 'right',
|
position: "right",
|
||||||
className: 'internal-href signin-button',
|
className: "internal-href signin-button",
|
||||||
target: '_self',
|
target: "_self",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
style: 'dark',
|
style: "dark",
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
title: 'Community',
|
title: "Community",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
label: 'Awesome Gitea',
|
label: "Awesome Gitea",
|
||||||
href: 'https://gitea.com/gitea/awesome-gitea',
|
href: "https://gitea.com/gitea/awesome-gitea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Stack Overflow',
|
label: "Stack Overflow",
|
||||||
href: 'https://stackoverflow.com/questions/tagged/gitea',
|
href: "https://stackoverflow.com/questions/tagged/gitea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Discord',
|
label: "Discord",
|
||||||
href: 'https://discord.gg/gitea',
|
href: "https://discord.gg/gitea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Matrix',
|
label: "Matrix",
|
||||||
href: 'https://matrix.to/#/#gitea-space:matrix.org',
|
href: "https://matrix.to/#/#gitea-space:matrix.org",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Forum',
|
label: "Forum",
|
||||||
href: 'https://forum.gitea.com/',
|
href: "https://forum.gitea.com/",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Twitter',
|
label: "Twitter",
|
||||||
href: 'https://twitter.com/giteaio',
|
href: "https://twitter.com/giteaio",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Mastodon',
|
label: "Mastodon",
|
||||||
href: 'https://social.gitea.io/@gitea',
|
href: "https://social.gitea.io/@gitea",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Code',
|
title: "Code",
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
label: 'GitHub',
|
label: "GitHub",
|
||||||
href: 'https://github.com/go-gitea/gitea',
|
href: "https://github.com/go-gitea/gitea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Gitea',
|
label: "Gitea",
|
||||||
href: 'https://gitea.com/gitea',
|
href: "https://gitea.com/gitea",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Tea CLI',
|
label: "Tea CLI",
|
||||||
href: 'https://gitea.com/gitea/tea',
|
href: "https://gitea.com/gitea/tea",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -461,7 +498,7 @@ const config = {
|
|||||||
prism: {
|
prism: {
|
||||||
theme: lightCodeTheme,
|
theme: lightCodeTheme,
|
||||||
darkTheme: darkCodeTheme,
|
darkTheme: darkCodeTheme,
|
||||||
additionalLanguages: ['ini','diff','json','http','docker','php'],
|
additionalLanguages: ["ini", "diff", "json", "http", "docker", "php"],
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 110
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/adding-legal-pages
|
- /zh-cn/adding-legal-pages
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 添加法律页面
|
# 添加法律页面
|
||||||
|
|||||||
@@ -27,9 +27,11 @@ aliases:
|
|||||||
- 例如: LDAP `389`/ LDAPs `636`
|
- 例如: LDAP `389`/ LDAPs `636`
|
||||||
|
|
||||||
- 安全协议 (可选)
|
- 安全协议 (可选)
|
||||||
|
|
||||||
- 连接 LDAP 服务器时是否使用 TLS 协议。
|
- 连接 LDAP 服务器时是否使用 TLS 协议。
|
||||||
|
|
||||||
- 管理员过滤规则 (可选)
|
- 管理员过滤规则 (可选)
|
||||||
|
|
||||||
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
|
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
|
||||||
- 示例:`(objectClass=adminAccount)`
|
- 示例:`(objectClass=adminAccount)`
|
||||||
- 适用于 Microsoft Active Directory(AD)的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
|
- 适用于 Microsoft Active Directory(AD)的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
|
||||||
@@ -45,7 +47,9 @@ aliases:
|
|||||||
|
|
||||||
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
|
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
|
||||||
- 示例:givenName
|
- 示例:givenName
|
||||||
|
|
||||||
- 姓氏属性(可选)
|
- 姓氏属性(可选)
|
||||||
|
|
||||||
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
|
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
|
||||||
- 示例:`sn`
|
- 示例:`sn`
|
||||||
|
|
||||||
@@ -83,7 +87,7 @@ aliases:
|
|||||||
但您可以在 app.ini 文件中进行更改。
|
但您可以在 app.ini 文件中进行更改。
|
||||||
有关此部分的详细说明,请参阅[sample
|
有关此部分的详细说明,请参阅[sample
|
||||||
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
|
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
|
||||||
的_cron.sync_external_users_ 部分的注释。前面提到的_User Search Base_和_User Filter_
|
的*cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
|
||||||
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
|
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
|
||||||
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
|
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
|
||||||
|
|
||||||
@@ -113,6 +117,7 @@ aliases:
|
|||||||
使用以下字段:
|
使用以下字段:
|
||||||
|
|
||||||
- 群组搜索基础 DN(可选)
|
- 群组搜索基础 DN(可选)
|
||||||
|
|
||||||
- 组使用的 LDAP DN。
|
- 组使用的 LDAP DN。
|
||||||
- 示例: `ou=group,dc=mydomain,dc=com`
|
- 示例: `ou=group,dc=mydomain,dc=com`
|
||||||
|
|
||||||
@@ -156,7 +161,8 @@ PAM提供了一种机制,通过对用户进行PAM认证来自动将其添加
|
|||||||
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
|
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
|
||||||
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
|
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
|
||||||
|
|
||||||
[^1]: 例如,在Debian "Bullseye"上使用标准Linux登录,可以使用`common-session-noninteractive`。这个值对于其他版本的Debian,
|
[^1]:
|
||||||
|
例如,在 Debian "Bullseye"上使用标准 Linux 登录,可以使用`common-session-noninteractive`。这个值对于其他版本的 Debian,
|
||||||
包括 Ubuntu 和 Mint,可能也是有效的,请查阅您所使用发行版的文档以确认。
|
包括 Ubuntu 和 Mint,可能也是有效的,请查阅您所使用发行版的文档以确认。
|
||||||
|
|
||||||
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
|
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
|
||||||
@@ -166,9 +172,11 @@ PAM提供了一种机制,通过对用户进行PAM认证来自动将其添加
|
|||||||
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
|
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
|
||||||
|
|
||||||
- 身份验证名称 **(必选)**
|
- 身份验证名称 **(必选)**
|
||||||
|
|
||||||
- 分配给新授权方法的名称
|
- 分配给新授权方法的名称
|
||||||
|
|
||||||
- SMTP 验证类型 **(必选)**
|
- SMTP 验证类型 **(必选)**
|
||||||
|
|
||||||
- 用于连接 SMTP 主机的验证类型,plain 或 login
|
- 用于连接 SMTP 主机的验证类型,plain 或 login
|
||||||
|
|
||||||
- 主机名 **(必选)**
|
- 主机名 **(必选)**
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 11
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/backup-and-restore
|
- /zh-cn/backup-and-restore
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 备份与恢复
|
# 备份与恢复
|
||||||
@@ -33,12 +32,12 @@ Gitea 包括数据库、文件和 Git 仓库,当它被使用时所有这些都
|
|||||||
|
|
||||||
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
||||||
|
|
||||||
* `app.ini` - 如果原先存储在默认的 custom/ 目录之外,则是配置文件的可选副本
|
- `app.ini` - 如果原先存储在默认的 custom/ 目录之外,则是配置文件的可选副本
|
||||||
* `custom/` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
- `custom/` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
||||||
* `data/` - 数据目录(APP_DATA_PATH),如果使用文件会话,则不包括会话。该目录包括 `attachments`、`avatars`、`lfs`、`indexers`、如果使用 SQLite 则包括 SQLite 文件。
|
- `data/` - 数据目录(APP_DATA_PATH),如果使用文件会话,则不包括会话。该目录包括 `attachments`、`avatars`、`lfs`、`indexers`、如果使用 SQLite 则包括 SQLite 文件。
|
||||||
* `repos/` - 仓库目录的完整副本。
|
- `repos/` - 仓库目录的完整副本。
|
||||||
* `gitea-db.sql` - 数据库dump出来的 SQL。
|
- `gitea-db.sql` - 数据库 dump 出来的 SQL。
|
||||||
* `log/` - Logs文件,如果用作迁移不是必须的。
|
- `log/` - Logs 文件,如果用作迁移不是必须的。
|
||||||
|
|
||||||
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/cmd-embedded
|
- /zh-cn/cmd-embedded
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 嵌入资源提取工具
|
# 嵌入资源提取工具
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 1
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/command-line
|
- /zh-cn/command-line
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 命令行
|
# 命令行
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 30
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/config-cheat-sheet
|
- /zh-cn/config-cheat-sheet
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 配置说明
|
# 配置说明
|
||||||
@@ -22,14 +21,12 @@ aliases:
|
|||||||
|
|
||||||
包含`#`或者`;`的变量必须使用引号( `` ` `` 或者 `"` )包裹,否则会被解析为注释。
|
包含`#`或者`;`的变量必须使用引号( `` ` `` 或者 `"` )包裹,否则会被解析为注释。
|
||||||
|
|
||||||
|
|
||||||
本文档使用以下约定:
|
本文档使用以下约定:
|
||||||
|
|
||||||
* `[section].FOO_BAR` 或 `[section]FOO_BAR`: 一个位于 INI 文件 `[section]` 段中的配置项。
|
- `[section].FOO_BAR` 或 `[section]FOO_BAR`: 一个位于 INI 文件 `[section]` 段中的配置项。
|
||||||
* `FooBar`: 这是一个 Gitea 内部变量,不是一个配置项,仅用于描述相关逻辑。
|
- `FooBar`: 这是一个 Gitea 内部变量,不是一个配置项,仅用于描述相关逻辑。
|
||||||
* `$FOO_BAR`: 这是一个环境变量,Gitea 可能会使用它的值,但是它不能直接用于配置文件中。
|
- `$FOO_BAR`: 这是一个环境变量,Gitea 可能会使用它的值,但是它不能直接用于配置文件中。
|
||||||
* `{FOO_BAR}/something` 或 `{FooBar}/something`: 这个值会默认使用配置项 `FOO_BAR` 或者内部变量 `FooBar`。
|
- `{FOO_BAR}/something` 或 `{FooBar}/something`: 这个值会默认使用配置项 `FOO_BAR` 或者内部变量 `FooBar`。
|
||||||
|
|
||||||
|
|
||||||
**注意:** 修改完配置文件后,需要重启 Gitea 服务才能生效。
|
**注意:** 修改完配置文件后,需要重启 Gitea 服务才能生效。
|
||||||
|
|
||||||
@@ -63,9 +60,9 @@ aliases:
|
|||||||
- 这是指向`app.ini`文件的路径。
|
- 这是指向`app.ini`文件的路径。
|
||||||
- 在构建时设置的内置值(参见从源代码构建)
|
- 在构建时设置的内置值(参见从源代码构建)
|
||||||
- 否则,默认为 _`CustomPath`_`/conf/app.ini`
|
- 否则,默认为 _`CustomPath`_`/conf/app.ini`
|
||||||
- 如果上述任何路径是相对路径,则会相对于_`CustomPath`_目录进行处理。
|
- 如果上述任何路径是相对路径,则会相对于*`CustomPath`*目录进行处理。
|
||||||
|
|
||||||
此外,还有_`StaticRootPath`_,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
|
此外,还有*`StaticRootPath`*,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
|
||||||
|
|
||||||
## Overall (`DEFAULT`)
|
## Overall (`DEFAULT`)
|
||||||
|
|
||||||
@@ -455,15 +452,15 @@ aliases:
|
|||||||
## 索引 (`indexer`)
|
## 索引 (`indexer`)
|
||||||
|
|
||||||
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve`、`db`、`elasticsearch` 或 `meilisearch`。
|
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve`、`db`、`elasticsearch` 或 `meilisearch`。
|
||||||
- `ISSUE_INDEXER_CONN_STR`:**** : 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch(例如:`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
|
- `ISSUE_INDEXER_CONN_STR`:\*\*\*\* : 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch(例如:`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
|
||||||
- `ISSUE_INDEXER_NAME`:**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
|
- `ISSUE_INDEXER_NAME`:**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
|
||||||
- `ISSUE_INDEXER_PATH`:**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE_INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 _`AppWorkPath`_ 进行绝对路径化。
|
- `ISSUE_INDEXER_PATH`:**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE*INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 *`AppWorkPath`\_ 进行绝对路径化。
|
||||||
|
|
||||||
- `REPO_INDEXER_ENABLED`:**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
|
- `REPO_INDEXER_ENABLED`:**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
|
||||||
- `REPO_INDEXER_REPO_TYPES`:**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources`、`forks`、`mirrors`、`templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`。
|
- `REPO_INDEXER_REPO_TYPES`:**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources`、`forks`、`mirrors`、`templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`。
|
||||||
- `REPO_INDEXER_TYPE`:**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
- `REPO_INDEXER_TYPE`:**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
||||||
- `REPO_INDEXER_PATH`:**indexers/repos.bleve**: 用于代码搜索的索引文件。
|
- `REPO_INDEXER_PATH`:**indexers/repos.bleve**: 用于代码搜索的索引文件。
|
||||||
- `REPO_INDEXER_CONN_STR`:****: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
|
- `REPO_INDEXER_CONN_STR`:\*\*\*\*: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
|
||||||
- `REPO_INDEXER_NAME`:**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
|
- `REPO_INDEXER_NAME`:**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
|
||||||
|
|
||||||
- `REPO_INDEXER_INCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
|
- `REPO_INDEXER_INCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
|
||||||
@@ -481,8 +478,8 @@ aliases:
|
|||||||
- `LENGTH`:**100000**: 通道队列阻塞之前的最大队列大小
|
- `LENGTH`:**100000**: 通道队列阻塞之前的最大队列大小
|
||||||
- `BATCH_LENGTH`:**20**: 在传递给处理程序之前批处理数据
|
- `BATCH_LENGTH`:**20**: 在传递给处理程序之前批处理数据
|
||||||
- `CONN_STR`:**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
- `CONN_STR`:**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
||||||
- `QUEUE_NAME`:**_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
- `QUEUE_NAME`:**\_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
||||||
- `SET_NAME`:**_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_,但可以在特定的 `queue.name` 部分中进行覆盖。
|
- `SET_NAME`:**\_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_,但可以在特定的 `queue.name` 部分中进行覆盖。
|
||||||
- `MAX_WORKERS`:**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
|
- `MAX_WORKERS`:**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
|
||||||
|
|
||||||
Gitea 创建以下非唯一队列:
|
Gitea 创建以下非唯一队列:
|
||||||
@@ -516,7 +513,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA)。
|
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA)。
|
||||||
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
|
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
|
||||||
- `LOGIN_REMEMBER_DAYS`: **31**: 在要求重新登录之前,记住用户的登录状态多长时间(以天为单位)。
|
- `LOGIN_REMEMBER_DAYS`: **31**: 在要求重新登录之前,记住用户的登录状态多长时间(以天为单位)。
|
||||||
- `COOKIE_REMEMBER_NAME`: **gitea\_incredible**: 保存自动登录信息的 Cookie 名称。
|
- `COOKIE_REMEMBER_NAME`: **gitea_incredible**: 保存自动登录信息的 Cookie 名称。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
|
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
|
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
|
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
|
||||||
@@ -571,13 +568,13 @@ Gitea 创建以下非唯一队列:
|
|||||||
## OpenID (`openid`)
|
## OpenID (`openid`)
|
||||||
|
|
||||||
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
|
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
|
||||||
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: 允许通过OpenID进行注册。
|
- `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允许通过 OpenID 进行注册。
|
||||||
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
|
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
|
||||||
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
|
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
|
||||||
|
|
||||||
## OAuth2 Client (`oauth2_client`)
|
## OAuth2 Client (`oauth2_client`)
|
||||||
|
|
||||||
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER\_EMAIL\_CONFIRM**: 设置此项以启用或禁用OAuth2自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
|
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 设置此项以启用或禁用 OAuth2 自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
|
||||||
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
|
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
|
||||||
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
|
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
|
||||||
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
|
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
|
||||||
@@ -631,7 +628,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
|
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
|
||||||
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
|
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
|
||||||
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
|
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
|
||||||
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: 显示注册按钮
|
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 显示注册按钮
|
||||||
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
|
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
|
||||||
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
|
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
|
||||||
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
|
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
|
||||||
@@ -677,7 +674,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
|
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
|
||||||
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
|
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
|
||||||
- `PROXY_URL`: **_empty_**: 代理服务器 URL,支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
|
- `PROXY_URL`: **_empty_**: 代理服务器 URL,支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
|
||||||
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (*);使用 ** 来匹配所有主机。如果未提供,将使用全局代理设置。
|
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (\*);使用 \*\* 来匹配所有主机。如果未提供,将使用全局代理设置。
|
||||||
|
|
||||||
## 邮件 (`mailer`)
|
## 邮件 (`mailer`)
|
||||||
|
|
||||||
@@ -752,7 +749,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
|
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
|
||||||
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db,为空(将使用数据库配置);对于其他引擎,为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
|
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db,为空(将使用数据库配置);对于其他引擎,为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
|
||||||
- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置,当 ROOT_URL 是 https 链接的时候默认设置为 true。
|
- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置,当 ROOT_URL 是 https 链接的时候默认设置为 true。
|
||||||
- `COOKIE_NAME`: **i\_like\_gitea**: 用于会话 ID 的 cookie 名称。
|
- `COOKIE_NAME`: **i_like_gitea**: 用于会话 ID 的 cookie 名称。
|
||||||
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
|
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
|
||||||
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 86400(1 天)。
|
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 86400(1 天)。
|
||||||
- `DOMAIN`: **_empty_**: 设置 cookie 的域。
|
- `DOMAIN`: **_empty_**: 设置 cookie 的域。
|
||||||
@@ -1094,7 +1091,7 @@ IS_INPUT_FILE = false
|
|||||||
|
|
||||||
- ENABLED:**false** 设置是否启动渲染器
|
- ENABLED:**false** 设置是否启动渲染器
|
||||||
- NEED_POSTPROCESS:**true** 设置为**true**以替换链接/SHA1 等。
|
- NEED_POSTPROCESS:**true** 设置为**true**以替换链接/SHA1 等。
|
||||||
- FILE_EXTENSIONS:**_empty_** 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
|
- FILE*EXTENSIONS:\*\*\_empty*\*\* 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
|
||||||
- RENDER_COMMAND:用于渲染所有匹配的扩展名的外部命令。
|
- RENDER_COMMAND:用于渲染所有匹配的扩展名的外部命令。
|
||||||
- IS_INPUT_FILE:**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
|
- IS_INPUT_FILE:**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
|
||||||
- RENDER_CONTENT_MODE:**sanitized** 内容将如何呈现。
|
- RENDER_CONTENT_MODE:**sanitized** 内容将如何呈现。
|
||||||
@@ -1333,7 +1330,7 @@ MINIO_BUCKET_LOOKUP_TYPE = auto
|
|||||||
|
|
||||||
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true,所有通过 HTTP 向外部的请求都将受到影响,如果为 false,即使环境设置了 http_proxy/https_proxy 也不会使用
|
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true,所有通过 HTTP 向外部的请求都将受到影响,如果为 false,即使环境设置了 http_proxy/https_proxy 也不会使用
|
||||||
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
||||||
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站
|
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
|
||||||
|
|
||||||
i.e.
|
i.e.
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 100
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/customizing-gitea
|
- /zh-cn/customizing-gitea
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 自定义 Gitea 配置
|
# 自定义 Gitea 配置
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 12
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/email-setup
|
- /zh-cn/email-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Email 设置
|
# Email 设置
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/environment-variables
|
- /zh-cn/environment-variables
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 环境变量清单
|
# 环境变量清单
|
||||||
@@ -20,31 +19,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
|
|||||||
|
|
||||||
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
||||||
|
|
||||||
* `GOOS`
|
- `GOOS`
|
||||||
* `GOARCH`
|
- `GOARCH`
|
||||||
* [`GOPATH`](https://go.dev/cmd/go/#hdr-GOPATH_environment_variable)
|
- [`GOPATH`](https://go.dev/cmd/go/#hdr-GOPATH_environment_variable)
|
||||||
|
|
||||||
您可以在[官方文档](https://go.dev/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
您可以在[官方文档](https://go.dev/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
||||||
|
|
||||||
## Gitea 的文件目录
|
## Gitea 的文件目录
|
||||||
|
|
||||||
* `GITEA_WORK_DIR`:工作目录的绝对路径
|
- `GITEA_WORK_DIR`:工作目录的绝对路径
|
||||||
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 *custom* 目录
|
- `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 _custom_ 目录
|
||||||
* `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
- `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
||||||
* `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
- `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
||||||
|
|
||||||
## 操作系统配置
|
## 操作系统配置
|
||||||
|
|
||||||
* `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
- `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
||||||
* `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
- `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
||||||
* `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
- `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
||||||
|
|
||||||
### 仅限于 Windows 的配置
|
### 仅限于 Windows 的配置
|
||||||
|
|
||||||
* `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
- `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
||||||
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C盘)
|
- `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C 盘)
|
||||||
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
- `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
||||||
|
|
||||||
## Miscellaneous
|
## Miscellaneous
|
||||||
|
|
||||||
* `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
- `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 60
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/external-renderers
|
- /zh-cn/external-renderers
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 外部渲染器
|
# 外部渲染器
|
||||||
@@ -171,7 +170,8 @@ ALLOW_DATA_URI_IMAGES = true
|
|||||||
|
|
||||||
.markup.XXXXX body {
|
.markup.XXXXX body {
|
||||||
color: #444;
|
color: #444;
|
||||||
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
|
font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
|
||||||
|
serif;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 16
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/fail2ban-setup
|
- /zh-cn/fail2ban-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 设置 Fail2ban
|
# 设置 Fail2ban
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 12
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/git-lfs-setup
|
- /zh-cn/git-lfs-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Git LFS 设置
|
# Git LFS 设置
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ aliases:
|
|||||||
目前,以下通知事件使用模板:
|
目前,以下通知事件使用模板:
|
||||||
|
|
||||||
| 操作名称 | 用途 |
|
| 操作名称 | 用途 |
|
||||||
| ----------- | ------------------------------------------------------------------------------------------------------------ |
|
| ---------- | ---------------------------------------------------------------------- |
|
||||||
| `new` | 创建了新的工单或合并请求。 |
|
| `new` | 创建了新的工单或合并请求。 |
|
||||||
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
||||||
| `close` | 关闭了工单或合并请求。 |
|
| `close` | 关闭了工单或合并请求。 |
|
||||||
@@ -75,7 +75,7 @@ custom/templates/mail/pull/comment.tmpl
|
|||||||
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
||||||
|
|
||||||
| 名称 | 类型 | 可用性 | 用途 |
|
| 名称 | 类型 | 可用性 | 用途 |
|
||||||
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
||||||
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
||||||
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
||||||
@@ -221,11 +221,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
|
|||||||
>
|
>
|
||||||
> #### 消息内容
|
> #### 消息内容
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> Mike, I think we should tone down the blues a little.
|
> Mike, I think we should tone down the blues a little.
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> [在 Gitea 上查看](#)。
|
> [在 Gitea 上查看](#)。
|
||||||
|
|
||||||
@@ -234,7 +234,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
|
|||||||
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
||||||
|
|
||||||
| 函数名 | 参数 | 可用于 | 用法 |
|
| 函数名 | 参数 | 可用于 | 用法 |
|
||||||
|------------------| ----------- | ------------ | ------------------------------ |
|
| ---------------- | ----------- | ---------- | ------------------------------------------------ |
|
||||||
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
||||||
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
||||||
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
||||||
@@ -245,8 +245,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
|
|||||||
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
像这样使用: {{SanitizeHTML "Escape<my>text"}}
|
像这样使用: {{SanitizeHTML "Escape<my
|
||||||
或者这样使用: {{"Escape<my>text" | SanitizeHTML}}
|
>text"}} 或者这样使用: {{"Escape<my
|
||||||
或者这样使用: {{AppUrl}}
|
>text" | SanitizeHTML}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
|
||||||
但不要像这样使用: {{.AppUrl}}
|
{{.AppUrl}}</my
|
||||||
|
></my
|
||||||
|
>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
|
|||||||
|
|
||||||
源文件可以在以下目录中找到:
|
源文件可以在以下目录中找到:
|
||||||
|
|
||||||
* **CSS 样式**: `web_src/css/`
|
- **CSS 样式**: `web_src/css/`
|
||||||
* **JavaScript 文件**: `web_src/js/`
|
- **JavaScript 文件**: `web_src/js/`
|
||||||
* **Vue 组件**: `web_src/js/components/`
|
- **Vue 组件**: `web_src/js/components/`
|
||||||
* **Go HTML 模板**: `templates/`
|
- **Go HTML 模板**: `templates/`
|
||||||
|
|
||||||
## 通用准则
|
## 通用准则
|
||||||
|
|
||||||
@@ -54,16 +54,16 @@ Gitea 使用一些补丁使 Fomantic UI 更具可访问性(参见 `aria.md`)
|
|||||||
|
|
||||||
推荐的实现方式:
|
推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Vanilla JS
|
- Vue + Vanilla JS
|
||||||
* Fomantic-UI(jQuery)
|
- Fomantic-UI(jQuery)
|
||||||
* htmx (部分页面重新加载其他静态组件)
|
- htmx (部分页面重新加载其他静态组件)
|
||||||
* Vanilla JS
|
- Vanilla JS
|
||||||
|
|
||||||
不推荐的实现方式:
|
不推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Fomantic-UI(jQuery)
|
- Vue + Fomantic-UI(jQuery)
|
||||||
* jQuery + Vanilla JS
|
- jQuery + Vanilla JS
|
||||||
* htmx + 任何其他需要大量 JavaScript 代码或不必要的功能,如 htmx 脚本 (`hx-on`)
|
- htmx + 任何其他需要大量 JavaScript 代码或不必要的功能,如 htmx 脚本 (`hx-on`)
|
||||||
|
|
||||||
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
||||||
尽管不建议混合使用不同的框架,
|
尽管不建议混合使用不同的框架,
|
||||||
@@ -97,31 +97,41 @@ Gitea 使用一些补丁使 Fomantic UI 更具可访问性(参见 `aria.md`)
|
|||||||
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
||||||
然而,仍然存在一些特殊情况,因此当前的准则是:
|
然而,仍然存在一些特殊情况,因此当前的准则是:
|
||||||
|
|
||||||
* 对于旧代码:
|
- 对于旧代码:
|
||||||
* 应将`$.data()`重构为`$.attr()`。
|
|
||||||
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
|
||||||
|
|
||||||
* 对于新代码:
|
- 应将`$.data()`重构为`$.attr()`。
|
||||||
* 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
- 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
||||||
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
|
||||||
|
- 对于新代码:
|
||||||
|
- 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
||||||
|
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
||||||
|
|
||||||
### 显示/隐藏元素
|
### 显示/隐藏元素
|
||||||
|
|
||||||
* 推荐在Vue组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
- 推荐在 Vue 组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
||||||
* Go 模板代码应使用 `.tw-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.tw-hidden`的注释以获取更多详细信息。
|
- Go 模板代码应使用 `.tw-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.tw-hidden`的注释以获取更多详细信息。
|
||||||
|
|
||||||
### Go HTML 模板中的样式和属性
|
### Go HTML 模板中的样式和属性
|
||||||
|
|
||||||
建议使用以下方式:
|
建议使用以下方式:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
而不是:
|
而不是:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}
|
||||||
|
data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
以使代码更易读。
|
以使代码更易读。
|
||||||
|
|||||||
@@ -19,22 +19,22 @@ aliases:
|
|||||||
|
|
||||||
## 重构建议
|
## 重构建议
|
||||||
|
|
||||||
* 设计更多关于未来的内容,而不仅仅解决当前问题。
|
- 设计更多关于未来的内容,而不仅仅解决当前问题。
|
||||||
* 减少模糊性,减少冲突,提高可维护性。
|
- 减少模糊性,减少冲突,提高可维护性。
|
||||||
* 描述重构,例如:
|
- 描述重构,例如:
|
||||||
* 为什么需要重构。
|
- 为什么需要重构。
|
||||||
* 如何解决旧问题。
|
- 如何解决旧问题。
|
||||||
* 重构的优点/缺点是什么。
|
- 重构的优点/缺点是什么。
|
||||||
* 只做必要的更改,尽量保留旧逻辑。
|
- 只做必要的更改,尽量保留旧逻辑。
|
||||||
* 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个PR中完成。
|
- 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
|
||||||
* 如果存在分歧,应该请TOC(技术监督委员会)参与决策。
|
- 如果存在分歧,应该请 TOC(技术监督委员会)参与决策。
|
||||||
* 添加必要的测试以确保重构的正确性。
|
- 添加必要的测试以确保重构的正确性。
|
||||||
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
- 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
||||||
|
|
||||||
## 审查和合并建议
|
## 审查和合并建议
|
||||||
|
|
||||||
* 重构的PR不应该长时间保持打开状态(通常为7天),应尽快进行审查。
|
- 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
|
||||||
* 重构的PR应尽快合并,不应被其他PR阻塞。
|
- 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
|
||||||
* 如果TOC没有异议,重构的PR可以在7天后由一名核心成员(非作者)批准后合并。
|
- 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
|
||||||
* 如果最终结果良好,容忍一些不完美/临时的步骤。
|
- 如果最终结果良好,容忍一些不完美/临时的步骤。
|
||||||
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
- 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
|
|||||||
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
||||||
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
||||||
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
||||||
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。
|
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
|
||||||
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
||||||
|
|
||||||
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
|
|||||||
Gitea 支持以下令牌范围:
|
Gitea 支持以下令牌范围:
|
||||||
|
|
||||||
| 名称 | 介绍 |
|
| 名称 | 介绍 |
|
||||||
| ---- | ----------- |
|
| ---------------------------------------- | --------------------------------------------------------------- |
|
||||||
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
||||||
| **repo** | 完全控制所有存储库 |
|
| **repo** | 完全控制所有存储库 |
|
||||||
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
||||||
|
|||||||
@@ -53,18 +53,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
|||||||
- 或者包含 Gitea 二进制文件的目录
|
- 或者包含 Gitea 二进制文件的目录
|
||||||
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
||||||
- `app.ini`中的`APP_DATA_PATH`
|
- `app.ini`中的`APP_DATA_PATH`
|
||||||
- 或者_`AppWorkPath`_`/data`
|
- 或者*`AppWorkPath`*`/data`
|
||||||
- _`CustomPath`_(自定义模板)
|
- _`CustomPath`_(自定义模板)
|
||||||
- `--custom-path`标志
|
- `--custom-path`标志
|
||||||
- 或者环境变量`GITEA_CUSTOM`
|
- 或者环境变量`GITEA_CUSTOM`
|
||||||
- 或者在构建时设置的内置值
|
- 或者在构建时设置的内置值
|
||||||
- 或者_`AppWorkPath`_`/custom`
|
- 或者*`AppWorkPath`*`/custom`
|
||||||
- HomeDir
|
- HomeDir
|
||||||
- Unix:环境变量`HOME`
|
- Unix:环境变量`HOME`
|
||||||
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
||||||
- RepoRootPath
|
- RepoRootPath
|
||||||
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
||||||
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
- 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
||||||
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
||||||
- INI(配置文件)
|
- INI(配置文件)
|
||||||
- `--config`标志
|
- `--config`标志
|
||||||
@@ -251,12 +251,14 @@ fatal: Could not read from remote repository.
|
|||||||
Git 用户(@ 之前的部分)的名称拼写正确。
|
Git 用户(@ 之前的部分)的名称拼写正确。
|
||||||
- 确保客户端机器上的公钥和私钥正确无误。
|
- 确保客户端机器上的公钥和私钥正确无误。
|
||||||
- 在服务器上:
|
- 在服务器上:
|
||||||
|
|
||||||
- 确保存储库存在并且命名正确。
|
- 确保存储库存在并且命名正确。
|
||||||
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
||||||
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
||||||
|
|
||||||
尝试在 Gitea 管理面板上运行
|
尝试在 Gitea 管理面板上运行
|
||||||
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
||||||
|
|
||||||
- 查看 Gitea 日志。
|
- 查看 Gitea 日志。
|
||||||
- 查看 /var/log/auth(或类似的文件)。
|
- 查看 /var/log/auth(或类似的文件)。
|
||||||
- 检查存储库的权限。
|
- 检查存储库的权限。
|
||||||
@@ -328,7 +330,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
|
|||||||
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
||||||
|
|
||||||
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
||||||
|
|
||||||
- 作为**用户**,您可以更改密码...
|
- 作为**用户**,您可以更改密码...
|
||||||
|
|
||||||
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
||||||
- 使用`忘记密码`链接。
|
- 使用`忘记密码`链接。
|
||||||
|
|
||||||
|
|||||||
@@ -14,18 +14,18 @@ aliases:
|
|||||||
|
|
||||||
_表格中的符号含义:_
|
_表格中的符号含义:_
|
||||||
|
|
||||||
* _✓ - 支持_
|
- _✓ - 支持_
|
||||||
|
|
||||||
* _⁄ - 部分支持_
|
- _⁄ - 部分支持_
|
||||||
|
|
||||||
* _✘ - 不支持_
|
- _✘ - 不支持_
|
||||||
|
|
||||||
* _⚙️ - 由第三方服务或插件支持_
|
- _⚙️ - 由第三方服务或插件支持_
|
||||||
|
|
||||||
#### 主要特性
|
#### 主要特性
|
||||||
|
|
||||||
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
||||||
| ------------------------------- | -------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
|
| -------------------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
|
||||||
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
|
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
|
||||||
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
||||||
| 支持多种数据库 | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
|
| 支持多种数据库 | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
|
||||||
@@ -56,7 +56,7 @@ _表格中的符号含义:_
|
|||||||
#### 代码管理
|
#### 代码管理
|
||||||
|
|
||||||
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
||||||
| ------------------------------------ | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
|
| -------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
|
||||||
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
||||||
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||||
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
|
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ docker-compose up -d
|
|||||||
|
|
||||||
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
||||||
|
|
||||||
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
|
|||||||
```
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
...
|
---
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ slug: "clone-filters"
|
|||||||
sidebar_position: 25
|
sidebar_position: 25
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/clone-filters
|
- /zh-cn/clone-filters
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 克隆过滤器 (部分克隆)
|
# 克隆过滤器 (部分克隆)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ slug: "incoming-email"
|
|||||||
sidebar_position: 13
|
sidebar_position: 13
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/incoming-email
|
- /zh-cn/incoming-email
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 邮件接收
|
# 邮件接收
|
||||||
|
|||||||
@@ -100,16 +100,13 @@ Gitea 支持两种格式的模板:Markdown 和 YAML。
|
|||||||
|
|
||||||
```md
|
```md
|
||||||
---
|
---
|
||||||
|
|
||||||
name: "Template Name"
|
name: "Template Name"
|
||||||
about: "This template is for testing!"
|
about: "This template is for testing!"
|
||||||
title: "[TEST] "
|
title: "[TEST] "
|
||||||
ref: "main"
|
ref: "main"
|
||||||
labels:
|
labels:
|
||||||
|
|
||||||
- bug
|
- bug
|
||||||
- "help needed"
|
- "help needed"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
This is the template!
|
This is the template!
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ 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` 中的工单/合并请求 1234 |
|
||||||
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ sidebar_position: 15
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/merge-message-templates
|
- /zh-cn/merge-message-templates
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 合并消息模板
|
# 合并消息模板
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
||||||
|
|
||||||
| 名称 | 描述 | 权限 |
|
| 名称 | 描述 | 权限 |
|
||||||
| ----------------- | --------------------------------------------------- | ------------ |
|
| -------------- | ---------------------------------- | --------- |
|
||||||
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
||||||
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
||||||
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
||||||
@@ -31,7 +31,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
||||||
|
|
||||||
| 名称 | 读取 | 写入 | 管理员 |
|
| 名称 | 读取 | 写入 | 管理员 |
|
||||||
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- |
|
| -------------- | -------------------------------- | ------------------------------ | -------- |
|
||||||
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
||||||
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
||||||
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
||||||
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
||||||
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
||||||
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
||||||
@@ -66,7 +66,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`。
|
||||||
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
@@ -77,7 +77,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`。
|
||||||
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ a/b/c/d.json
|
|||||||
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
||||||
|
|
||||||
| 变量 | 扩展为 | 可转换 |
|
| 变量 | 扩展为 | 可转换 |
|
||||||
| -------------------- | --------------------------------------------------- | ------------- |
|
| -------------------- | ----------------------------- | ------ |
|
||||||
| REPO_NAME | 生成的仓库名称 | ✓ |
|
| REPO_NAME | 生成的仓库名称 | ✓ |
|
||||||
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
||||||
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
||||||
@@ -66,7 +66,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
|
|||||||
将 `go-sdk` 传递给可用的转换器的效果如下...
|
将 `go-sdk` 传递给可用的转换器的效果如下...
|
||||||
|
|
||||||
| 转换器 | 效果 |
|
| 转换器 | 效果 |
|
||||||
| ----------- | ------------ |
|
| ------ | ------ |
|
||||||
| SNAKE | go_sdk |
|
| SNAKE | go_sdk |
|
||||||
| KEBAB | go-sdk |
|
| KEBAB | go-sdk |
|
||||||
| CAMEL | goSdk |
|
| CAMEL | goSdk |
|
||||||
|
|||||||
@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
|
|||||||
|
|
||||||
.markup.XXXXX body {
|
.markup.XXXXX body {
|
||||||
color: #444;
|
color: #444;
|
||||||
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
|
font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
|
||||||
|
serif;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ aliases:
|
|||||||
目前,以下通知事件使用模板:
|
目前,以下通知事件使用模板:
|
||||||
|
|
||||||
| 操作名称 | 用途 |
|
| 操作名称 | 用途 |
|
||||||
| ----------- | ------------------------------------------------------------------------------------------------------------ |
|
| ---------- | ---------------------------------------------------------------------- |
|
||||||
| `new` | 创建了新的工单或合并请求。 |
|
| `new` | 创建了新的工单或合并请求。 |
|
||||||
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
||||||
| `close` | 关闭了工单或合并请求。 |
|
| `close` | 关闭了工单或合并请求。 |
|
||||||
@@ -75,7 +75,7 @@ custom/templates/mail/pull/comment.tmpl
|
|||||||
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
||||||
|
|
||||||
| 名称 | 类型 | 可用性 | 用途 |
|
| 名称 | 类型 | 可用性 | 用途 |
|
||||||
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
||||||
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
||||||
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
||||||
@@ -221,11 +221,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
>
|
>
|
||||||
> #### 消息内容:
|
> #### 消息内容:
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> Mike, I think we should tone down the blues a little.
|
> Mike, I think we should tone down the blues a little.
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> [在 Gitea 上查看](#)。
|
> [在 Gitea 上查看](#)。
|
||||||
|
|
||||||
@@ -234,7 +234,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
||||||
|
|
||||||
| 函数名 | 参数 | 可用于 | 用法 |
|
| 函数名 | 参数 | 可用于 | 用法 |
|
||||||
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- |
|
| ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
|
||||||
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
||||||
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
||||||
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
||||||
@@ -245,8 +245,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
像这样使用: {{Str2html "Escape<my>text"}}
|
像这样使用: {{Str2html "Escape<my
|
||||||
或者这样使用: {{"Escape<my>text" | Str2html}}
|
>text"}} 或者这样使用: {{"Escape<my
|
||||||
或者这样使用: {{AppUrl}}
|
>text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
|
||||||
但不要像这样使用: {{.AppUrl}}
|
{{.AppUrl}}</my
|
||||||
|
></my
|
||||||
|
>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
|
|||||||
|
|
||||||
源文件可以在以下目录中找到:
|
源文件可以在以下目录中找到:
|
||||||
|
|
||||||
* **CSS 样式**: `web_src/css/`
|
- **CSS 样式**: `web_src/css/`
|
||||||
* **JavaScript 文件**: `web_src/js/`
|
- **JavaScript 文件**: `web_src/js/`
|
||||||
* **Vue 组件**: `web_src/js/components/`
|
- **Vue 组件**: `web_src/js/components/`
|
||||||
* **Go HTML 模板**: `templates/`
|
- **Go HTML 模板**: `templates/`
|
||||||
|
|
||||||
## 通用准则
|
## 通用准则
|
||||||
|
|
||||||
@@ -53,14 +53,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
|
|
||||||
推荐的实现方式:
|
推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Vanilla JS
|
- Vue + Vanilla JS
|
||||||
* Fomantic-UI(jQuery)
|
- Fomantic-UI(jQuery)
|
||||||
* Vanilla JS
|
- Vanilla JS
|
||||||
|
|
||||||
不推荐的实现方式:
|
不推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Fomantic-UI(jQuery)
|
- Vue + Fomantic-UI(jQuery)
|
||||||
* jQuery + Vanilla JS
|
- jQuery + Vanilla JS
|
||||||
|
|
||||||
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
||||||
尽管不建议混合使用不同的框架,
|
尽管不建议混合使用不同的框架,
|
||||||
@@ -87,31 +87,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
||||||
然而,仍然存在一些特殊情况,因此当前的准则是:
|
然而,仍然存在一些特殊情况,因此当前的准则是:
|
||||||
|
|
||||||
* 对于旧代码:
|
- 对于旧代码:
|
||||||
* 应将`$.data()`重构为`$.attr()`。
|
|
||||||
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
|
||||||
|
|
||||||
* 对于新代码:
|
- 应将`$.data()`重构为`$.attr()`。
|
||||||
* 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
- 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
||||||
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
|
||||||
|
- 对于新代码:
|
||||||
|
- 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
||||||
|
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
||||||
|
|
||||||
### 显示/隐藏元素
|
### 显示/隐藏元素
|
||||||
|
|
||||||
* 推荐在Vue组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
- 推荐在 Vue 组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
||||||
* Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
- Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
||||||
|
|
||||||
### Go HTML 模板中的样式和属性
|
### Go HTML 模板中的样式和属性
|
||||||
|
|
||||||
建议使用以下方式:
|
建议使用以下方式:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
而不是:
|
而不是:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}
|
||||||
|
data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
以使代码更易读。
|
以使代码更易读。
|
||||||
|
|||||||
@@ -19,22 +19,22 @@ aliases:
|
|||||||
|
|
||||||
## 重构建议
|
## 重构建议
|
||||||
|
|
||||||
* 设计更多关于未来的内容,而不仅仅解决当前问题。
|
- 设计更多关于未来的内容,而不仅仅解决当前问题。
|
||||||
* 减少模糊性,减少冲突,提高可维护性。
|
- 减少模糊性,减少冲突,提高可维护性。
|
||||||
* 描述重构,例如:
|
- 描述重构,例如:
|
||||||
* 为什么需要重构。
|
- 为什么需要重构。
|
||||||
* 如何解决旧问题。
|
- 如何解决旧问题。
|
||||||
* 重构的优点/缺点是什么。
|
- 重构的优点/缺点是什么。
|
||||||
* 只做必要的更改,尽量保留旧逻辑。
|
- 只做必要的更改,尽量保留旧逻辑。
|
||||||
* 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个PR中完成。
|
- 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
|
||||||
* 如果存在分歧,应该请TOC(技术监督委员会)参与决策。
|
- 如果存在分歧,应该请 TOC(技术监督委员会)参与决策。
|
||||||
* 添加必要的测试以确保重构的正确性。
|
- 添加必要的测试以确保重构的正确性。
|
||||||
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
- 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
||||||
|
|
||||||
## 审查和合并建议
|
## 审查和合并建议
|
||||||
|
|
||||||
* 重构的PR不应该长时间保持打开状态(通常为7天),应尽快进行审查。
|
- 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
|
||||||
* 重构的PR应尽快合并,不应被其他PR阻塞。
|
- 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
|
||||||
* 如果TOC没有异议,重构的PR可以在7天后由一名核心成员(非作者)批准后合并。
|
- 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
|
||||||
* 如果最终结果良好,容忍一些不完美/临时的步骤。
|
- 如果最终结果良好,容忍一些不完美/临时的步骤。
|
||||||
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
- 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
|
|||||||
Gitea 支持以下令牌范围:
|
Gitea 支持以下令牌范围:
|
||||||
|
|
||||||
| 名称 | 介绍 |
|
| 名称 | 介绍 |
|
||||||
| ---- | ----------- |
|
| ---------------------------------------- | --------------------------------------------------------------- |
|
||||||
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
||||||
| **repo** | 完全控制所有存储库 |
|
| **repo** | 完全控制所有存储库 |
|
||||||
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ slug: "faq"
|
|||||||
sidebar_position: 5
|
sidebar_position: 5
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/faq
|
- /zh-cn/faq
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 常见问题
|
# 常见问题
|
||||||
@@ -55,18 +54,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
|||||||
- 或者包含 Gitea 二进制文件的目录
|
- 或者包含 Gitea 二进制文件的目录
|
||||||
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
||||||
- `app.ini`中的`APP_DATA_PATH`
|
- `app.ini`中的`APP_DATA_PATH`
|
||||||
- 或者_`AppWorkPath`_`/data`
|
- 或者*`AppWorkPath`*`/data`
|
||||||
- _`CustomPath`_(自定义模板)
|
- _`CustomPath`_(自定义模板)
|
||||||
- `--custom-path`标志
|
- `--custom-path`标志
|
||||||
- 或者环境变量`GITEA_CUSTOM`
|
- 或者环境变量`GITEA_CUSTOM`
|
||||||
- 或者在构建时设置的内置值
|
- 或者在构建时设置的内置值
|
||||||
- 或者_`AppWorkPath`_`/custom`
|
- 或者*`AppWorkPath`*`/custom`
|
||||||
- HomeDir
|
- HomeDir
|
||||||
- Unix:环境变量`HOME`
|
- Unix:环境变量`HOME`
|
||||||
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
||||||
- RepoRootPath
|
- RepoRootPath
|
||||||
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
||||||
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
- 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
||||||
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
||||||
- INI(配置文件)
|
- INI(配置文件)
|
||||||
- `--config`标志
|
- `--config`标志
|
||||||
@@ -262,12 +261,14 @@ fatal: Could not read from remote repository.
|
|||||||
Git 用户(@ 之前的部分)的名称拼写正确。
|
Git 用户(@ 之前的部分)的名称拼写正确。
|
||||||
- 确保客户端机器上的公钥和私钥正确无误。
|
- 确保客户端机器上的公钥和私钥正确无误。
|
||||||
- 在服务器上:
|
- 在服务器上:
|
||||||
|
|
||||||
- 确保存储库存在并且命名正确。
|
- 确保存储库存在并且命名正确。
|
||||||
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
||||||
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
||||||
|
|
||||||
尝试在 Gitea 管理面板上运行
|
尝试在 Gitea 管理面板上运行
|
||||||
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
||||||
|
|
||||||
- 查看 Gitea 日志。
|
- 查看 Gitea 日志。
|
||||||
- 查看 /var/log/auth(或类似的文件)。
|
- 查看 /var/log/auth(或类似的文件)。
|
||||||
- 检查存储库的权限。
|
- 检查存储库的权限。
|
||||||
@@ -339,7 +340,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
|
|||||||
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
||||||
|
|
||||||
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
||||||
|
|
||||||
- 作为**用户**,您可以更改密码...
|
- 作为**用户**,您可以更改密码...
|
||||||
|
|
||||||
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
||||||
- 使用`忘记密码`链接。
|
- 使用`忘记密码`链接。
|
||||||
|
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ docker-compose up -d
|
|||||||
|
|
||||||
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
||||||
|
|
||||||
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
|
|||||||
```
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
...
|
---
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ 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` 中的工单/合并请求 1234 |
|
||||||
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
||||||
|
|
||||||
| 名称 | 描述 | 权限 |
|
| 名称 | 描述 | 权限 |
|
||||||
| ----------------- | --------------------------------------------------- | ------------ |
|
| -------------- | ------------------------------ | --------- |
|
||||||
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
||||||
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
||||||
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
||||||
@@ -29,7 +29,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
||||||
|
|
||||||
| 名称 | 读取 | 写入 | 管理员 |
|
| 名称 | 读取 | 写入 | 管理员 |
|
||||||
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- |
|
| -------------- | -------------------------------- | ------------------------------ | -------- |
|
||||||
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
||||||
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
||||||
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
||||||
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
||||||
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
||||||
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
||||||
@@ -66,7 +66,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`。
|
||||||
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
@@ -77,7 +77,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`。
|
||||||
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ a/b/c/d.json
|
|||||||
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
||||||
|
|
||||||
| 变量 | 扩展为 | 可转换 |
|
| 变量 | 扩展为 | 可转换 |
|
||||||
| -------------------- | --------------------------------------------------- | ------------- |
|
| -------------------- | ----------------------------- | ------ |
|
||||||
| REPO_NAME | 生成的仓库名称 | ✓ |
|
| REPO_NAME | 生成的仓库名称 | ✓ |
|
||||||
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
||||||
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
||||||
@@ -64,7 +64,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
|
|||||||
将 `go-sdk` 传递给可用的转换器的效果如下...
|
将 `go-sdk` 传递给可用的转换器的效果如下...
|
||||||
|
|
||||||
| 转换器 | 效果 |
|
| 转换器 | 效果 |
|
||||||
| ----------- | ------------ |
|
| ------ | ------ |
|
||||||
| SNAKE | go_sdk |
|
| SNAKE | go_sdk |
|
||||||
| KEBAB | go-sdk |
|
| KEBAB | go-sdk |
|
||||||
| CAMEL | goSdk |
|
| CAMEL | goSdk |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/authentication
|
- /zh-cn/authentication
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 认证
|
# 认证
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ Gitea 已经实现了 `dump` 命令可以用来备份所有需要的文件到一
|
|||||||
|
|
||||||
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
||||||
|
|
||||||
* `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
- `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
||||||
* `data` - 数据目录下的所有内容不包含使用文件session的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用sqlite 还会包含 sqlite 数据库文件。
|
- `data` - 数据目录下的所有内容不包含使用文件 session 的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用 sqlite 还会包含 sqlite 数据库文件。
|
||||||
* `gitea-db.sql` - 数据库dump出来的 SQL。
|
- `gitea-db.sql` - 数据库 dump 出来的 SQL。
|
||||||
* `gitea-repo.zip` - Git仓库压缩文件。
|
- `gitea-repo.zip` - Git 仓库压缩文件。
|
||||||
* `log/` - Logs文件,如果用作迁移不是必须的。
|
- `log/` - Logs 文件,如果用作迁移不是必须的。
|
||||||
|
|
||||||
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ aliases:
|
|||||||
- `ANSI_CHARSET`: 默认字符编码。
|
- `ANSI_CHARSET`: 默认字符编码。
|
||||||
- `FORCE_PRIVATE`: 强制所有 git 工程必须私有。
|
- `FORCE_PRIVATE`: 强制所有 git 工程必须私有。
|
||||||
- `DEFAULT_PRIVATE`: 默认创建的 git 工程为私有。 可以是`last`, `private` 或 `public`。默认值是 `last`表示用户最后创建的 Repo 的选择。
|
- `DEFAULT_PRIVATE`: 默认创建的 git 工程为私有。 可以是`last`, `private` 或 `public`。默认值是 `last`表示用户最后创建的 Repo 的选择。
|
||||||
- `DEFAULT_PUSH_CREATE_PRIVATE`: **true**: 通过 ``push-to-create`` 方式创建的仓库是否默认为私有仓库.
|
- `DEFAULT_PUSH_CREATE_PRIVATE`: **true**: 通过 `push-to-create` 方式创建的仓库是否默认为私有仓库.
|
||||||
- `MAX_CREATION_LIMIT`: 全局最大每个用户创建的 git 工程数目, `-1` 表示没限制。
|
- `MAX_CREATION_LIMIT`: 全局最大每个用户创建的 git 工程数目, `-1` 表示没限制。
|
||||||
|
|
||||||
### Repository - Release (`repository.release`)
|
### Repository - Release (`repository.release`)
|
||||||
@@ -96,14 +96,14 @@ aliases:
|
|||||||
## Indexer (`indexer`)
|
## Indexer (`indexer`)
|
||||||
|
|
||||||
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持 `bleve`, `db` 和 `elasticsearch`,当为 `db` 时其它工单索引项可不用设置。
|
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持 `bleve`, `db` 和 `elasticsearch`,当为 `db` 时其它工单索引项可不用设置。
|
||||||
- `ISSUE_INDEXER_CONN_STR`: ****: 工单索引连接字符串,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
|
- `ISSUE_INDEXER_CONN_STR`: \*\*\*\*: 工单索引连接字符串,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
|
||||||
- `ISSUE_INDEXER_NAME`: **gitea_issues**: 工单索引名称,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。
|
- `ISSUE_INDEXER_NAME`: **gitea_issues**: 工单索引名称,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。
|
||||||
- `ISSUE_INDEXER_PATH`: **indexers/issues.bleve**: 工单索引文件存放路径,当索引类型为 `bleve` 时有效。
|
- `ISSUE_INDEXER_PATH`: **indexers/issues.bleve**: 工单索引文件存放路径,当索引类型为 `bleve` 时有效。
|
||||||
|
|
||||||
- `REPO_INDEXER_ENABLED`: **false**: 是否启用代码搜索(启用后会占用比较大的磁盘空间,如果是 bleve 可能需要占用约 6 倍存储空间)。
|
- `REPO_INDEXER_ENABLED`: **false**: 是否启用代码搜索(启用后会占用比较大的磁盘空间,如果是 bleve 可能需要占用约 6 倍存储空间)。
|
||||||
- `REPO_INDEXER_TYPE`: **bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
- `REPO_INDEXER_TYPE`: **bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
||||||
- `REPO_INDEXER_PATH`: **indexers/repos.bleve**: 用于代码搜索的索引文件路径。
|
- `REPO_INDEXER_PATH`: **indexers/repos.bleve**: 用于代码搜索的索引文件路径。
|
||||||
- `REPO_INDEXER_CONN_STR`: ****: 代码搜索引擎连接字符串,当 `REPO_INDEXER_TYPE` 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
|
- `REPO_INDEXER_CONN_STR`: \*\*\*\*: 代码搜索引擎连接字符串,当 `REPO_INDEXER_TYPE` 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
|
||||||
- `REPO_INDEXER_NAME`: **gitea_codes**: 代码搜索引擎的名字,当 `REPO_INDEXER_TYPE` 为 `elasticsearch` 时有效。
|
- `REPO_INDEXER_NAME`: **gitea_codes**: 代码搜索引擎的名字,当 `REPO_INDEXER_TYPE` 为 `elasticsearch` 时有效。
|
||||||
|
|
||||||
- `MAX_FILE_SIZE`: **1048576**: 进行解析的源代码文件的最大长度,小于该值时才会索引。
|
- `MAX_FILE_SIZE`: **1048576**: 进行解析的源代码文件的最大长度,小于该值时才会索引。
|
||||||
@@ -155,8 +155,8 @@ aliases:
|
|||||||
- `DELIVER_TIMEOUT`: 请求 webhooks 的超时时间,单位秒。
|
- `DELIVER_TIMEOUT`: 请求 webhooks 的超时时间,单位秒。
|
||||||
- `SKIP_TLS_VERIFY`: 是否允许不安全的证书。
|
- `SKIP_TLS_VERIFY`: 是否允许不安全的证书。
|
||||||
- `PAGING_NUM`: 每页显示的 Webhook 历史数量。
|
- `PAGING_NUM`: 每页显示的 Webhook 历史数量。
|
||||||
- `PROXY_URL`: ****: 代理服务器网址,支持 http://, https//, socks://, 为空将使用环境变量中的 http_proxy/https_proxy 设置。
|
- `PROXY_URL`: \*\*\*\*: 代理服务器网址,支持 http://, https//, socks://, 为空将使用环境变量中的 http_proxy/https_proxy 设置。
|
||||||
- `PROXY_HOSTS`: ****: 逗号分隔的需要代理的域名或IP地址。支持 * 号匹配符,使用 ** 匹配所有域名和IP地址。
|
- `PROXY_HOSTS`: \***_: 逗号分隔的需要代理的域名或 IP 地址。支持 _ 号匹配符,使用 ** 匹配所有域名和 IP 地址。
|
||||||
|
|
||||||
## Mailer (`mailer`)
|
## Mailer (`mailer`)
|
||||||
|
|
||||||
@@ -230,7 +230,7 @@ aliases:
|
|||||||
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket,仅当 `STORAGE_TYPE` 是 `minio` 时有效。
|
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket,仅当 `STORAGE_TYPE` 是 `minio` 时有效。
|
||||||
- `MINIO_USE_SSL`: **false**: Minio enabled ssl,仅当 `STORAGE_TYPE` 是 `minio` 时有效。
|
- `MINIO_USE_SSL`: **false**: Minio enabled ssl,仅当 `STORAGE_TYPE` 是 `minio` 时有效。
|
||||||
|
|
||||||
关于 `ALLOWED_TYPES`, 在 (*)unix 系统中可以使用`file -I <filename>` 来快速获得对应的 `MIME type`。
|
关于 `ALLOWED_TYPES`, 在 (\*)unix 系统中可以使用`file -I <filename>` 来快速获得对应的 `MIME type`。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ file -I test00.tar.xz
|
$ file -I test00.tar.xz
|
||||||
@@ -331,7 +331,7 @@ IS_INPUT_FILE = false
|
|||||||
```
|
```
|
||||||
|
|
||||||
- ENABLED: 是否启用,默认为 false。
|
- ENABLED: 是否启用,默认为 false。
|
||||||
- NEED\_POSTPROCESS: **true** 设置为 true 则会替换渲染文件中的内部链接和Commit ID 等。
|
- NEED_POSTPROCESS: **true** 设置为 true 则会替换渲染文件中的内部链接和 Commit ID 等。
|
||||||
- FILE_EXTENSIONS: 关联的文档的扩展名,多个扩展名用都好分隔。
|
- FILE_EXTENSIONS: 关联的文档的扩展名,多个扩展名用都好分隔。
|
||||||
- RENDER_COMMAND: 工具的命令行命令及参数。
|
- RENDER_COMMAND: 工具的命令行命令及参数。
|
||||||
- IS_INPUT_FILE: 输入方式是最后一个参数为文件路径还是从标准输入读取。
|
- IS_INPUT_FILE: 输入方式是最后一个参数为文件路径还是从标准输入读取。
|
||||||
@@ -505,7 +505,7 @@ Repository archive 的存储配置。 如果 `STORAGE_TYPE` 为空,则此配
|
|||||||
|
|
||||||
- `PROXY_ENABLED`: **false**: 是否启用全局代理。如果为否,则不使用代理,环境变量中的代理也不使用
|
- `PROXY_ENABLED`: **false**: 是否启用全局代理。如果为否,则不使用代理,环境变量中的代理也不使用
|
||||||
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
||||||
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站
|
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
|
||||||
|
|
||||||
i.e.
|
i.e.
|
||||||
|
|
||||||
|
|||||||
@@ -18,31 +18,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
|
|||||||
|
|
||||||
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
||||||
|
|
||||||
* `GOOS`
|
- `GOOS`
|
||||||
* `GOARCH`
|
- `GOARCH`
|
||||||
* [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
|
- [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
|
||||||
|
|
||||||
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
||||||
|
|
||||||
## Gitea 的文件目录
|
## Gitea 的文件目录
|
||||||
|
|
||||||
* `GITEA_WORK_DIR`:工作目录的绝对路径
|
- `GITEA_WORK_DIR`:工作目录的绝对路径
|
||||||
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 *custom* 目录
|
- `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 _custom_ 目录
|
||||||
* `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
- `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
||||||
* `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
- `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
||||||
|
|
||||||
## 操作系统配置
|
## 操作系统配置
|
||||||
|
|
||||||
* `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
- `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
||||||
* `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
- `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
||||||
* `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
- `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
||||||
|
|
||||||
### 仅限于 Windows 的配置
|
### 仅限于 Windows 的配置
|
||||||
|
|
||||||
* `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
- `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
||||||
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C盘)
|
- `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C 盘)
|
||||||
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
- `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
||||||
|
|
||||||
## Miscellaneous
|
## Miscellaneous
|
||||||
|
|
||||||
* `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
- `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
||||||
|
|||||||
@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
|
|||||||
|
|
||||||
.markup.XXXXX body {
|
.markup.XXXXX body {
|
||||||
color: #444;
|
color: #444;
|
||||||
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
|
font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
|
||||||
|
serif;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/mail-templates
|
- /zh-cn/mail-templates
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 邮件模板
|
# 邮件模板
|
||||||
@@ -21,7 +20,7 @@ aliases:
|
|||||||
目前,以下通知事件使用模板:
|
目前,以下通知事件使用模板:
|
||||||
|
|
||||||
| 操作名称 | 用途 |
|
| 操作名称 | 用途 |
|
||||||
| ----------- | ------------------------------------------------------------------------------------------------------------ |
|
| ---------- | ---------------------------------------------------------------------- |
|
||||||
| `new` | 创建了新的工单或合并请求。 |
|
| `new` | 创建了新的工单或合并请求。 |
|
||||||
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
||||||
| `close` | 关闭了工单或合并请求。 |
|
| `close` | 关闭了工单或合并请求。 |
|
||||||
@@ -78,7 +77,7 @@ custom/templates/mail/pull/comment.tmpl
|
|||||||
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
||||||
|
|
||||||
| 名称 | 类型 | 可用性 | 用途 |
|
| 名称 | 类型 | 可用性 | 用途 |
|
||||||
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
||||||
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
||||||
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
||||||
@@ -224,11 +223,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
>
|
>
|
||||||
> #### 消息内容:
|
> #### 消息内容:
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> Mike, I think we should tone down the blues a little.
|
> Mike, I think we should tone down the blues a little.
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> [在 Gitea 上查看](#)。
|
> [在 Gitea 上查看](#)。
|
||||||
|
|
||||||
@@ -237,7 +236,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
||||||
|
|
||||||
| 函数名 | 参数 | 可用于 | 用法 |
|
| 函数名 | 参数 | 可用于 | 用法 |
|
||||||
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- |
|
| ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
|
||||||
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
||||||
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
||||||
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
||||||
@@ -248,8 +247,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
像这样使用: {{Str2html "Escape<my>text"}}
|
像这样使用: {{Str2html "Escape<my
|
||||||
或者这样使用: {{"Escape<my>text" | Str2html}}
|
>text"}} 或者这样使用: {{"Escape<my
|
||||||
或者这样使用: {{AppUrl}}
|
>text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
|
||||||
但不要像这样使用: {{.AppUrl}}
|
{{.AppUrl}}</my
|
||||||
|
></my
|
||||||
|
>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/repo-indexer
|
- /zh-cn/repo-indexer
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 仓库索引器
|
# 仓库索引器
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 16
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/reverse-proxies
|
- /zh-cn/reverse-proxies
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 反向代理
|
# 反向代理
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 60
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/search-engines-indexation
|
- /zh-cn/search-engines-indexation
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 搜索引擎索引
|
# 搜索引擎索引
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-backend
|
- /zh-cn/guidelines-backend
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 后端开发指南
|
# 后端开发指南
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-frontend
|
- /zh-cn/guidelines-frontend
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 前端开发指南
|
# 前端开发指南
|
||||||
@@ -19,10 +18,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
|
|||||||
|
|
||||||
源文件可以在以下目录中找到:
|
源文件可以在以下目录中找到:
|
||||||
|
|
||||||
* **CSS 样式**: `web_src/css/`
|
- **CSS 样式**: `web_src/css/`
|
||||||
* **JavaScript 文件**: `web_src/js/`
|
- **JavaScript 文件**: `web_src/js/`
|
||||||
* **Vue 组件**: `web_src/js/components/`
|
- **Vue 组件**: `web_src/js/components/`
|
||||||
* **Go HTML 模板**: `templates/`
|
- **Go HTML 模板**: `templates/`
|
||||||
|
|
||||||
## 通用准则
|
## 通用准则
|
||||||
|
|
||||||
@@ -56,14 +55,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
|
|
||||||
推荐的实现方式:
|
推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Vanilla JS
|
- Vue + Vanilla JS
|
||||||
* Fomantic-UI(jQuery)
|
- Fomantic-UI(jQuery)
|
||||||
* Vanilla JS
|
- Vanilla JS
|
||||||
|
|
||||||
不推荐的实现方式:
|
不推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Fomantic-UI(jQuery)
|
- Vue + Fomantic-UI(jQuery)
|
||||||
* jQuery + Vanilla JS
|
- jQuery + Vanilla JS
|
||||||
|
|
||||||
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
||||||
尽管不建议混合使用不同的框架,
|
尽管不建议混合使用不同的框架,
|
||||||
@@ -90,31 +89,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
||||||
然而,仍然存在一些特殊情况,因此当前的准则是:
|
然而,仍然存在一些特殊情况,因此当前的准则是:
|
||||||
|
|
||||||
* 对于旧代码:
|
- 对于旧代码:
|
||||||
* 应将`$.data()`重构为`$.attr()`。
|
|
||||||
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
|
||||||
|
|
||||||
* 对于新代码:
|
- 应将`$.data()`重构为`$.attr()`。
|
||||||
* 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
- 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
||||||
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
|
||||||
|
- 对于新代码:
|
||||||
|
- 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
||||||
|
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
||||||
|
|
||||||
### 显示/隐藏元素
|
### 显示/隐藏元素
|
||||||
|
|
||||||
* 推荐在Vue组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
- 推荐在 Vue 组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
||||||
* Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
- Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
||||||
|
|
||||||
### Go HTML 模板中的样式和属性
|
### Go HTML 模板中的样式和属性
|
||||||
|
|
||||||
建议使用以下方式:
|
建议使用以下方式:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
而不是:
|
而不是:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}
|
||||||
|
data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
以使代码更易读。
|
以使代码更易读。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-refactoring
|
- /zh-cn/guidelines-refactoring
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 重构指南
|
# 重构指南
|
||||||
@@ -22,22 +21,22 @@ aliases:
|
|||||||
|
|
||||||
## 重构建议
|
## 重构建议
|
||||||
|
|
||||||
* 设计更多关于未来的内容,而不仅仅解决当前问题。
|
- 设计更多关于未来的内容,而不仅仅解决当前问题。
|
||||||
* 减少模糊性,减少冲突,提高可维护性。
|
- 减少模糊性,减少冲突,提高可维护性。
|
||||||
* 描述重构,例如:
|
- 描述重构,例如:
|
||||||
* 为什么需要重构。
|
- 为什么需要重构。
|
||||||
* 如何解决旧问题。
|
- 如何解决旧问题。
|
||||||
* 重构的优点/缺点是什么。
|
- 重构的优点/缺点是什么。
|
||||||
* 只做必要的更改,尽量保留旧逻辑。
|
- 只做必要的更改,尽量保留旧逻辑。
|
||||||
* 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个PR中完成。
|
- 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
|
||||||
* 如果存在分歧,应该请TOC(技术监督委员会)参与决策。
|
- 如果存在分歧,应该请 TOC(技术监督委员会)参与决策。
|
||||||
* 添加必要的测试以确保重构的正确性。
|
- 添加必要的测试以确保重构的正确性。
|
||||||
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
- 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
||||||
|
|
||||||
## 审查和合并建议
|
## 审查和合并建议
|
||||||
|
|
||||||
* 重构的PR不应该长时间保持打开状态(通常为7天),应尽快进行审查。
|
- 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
|
||||||
* 重构的PR应尽快合并,不应被其他PR阻塞。
|
- 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
|
||||||
* 如果TOC没有异议,重构的PR可以在7天后由一名核心成员(非作者)批准后合并。
|
- 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
|
||||||
* 如果最终结果良好,容忍一些不完美/临时的步骤。
|
- 如果最终结果良好,容忍一些不完美/临时的步骤。
|
||||||
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
- 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/hacking-on-gitea
|
- /zh-cn/hacking-on-gitea
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Hacking on Gitea
|
# Hacking on Gitea
|
||||||
@@ -65,7 +64,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
|
|||||||
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
||||||
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
||||||
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
||||||
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。
|
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
|
||||||
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
||||||
|
|
||||||
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 55
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/migrations-interfaces
|
- /zh-cn/migrations-interfaces
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 迁移接口
|
# 迁移接口
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 41
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/oauth2-provider
|
- /zh-cn/oauth2-provider
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# OAuth2 提供者
|
# OAuth2 提供者
|
||||||
@@ -37,7 +36,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
|
|||||||
Gitea 支持以下令牌范围:
|
Gitea 支持以下令牌范围:
|
||||||
|
|
||||||
| 名称 | 介绍 |
|
| 名称 | 介绍 |
|
||||||
| ---- | ----------- |
|
| ---------------------------------------- | --------------------------------------------------------------- |
|
||||||
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
||||||
| **repo** | 完全控制所有存储库 |
|
| **repo** | 完全控制所有存储库 |
|
||||||
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 5
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/faq
|
- /zh-cn/faq
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 常见问题
|
# 常见问题
|
||||||
@@ -57,18 +56,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
|||||||
- 或者包含 Gitea 二进制文件的目录
|
- 或者包含 Gitea 二进制文件的目录
|
||||||
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
||||||
- `app.ini`中的`APP_DATA_PATH`
|
- `app.ini`中的`APP_DATA_PATH`
|
||||||
- 或者_`AppWorkPath`_`/data`
|
- 或者*`AppWorkPath`*`/data`
|
||||||
- _`CustomPath`_(自定义模板)
|
- _`CustomPath`_(自定义模板)
|
||||||
- `--custom-path`标志
|
- `--custom-path`标志
|
||||||
- 或者环境变量`GITEA_CUSTOM`
|
- 或者环境变量`GITEA_CUSTOM`
|
||||||
- 或者在构建时设置的内置值
|
- 或者在构建时设置的内置值
|
||||||
- 或者_`AppWorkPath`_`/custom`
|
- 或者*`AppWorkPath`*`/custom`
|
||||||
- HomeDir
|
- HomeDir
|
||||||
- Unix:环境变量`HOME`
|
- Unix:环境变量`HOME`
|
||||||
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
||||||
- RepoRootPath
|
- RepoRootPath
|
||||||
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
||||||
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
- 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
||||||
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
||||||
- INI(配置文件)
|
- INI(配置文件)
|
||||||
- `--config`标志
|
- `--config`标志
|
||||||
@@ -264,12 +263,14 @@ fatal: Could not read from remote repository.
|
|||||||
Git 用户(@ 之前的部分)的名称拼写正确。
|
Git 用户(@ 之前的部分)的名称拼写正确。
|
||||||
- 确保客户端机器上的公钥和私钥正确无误。
|
- 确保客户端机器上的公钥和私钥正确无误。
|
||||||
- 在服务器上:
|
- 在服务器上:
|
||||||
|
|
||||||
- 确保存储库存在并且命名正确。
|
- 确保存储库存在并且命名正确。
|
||||||
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
||||||
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
||||||
|
|
||||||
尝试在 Gitea 管理面板上运行
|
尝试在 Gitea 管理面板上运行
|
||||||
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
||||||
|
|
||||||
- 查看 Gitea 日志。
|
- 查看 Gitea 日志。
|
||||||
- 查看 /var/log/auth(或类似的文件)。
|
- 查看 /var/log/auth(或类似的文件)。
|
||||||
- 检查存储库的权限。
|
- 检查存储库的权限。
|
||||||
@@ -341,7 +342,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
|
|||||||
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
||||||
|
|
||||||
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
||||||
|
|
||||||
- 作为**用户**,您可以更改密码...
|
- 作为**用户**,您可以更改密码...
|
||||||
|
|
||||||
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
||||||
- 使用`忘记密码`链接。
|
- 使用`忘记密码`链接。
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 5
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/comparison
|
- /zh-cn/comparison
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 对比 Gitea 与其它 Git 托管工具
|
# 对比 Gitea 与其它 Git 托管工具
|
||||||
@@ -17,15 +16,15 @@ aliases:
|
|||||||
|
|
||||||
_表格中的符号含义:_
|
_表格中的符号含义:_
|
||||||
|
|
||||||
* _✓ - 支持_
|
- _✓ - 支持_
|
||||||
|
|
||||||
* _⁄ - 部分支持_
|
- _⁄ - 部分支持_
|
||||||
|
|
||||||
* _✘ - 不支持_
|
- _✘ - 不支持_
|
||||||
|
|
||||||
* _? - 不确定_
|
- _? - 不确定_
|
||||||
|
|
||||||
* _⚙️ - 由第三方服务或插件支持_
|
- _⚙️ - 由第三方服务或插件支持_
|
||||||
|
|
||||||
#### 主要特性
|
#### 主要特性
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/database-prep
|
- /zh-cn/database-prep
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 数据库准备
|
# 数据库准备
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 15
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/install-from-binary
|
- /zh-cn/install-from-binary
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 使用二进制文件安装
|
# 使用二进制文件安装
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/install-from-package
|
- /zh-cn/install-from-package
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 使用包管理器安装
|
# 使用包管理器安装
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 30
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/install-from-source
|
- /zh-cn/install-from-source
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 使用源代码安装
|
# 使用源代码安装
|
||||||
|
|||||||
@@ -6,17 +6,16 @@ sidebar_position: 101
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/upgrade-from-gogs
|
- /zh-cn/upgrade-from-gogs
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 从 Gogs 升级
|
# 从 Gogs 升级
|
||||||
|
|
||||||
如果你正在运行 Gogs 0.9.146 以下版本,你可以平滑的升级到 Gitea。该升级需要如下的步骤:
|
如果你正在运行 Gogs 0.9.146 以下版本,你可以平滑的升级到 Gitea。该升级需要如下的步骤:
|
||||||
|
|
||||||
* 停止 Gogs 的运行
|
- 停止 Gogs 的运行
|
||||||
* 拷贝 Gogs 的配置文件 `custom/conf/app.ini` 到 Gitea 的相应位置。
|
- 拷贝 Gogs 的配置文件 `custom/conf/app.ini` 到 Gitea 的相应位置。
|
||||||
* 拷贝 Gitea 的 `options/` 到 Home 目录下。
|
- 拷贝 Gitea 的 `options/` 到 Home 目录下。
|
||||||
* 如果你还有更多的自定义内容,比如templates和localization文件,你需要手工合并你的修改到 Gitea 的 Options 下对应目录。
|
- 如果你还有更多的自定义内容,比如 templates 和 localization 文件,你需要手工合并你的修改到 Gitea 的 Options 下对应目录。
|
||||||
* 拷贝 Gogs 的数据目录 `data/` 到 Gitea 相应位置。这个目录包含附件和头像文件。
|
- 拷贝 Gogs 的数据目录 `data/` 到 Gitea 相应位置。这个目录包含附件和头像文件。
|
||||||
* 运行 Gitea
|
- 运行 Gitea
|
||||||
* 登录 Gitea 并进入 管理面板, 运行 `重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gitea 的密钥也会被删除)` 和 `重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)`。
|
- 登录 Gitea 并进入 管理面板, 运行 `重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gitea 的密钥也会被删除)` 和 `重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)`。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 50
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/windows-service
|
- /zh-cn/windows-service
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 注册为 Windows 服务
|
# 注册为 Windows 服务
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ docker-compose up -d
|
|||||||
|
|
||||||
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
|
||||||
|
|
||||||
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD,或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 70
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/install-with-docker
|
- /zh-cn/install-with-docker
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 使用 Docker 安装
|
# 使用 Docker 安装
|
||||||
@@ -297,7 +296,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
|
|||||||
```
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
...
|
---
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 12
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/agit-setup
|
- /zh-cn/agit-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# AGit 设置
|
# AGit 设置
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ slug: "clone-filters"
|
|||||||
sidebar_position: 25
|
sidebar_position: 25
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/clone-filters
|
- /zh-cn/clone-filters
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 克隆过滤器 (部分克隆)
|
# 克隆过滤器 (部分克隆)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ slug: "incoming-email"
|
|||||||
sidebar_position: 13
|
sidebar_position: 13
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/incoming-email
|
- /zh-cn/incoming-email
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 邮件接收
|
# 邮件接收
|
||||||
|
|||||||
@@ -100,16 +100,13 @@ Gitea 支持两种格式的模板:Markdown 和 YAML。
|
|||||||
|
|
||||||
```md
|
```md
|
||||||
---
|
---
|
||||||
|
|
||||||
name: "Template Name"
|
name: "Template Name"
|
||||||
about: "This template is for testing!"
|
about: "This template is for testing!"
|
||||||
title: "[TEST] "
|
title: "[TEST] "
|
||||||
ref: "main"
|
ref: "main"
|
||||||
labels:
|
labels:
|
||||||
|
|
||||||
- bug
|
- bug
|
||||||
- "help needed"
|
- "help needed"
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
This is the template!
|
This is the template!
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 13
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/labels
|
- /zh-cn/labels
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 标签
|
# 标签
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 15
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/automatically-linked-references
|
- /zh-cn/automatically-linked-references
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 自动链接引用
|
# 自动链接引用
|
||||||
@@ -119,7 +118,7 @@ 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` 中的工单/合并请求 1234 |
|
||||||
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
| `#1234` | 是 | - | 链接到 `User1/Repo1` 的 _外部工单_ 1234 |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 15
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/merge-message-templates
|
- /zh-cn/merge-message-templates
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 合并消息模板
|
# 合并消息模板
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 14
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/permissions
|
- /zh-cn/permissions
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 权限
|
# 权限
|
||||||
@@ -18,7 +17,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
在 Gitea 中,我们将仓库的子模块称为 `单元(Unit)`。现在我们有以下几个单元。
|
||||||
|
|
||||||
| 名称 | 描述 | 权限 |
|
| 名称 | 描述 | 权限 |
|
||||||
| ----------------- | --------------------------------------------------- | ------------ |
|
| -------------- | ------------------------------ | --------- |
|
||||||
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
|
||||||
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
|
||||||
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
|
||||||
@@ -32,7 +31,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
|
|||||||
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
通过不同的权限,用户可以在这些单元上执行不同的操作。
|
||||||
|
|
||||||
| 名称 | 读取 | 写入 | 管理员 |
|
| 名称 | 读取 | 写入 | 管理员 |
|
||||||
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- |
|
| -------------- | -------------------------------- | ------------------------------ | -------- |
|
||||||
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
|
||||||
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
|
||||||
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/protected-tags
|
- /zh-cn/protected-tags
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 受保护的标签
|
# 受保护的标签
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/repo-mirror
|
- /zh-cn/repo-mirror
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 仓库镜像
|
# 仓库镜像
|
||||||
@@ -56,7 +55,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitHub,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
|
||||||
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同,GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
|
||||||
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**:`https://github.com/<your_github_group>/<your_github_project>.git`。
|
||||||
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
|
||||||
@@ -69,7 +68,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 GitLab,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`。
|
||||||
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
@@ -80,7 +79,7 @@ aliases:
|
|||||||
|
|
||||||
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
要从 Gitea 设置镜像到 Bitbucket,您需要按照以下步骤进行操作:
|
||||||
|
|
||||||
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
|
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`。
|
2. 填写**Git 远程仓库 URL**:`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`。
|
||||||
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
|
||||||
4. 选择**添加推送镜像**以保存配置。
|
4. 选择**添加推送镜像**以保存配置。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 14
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/template-repositories
|
- /zh-cn/template-repositories
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 模板仓库
|
# 模板仓库
|
||||||
@@ -44,7 +43,7 @@ a/b/c/d.json
|
|||||||
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
所有变量都必须采用`$VAR`或`${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR`或`$${VAR}`。
|
||||||
|
|
||||||
| 变量 | 扩展为 | 可转换 |
|
| 变量 | 扩展为 | 可转换 |
|
||||||
| -------------------- | --------------------------------------------------- | ------------- |
|
| -------------------- | ----------------------------- | ------ |
|
||||||
| REPO_NAME | 生成的仓库名称 | ✓ |
|
| REPO_NAME | 生成的仓库名称 | ✓ |
|
||||||
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
| TEMPLATE_NAME | 模板仓库名称 | ✓ |
|
||||||
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
|
||||||
@@ -67,7 +66,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
|
|||||||
将 `go-sdk` 传递给可用的转换器的效果如下...
|
将 `go-sdk` 传递给可用的转换器的效果如下...
|
||||||
|
|
||||||
| 转换器 | 效果 |
|
| 转换器 | 效果 |
|
||||||
| ----------- | ------------ |
|
| ------ | ------ |
|
||||||
| SNAKE | go_sdk |
|
| SNAKE | go_sdk |
|
||||||
| KEBAB | go-sdk |
|
| KEBAB | go-sdk |
|
||||||
| CAMEL | goSdk |
|
| CAMEL | goSdk |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 110
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/adding-legal-pages
|
- /zh-cn/adding-legal-pages
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 添加法律页面
|
# 添加法律页面
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/authentication
|
- /zh-cn/authentication
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 认证
|
# 认证
|
||||||
@@ -30,9 +29,11 @@ aliases:
|
|||||||
- 例如: LDAP `389`/ LDAPs `636`
|
- 例如: LDAP `389`/ LDAPs `636`
|
||||||
|
|
||||||
- 安全协议 (可选)
|
- 安全协议 (可选)
|
||||||
|
|
||||||
- 连接 LDAP 服务器时是否使用 TLS 协议。
|
- 连接 LDAP 服务器时是否使用 TLS 协议。
|
||||||
|
|
||||||
- 管理员过滤规则 (可选)
|
- 管理员过滤规则 (可选)
|
||||||
|
|
||||||
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
|
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
|
||||||
- 示例:`(objectClass=adminAccount)`
|
- 示例:`(objectClass=adminAccount)`
|
||||||
- 适用于 Microsoft Active Directory(AD)的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
|
- 适用于 Microsoft Active Directory(AD)的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
|
||||||
@@ -48,7 +49,9 @@ aliases:
|
|||||||
|
|
||||||
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
|
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
|
||||||
- 示例:givenName
|
- 示例:givenName
|
||||||
|
|
||||||
- 姓氏属性(可选)
|
- 姓氏属性(可选)
|
||||||
|
|
||||||
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
|
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
|
||||||
- 示例:`sn`
|
- 示例:`sn`
|
||||||
|
|
||||||
@@ -86,7 +89,7 @@ aliases:
|
|||||||
但您可以在 app.ini 文件中进行更改。
|
但您可以在 app.ini 文件中进行更改。
|
||||||
有关此部分的详细说明,请参阅[sample
|
有关此部分的详细说明,请参阅[sample
|
||||||
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
|
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
|
||||||
的_cron.sync_external_users_ 部分的注释。前面提到的_User Search Base_和_User Filter_
|
的*cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
|
||||||
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
|
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
|
||||||
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
|
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
|
||||||
|
|
||||||
@@ -116,6 +119,7 @@ aliases:
|
|||||||
使用以下字段:
|
使用以下字段:
|
||||||
|
|
||||||
- 群组搜索基础 DN(可选)
|
- 群组搜索基础 DN(可选)
|
||||||
|
|
||||||
- 组使用的 LDAP DN。
|
- 组使用的 LDAP DN。
|
||||||
- 示例: `ou=group,dc=mydomain,dc=com`
|
- 示例: `ou=group,dc=mydomain,dc=com`
|
||||||
|
|
||||||
@@ -159,7 +163,8 @@ PAM提供了一种机制,通过对用户进行PAM认证来自动将其添加
|
|||||||
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
|
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
|
||||||
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
|
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
|
||||||
|
|
||||||
[^1]: 例如,在Debian "Bullseye"上使用标准Linux登录,可以使用`common-session-noninteractive`。这个值对于其他版本的Debian,
|
[^1]:
|
||||||
|
例如,在 Debian "Bullseye"上使用标准 Linux 登录,可以使用`common-session-noninteractive`。这个值对于其他版本的 Debian,
|
||||||
包括 Ubuntu 和 Mint,可能也是有效的,请查阅您所使用发行版的文档以确认。
|
包括 Ubuntu 和 Mint,可能也是有效的,请查阅您所使用发行版的文档以确认。
|
||||||
|
|
||||||
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
|
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
|
||||||
@@ -169,9 +174,11 @@ PAM提供了一种机制,通过对用户进行PAM认证来自动将其添加
|
|||||||
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
|
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
|
||||||
|
|
||||||
- 身份验证名称 **(必选)**
|
- 身份验证名称 **(必选)**
|
||||||
|
|
||||||
- 分配给新授权方法的名称
|
- 分配给新授权方法的名称
|
||||||
|
|
||||||
- SMTP 验证类型 **(必选)**
|
- SMTP 验证类型 **(必选)**
|
||||||
|
|
||||||
- 用于连接 SMTP 主机的验证类型,plain 或 login
|
- 用于连接 SMTP 主机的验证类型,plain 或 login
|
||||||
|
|
||||||
- 主机名 **(必选)**
|
- 主机名 **(必选)**
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 11
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/backup-and-restore
|
- /zh-cn/backup-and-restore
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 备份与恢复
|
# 备份与恢复
|
||||||
@@ -28,11 +27,11 @@ Gitea 已经实现了 `dump` 命令可以用来备份所有需要的文件到一
|
|||||||
|
|
||||||
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
|
||||||
|
|
||||||
* `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
- `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
|
||||||
* `data` - 数据目录下的所有内容不包含使用文件session的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用sqlite 还会包含 sqlite 数据库文件。
|
- `data` - 数据目录下的所有内容不包含使用文件 session 的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用 sqlite 还会包含 sqlite 数据库文件。
|
||||||
* `gitea-db.sql` - 数据库dump出来的 SQL。
|
- `gitea-db.sql` - 数据库 dump 出来的 SQL。
|
||||||
* `gitea-repo.zip` - Git仓库压缩文件。
|
- `gitea-repo.zip` - Git 仓库压缩文件。
|
||||||
* `log/` - Logs文件,如果用作迁移不是必须的。
|
- `log/` - Logs 文件,如果用作迁移不是必须的。
|
||||||
|
|
||||||
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 1
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/command-line
|
- /zh-cn/command-line
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 命令行
|
# 命令行
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 30
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/config-cheat-sheet
|
- /zh-cn/config-cheat-sheet
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 配置说明
|
# 配置说明
|
||||||
@@ -23,7 +22,7 @@ aliases:
|
|||||||
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
|
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
|
||||||
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
|
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
|
||||||
|
|
||||||
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
|
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 *`XxYyZz`*是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
|
||||||
|
|
||||||
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
|
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
|
||||||
|
|
||||||
@@ -54,9 +53,9 @@ aliases:
|
|||||||
- 这是指向`app.ini`文件的路径。
|
- 这是指向`app.ini`文件的路径。
|
||||||
- 在构建时设置的内置值(参见从源代码构建)
|
- 在构建时设置的内置值(参见从源代码构建)
|
||||||
- 否则,默认为 _`CustomPath`_`/conf/app.ini`
|
- 否则,默认为 _`CustomPath`_`/conf/app.ini`
|
||||||
- 如果上述任何路径是相对路径,则会相对于_`CustomPath`_目录进行处理。
|
- 如果上述任何路径是相对路径,则会相对于*`CustomPath`*目录进行处理。
|
||||||
|
|
||||||
此外,还有_`StaticRootPath`_,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
|
此外,还有*`StaticRootPath`*,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
|
||||||
|
|
||||||
## Overall (`DEFAULT`)
|
## Overall (`DEFAULT`)
|
||||||
|
|
||||||
@@ -276,7 +275,7 @@ aliases:
|
|||||||
- `PROXY_PROTOCOL_HEADER_TIMEOUT`: **5s**: 等待`PROXY`协议头的超时时间(设置为`0`表示没有超时)。
|
- `PROXY_PROTOCOL_HEADER_TIMEOUT`: **5s**: 等待`PROXY`协议头的超时时间(设置为`0`表示没有超时)。
|
||||||
- `PROXY_PROTOCOL_ACCEPT_UNKNOWN`: **false**:接受带有未知类型的`PROXY`协议头。
|
- `PROXY_PROTOCOL_ACCEPT_UNKNOWN`: **false**:接受带有未知类型的`PROXY`协议头。
|
||||||
- `DOMAIN`: **localhost**: 此服务器的域名。
|
- `DOMAIN`: **localhost**: 此服务器的域名。
|
||||||
- `ROOT_URL`: **%(PROTOCOL)s://%(DOMAIN)s:%(HTTP\_PORT)s/**:
|
- `ROOT_URL`: **%(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/**:
|
||||||
覆盖自动生成的公共 URL。
|
覆盖自动生成的公共 URL。
|
||||||
如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
|
如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
|
||||||
- `STATIC_URL_PREFIX`: **_empty_**:
|
- `STATIC_URL_PREFIX`: **_empty_**:
|
||||||
@@ -440,15 +439,15 @@ aliases:
|
|||||||
## 索引 (`indexer`)
|
## 索引 (`indexer`)
|
||||||
|
|
||||||
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve`、`db`、`elasticsearch` 或 `meilisearch`。
|
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve`、`db`、`elasticsearch` 或 `meilisearch`。
|
||||||
- `ISSUE_INDEXER_CONN_STR`:****: 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch(例如:`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
|
- `ISSUE_INDEXER_CONN_STR`:\*\*\*\*: 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch(例如:`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
|
||||||
- `ISSUE_INDEXER_NAME`:**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
|
- `ISSUE_INDEXER_NAME`:**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
|
||||||
- `ISSUE_INDEXER_PATH`:**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE_INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 _`AppWorkPath`_ 进行绝对路径化。
|
- `ISSUE_INDEXER_PATH`:**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE*INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 *`AppWorkPath`\_ 进行绝对路径化。
|
||||||
|
|
||||||
- `REPO_INDEXER_ENABLED`:**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
|
- `REPO_INDEXER_ENABLED`:**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
|
||||||
- `REPO_INDEXER_REPO_TYPES`:**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources`、`forks`、`mirrors`、`templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`。
|
- `REPO_INDEXER_REPO_TYPES`:**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources`、`forks`、`mirrors`、`templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`。
|
||||||
- `REPO_INDEXER_TYPE`:**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
- `REPO_INDEXER_TYPE`:**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`。
|
||||||
- `REPO_INDEXER_PATH`:**indexers/repos.bleve**: 用于代码搜索的索引文件。
|
- `REPO_INDEXER_PATH`:**indexers/repos.bleve**: 用于代码搜索的索引文件。
|
||||||
- `REPO_INDEXER_CONN_STR`:****: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
|
- `REPO_INDEXER_CONN_STR`:\*\*\*\*: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
|
||||||
- `REPO_INDEXER_NAME`:**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
|
- `REPO_INDEXER_NAME`:**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
|
||||||
|
|
||||||
- `REPO_INDEXER_INCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
|
- `REPO_INDEXER_INCLUDE`:**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
|
||||||
@@ -466,8 +465,8 @@ aliases:
|
|||||||
- `LENGTH`:**100000**: 通道队列阻塞之前的最大队列大小
|
- `LENGTH`:**100000**: 通道队列阻塞之前的最大队列大小
|
||||||
- `BATCH_LENGTH`:**20**: 在传递给处理程序之前批处理数据
|
- `BATCH_LENGTH`:**20**: 在传递给处理程序之前批处理数据
|
||||||
- `CONN_STR`:**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
- `CONN_STR`:**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地,LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`。
|
||||||
- `QUEUE_NAME`:**_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
- `QUEUE_NAME`:**\_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
|
||||||
- `SET_NAME`:**_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_,但可以在特定的 `queue.name` 部分中进行覆盖。
|
- `SET_NAME`:**\_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_,但可以在特定的 `queue.name` 部分中进行覆盖。
|
||||||
- `MAX_WORKERS`:**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
|
- `MAX_WORKERS`:**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
|
||||||
|
|
||||||
Gitea 创建以下非唯一队列:
|
Gitea 创建以下非唯一队列:
|
||||||
@@ -497,8 +496,8 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA)。
|
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA)。
|
||||||
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
|
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
|
||||||
- `LOGIN_REMEMBER_DAYS`: **7**: Cookie 保存时间,单位为天。
|
- `LOGIN_REMEMBER_DAYS`: **7**: Cookie 保存时间,单位为天。
|
||||||
- `COOKIE_USERNAME`: **gitea\_awesome**: 保存用户名的 Cookie 名称。
|
- `COOKIE_USERNAME`: **gitea_awesome**: 保存用户名的 Cookie 名称。
|
||||||
- `COOKIE_REMEMBER_NAME`: **gitea\_incredible**: 保存自动登录信息的 Cookie 名称。
|
- `COOKIE_REMEMBER_NAME`: **gitea_incredible**: 保存自动登录信息的 Cookie 名称。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
|
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
|
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
|
||||||
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
|
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
|
||||||
@@ -553,13 +552,13 @@ Gitea 创建以下非唯一队列:
|
|||||||
## OpenID (`openid`)
|
## OpenID (`openid`)
|
||||||
|
|
||||||
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
|
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
|
||||||
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: 允许通过OpenID进行注册。
|
- `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允许通过 OpenID 进行注册。
|
||||||
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
|
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
|
||||||
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
|
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
|
||||||
|
|
||||||
## OAuth2 Client (`oauth2_client`)
|
## OAuth2 Client (`oauth2_client`)
|
||||||
|
|
||||||
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER\_EMAIL\_CONFIRM**: 设置此项以启用或禁用OAuth2自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
|
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 设置此项以启用或禁用 OAuth2 自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
|
||||||
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
|
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
|
||||||
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
|
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
|
||||||
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
|
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
|
||||||
@@ -613,7 +612,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
|
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
|
||||||
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
|
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
|
||||||
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
|
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
|
||||||
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: 显示注册按钮
|
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 显示注册按钮
|
||||||
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
|
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
|
||||||
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
|
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
|
||||||
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
|
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
|
||||||
@@ -657,7 +656,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
|
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
|
||||||
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
|
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
|
||||||
- `PROXY_URL`: **_empty_**: 代理服务器 URL,支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
|
- `PROXY_URL`: **_empty_**: 代理服务器 URL,支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
|
||||||
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (*);使用 ** 来匹配所有主机。如果未提供,将使用全局代理设置。
|
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (\*);使用 \*\* 来匹配所有主机。如果未提供,将使用全局代理设置。
|
||||||
|
|
||||||
## 邮件 (`mailer`)
|
## 邮件 (`mailer`)
|
||||||
|
|
||||||
@@ -734,7 +733,7 @@ Gitea 创建以下非唯一队列:
|
|||||||
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
|
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
|
||||||
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db,为空(将使用数据库配置);对于其他引擎,为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
|
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db,为空(将使用数据库配置);对于其他引擎,为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
|
||||||
- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置,当 ROOT_URL 是 https 链接的时候默认设置为 true。
|
- `COOKIE_SECURE`: **_empty_**: `true` 或 `false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置,当 ROOT_URL 是 https 链接的时候默认设置为 true。
|
||||||
- `COOKIE_NAME`: **i\_like\_gitea**: 用于会话 ID 的 cookie 名称。
|
- `COOKIE_NAME`: **i_like_gitea**: 用于会话 ID 的 cookie 名称。
|
||||||
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
|
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
|
||||||
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 86400(1 天)。
|
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 86400(1 天)。
|
||||||
- `DOMAIN`: **_empty_**: 设置 cookie 的域。
|
- `DOMAIN`: **_empty_**: 设置 cookie 的域。
|
||||||
@@ -1075,7 +1074,7 @@ IS_INPUT_FILE = false
|
|||||||
|
|
||||||
- ENABLED:**false** 设置是否启动渲染器
|
- ENABLED:**false** 设置是否启动渲染器
|
||||||
- NEED_POSTPROCESS:**true** 设置为**true**以替换链接/SHA1 等。
|
- NEED_POSTPROCESS:**true** 设置为**true**以替换链接/SHA1 等。
|
||||||
- FILE_EXTENSIONS:**_empty_** 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
|
- FILE*EXTENSIONS:\*\*\_empty*\*\* 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
|
||||||
- RENDER_COMMAND:用于渲染所有匹配的扩展名的外部命令。
|
- RENDER_COMMAND:用于渲染所有匹配的扩展名的外部命令。
|
||||||
- IS_INPUT_FILE:**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
|
- IS_INPUT_FILE:**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
|
||||||
- RENDER_CONTENT_MODE:**sanitized** 内容将如何呈现。
|
- RENDER_CONTENT_MODE:**sanitized** 内容将如何呈现。
|
||||||
@@ -1302,7 +1301,7 @@ MINIO_INSECURE_SKIP_VERIFY = false
|
|||||||
|
|
||||||
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true,所有通过 HTTP 向外部的请求都将受到影响,如果为 false,即使环境设置了 http_proxy/https_proxy 也不会使用
|
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true,所有通过 HTTP 向外部的请求都将受到影响,如果为 false,即使环境设置了 http_proxy/https_proxy 也不会使用
|
||||||
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
|
||||||
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站
|
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
|
||||||
|
|
||||||
i.e.
|
i.e.
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 12
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/email-setup
|
- /zh-cn/email-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Email 设置
|
# Email 设置
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/environment-variables
|
- /zh-cn/environment-variables
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 环境变量清单
|
# 环境变量清单
|
||||||
@@ -21,31 +20,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
|
|||||||
|
|
||||||
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
|
||||||
|
|
||||||
* `GOOS`
|
- `GOOS`
|
||||||
* `GOARCH`
|
- `GOARCH`
|
||||||
* [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
|
- [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
|
||||||
|
|
||||||
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
|
||||||
|
|
||||||
## Gitea 的文件目录
|
## Gitea 的文件目录
|
||||||
|
|
||||||
* `GITEA_WORK_DIR`:工作目录的绝对路径
|
- `GITEA_WORK_DIR`:工作目录的绝对路径
|
||||||
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 *custom* 目录
|
- `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom,您可以使用这个参数来配置 _custom_ 目录
|
||||||
* `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
- `GOGS_WORK_DIR`: 已废弃,请使用 `GITEA_WORK_DIR` 替代
|
||||||
* `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
- `GOGS_CUSTOM`: 已废弃,请使用 `GITEA_CUSTOM` 替代
|
||||||
|
|
||||||
## 操作系统配置
|
## 操作系统配置
|
||||||
|
|
||||||
* `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
- `USER`:Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
|
||||||
* `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
- `USERNAME`: 如果没有配置 `USER`, Gitea 将使用 `USERNAME`
|
||||||
* `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
- `HOME`: 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
|
||||||
|
|
||||||
### 仅限于 Windows 的配置
|
### 仅限于 Windows 的配置
|
||||||
|
|
||||||
* `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
- `USERPROFILE`: 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
|
||||||
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C盘)
|
- `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径(C 盘)
|
||||||
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
- `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
|
||||||
|
|
||||||
## Miscellaneous
|
## Miscellaneous
|
||||||
|
|
||||||
* `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
- `SKIP_MINWINSVC`:如果设置为 1,在 Windows 上不会以 service 的形式运行。
|
||||||
|
|||||||
@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
|
|||||||
|
|
||||||
.markup.XXXXX body {
|
.markup.XXXXX body {
|
||||||
color: #444;
|
color: #444;
|
||||||
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
|
font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
|
||||||
|
serif;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 12
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/git-lfs-setup
|
- /zh-cn/git-lfs-setup
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Git LFS 设置
|
# Git LFS 设置
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 40
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/logging-configuration
|
- /zh-cn/logging-configuration
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 日志配置
|
# 日志配置
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/mail-templates
|
- /zh-cn/mail-templates
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 邮件模板
|
# 邮件模板
|
||||||
@@ -21,7 +20,7 @@ aliases:
|
|||||||
目前,以下通知事件使用模板:
|
目前,以下通知事件使用模板:
|
||||||
|
|
||||||
| 操作名称 | 用途 |
|
| 操作名称 | 用途 |
|
||||||
| ----------- | ------------------------------------------------------------------------------------------------------------ |
|
| ---------- | ---------------------------------------------------------------------- |
|
||||||
| `new` | 创建了新的工单或合并请求。 |
|
| `new` | 创建了新的工单或合并请求。 |
|
||||||
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
| `comment` | 在现有工单或合并请求中创建了新的评论。 |
|
||||||
| `close` | 关闭了工单或合并请求。 |
|
| `close` | 关闭了工单或合并请求。 |
|
||||||
@@ -78,7 +77,7 @@ custom/templates/mail/pull/comment.tmpl
|
|||||||
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
_主题_ 和 _邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
|
||||||
|
|
||||||
| 名称 | 类型 | 可用性 | 用途 |
|
| 名称 | 类型 | 可用性 | 用途 |
|
||||||
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
|
||||||
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
|
||||||
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
|
||||||
@@ -224,11 +223,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
>
|
>
|
||||||
> #### 消息内容:
|
> #### 消息内容:
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> Mike, I think we should tone down the blues a little.
|
> Mike, I think we should tone down the blues a little.
|
||||||
>
|
>
|
||||||
> \_********************************\_********************************
|
> \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
|
||||||
>
|
>
|
||||||
> [在 Gitea 上查看](#)。
|
> [在 Gitea 上查看](#)。
|
||||||
|
|
||||||
@@ -237,7 +236,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
|
||||||
|
|
||||||
| 函数名 | 参数 | 可用于 | 用法 |
|
| 函数名 | 参数 | 可用于 | 用法 |
|
||||||
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- |
|
| ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
|
||||||
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
| `AppUrl` | - | 任何地方 | Gitea 的 URL |
|
||||||
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
|
||||||
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
| `AppDomain` | - | 任何地方 | Gitea 的主机名 |
|
||||||
@@ -248,8 +247,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
|
|||||||
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
像这样使用: {{Str2html "Escape<my>text"}}
|
像这样使用: {{Str2html "Escape<my
|
||||||
或者这样使用: {{"Escape<my>text" | Str2html}}
|
>text"}} 或者这样使用: {{"Escape<my
|
||||||
或者这样使用: {{AppUrl}}
|
>text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
|
||||||
但不要像这样使用: {{.AppUrl}}
|
{{.AppUrl}}</my
|
||||||
|
></my
|
||||||
|
>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 45
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/repo-indexer
|
- /zh-cn/repo-indexer
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 仓库索引器
|
# 仓库索引器
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 16
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/reverse-proxies
|
- /zh-cn/reverse-proxies
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 反向代理
|
# 反向代理
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-backend
|
- /zh-cn/guidelines-backend
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 后端开发指南
|
# 后端开发指南
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-frontend
|
- /zh-cn/guidelines-frontend
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 前端开发指南
|
# 前端开发指南
|
||||||
@@ -19,10 +18,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
|
|||||||
|
|
||||||
源文件可以在以下目录中找到:
|
源文件可以在以下目录中找到:
|
||||||
|
|
||||||
* **CSS 样式**: `web_src/css/`
|
- **CSS 样式**: `web_src/css/`
|
||||||
* **JavaScript 文件**: `web_src/js/`
|
- **JavaScript 文件**: `web_src/js/`
|
||||||
* **Vue 组件**: `web_src/js/components/`
|
- **Vue 组件**: `web_src/js/components/`
|
||||||
* **Go HTML 模板**: `templates/`
|
- **Go HTML 模板**: `templates/`
|
||||||
|
|
||||||
## 通用准则
|
## 通用准则
|
||||||
|
|
||||||
@@ -56,14 +55,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
|
|
||||||
推荐的实现方式:
|
推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Vanilla JS
|
- Vue + Vanilla JS
|
||||||
* Fomantic-UI(jQuery)
|
- Fomantic-UI(jQuery)
|
||||||
* Vanilla JS
|
- Vanilla JS
|
||||||
|
|
||||||
不推荐的实现方式:
|
不推荐的实现方式:
|
||||||
|
|
||||||
* Vue + Fomantic-UI(jQuery)
|
- Vue + Fomantic-UI(jQuery)
|
||||||
* jQuery + Vanilla JS
|
- jQuery + Vanilla JS
|
||||||
|
|
||||||
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
为了保持界面一致,Vue 组件可以使用 Fomantic-UI 的 CSS 类。
|
||||||
尽管不建议混合使用不同的框架,
|
尽管不建议混合使用不同的框架,
|
||||||
@@ -90,31 +89,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性(参见`aria.js`和`ari
|
|||||||
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
|
||||||
然而,仍然存在一些特殊情况,因此当前的准则是:
|
然而,仍然存在一些特殊情况,因此当前的准则是:
|
||||||
|
|
||||||
* 对于旧代码:
|
- 对于旧代码:
|
||||||
* 应将`$.data()`重构为`$.attr()`。
|
|
||||||
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
|
||||||
|
|
||||||
* 对于新代码:
|
- 应将`$.data()`重构为`$.attr()`。
|
||||||
* 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
- 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
|
||||||
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
|
||||||
|
- 对于新代码:
|
||||||
|
- 不应使用`node.dataset`,而应使用`node.getAttribute`。
|
||||||
|
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
|
||||||
|
|
||||||
### 显示/隐藏元素
|
### 显示/隐藏元素
|
||||||
|
|
||||||
* 推荐在Vue组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
- 推荐在 Vue 组件中使用`v-if`和`v-show`来显示/隐藏元素。
|
||||||
* Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
- Go 模板代码应使用 Gitea 的 `.gt-hidden` 和 `showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
|
||||||
|
|
||||||
### Go HTML 模板中的样式和属性
|
### Go HTML 模板中的样式和属性
|
||||||
|
|
||||||
建议使用以下方式:
|
建议使用以下方式:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
而不是:
|
而不是:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div>
|
<div
|
||||||
|
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
|
||||||
|
{{if
|
||||||
|
.IsFoo}}
|
||||||
|
data-foo{{end}}
|
||||||
|
></div>
|
||||||
```
|
```
|
||||||
|
|
||||||
以使代码更易读。
|
以使代码更易读。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 20
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/guidelines-refactoring
|
- /zh-cn/guidelines-refactoring
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 重构指南
|
# 重构指南
|
||||||
@@ -22,22 +21,22 @@ aliases:
|
|||||||
|
|
||||||
## 重构建议
|
## 重构建议
|
||||||
|
|
||||||
* 设计更多关于未来的内容,而不仅仅解决当前问题。
|
- 设计更多关于未来的内容,而不仅仅解决当前问题。
|
||||||
* 减少模糊性,减少冲突,提高可维护性。
|
- 减少模糊性,减少冲突,提高可维护性。
|
||||||
* 描述重构,例如:
|
- 描述重构,例如:
|
||||||
* 为什么需要重构。
|
- 为什么需要重构。
|
||||||
* 如何解决旧问题。
|
- 如何解决旧问题。
|
||||||
* 重构的优点/缺点是什么。
|
- 重构的优点/缺点是什么。
|
||||||
* 只做必要的更改,尽量保留旧逻辑。
|
- 只做必要的更改,尽量保留旧逻辑。
|
||||||
* 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个PR中完成。
|
- 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
|
||||||
* 如果存在分歧,应该请TOC(技术监督委员会)参与决策。
|
- 如果存在分歧,应该请 TOC(技术监督委员会)参与决策。
|
||||||
* 添加必要的测试以确保重构的正确性。
|
- 添加必要的测试以确保重构的正确性。
|
||||||
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
- 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
|
||||||
|
|
||||||
## 审查和合并建议
|
## 审查和合并建议
|
||||||
|
|
||||||
* 重构的PR不应该长时间保持打开状态(通常为7天),应尽快进行审查。
|
- 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
|
||||||
* 重构的PR应尽快合并,不应被其他PR阻塞。
|
- 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
|
||||||
* 如果TOC没有异议,重构的PR可以在7天后由一名核心成员(非作者)批准后合并。
|
- 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
|
||||||
* 如果最终结果良好,容忍一些不完美/临时的步骤。
|
- 如果最终结果良好,容忍一些不完美/临时的步骤。
|
||||||
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
- 如果重构是必要的,容忍一些回归错误,并尽快修复错误。
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 70
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/localization
|
- /zh-cn/localization
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 本地化
|
# 本地化
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
|
|||||||
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
|
||||||
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`。
|
||||||
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
|
||||||
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。
|
- 要使用 CGO_ENABLED(例如:SQLite3)编译 Gitea,您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc,因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
|
||||||
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
|
||||||
|
|
||||||
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建,您可能会遇到问题。建议使用上述提示(Git bash 或 MinGW),但是如果您只有命令提示符(或可能是 PowerShell),则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`。
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
|
|||||||
Gitea 支持以下令牌范围:
|
Gitea 支持以下令牌范围:
|
||||||
|
|
||||||
| 名称 | 介绍 |
|
| 名称 | 介绍 |
|
||||||
| ---- | ----------- |
|
| ---------------------------------------- | --------------------------------------------------------------- |
|
||||||
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
|
||||||
| **repo** | 完全控制所有存储库 |
|
| **repo** | 完全控制所有存储库 |
|
||||||
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
| **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |
|
||||||
|
|||||||
@@ -54,18 +54,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
|
|||||||
- 或者包含 Gitea 二进制文件的目录
|
- 或者包含 Gitea 二进制文件的目录
|
||||||
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
|
||||||
- `app.ini`中的`APP_DATA_PATH`
|
- `app.ini`中的`APP_DATA_PATH`
|
||||||
- 或者_`AppWorkPath`_`/data`
|
- 或者*`AppWorkPath`*`/data`
|
||||||
- _`CustomPath`_(自定义模板)
|
- _`CustomPath`_(自定义模板)
|
||||||
- `--custom-path`标志
|
- `--custom-path`标志
|
||||||
- 或者环境变量`GITEA_CUSTOM`
|
- 或者环境变量`GITEA_CUSTOM`
|
||||||
- 或者在构建时设置的内置值
|
- 或者在构建时设置的内置值
|
||||||
- 或者_`AppWorkPath`_`/custom`
|
- 或者*`AppWorkPath`*`/custom`
|
||||||
- HomeDir
|
- HomeDir
|
||||||
- Unix:环境变量`HOME`
|
- Unix:环境变量`HOME`
|
||||||
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
- Windows:环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
|
||||||
- RepoRootPath
|
- RepoRootPath
|
||||||
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
|
||||||
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
- 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
|
||||||
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
- 默认值为`%(APP_DATA_PATH)/gitea-repositories`
|
||||||
- INI(配置文件)
|
- INI(配置文件)
|
||||||
- `--config`标志
|
- `--config`标志
|
||||||
@@ -263,12 +263,14 @@ fatal: Could not read from remote repository.
|
|||||||
Git 用户(@ 之前的部分)的名称拼写正确。
|
Git 用户(@ 之前的部分)的名称拼写正确。
|
||||||
- 确保客户端机器上的公钥和私钥正确无误。
|
- 确保客户端机器上的公钥和私钥正确无误。
|
||||||
- 在服务器上:
|
- 在服务器上:
|
||||||
|
|
||||||
- 确保存储库存在并且命名正确。
|
- 确保存储库存在并且命名正确。
|
||||||
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
- 检查系统用户主目录中的 `.ssh` 目录的权限。
|
||||||
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
|
||||||
|
|
||||||
尝试在 Gitea 管理面板上运行
|
尝试在 Gitea 管理面板上运行
|
||||||
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`。
|
||||||
|
|
||||||
- 查看 Gitea 日志。
|
- 查看 Gitea 日志。
|
||||||
- 查看 /var/log/auth(或类似的文件)。
|
- 查看 /var/log/auth(或类似的文件)。
|
||||||
- 检查存储库的权限。
|
- 检查存储库的权限。
|
||||||
@@ -340,7 +342,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
|
|||||||
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。
|
||||||
|
|
||||||
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
|
||||||
|
|
||||||
- 作为**用户**,您可以更改密码...
|
- 作为**用户**,您可以更改密码...
|
||||||
|
|
||||||
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
|
||||||
- 使用`忘记密码`链接。
|
- 使用`忘记密码`链接。
|
||||||
|
|
||||||
|
|||||||
@@ -14,18 +14,18 @@ aliases:
|
|||||||
|
|
||||||
_表格中的符号含义:_
|
_表格中的符号含义:_
|
||||||
|
|
||||||
* _✓ - 支持_
|
- _✓ - 支持_
|
||||||
|
|
||||||
* _⁄ - 部分支持_
|
- _⁄ - 部分支持_
|
||||||
|
|
||||||
* _✘ - 不支持_
|
- _✘ - 不支持_
|
||||||
|
|
||||||
* _⚙️ - 由第三方服务或插件支持_
|
- _⚙️ - 由第三方服务或插件支持_
|
||||||
|
|
||||||
#### 主要特性
|
#### 主要特性
|
||||||
|
|
||||||
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
||||||
| ------------------------------- | -------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
|
| -------------------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
|
||||||
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
|
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
|
||||||
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
|
||||||
| 支持多种数据库 | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
|
| 支持多种数据库 | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
|
||||||
@@ -56,7 +56,7 @@ _表格中的符号含义:_
|
|||||||
#### 代码管理
|
#### 代码管理
|
||||||
|
|
||||||
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
|
||||||
| ------------------------------------ | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
|
| -------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
|
||||||
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
|
||||||
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||||
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
|
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sidebar_position: 10
|
|||||||
|
|
||||||
aliases:
|
aliases:
|
||||||
- /zh-cn/database-prep
|
- /zh-cn/database-prep
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 数据库准备
|
# 数据库准备
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user