侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

HG 对账户的读写控制

2022-06-15 星期三 / 0 评论 / 0 点赞 / 88 阅读 / 1855 字

HG 可以根据 allow_push 和allow_read对账户进行控制, 但是用户认证, 我们往往在nginx 的auth basic来做. 这个时候, proxy 到hgweb 无法识别账户

HG 可以根据 allow_push 和allow_read对账户进行控制, 但是用户认证, 我们往往在nginx 的auth basic来做.

这个时候, proxy 到hgweb 无法识别账户.  但是我们可以用fcgi的方式进行设置.

以fcgi方式运行hg 需要额外 flup支持, 并且只有fcgi模式可选. 脚本如下:

#!/usr/bin/python## An example FastCGI script for use with flup, edit as necessary# Path to repo or hgweb config to serve (see 'hg help hgweb')config = "/var/hg/config/hgweb.config"# Uncomment and adjust if Mercurial is not installed system-wide# (consult "installed modules" path from 'hg debuginstall'):#import sys; sys.path.insert(0, "/path/to/python/lib")# Uncomment to send python tracebacks to the browser if an error occurs:#import cgitb; cgitb.enable()from mercurial import demandimport; demandimport.enable()from mercurial.hgweb import hgwebfrom flup.server.fcgi import WSGIServerapplication = hgweb(config)WSGIServer(application,bindAddress=('/var/hg/fcgi.sock')).run()#WSGIServer(application).run()

对应 nginx 配置:

    location / {
#auth_basic     "Restricted";
#auth_basic_user_file /etc/nginx/protected.pass;


#Use flup to support Fastcgi
        fastcgi_pass unix:/var/hg/fcgi.sock;
        include        /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME /;
        fastcgi_param REMOTE_USER $remote_user;
    }

则可以通过nginx 来做authenciation, 而hg 根据访问列表来做authorization 控制.

需要特别注意红色部分, 否则hg 的链接会计算错误.

.
.

广告 广告

评论区