feat: rebrand to GitCaddy Server
Major rebrand from Gitea to GitCaddy Server: Binary & Package: - Rename binary from gitea to gitcaddy-server - Update Makefile EXECUTABLE variable - Update Docker image name to gitcaddy/gitcaddy-server - Update release artifact names Environment Variables (backward compatible): - Add GITCADDY__ prefix for config env vars - Add GITCADDY_WORK_DIR and GITCADDY_CUSTOM - Keep GITEA__ and GITEA_* as fallback for compatibility UI Branding: - Update footer to Powered by GitCaddy Server - Add Based on Gitea attribution in footer - Update Swagger API title and description - Update webhook placeholders Code References: - Update cmd/main.go app name, usage, description - Update error messages in setting.go - Add based_on locale key This rebrand maintains full backward compatibility with existing Gitea installations while establishing GitCaddy Server identity.
This commit is contained in:
@@ -127,7 +127,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build test binary
|
- name: Build test binary
|
||||||
run: |
|
run: |
|
||||||
go build -tags="bindata sqlite sqlite_unlock_notify" -o gitea .
|
go build -tags="bindata sqlite sqlite_unlock_notify" -o gitcaddy-server .
|
||||||
|
|
||||||
- name: Generate test config
|
- name: Generate test config
|
||||||
run: |
|
run: |
|
||||||
@@ -182,7 +182,7 @@ jobs:
|
|||||||
RESPONSE=$(curl -sf -X POST \
|
RESPONSE=$(curl -sf -X POST \
|
||||||
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
|
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"tag_name":"'"$TAG"'","name":"Gitea '"$TAG"'","body":"Official release of Gitea '"$TAG"'.","draft":false,"prerelease":false}' \
|
-d '{"tag_name":"'"$TAG"'","name":"Gitea '"$TAG"'","body":"Official release of GitCaddy Server '"$TAG"'.","draft":false,"prerelease":false}' \
|
||||||
"https://direct.git.marketally.com/api/v1/repos/${{ github.repository }}/releases" 2>&1)
|
"https://direct.git.marketally.com/api/v1/repos/${{ github.repository }}/releases" 2>&1)
|
||||||
|
|
||||||
if echo "$RESPONSE" | grep -q '"id":[0-9]'; then
|
if echo "$RESPONSE" | grep -q '"id":[0-9]'; then
|
||||||
@@ -258,7 +258,7 @@ jobs:
|
|||||||
EXT=".exe"
|
EXT=".exe"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OUTPUT="gitea-${VERSION}-${GOOS}-${GOARCH}${EXT}"
|
OUTPUT="gitcaddy-server-${VERSION}-${GOOS}-${GOARCH}${EXT}"
|
||||||
|
|
||||||
go build -v -trimpath -tags "${TAGS}" -ldflags "${LDFLAGS}" -o "dist/${OUTPUT}" .
|
go build -v -trimpath -tags "${TAGS}" -ldflags "${LDFLAGS}" -o "dist/${OUTPUT}" .
|
||||||
|
|
||||||
|
|||||||
6
Makefile
6
Makefile
@@ -41,7 +41,7 @@ GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1
|
|||||||
GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1
|
GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1
|
||||||
ACTIONLINT_PACKAGE ?= github.com/rhysd/actionlint/cmd/actionlint@v1.7.9
|
ACTIONLINT_PACKAGE ?= github.com/rhysd/actionlint/cmd/actionlint@v1.7.9
|
||||||
|
|
||||||
DOCKER_IMAGE ?= gitea/gitea
|
DOCKER_IMAGE ?= gitcaddy/gitcaddy-server
|
||||||
DOCKER_TAG ?= latest
|
DOCKER_TAG ?= latest
|
||||||
DOCKER_REF := $(DOCKER_IMAGE):$(DOCKER_TAG)
|
DOCKER_REF := $(DOCKER_IMAGE):$(DOCKER_TAG)
|
||||||
|
|
||||||
@@ -70,10 +70,10 @@ else ifeq ($(patsubst Windows%,Windows,$(OS)),Windows)
|
|||||||
endif
|
endif
|
||||||
ifeq ($(IS_WINDOWS),yes)
|
ifeq ($(IS_WINDOWS),yes)
|
||||||
GOFLAGS := -v -buildmode=exe
|
GOFLAGS := -v -buildmode=exe
|
||||||
EXECUTABLE ?= gitea.exe
|
EXECUTABLE ?= gitcaddy-server.exe
|
||||||
else
|
else
|
||||||
GOFLAGS := -v
|
GOFLAGS := -v
|
||||||
EXECUTABLE ?= gitea
|
EXECUTABLE ?= gitcaddy-server
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(shell sed --version 2>/dev/null | grep -q GNU && echo gnu),gnu)
|
ifeq ($(shell sed --version 2>/dev/null | grep -q GNU && echo gnu),gnu)
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ Download from [Releases](https://git.marketally.com/gitcaddy/gitea/releases):
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Linux (amd64)
|
# Linux (amd64)
|
||||||
curl -L -o gitcaddy https://git.marketally.com/gitcaddy/gitea/releases/latest/download/gitea-linux-amd64
|
curl -L -o gitcaddy-server https://git.marketally.com/gitcaddy/gitea/releases/latest/download/gitcaddy-server-linux-amd64
|
||||||
chmod +x gitcaddy
|
chmod +x gitcaddy
|
||||||
./gitcaddy web
|
./gitcaddy web
|
||||||
```
|
```
|
||||||
@@ -275,7 +275,7 @@ chmod +x gitcaddy
|
|||||||
git clone https://git.marketally.com/gitcaddy/gitea.git
|
git clone https://git.marketally.com/gitcaddy/gitea.git
|
||||||
cd gitea
|
cd gitea
|
||||||
TAGS="bindata sqlite sqlite_unlock_notify" make build
|
TAGS="bindata sqlite sqlite_unlock_notify" make build
|
||||||
./gitea web
|
./gitcaddy-server web
|
||||||
```
|
```
|
||||||
|
|
||||||
### Docker
|
### Docker
|
||||||
|
|||||||
@@ -86,9 +86,9 @@ type AppVersion struct {
|
|||||||
|
|
||||||
func NewMainApp(appVer AppVersion) *cli.Command {
|
func NewMainApp(appVer AppVersion) *cli.Command {
|
||||||
app := &cli.Command{}
|
app := &cli.Command{}
|
||||||
app.Name = "gitea" // must be lower-cased because it appears in the "USAGE" section like "gitea doctor [command [command options]]"
|
app.Name = "gitcaddy-server" // must be lower-cased because it appears in the "USAGE" section like "gitea doctor [command [command options]]"
|
||||||
app.Usage = "A painless self-hosted Git service"
|
app.Usage = "GitCaddy Server - A painless self-hosted Git service"
|
||||||
app.Description = `Gitea program contains "web" and other subcommands. If no subcommand is given, it starts the web server by default. Use "web" subcommand for more web server arguments, use other subcommands for other purposes.`
|
app.Description = `GitCaddy Server contains "web" and other subcommands. If no subcommand is given, it starts the web server by default. Use "web" subcommand for more web server arguments, use other subcommands for other purposes. Based on Gitea - https://gitea.io`
|
||||||
app.Version = appVer.Version + appVer.Extra
|
app.Version = appVer.Version + appVer.Extra
|
||||||
app.EnableShellCompletion = true
|
app.EnableShellCompletion = true
|
||||||
app.Flags = []cli.Flag{
|
app.Flags = []cli.Flag{
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
// EnvConfigKeyPrefixGitCaddy is the primary prefix for GitCaddy environment variables
|
||||||
|
EnvConfigKeyPrefixGitCaddy = "GITCADDY__"
|
||||||
|
// EnvConfigKeyPrefixGitea is the legacy prefix for backward compatibility
|
||||||
EnvConfigKeyPrefixGitea = "GITEA__"
|
EnvConfigKeyPrefixGitea = "GITEA__"
|
||||||
EnvConfigKeySuffixFile = "__FILE"
|
EnvConfigKeySuffixFile = "__FILE"
|
||||||
)
|
)
|
||||||
@@ -24,7 +27,8 @@ var escapeRegex = regexp.MustCompile(escapeRegexpString)
|
|||||||
|
|
||||||
func CollectEnvConfigKeys() (keys []string) {
|
func CollectEnvConfigKeys() (keys []string) {
|
||||||
for _, env := range os.Environ() {
|
for _, env := range os.Environ() {
|
||||||
if strings.HasPrefix(env, EnvConfigKeyPrefixGitea) {
|
// Support both GITCADDY__ and GITEA__ prefixes
|
||||||
|
if strings.HasPrefix(env, EnvConfigKeyPrefixGitCaddy) || strings.HasPrefix(env, EnvConfigKeyPrefixGitea) {
|
||||||
k, _, _ := strings.Cut(env, "=")
|
k, _, _ := strings.Cut(env, "=")
|
||||||
keys = append(keys, k)
|
keys = append(keys, k)
|
||||||
}
|
}
|
||||||
@@ -41,7 +45,7 @@ func ClearEnvConfigKeys() {
|
|||||||
// decodeEnvSectionKey will decode a portable string encoded Section__Key pair
|
// decodeEnvSectionKey will decode a portable string encoded Section__Key pair
|
||||||
// Portable strings are considered to be of the form [A-Z0-9_]*
|
// Portable strings are considered to be of the form [A-Z0-9_]*
|
||||||
// We will encode a disallowed value as the UTF8 byte string preceded by _0X and
|
// We will encode a disallowed value as the UTF8 byte string preceded by _0X and
|
||||||
// followed by _. E.g. _0X2C_ for a '-' and _0X2E_ for '.'
|
// followed by _. E.g. _0X2C_ for a '-', and _0X2E_ for '.'.
|
||||||
// Section and Key are separated by a plain '__'.
|
// Section and Key are separated by a plain '__'.
|
||||||
// The entire section can be encoded as a UTF8 byte string
|
// The entire section can be encoded as a UTF8 byte string
|
||||||
func decodeEnvSectionKey(encoded string) (ok bool, section, key string) {
|
func decodeEnvSectionKey(encoded string) (ok bool, section, key string) {
|
||||||
@@ -96,16 +100,22 @@ func decodeEnvSectionKey(encoded string) (ok bool, section, key string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// decodeEnvironmentKey decode the environment key to section and key
|
// decodeEnvironmentKey decode the environment key to section and key
|
||||||
// The environment key is in the form of GITEA__SECTION__KEY or GITEA__SECTION__KEY__FILE
|
// The environment key is in the form of GITCADDY__SECTION__KEY or GITEA__SECTION__KEY (legacy)
|
||||||
func decodeEnvironmentKey(prefixGitea, suffixFile, envKey string) (ok bool, section, key string, useFileValue bool) {
|
// or GITCADDY__SECTION__KEY__FILE / GITEA__SECTION__KEY__FILE
|
||||||
if !strings.HasPrefix(envKey, prefixGitea) {
|
func decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffixFile, envKey string) (ok bool, section, key string, useFileValue bool) {
|
||||||
|
var prefix string
|
||||||
|
if strings.HasPrefix(envKey, prefixGitCaddy) {
|
||||||
|
prefix = prefixGitCaddy
|
||||||
|
} else if strings.HasPrefix(envKey, prefixGitea) {
|
||||||
|
prefix = prefixGitea
|
||||||
|
} else {
|
||||||
return false, "", "", false
|
return false, "", "", false
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(envKey, suffixFile) {
|
if strings.HasSuffix(envKey, suffixFile) {
|
||||||
useFileValue = true
|
useFileValue = true
|
||||||
envKey = envKey[:len(envKey)-len(suffixFile)]
|
envKey = envKey[:len(envKey)-len(suffixFile)]
|
||||||
}
|
}
|
||||||
ok, section, key = decodeEnvSectionKey(envKey[len(prefixGitea):])
|
ok, section, key = decodeEnvSectionKey(envKey[len(prefix):])
|
||||||
return ok, section, key, useFileValue
|
return ok, section, key, useFileValue
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +129,7 @@ func EnvironmentToConfig(cfg ConfigProvider, envs []string) (changed bool) {
|
|||||||
// parse the environment variable to config section name and key name
|
// parse the environment variable to config section name and key name
|
||||||
envKey := before
|
envKey := before
|
||||||
envValue := after
|
envValue := after
|
||||||
ok, sectionName, keyName, useFileValue := decodeEnvironmentKey(EnvConfigKeyPrefixGitea, EnvConfigKeySuffixFile, envKey)
|
ok, sectionName, keyName, useFileValue := decodeEnvironmentKey(EnvConfigKeyPrefixGitCaddy, EnvConfigKeyPrefixGitea, EnvConfigKeySuffixFile, envKey)
|
||||||
if !ok {
|
if !ok {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -167,20 +177,25 @@ func EnvironmentToConfig(cfg ConfigProvider, envs []string) (changed bool) {
|
|||||||
return changed
|
return changed
|
||||||
}
|
}
|
||||||
|
|
||||||
// InitGiteaEnvVars initializes the environment variables for gitea
|
// InitGitCaddyEnvVars initializes the environment variables for GitCaddy Server
|
||||||
func InitGiteaEnvVars() {
|
func InitGitCaddyEnvVars() {
|
||||||
// Ideally Gitea should only accept the environment variables which it clearly knows instead of unsetting the ones it doesn't want,
|
// Ideally GitCaddy should only accept the environment variables which it clearly knows instead of unsetting the ones it doesn't want,
|
||||||
// but the ideal behavior would be a breaking change, and it seems not bringing enough benefits to end users,
|
// but the ideal behavior would be a breaking change, and it seems not bringing enough benefits to end users,
|
||||||
// so at the moment we could still keep "unsetting the unnecessary environments"
|
// so at the moment we could still keep "unsetting the unnecessary environments"
|
||||||
|
|
||||||
// HOME is managed by Gitea, Gitea's git should use "HOME/.gitconfig".
|
// HOME is managed by GitCaddy, GitCaddy's git should use "HOME/.gitconfig".
|
||||||
// But git would try "XDG_CONFIG_HOME/git/config" first if "HOME/.gitconfig" does not exist,
|
// But git would try "XDG_CONFIG_HOME/git/config" first if "HOME/.gitconfig" does not exist,
|
||||||
// then our git.InitFull would still write to "XDG_CONFIG_HOME/git/config" if XDG_CONFIG_HOME is set.
|
// then our git.InitFull would still write to "XDG_CONFIG_HOME/git/config" if XDG_CONFIG_HOME is set.
|
||||||
_ = os.Unsetenv("XDG_CONFIG_HOME")
|
_ = os.Unsetenv("XDG_CONFIG_HOME")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// InitGiteaEnvVars is an alias for InitGitCaddyEnvVars for backward compatibility
|
||||||
|
func InitGiteaEnvVars() {
|
||||||
|
InitGitCaddyEnvVars()
|
||||||
|
}
|
||||||
|
|
||||||
func InitGiteaEnvVarsForTesting() {
|
func InitGiteaEnvVarsForTesting() {
|
||||||
InitGiteaEnvVars()
|
InitGitCaddyEnvVars()
|
||||||
_ = os.Unsetenv("GIT_AUTHOR_NAME")
|
_ = os.Unsetenv("GIT_AUTHOR_NAME")
|
||||||
_ = os.Unsetenv("GIT_AUTHOR_EMAIL")
|
_ = os.Unsetenv("GIT_AUTHOR_EMAIL")
|
||||||
_ = os.Unsetenv("GIT_AUTHOR_DATE")
|
_ = os.Unsetenv("GIT_AUTHOR_DATE")
|
||||||
|
|||||||
@@ -18,11 +18,11 @@ var (
|
|||||||
// AppPath represents the path to the gitea binary
|
// AppPath represents the path to the gitea binary
|
||||||
AppPath string
|
AppPath string
|
||||||
|
|
||||||
// AppWorkPath is the "working directory" of Gitea. It maps to the: WORK_PATH in app.ini, "--work-path" flag, environment variable GITEA_WORK_DIR.
|
// AppWorkPath is the "working directory" of GitCaddy. It maps to the: WORK_PATH in app.ini, "--work-path" flag, environment variable GITCADDY_WORK_DIR (or GITEA_WORK_DIR for backward compatibility).
|
||||||
// If that is not set it is the default set here by the linker or failing that the directory of AppPath.
|
// If that is not set it is the default set here by the linker or failing that the directory of AppPath.
|
||||||
// It is used as the base path for several other paths.
|
// It is used as the base path for several other paths.
|
||||||
AppWorkPath string
|
AppWorkPath string
|
||||||
CustomPath string // Custom directory path. Env: GITEA_CUSTOM
|
CustomPath string // Custom directory path. Env: GITCADDY_CUSTOM (or GITEA_CUSTOM for backward compatibility)
|
||||||
CustomConf string
|
CustomConf string
|
||||||
|
|
||||||
appWorkPathBuiltin string
|
appWorkPathBuiltin string
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ func InitCfgProvider(file string) {
|
|||||||
|
|
||||||
func MustInstalled() {
|
func MustInstalled() {
|
||||||
if !InstallLock {
|
if !InstallLock {
|
||||||
log.Fatal(`Unable to load config file for a installed Gitea instance, you should either use "--config" to set your config file (app.ini), or run "gitea web" command to install Gitea.`)
|
log.Fatal(`Unable to load config file for a installed GitCaddy instance, you should either use "--config" to set your config file (app.ini), or run "gitcaddy-server web" command to install Gitea.`)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,9 +176,9 @@ func loadRunModeFrom(rootCfg ConfigProvider) {
|
|||||||
if os.Getuid() == 0 {
|
if os.Getuid() == 0 {
|
||||||
if !unsafeAllowRunAsRoot {
|
if !unsafeAllowRunAsRoot {
|
||||||
// Special thanks to VLC which inspired the wording of this messaging.
|
// Special thanks to VLC which inspired the wording of this messaging.
|
||||||
log.Fatal("Gitea is not supposed to be run as root. Sorry. If you need to use privileged TCP ports please instead use setcap and the `cap_net_bind_service` permission")
|
log.Fatal("GitCaddy Server is not supposed to be run as root. Sorry. If you need to use privileged TCP ports please instead use setcap and the `cap_net_bind_service` permission")
|
||||||
}
|
}
|
||||||
log.Critical("You are running Gitea using the root user, and have purposely chosen to skip built-in protections around this. You have been warned against this.")
|
log.Critical("You are running GitCaddy Server using the root user, and have purposely chosen to skip built-in protections around this. You have been warned against this.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
"register": "Register",
|
"register": "Register",
|
||||||
"version": "Version",
|
"version": "Version",
|
||||||
"powered_by": "Powered by %s",
|
"powered_by": "Powered by %s",
|
||||||
|
"based_on": "Based on",
|
||||||
"page": "Page",
|
"page": "Page",
|
||||||
"template": "Template",
|
"template": "Template",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
<footer class="page-footer" role="group" aria-label="{{ctx.Locale.Tr "aria.footer"}}">
|
||||||
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
|
<div class="left-links" role="contentinfo" aria-label="{{ctx.Locale.Tr "aria.footer.software"}}">
|
||||||
{{if ShowFooterPoweredBy}}
|
{{if ShowFooterPoweredBy}}
|
||||||
<a target="_blank" rel="noopener noreferrer" href="https://about.gitea.com">{{ctx.Locale.Tr "powered_by" "Gitea"}}</a>
|
<span>{{ctx.Locale.Tr "powered_by" "GitCaddy Server"}}</span>
|
||||||
|
<span class="tw-text-secondary tw-text-12">{{ctx.Locale.Tr "based_on"}} <a target="_blank" rel="noopener noreferrer" href="https://about.gitea.com">Gitea</a></span>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{if (or .ShowFooterVersion .PageIsAdmin)}}
|
{{if (or .ShowFooterVersion .PageIsAdmin)}}
|
||||||
{{ctx.Locale.Tr "version"}}:
|
{{ctx.Locale.Tr "version"}}:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="username">{{ctx.Locale.Tr "repo.settings.discord_username"}}</label>
|
<label for="username">{{ctx.Locale.Tr "repo.settings.discord_username"}}</label>
|
||||||
<input id="username" name="username" value="{{.DiscordHook.Username}}" placeholder="Gitea">
|
<input id="username" name="username" value="{{.DiscordHook.Username}}" placeholder="GitCaddy">
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="icon_url">{{ctx.Locale.Tr "repo.settings.discord_icon_url"}}</label>
|
<label for="icon_url">{{ctx.Locale.Tr "repo.settings.discord_icon_url"}}</label>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<form class="ui form" action="{{.BaseLink}}/packagist/{{or .Webhook.ID "new"}}" method="post">
|
<form class="ui form" action="{{.BaseLink}}/packagist/{{or .Webhook.ID "new"}}" method="post">
|
||||||
<div class="required field {{if .Err_Username}}error{{end}}">
|
<div class="required field {{if .Err_Username}}error{{end}}">
|
||||||
<label for="username">{{ctx.Locale.Tr "repo.settings.packagist_username"}}</label>
|
<label for="username">{{ctx.Locale.Tr "repo.settings.packagist_username"}}</label>
|
||||||
<input id="username" name="username" value="{{.PackagistHook.Username}}" placeholder="Gitea" autofocus required>
|
<input id="username" name="username" value="{{.PackagistHook.Username}}" placeholder="GitCaddy" autofocus required>
|
||||||
</div>
|
</div>
|
||||||
<div class="required field {{if .Err_APIToken}}error{{end}}">
|
<div class="required field {{if .Err_APIToken}}error{{end}}">
|
||||||
<label for="api_token">{{ctx.Locale.Tr "repo.settings.packagist_api_token"}}</label>
|
<label for="api_token">{{ctx.Locale.Tr "repo.settings.packagist_api_token"}}</label>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="username">{{ctx.Locale.Tr "repo.settings.slack_username"}}</label>
|
<label for="username">{{ctx.Locale.Tr "repo.settings.slack_username"}}</label>
|
||||||
<input id="username" name="username" value="{{.SlackHook.Username}}" placeholder="Gitea">
|
<input id="username" name="username" value="{{.SlackHook.Username}}" placeholder="GitCaddy">
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="icon_url">{{ctx.Locale.Tr "repo.settings.slack_icon_url"}}</label>
|
<label for="icon_url">{{ctx.Locale.Tr "repo.settings.slack_icon_url"}}</label>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Gitea API</title>
|
<title>GitCaddy API</title>
|
||||||
<link href="{{AssetUrlPrefix}}/css/swagger.css?v={{AssetVersion}}" rel="stylesheet">
|
<link href="{{AssetUrlPrefix}}/css/swagger.css?v={{AssetVersion}}" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
4
templates/swagger/v1_json.tmpl
generated
4
templates/swagger/v1_json.tmpl
generated
@@ -13,8 +13,8 @@
|
|||||||
],
|
],
|
||||||
"swagger": "2.0",
|
"swagger": "2.0",
|
||||||
"info": {
|
"info": {
|
||||||
"description": "This documentation describes the Gitea API.",
|
"description": "This documentation describes the GitCaddy Server API (based on Gitea).",
|
||||||
"title": "Gitea API",
|
"title": "GitCaddy API",
|
||||||
"license": {
|
"license": {
|
||||||
"name": "MIT",
|
"name": "MIT",
|
||||||
"url": "http://opensource.org/licenses/MIT"
|
"url": "http://opensource.org/licenses/MIT"
|
||||||
|
|||||||
Reference in New Issue
Block a user