Compare commits

...

6 Commits

Author SHA1 Message Date
GitCaddy
bfdd2713d3 feat: GitCaddy Server v2.0.0 rebrand and enhancements
All checks were successful
Build and Release / Lint (push) Successful in 4m57s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m57s
Build and Release / Unit Tests (push) Successful in 3m51s
Build and Release / Build Binaries (amd64, darwin) (push) Successful in 3m16s
Build and Release / Create Release (push) Has been skipped
Build and Release / Build Binaries (amd64, linux) (push) Successful in 3m12s
Build and Release / Build Binaries (arm64, darwin) (push) Successful in 3m4s
Build and Release / Build Binaries (amd64, windows) (push) Successful in 3m13s
Build and Release / Build Binaries (arm64, linux) (push) Successful in 2m58s
Rebrand:
- Binary renamed to gitcaddy-server
- Default AppName: GitCaddy
- New favicon and homepage logo
- Updated licenses.txt with MarketAlly copyright
- Footer: Powered by GitCaddy Server (Based on Gitea)

Homepage:
- Title: GitCaddy
- Tagline: Steeped in your workflow
- AI-Native Platform, Deploy Anywhere, Lightning Fast, Open Source

New Features:
- Explore Organizations tile cards display option
- Pinned repos show DisplayTitle if set

Fixes:
- Pages renamed to Landing Page in settings

Environment Variables (backward compatible):
- GITCADDY__ prefix (GITEA__ still supported)
- GITCADDY_WORK_DIR, GITCADDY_CUSTOM
2026-01-12 21:42:20 +00:00
GitCaddy
ddb06706f3 fix: update release name to GitCaddy Server
All checks were successful
Build and Release / Build Binaries (arm64, darwin) (push) Successful in 3m17s
Build and Release / Build Binaries (arm64, linux) (push) Successful in 2m53s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 3m1s
Build and Release / Unit Tests (push) Successful in 5m9s
Build and Release / Lint (push) Successful in 5m28s
Build and Release / Build Binaries (amd64, darwin) (push) Successful in 3m8s
Build and Release / Create Release (push) Successful in 0s
Build and Release / Build Binaries (amd64, linux) (push) Successful in 3m20s
Build and Release / Build Binaries (amd64, windows) (push) Successful in 3m7s
2026-01-12 21:04:48 +00:00
GitCaddy
856c9d7f2b docs: update repo URLs to gitcaddy-server
Some checks failed
Build and Release / Lint (push) Successful in 4m46s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 3m46s
Build and Release / Unit Tests (push) Successful in 4m19s
Build and Release / Build Binaries (amd64, linux) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin) (push) Has been cancelled
Build and Release / Build Binaries (arm64, linux) (push) Has been cancelled
Build and Release / Create Release (push) Successful in 0s
Build and Release / Build Binaries (amd64, darwin) (push) Has been cancelled
2026-01-12 21:02:36 +00:00
GitCaddy
735d131321 fix: update config_env_test.go for new function signature
All checks were successful
Build and Release / Lint (push) Successful in 5m15s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 3m0s
Build and Release / Unit Tests (push) Successful in 4m1s
Build and Release / Build Binaries (amd64, darwin) (push) Successful in 3m12s
Build and Release / Create Release (push) Has been skipped
Build and Release / Build Binaries (amd64, linux) (push) Successful in 3m8s
Build and Release / Build Binaries (amd64, windows) (push) Successful in 3m7s
Build and Release / Build Binaries (arm64, darwin) (push) Successful in 3m2s
Build and Release / Build Binaries (arm64, linux) (push) Successful in 3m4s
2026-01-12 20:38:54 +00:00
GitCaddy
b2b6686f46 fix: clean up release binary naming
Some checks failed
Build and Release / Build Binaries (amd64, darwin) (push) Has been cancelled
Build and Release / Build Binaries (amd64, linux) (push) Has been cancelled
Build and Release / Build Binaries (amd64, windows) (push) Has been cancelled
Build and Release / Build Binaries (arm64, darwin) (push) Has been cancelled
Build and Release / Build Binaries (arm64, linux) (push) Has been cancelled
Build and Release / Create Release (push) Has been cancelled
Build and Release / Integration Tests (PostgreSQL) (push) Has been cancelled
Build and Release / Lint (push) Has been cancelled
Build and Release / Unit Tests (push) Has been cancelled
Remove -gitcaddy suffix from binary names for cleaner downloads:
gitcaddy-server-v2.0.0-linux-amd64 instead of gitcaddy-server-v2.0.0-gitcaddy-linux-amd64
2026-01-12 20:31:33 +00:00
GitCaddy
710ec5d69a docs: add Claude Code acknowledgment
Some checks failed
Build and Release / Lint (push) Failing after 3m55s
Build and Release / Unit Tests (push) Has been cancelled
Build and Release / Build Binaries (amd64, darwin) (push) Has been skipped
Build and Release / Create Release (push) Has been skipped
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 4m40s
Build and Release / Build Binaries (amd64, linux) (push) Has been skipped
Build and Release / Build Binaries (amd64, windows) (push) Has been skipped
Build and Release / Build Binaries (arm64, darwin) (push) Has been skipped
Build and Release / Build Binaries (arm64, linux) (push) Has been skipped
2026-01-12 20:29:03 +00:00
18 changed files with 28837 additions and 57 deletions

