面板按此用户名列出你可添加同步的 Gitea 仓库(本地 Gitea 地址 __GITEAURL__)。
- 密码只保存在 NAS 本地,仅用于读取私有仓库;仓库全部公开可留空,留空保存可清除已存密码。
-
-
-
GitHub 上不存在同名仓库时自动创建
-
需要当前账号已配置 Token;关闭后添加不存在的仓库会提示手动创建
-
+
+
+
+
-
-
-
-
+
本地 Gitea 地址 __GITEAURL__;密码只保存在 NAS 本地,仅用于读取私有仓库。
+
+
+
+
+
GitHub 上不存在同名仓库时自动创建
+
需要当前账号已配置 Token;关闭后添加不存在的仓库会提示手动创建
+
+
+
@@ -967,26 +1002,49 @@ async function refresh(){
document.getElementById('giteaPass').placeholder=s.gitea_pass_set
?'Gitea 密码(已设置;留空保存可清除)':'Gitea 密码(私有仓库必填)';
document.getElementById('swAuto').checked=!!s.auto_create;
- document.getElementById('syncInterval').value=s.interval||10;
- document.getElementById('syncInterval').min=s.min_interval||5;
- document.getElementById('syncInterval').max=s.max_interval||86400;
+ const iv=document.getElementById('syncInterval');
+ iv.value=s.interval||10;iv.min=s.min_interval||5;iv.max=s.max_interval||86400;
document.getElementById('intervalTip').textContent='每隔 '+fmtInterval(s.interval||10)+' 检查一次 Gitea 是否有新提交('+(s.min_interval||5)+'~'+(s.max_interval||86400)+' 秒),改完立即生效';
+ const cur=(s.accounts||[]).find(a=>a.id===s.active);
+ // 当前账号无 Token 时,顶部提示为什么不能自动建库、怎么解锁
+ document.getElementById('accBanner').innerHTML=(cur&&!cur.has_token)
+ ?`
⚠️当前账号「${esc(cur.label)}」通过 SSH 私钥推送,暂时无法自动创建仓库。
+
GitHub 的创建仓库接口只认 Token 认证,SSH 私钥只能推送已存在的仓库——这是 GitHub 的限制,不是软件没做。
+
给这个账号配上 Token 即可解锁(推送也会改走 HTTPS,更稳更快):
+
`
+ :'';
document.getElementById('tbAcc').innerHTML=(s.accounts||[]).map(a=>{
- const cur=a.id===s.active;
- const ops=cur
- ? '
当前使用'
+ const isCur=a.id===s.active;
+ const ops=isCur
+ ? '
当前使用'
: `
`;
const verify=a.has_token?`
`:'';
- const del=a.has_token||(s.accounts||[]).length>1
+ const upgrade=a.has_token?'':`
`;
+ const del=(a.has_token||(s.accounts||[]).length>1)
? `
`:'';
- return `
| ${esc(a.label)} | ${esc(a.gh_user)} | `
+ const method=a.has_token
+ ?'Token · HTTPS'
+ :'SSH 私钥';
+ const create=a.has_token
+ ?`${a.private?'私有':'公开'}`
+ :'需 Token';
+ return `
| ${esc(a.label)} | ${esc(a.gh_user)} | `
+`${esc(a.token||'(未配置)')} | `
- +`${a.has_token?'Token(HTTPS)':'SSH 私钥'} | `
- +`${a.has_token?(a.private?'私有':'公开'):'不支持'} | `
- +`${ops} ${verify} ${del} |
`;
+ +`
${method} | `
+ +`
${create} | `
+ +`
${ops} ${verify} ${upgrade} ${del} | `;
}).join('')||'
| 暂无账号 |
';
}catch(e){showMsg('msgAcc','刷新失败: '+e,false)}
}
+function upgradeAcc(id,ghUser){
+ // 预填「添加/更新账号」表单并滚动过去,引导给旧账号补 Token
+ document.getElementById('accLabel').value='';
+ document.getElementById('accUser').value=ghUser||'';
+ document.getElementById('accToken').value='';
+ document.getElementById('accToken').focus();
+ document.getElementById('accToken').scrollIntoView({behavior:'smooth',block:'center'});
+ showMsg('msgAcc','已为你填好用户名 '+ghUser+',把 Token 粘贴进去点「验证并添加」即可(会更新原账号)',true);
+}
async function addAccount(){
const label=document.getElementById('accLabel').value.trim();
const gh_user=document.getElementById('accUser').value.trim();
diff --git a/GiteaHubSync/manifest b/GiteaHubSync/manifest
index ef752d6..029dbe3 100644
--- a/GiteaHubSync/manifest
+++ b/GiteaHubSync/manifest
@@ -1,5 +1,5 @@
appname = GiteaHubSync
-version = 1.1.1
+version = 1.1.2
display_name = Gitea→GitHub 同步助手
desc = 每次推送到飞牛 Gitea 的代码,10 秒内自动镜像到 GitHub 的 7 个私有仓库。内置控制面板:自动同步开关、立即同步、仓库状态、同步日志,一键打开 Gitea。数据全部保存在 NAS 本地。
platform = all