+ {{ actor }}
+ {{ label }}
+
{{ activity.summary }}
+ +加载中…
+{{ error }}
+暂无活动
+
+ {{ actor }}
+ {{ label }}
+
{{ activity.summary }}
+ +{{ description }}
+没有匹配的仓库
+{{ error }}
+暂无快速回复
+ + +需要仓库管理员权限
+ + +{{ error }}
+ + + +暂无部署密钥
+ +暂无语言统计
+{{ error }}
+正在加载…
+ + + + +仓库为空,或该分支还没有提交。
+ ++ {{ archived ? '解除归档后仓库恢复读写。' : '归档后仓库将变为只读,无法推送。' }} +
+{{ archiveError }}
+ +
+
+ 用户「{{ resetPassword.username }}」的新密码(仅显示一次,请立即保存):
+ {{ resetPassword.password }}
+
+
+
+
{{ usersState.error }}
+加载中…
+| ID | +用户名 | +邮箱 | +管理员 | +状态 | +2FA | +创建时间 | +操作 | +
|---|---|---|---|---|---|---|---|
| {{ u.id }} | +{{ u.username }} | +{{ u.email || '-' }} | ++ + {{ u.is_admin ? '是' : '否' }} + + | ++ + {{ u.is_active ? '启用' : '已禁用' }} + + | ++ + {{ u.totp_enabled ? '已启用' : '未启用' }} + + | +{{ formatTime(u.created_at) }} | ++ + + + | +
暂无用户
+
+ 彻底删除用户请使用 CLI:gitli admin user delete <username> --purge
+
{{ reposState.error }}
+加载中…
+| ID | +名称 | +所有者 ID | +私有 | +已归档 | +已删除 | +大小 | +默认分支 | +操作 | +
|---|---|---|---|---|---|---|---|---|
| {{ rp.id }} | +{{ rp.name }} | +{{ rp.owner_id }} | +{{ rp.is_private ? '是' : '否' }} | ++ + {{ rp.archived ? '已归档' : '否' }} + + | ++ + {{ rp.deleted ? '是' : '否' }} + + | +{{ formatSize(rp.size_kb) }} | +{{ rp.default_branch || '-' }} | ++ + | +
暂无仓库
++ 按仓库 ID 永久删除仓库及其数据,此操作不可恢复(CLI 专属操作)。 +
+{{ purgeError }}
+{{ purgeOk }}
+ +{{ orgsState.error }}
+加载中…
+| ID | +名称 | +显示名称 | +所有者 ID | +描述 | +
|---|---|---|---|---|
| {{ o.ID }} | +{{ o.Name }} | +{{ o.DisplayName || '-' }} | +{{ o.OwnerID }} | +{{ o.Description || '-' }} | +
暂无组织
+{{ statsError }}
+加载中…
+ +运行时间:{{ formatUptime(stats.uptime_seconds) }}
+ +暂无数据
+ +{{ systemError }}
+加载中…
+暂无数据
+{{ runnersError }}
+加载中…
+| runner_id | +名称 | +标签 | +状态 | +最后在线 | +版本 | +系统 / 架构 | +操作 | +
|---|---|---|---|---|---|---|---|
| {{ r.runner_id }} | +{{ r.name || '-' }} | ++ + {{ l }} + + - + | ++ {{ runnerStatusLabel(r.status) }} + | +{{ formatTime(r.last_seen_at) }} | +{{ r.version || '-' }} | +{{ r.os || '-' }} / {{ r.arch || '-' }} | ++ + + + | +
暂无 Runner
+{{ archiveMessage }}
+{{ archiveError }}
+ +{{ auditError }}
+加载中…
+ +| 时间 | +事件 | +用户ID | +目标 | +结果 | +IP | +
|---|---|---|---|---|---|
| {{ auditTime(log) }} | +{{ log.event || '-' }} | +{{ log.actor_id ?? '-' }} | +{{ auditTargetDisplay(log) }} | ++ {{ resultLabel(log.result) }} + | +{{ log.actor_ip || '-' }} | +
|
+
+
+
+
+
+
+ 旧值 old_value
+
+ {{ prettyValue(log.old_value) }}
+ -
+
+ 新值 new_value
+
+ {{ prettyValue(log.new_value) }}
+ -
+ |
+ |||||
暂无数据
+ +{{ auditStatsError }}
+加载中…
+ +暂无数据
+暂无数据
+暂无数据
+{{ alertRulesError }}
+加载中…
+| 名称 | +事件 | +阈值 | +窗口(秒) | +通道 | +目标 | +状态 | +操作 | +
|---|---|---|---|---|---|---|---|
| {{ rule.name }} | +{{ rule.event }} | +{{ rule.threshold }} | +{{ rule.window_seconds }} | +{{ rule.channel }} | +{{ rule.target || '-' }} | ++ + {{ rule.enabled ? '启用' : '停用' }} + + | ++ + | +
暂无告警规则
+ + +{{ alertFormError }}
+暂无数据
+还没有任何动态
+创建仓库、推送代码或提交工单后,这里会显示你的活动记录。
+{{ notifications.error }}
+{{ error }}
+加载中...
+没有找到公开仓库
+{{ r.description || '暂无描述' }}
+ +已经到底啦
+{{ trendingError }}
+加载中...
+没有找到趋势仓库
+{{ r.description || '暂无描述' }}
+ +{{ topicsError }}
+加载中...
+暂无话题
+{{ topicReposError }}
+加载中...
+该话题下暂无仓库
+{{ r.description || '暂无描述' }}
+ +{{ error }}
+{{ disabledReason }}
++ 支持 SSH/HTTP Git 协议、Issue/PR、TOTP、细粒度 PAT、 + 包管理(NPM/Docker/Go/Maven)、CI 等。AGPL-3.0 开源。 +
+技术栈:Go 1.22+ / Vue 3 / SQLite / MySQL / PostgreSQL / Docker / OCI
+gitli 是开源项目,采用 AGPL-3.0 许可证。
+ +{{ error }}
+{{ error }}
+{{ disabledReason }}
+{{ error }}
+{{ disabledReason }}
+{{ error }}
+加载中…
+ ++ 应用 {{ info.app?.name || info.app?.client_id || clientId }} 请求访问你的账户。 +
+客户端 ID:{{ info.app?.client_id || clientId }}
回调地址:{{ info.redirect_uri }}
{{ s }}{{ org }}
{{ error }}
+{{ listError }}
+{{ ok }}
+ ++ 启用后,只有白名单中列出的 CIDR 才能访问该组织。请先确认你的当前 IP 已加入白名单,否则可能被锁定在外。 +
+ +加载中…
+ +| CIDR | +说明 | +状态 | +创建时间 | +操作 | +
|---|---|---|---|---|
{{ r.cidr }} |
+ {{ r.description || '-' }} | ++ + {{ r.enabled ? '启用' : '停用' }} + + | +{{ fmtTime(r.created_at) }} | ++ + | +
暂无规则
+ +{{ formError }}
+ + + + +{{ disabledReason }}
+{{ error }}
+此仓库已归档,只读
+ +{{ issuesError }}
+暂无工单
+{{ pullsError }}
+暂无合并请求
+{{ workflowsError }}
+暂无工作流任务
+ +{{ logError }}
+{{ logLines.join('\n') }}
+ {{ dependenciesError }}
+{{ dependencyMessage }}
+ ++ 未发现依赖清单(支持 go.mod / package.json / pom.xml / requirements.txt) +
+{{ projectsError }}
+ + + +{{ boardError }}
++ 暂无项目,请先创建 +
+ +{{ discussionsError }}
+暂无讨论
+ +{{ discussionDetailError }}
+暂无评论
+ + + +「{{ activeTab }}」即将推出
+language:go
+ is:open
+ author:alice
+ org:acme
+ stars:>100
+ {{ error }}
+搜索中...
+输入关键词开始搜索
+没有找到与「{{ query }}」相关的结果
+ + +{{ r.description || '暂无描述' }}
+ +创建第一个管理员账号。完成后本页面将自动锁定。
+ +{{ error }}
+{{ disabledReason }}
+加载中...
+{{ error }}
+ + +{{ profile.user.full_name }}
+{{ profile.user.bio }}
+{{ followError }}
+ + + +暂无仓库
+{{ r.Description || '暂无描述' }}
+ +加载中...
+{{ listError }}
++ 暂无{{ tab === 'followers' ? '粉丝' : '关注' }} +
+{{ profileError }}
+{{ profileOk }}
+ + + + + + + +{{ pwError }}
+{{ pwOk }}
+ + + + +{{ keysError }}
+加载中…
+ +| 标题 | +指纹 | +认证 | +签名 | +操作 | +
|---|---|---|---|---|
| {{ keyTitle(k) }} | +{{ keyFingerprint(k) }} |
+ + + {{ keyCanAuth(k) ? '✅' : '❌' }} + + | ++ + {{ keyCanSign(k) ? '✅' : '❌' }} + + | ++ + + | +
暂无 SSH 密钥
+ +{{ gpgError }}
+加载中…
+ +| 标题 | +指纹 | +上传时间 | +操作 | +
|---|---|---|---|
| {{ gpgTitle(g) }} | +{{ gpgFingerprint(g) }} |
+ {{ fmtTime(g.CreatedAt ?? g.created_at) }} | ++ + | +
暂无 GPG 密钥
+ +{{ tokensError }}
+请立即复制并妥善保存,令牌仅显示这一次。
+{{ createdToken }}
+
+ 加载中…
+ +暂无数据
++ 应用「{{ createdAppName }}」已创建。Client Secret 仅显示这一次,请立即复制保存。 +
+{{ createdSecret }}
+
+ {{ oauthAppsError }}
+加载中…
+ +| 应用 | +回调地址 / 权限 | +操作 | +
|---|---|---|
+ {{ a.name }}
+ {{ a.client_id }}创建于 {{ fmtTime(a.created_at) }}
+ |
+
+
+
+ {{ u }}
+
+ {{ s }}
+
+ |
+ + + | +
暂无 OAuth 应用
+ +{{ oauthAuthsError }}
+加载中…
+ +| 应用 | +权限 | +授权时间 | +操作 | +
|---|---|---|---|
+ {{ g.app_name }}
+ {{ g.client_id }} |
+ + {{ s }} + | +{{ fmtTime(g.created_at) }} | ++ + | +
暂无已授权应用
+{{ totpError }}
+{{ totpOk }}
++ 当前状态: + {{ auth.user?.totp_enabled ? '已启用' : '未启用' }} +
+ + + + + + + + + + + + + + + + + +恢复码仅显示这一次,请立即保存:
+{{ c }}{{ deletedError }}
+{{ deletedOk }}
+加载中…
+ +| 仓库名称 | +删除时间 | +操作 | +
|---|---|---|
| {{ r.name }} | +{{ fmtTime(r.deleted_at) }} | ++ 已删除 + + | +
暂无已删除的仓库
+切换后立即生效并保存。
+ +加载中…
+{{ notifError }}
+{{ notifOk }}
+ +{{ logsError }}
+ +加载中…
+ +| 时间 | +事件 | +结果 | +目标 | +IP | +
|---|---|---|---|---|
| {{ fmtTime(l.created_at) }} | +{{ l.event }} | ++ {{ l.result }} + | ++ + {{ l.target_type ? l.target_type + ' · ' : '' }}{{ l.target_name || '-' }} + + - + | +{{ l.actor_ip || '-' }} |
+
暂无活动记录
+{{ sessionsError }}
+{{ sessionsOk }}
+加载中…
+ +| IP | +User-Agent | +创建时间 | +最后活跃 | +过期时间 | +操作 | +
|---|---|---|---|---|---|
{{ s.ip || '-' }} |
+ {{ truncateUA(s.user_agent) }} | +{{ fmtTime(s.created_at) }} | +{{ fmtTime(s.last_seen_at) }} | +{{ fmtTime(s.expires_at) }} | ++ 当前设备 + + | +
暂无会话
+{{ editTarget ? keyTitle(editTarget) : '' }}
+{{ editError }}
+ + +
{{ c.body }}
+