View File

@@ -182,7 +182,7 @@ jobs:
RESPONSE=$(curl -sf -X POST \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"tag_name":"'"$TAG"'","name":"Gitea '"$TAG"'","body":"Official release of GitCaddy Server '"$TAG"'.","draft":false,"prerelease":false}' \
-d '{"tag_name":"'"$TAG"'","name":"GitCaddy Server '"$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)
if echo "$RESPONSE" | grep -q '"id":[0-9]'; then
@@ -250,7 +250,7 @@ jobs:
GOARCH: ${{ matrix.goarch }}
TAGS: bindata sqlite sqlite_unlock_notify
run: |
VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev")
VERSION=$(git describe --tags --always --dirty 2>/dev/null | sed "s/-gitcaddy//" || echo "dev")
LDFLAGS="-X code.gitea.io/gitea/modules/setting.AppVer=${VERSION}"
EXT=""

1
.gitignore vendored
View File

@@ -85,7 +85,6 @@ cpu.out
/public/assets/js
/public/assets/css
/public/assets/fonts
/public/assets/licenses.txt
/vendor
/VERSION
/.air

View File

@@ -260,11 +260,11 @@ autoUpdater.checkForUpdates()
### From Binary
Download from [Releases](https://git.marketally.com/gitcaddy/gitea/releases):
Download from [Releases](https://git.marketally.com/gitcaddy/gitcaddy-server/releases):
```bash
# Linux (amd64)
curl -L -o gitcaddy-server https://git.marketally.com/gitcaddy/gitea/releases/latest/download/gitcaddy-server-linux-amd64
curl -L -o gitcaddy-server https://git.marketally.com/gitcaddy/gitcaddy-server/releases/latest/download/gitcaddy-server-linux-amd64
chmod +x gitcaddy
./gitcaddy web
```
@@ -272,8 +272,8 @@ chmod +x gitcaddy
### From Source
```bash
git clone https://git.marketally.com/gitcaddy/gitea.git
cd gitea
git clone https://git.marketally.com/gitcaddy/gitcaddy-server.git
cd gitcaddy-server
TAGS="bindata sqlite sqlite_unlock_notify" make build
./gitcaddy-server web
```
@@ -413,4 +413,5 @@ MIT License - see [LICENSE](LICENSE) for details.
GitCaddy is a fork of [Gitea](https://gitea.io), the open-source self-hosted Git service. We thank the Gitea team and all contributors for building the foundation that makes GitCaddy possible.
- [Gitea Project](https://gitea.io)
- [Claude Code](https://claude.ai/code) - AI-assisted development by Anthropic
- [Gitea Contributors](https://github.com/go-gitea/gitea/graphs/contributors)

View File

@@ -54,14 +54,15 @@ type RepositoryStruct struct {
}
type ThemeStruct struct {
DisableRegistration *config.Value[bool]
CustomSiteIconURL *config.Value[string]
CustomHomeLogoURL *config.Value[string]
CustomHomeHTML *config.Value[string]
APIHeaderURL *config.Value[string]
CustomHomeTitle *config.Value[string]
CustomHomeTagline *config.Value[string]
PinnedOrgDisplayFormat *config.Value[string]
DisableRegistration *config.Value[bool]
CustomSiteIconURL *config.Value[string]
CustomHomeLogoURL *config.Value[string]
CustomHomeHTML *config.Value[string]
APIHeaderURL *config.Value[string]
CustomHomeTitle *config.Value[string]
CustomHomeTagline *config.Value[string]
PinnedOrgDisplayFormat *config.Value[string]
ExploreOrgDisplayFormat *config.Value[string]
}
type ConfigStruct struct {
@@ -87,14 +88,15 @@ func initDefaultConfig() {
GitGuideRemoteName: config.ValueJSON[string]("repository.git-guide-remote-name").WithDefault("origin"),
},
Theme: &ThemeStruct{
DisableRegistration: config.ValueJSON[bool]("theme.disable_registration").WithFileConfig(config.CfgSecKey{Sec: "service", Key: "DISABLE_REGISTRATION"}),
CustomSiteIconURL: config.ValueJSON[string]("theme.custom_site_icon_url").WithDefault(""),
CustomHomeLogoURL: config.ValueJSON[string]("theme.custom_home_logo_url").WithDefault(""),
CustomHomeHTML: config.ValueJSON[string]("theme.custom_home_html").WithDefault(""),
APIHeaderURL: config.ValueJSON[string]("theme.api_header_url").WithDefault(""),
CustomHomeTitle: config.ValueJSON[string]("theme.custom_home_title").WithDefault(""),
CustomHomeTagline: config.ValueJSON[string]("theme.custom_home_tagline").WithDefault(""),
PinnedOrgDisplayFormat: config.ValueJSON[string]("theme.pinned_org_display_format").WithDefault("condensed"),
DisableRegistration: config.ValueJSON[bool]("theme.disable_registration").WithFileConfig(config.CfgSecKey{Sec: "service", Key: "DISABLE_REGISTRATION"}),
CustomSiteIconURL: config.ValueJSON[string]("theme.custom_site_icon_url").WithDefault(""),
CustomHomeLogoURL: config.ValueJSON[string]("theme.custom_home_logo_url").WithDefault(""),
CustomHomeHTML: config.ValueJSON[string]("theme.custom_home_html").WithDefault(""),
APIHeaderURL: config.ValueJSON[string]("theme.api_header_url").WithDefault(""),
CustomHomeTitle: config.ValueJSON[string]("theme.custom_home_title").WithDefault(""),
CustomHomeTagline: config.ValueJSON[string]("theme.custom_home_tagline").WithDefault(""),
PinnedOrgDisplayFormat: config.ValueJSON[string]("theme.pinned_org_display_format").WithDefault("condensed"),
ExploreOrgDisplayFormat: config.ValueJSON[string]("theme.explore_org_display_format").WithDefault("list"),
},
}
}

View File

@@ -33,28 +33,29 @@ func TestDecodeEnvSectionKey(t *testing.T) {
}
func TestDecodeEnvironmentKey(t *testing.T) {
prefix := "GITEA__"
prefixGitCaddy := "GITCADDY__"
prefixGitea := "GITEA__"
suffix := "__FILE"
ok, section, key, file := decodeEnvironmentKey(prefix, suffix, "SEC__KEY")
ok, section, key, file := decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "SEC__KEY")
assert.False(t, ok)
assert.Empty(t, section)
assert.Empty(t, key)
assert.False(t, file)
ok, section, key, file = decodeEnvironmentKey(prefix, suffix, "GITEA__SEC")
ok, section, key, file = decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "GITEA__SEC")
assert.False(t, ok)
assert.Empty(t, section)
assert.Empty(t, key)
assert.False(t, file)
ok, section, key, file = decodeEnvironmentKey(prefix, suffix, "GITEA____KEY")
ok, section, key, file = decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "GITEA____KEY")
assert.True(t, ok)
assert.Empty(t, section)
assert.Equal(t, "KEY", key)
assert.False(t, file)
ok, section, key, file = decodeEnvironmentKey(prefix, suffix, "GITEA__SEC__KEY")
ok, section, key, file = decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "GITEA__SEC__KEY")
assert.True(t, ok)
assert.Equal(t, "sec", section)
assert.Equal(t, "KEY", key)
@@ -62,19 +63,19 @@ func TestDecodeEnvironmentKey(t *testing.T) {
// with "__FILE" suffix, it doesn't support to write "[sec].FILE" to config (no such key FILE is used in Gitea)
// but it could be fixed in the future by adding a new suffix like "__VALUE" (no such key VALUE is used in Gitea either)
ok, section, key, file = decodeEnvironmentKey(prefix, suffix, "GITEA__SEC__FILE")
ok, section, key, file = decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "GITEA__SEC__FILE")
assert.False(t, ok)
assert.Empty(t, section)
assert.Empty(t, key)
assert.True(t, file)
ok, section, key, file = decodeEnvironmentKey(prefix, suffix, "GITEA__SEC__KEY__FILE")
ok, section, key, file = decodeEnvironmentKey(prefixGitCaddy, prefixGitea, suffix, "GITEA__SEC__KEY__FILE")
assert.True(t, ok)
assert.Equal(t, "sec", section)
assert.Equal(t, "KEY", key)
assert.True(t, file)
ok, _, _, _ = decodeEnvironmentKey("PREFIX__", "", "PREFIX__SEC__KEY")
ok, _, _, _ = decodeEnvironmentKey("PREFIX__", "", "", "PREFIX__SEC__KEY")
assert.True(t, ok)
}

View File

@@ -183,7 +183,7 @@ func MakeAbsoluteAssetURL(appURL, staticURLPrefix string) string {
func loadServerFrom(rootCfg ConfigProvider) {
sec := rootCfg.Section("server")
AppName = rootCfg.Section("").Key("APP_NAME").MustString("Gitea: Git with a cup of tea")
AppName = rootCfg.Section("").Key("APP_NAME").MustString("GitCaddy")
Domain = sec.Key("DOMAIN").MustString("localhost")
HTTPAddr = sec.Key("HTTP_ADDR").MustString("0.0.0.0")

View File

@@ -96,7 +96,7 @@ func InitCfgProvider(file string) {
func MustInstalled() {
if !InstallLock {
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.`)
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 GitCaddy.`)
}
}

View File

@@ -210,15 +210,15 @@
"error.report_message": "If you believe that this is a GitCaddy bug, please search for issues on <a href=\"%s\" target=\"_blank\">GitCaddy Gitea</a> or open a new issue if necessary.",
"error.not_found": "The target couldn't be found.",
"error.network_error": "Network error",
"startpage.app_desc": "A painless, self-hosted Git service",
"startpage.install": "Easy to install",
"startpage.install_desc": "Simply <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%[1]s\">run the binary</a> for your platform, ship it with <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%[2]s\">Docker</a>, or get it <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%[3]s\">packaged</a>.",
"startpage.platform": "Cross-platform",
"startpage.platform_desc": "Gitea runs anywhere <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">Go</a> can compile for: Windows, macOS, Linux, ARM, etc. Choose the one you love!",
"startpage.lightweight": "Lightweight",
"startpage.lightweight_desc": "Gitea has low minimal requirements and can run on an inexpensive Raspberry Pi. Save your machine energy!",
"startpage.app_desc": "Steeped in your workflow",
"startpage.install": "Deploy Anywhere",
"startpage.install_desc": "Run the binary, deploy with Docker, or use your favorite package manager. GitCaddy runs wherever you need it.",
"startpage.platform": "AI-Native Platform",
"startpage.platform_desc": "Built for the age of AI-assisted development. Structured APIs, capability discovery, and intelligent context for AI tools.",
"startpage.lightweight": "Lightning Fast",
"startpage.lightweight_desc": "Minimal footprint, maximum performance. GitCaddy runs efficiently on everything from Raspberry Pi to enterprise servers.",
"startpage.license": "Open Source",
"startpage.license_desc": "Go get <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%[1]s\">%[2]s</a>! Join us by <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%[3]s\">contributing</a> to make this project even better. Don't be shy to be a contributor!",
"startpage.license_desc": "GitCaddy is open source and built on the shoulders of giants. Based on Gitea, enhanced for the AI era.",
"install.install": "Installation",
"install.installing_desc": "Installing now, please wait…",
"install.title": "Initial Configuration",
@@ -2514,15 +2514,15 @@
"repo.settings.rename_branch_from": "old branch name",
"repo.settings.rename_branch_to": "new branch name",
"repo.settings.rename_branch": "Rename branch",
"repo.settings.pages": "Pages",
"repo.settings.pages.enabled": "Pages Enabled",
"repo.settings.pages": "Landing Page",
"repo.settings.pages.enabled": "Landing Page Enabled",
"repo.settings.pages.enabled_desc": "Your landing page is now accessible to visitors.",
"repo.settings.pages.not_enabled": "Pages Not Enabled",
"repo.settings.pages.not_enabled_desc": "Enable Pages to create a landing page for your repository.",
"repo.settings.pages.enable": "Enable Pages",
"repo.settings.pages.disable": "Disable Pages",
"repo.settings.pages.enabled_success": "Pages have been enabled for this repository.",
"repo.settings.pages.disabled_success": "Pages have been disabled for this repository.",
"repo.settings.pages.not_enabled": "Landing Page Not Enabled",
"repo.settings.pages.not_enabled_desc": "Enable the landing page feature to create a public page for your repository.",
"repo.settings.pages.enable": "Enable Landing Page",
"repo.settings.pages.disable": "Disable Landing Page",
"repo.settings.pages.enabled_success": "Landing page has been enabled for this repository.",
"repo.settings.pages.disabled_success": "Landing page has been disabled for this repository.",
"repo.settings.pages.template": "Template",
"repo.settings.pages.update_template": "Update Template",
"repo.settings.pages.subdomain": "Subdomain URL",
@@ -3887,5 +3887,9 @@
"api": "API",
"admin.config.api_header_url": "API Header Link",
"admin.config.api_header_url_placeholder": "https://example.com/api/docs",
"admin.config.api_header_url_help": "URL for the API documentation link in the header. Leave empty to hide the link."
}
"admin.config.api_header_url_help": "URL for the API documentation link in the header. Leave empty to hide the link.",
"admin.config.explore_org_display_format": "Explore Organizations Display",
"admin.config.explore_org_display_format_help": "Choose how organizations are displayed on the explore/organizations page",
"admin.config.explore_org_format_list": "List View",
"admin.config.explore_org_format_tiles": "Tile Cards"
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="374px" height="374px" viewBox="397.5 371.5 374 374" style="enable-background:new 397.5 371.5 374 374;"
xml:space="preserve">
<path style="fill:#609926;" d="M526.05,605.17c-0.69,0-1.39-0.14-2.08-0.46l-82.52-37.42v95.65l138.07,48.38V563.78l-50.37,40.29
C528.27,604.76,527.16,605.17,526.05,605.17L526.05,605.17z"/>
<path style="fill:#609926;" d="M643.03,605.17c-1.16,0-2.26-0.42-3.15-1.11l-50.37-40.29v147.55l138.16-48.38v-95.65l-82.56,37.42
c-0.65,0.28-1.34,0.46-2.04,0.46L643.03,605.17z"/>
<path style="fill:#609926;" d="M525.31,594.35l49.08-39.22l-137-48.06l-37.88,30.34L525.31,594.35z"/>
<path style="fill:#609926;" d="M594.69,555.13l49.03,39.22l125.81-56.94l-37.88-30.34L594.69,555.13z"/>
<path style="fill:#609926;" d="M525.36,438.98c-11.01-3.42-23.22-7.26-36.22-13.46c-1.62,64.89,35.94,80.94,52.68,84.88
c16.47,3.88,30.57,0.55,35.48-3.88c-11.24-14.06-25.81-26.6-43.43-31.45c16.19,1.76,31.13,9.62,43.99,19.89
c-3.88-40.66-22.76-46.62-52.45-55.97H525.36z"/>
<path style="fill:#609926;" d="M589.74,491.11c5.23,5,20.81,8.79,38.85,4.53c18.22-4.3,59.16-21.79,57.22-92.6
c-14.2,6.8-27.57,10.96-39.59,14.76c-32.47,10.17-53.01,16.6-56.98,61.52c13.92-11.38,30.16-20.26,47.96-22.29
c-19.24,5.23-35.2,18.87-47.41,34.04L589.74,491.11z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 105 KiB

27649
public/assets/licenses.txt Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -244,6 +244,7 @@ func ChangeConfig(ctx *context.Context) {
cfg.Theme.CustomHomeTitle.DynKey(): marshalString(""),
cfg.Theme.CustomHomeTagline.DynKey(): marshalString(""),
cfg.Theme.PinnedOrgDisplayFormat.DynKey(): marshalString("condensed"),
cfg.Theme.ExploreOrgDisplayFormat.DynKey(): marshalString("list"),
}
_ = ctx.Req.ParseForm()

View File

@@ -104,6 +104,22 @@
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.explore_org_display_format"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.explore_org_display_format">
<div class="field">
<select class="ui dropdown" name="value">
<option value="list" {{if eq (.SystemConfig.Theme.ExploreOrgDisplayFormat.Value ctx) "list"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.explore_org_format_list"}}</option>
<option value="tiles" {{if eq (.SystemConfig.Theme.ExploreOrgDisplayFormat.Value ctx) "tiles"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.explore_org_format_tiles"}}</option>
</select>
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.explore_org_display_format_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.api_header_url"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">

View File

@@ -19,7 +19,7 @@
{{if .SystemConfig.Theme.CustomSiteIconURL.Value ctx}}
<link rel="icon" href="{{.SystemConfig.Theme.CustomSiteIconURL.Value ctx}}">
{{else}}
<link rel="icon" href="{{AssetUrlPrefix}}/img/favicon.svg" type="image/svg+xml">
<link rel="icon" href="{{AssetUrlPrefix}}/img/gitcaddy-icon.svg" type="image/svg+xml">
<link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
{{end}}
{{template "base/head_opengraph" .}}

View File

@@ -1,3 +1,28 @@
{{if and .PageIsExploreOrganizations (eq (.SystemConfig.Theme.ExploreOrgDisplayFormat.Value ctx) "tiles")}}
{{/* Tile Cards View for Organizations */}}
<div class="ui four doubling stackable cards">
{{range .Users}}
<a class="ui card" href="{{.HomeLink}}">
<div class="content tw-text-center">
<div class="tw-mb-3">
{{ctx.AvatarUtils.Avatar . 64 "tw-rounded"}}
</div>
<div class="header">{{.DisplayName}}</div>
{{if .Description}}
<div class="meta tw-mt-2">{{.Description}}</div>
{{end}}
</div>
</a>
{{else}}
<div class="ui card">
<div class="content">
{{ctx.Locale.Tr "search.no_results"}}
</div>
</div>
{{end}}
</div>
{{else}}
{{/* Default List View */}}
<div class="flex-list">
{{range .Users}}
<div class="flex-item tw-items-center">
@@ -31,3 +56,4 @@
</div>
{{end}}
</div>
{{end}}

View File

@@ -10,7 +10,7 @@
{{if .SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}
<img class="logo" width="220" height="220" src="{{.SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}" alt="{{ctx.Locale.Tr "logo"}}">
{{else}}
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}">
<img class="logo" width="220" height="220" src="{{AssetUrlPrefix}}/img/gitcaddy-logo.svg" alt="{{ctx.Locale.Tr "logo"}}">
{{end}}
<div class="hero">
<h1 class="ui icon header title tw-text-balance">

View File

@@ -38,7 +38,7 @@
{{if .Repo.IsPrivate}}{{svg "octicon-lock" 48}}{{else if .Repo.IsFork}}{{svg "octicon-repo-forked" 48}}{{else if .Repo.IsMirror}}{{svg "octicon-mirror" 48}}{{else}}{{svg "octicon-repo" 48}}{{end}}
</div>
{{end}}
<div class="header tw-mt-2">{{.Repo.Name}}</div>
<div class="header tw-mt-2">{{if .Repo.DisplayTitle}}{{.Repo.DisplayTitle}}{{else}}{{.Repo.Name}}{{end}}</div>
{{if .Repo.Description}}
<div class="description text grey tw-text-sm tw-mt-1">{{.Repo.Description}}</div>
{{end}}
@@ -83,7 +83,7 @@
{{if .Repo.IsPrivate}}{{svg "octicon-lock" 48}}{{else if .Repo.IsFork}}{{svg "octicon-repo-forked" 48}}{{else if .Repo.IsMirror}}{{svg "octicon-mirror" 48}}{{else}}{{svg "octicon-repo" 48}}{{end}}
</div>
{{end}}
<div class="header tw-mt-2">{{.Repo.Name}}</div>
<div class="header tw-mt-2">{{if .Repo.DisplayTitle}}{{.Repo.DisplayTitle}}{{else}}{{.Repo.Name}}{{end}}</div>
{{if .Repo.Description}}
<div class="description text grey tw-text-sm tw-mt-1">{{.Repo.Description}}</div>
{{end}}
@@ -172,7 +172,7 @@
</div>
{{end}}
<div class="tw-flex-1 tw-min-w-0">
<a href="{{.Repo.Link}}" class="tw-font-semibold">{{.Repo.Name}}</a>
<a href="{{.Repo.Link}}" class="tw-font-semibold">{{if .Repo.DisplayTitle}}{{.Repo.DisplayTitle}}{{else}}{{.Repo.Name}}{{end}}</a>
{{if .CommitMessage}}
<p class="text grey tw-text-sm tw-truncate tw-mb-0">{{.CommitMessage}}</p>
{{end}}

View File

@@ -63,7 +63,7 @@
{{if and .Repo.Owner (ne .Repo.OwnerID $.ContextUser.ID)}}
<span class="text grey">{{.Repo.Owner.Name}}/</span>
{{end}}
{{.Repo.Name}}
{{if .Repo.DisplayTitle}}{{.Repo.DisplayTitle}}{{else}}{{.Repo.Name}}{{end}}
</div>
{{if .Repo.Description}}
<div class="description text grey tw-text-sm tw-mt-1">{{.Repo.Description}}</div>