Github

2016-11-22

github走proxy

1.首先开启代理,这种方式只支持https方式,ssh不行

2.给全局git-config配置代理

git config --global http.https://github.com.proxy socks5://127.0.0.1:50001

3.clone的时候使用proxy

git clone https://github.com/xxx.git -c http.proxy=socks5://127.0.0.1:50001

4.取消全局代理

git config --global --unset http.https://github.com.proxy

直接用git下载Gist ID内容

git clone git@github.com:cc13e0fcf2c348cc126f918e4a3917eb.git

github与七牛云持续集成

七牛云的CDN提供API刷新缓存服务,我们可以使用github的webhooks来触发刷新。

1.首先配置github的hook:

在项目里找到settings->Webhooks

设置:Payload URL 项为我们服务器的地址,然后保存

2.生成token,如下:

echo "/v2/tune/refresh" |openssl dgst -binary -hmac "用户SK" -sha1 |base64 | tr + - | tr / _

3.编写服务端脚本,来触发七牛API:

比如我用PHP来触发http://git.malu.me:

<?php
#七牛刷新缓存函数
function refresh_qiniu($path){
         $message = exec('curl -X POST -H "Authorization: QBox <用户AK>:<生成的token>" http://fusion.qiniuapi.com/v2/tune/refresh -d \''.json_encode($path).'\' -H \'Content-Type: application/json\' 2>&1');
         return $message;
}
$getin = file_get_contents("php://input");
#追加写入日志
file_put_contents('file.log',$getin, FILE_APPEND|LOCK_EX);
$getinarr = json_decode($getin);
$getinarr = $getinarr->commits[0];
$path = array();
#添加文章
if(!empty($getinarr->added) || !empty($getinarr->removed)){
   echo '刷page:';
   $path['urls']=array('http://git.malu.me','http://git.malu.me/index.html');
   $path['dirs']=array('http://git.malu.me/page/*');
   echo refresh_qiniu($path);
}
#修改文章
if(!empty($getinarr->modified)){
   echo '刷url:';
   foreach($getinarr->modified as $key=>$value){
      //echo $value;
      #匹配出文章名
      if(preg_match('/-\d\d-\d\d-(.*?)\.md/is', $value, $out)){
         //var_dump($out);
         echo $out[1];
         #对中文编码
         $renewurl = 'http://git.malu.me/'.urlencode($out[1]).'/';
         $path['urls']=array($renewurl);
         echo refresh_qiniu($path);
      }   
   }   
}

七牛对象存储301跳转

qrsctl redirect <Bucket> <Key> <RedirectUrl> [<RedirectCode>]