配置-Git-用于-GitHub-Desktop

GitHub Desktop 使用您在本地 Git 配置中设置的电子邮件地址连接提交与 GitHub 或 GitHub Enterprise 帐户1.登录到 GitHub 或 GitHub Enterprise2.在任意页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)3.在左侧边栏中,单击 Emails(电子邮件)4.复制要用于本地 Git 配置的电子邮件地址5.返回到 GitHub Desktop6.在窗口的左上角,选择 File(文件) 菜单7.单击 Options(选项)8.在 Options(选项)窗口中,选择 Git9.在 Name(名称)字段中,键入要用于 Git 配置的名称10.在 Email(电子邮件) 字段中,粘贴从 GitHub 或 GitHub Enterprise 帐户设置中复制的电子邮件地址原文地址

October 5, 2019 · 1 min · jiezi

使用代码将github仓库里某个issue同步到CSDN博客上

我是一个懒惰的程序员。我在github仓库里用issue的方式写了很多分享文章,想同步到CSDN上。但是我又不想一篇篇手动复制粘贴,因此想用代码来实现自动化。 例子:https://github.com/i042416/Kn... 这是我的一个issue: 我使用下面这些nodejs代码实现从github 仓库issue到CSDN博客的拷贝: var config = require("./mcConfig");var request = require('request');var querystring = require('querystring');function createPost(oPost) { var url = "https://mp.csdn.net/mdeditor/saveArticle"; var oBody = { title: oPost.title, markdowncontent: oPost.body, tags:"Fiori", categories:"Fiori", channel:"14", type:"original", articleedittype:"1", content: oPost.body };var formData = querystring.stringify(oBody);var contentLength = formData.length;var createPostOptions = { url: url, method: "POST", headers: { "content-type": "application/x-www-form-urlencoded", "Content-Length": contentLength, "origin" :"https://mp.csdn.net", "referer" :"https://mp.csdn.net/mdeditor", "User-Agent" :"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36", "cookie": config.cookie }, body: formData}; return new Promise(function(resolve,reject){ var requestC = request.defaults({jar: true}); console.log("Step1: create post via url: " url ); requestC(createPostOptions,function(error,response,body){ if(error){ reject(error); } console.log("response: " body); resolve(body); }); });}module.exports = createPost;var request = require('request');function getIssue(issueNumber) { var url = "https://api.github.com/repos/i042416/KnowlegeRepository/issues/" issueNumber; var getIssueOptions = { url: url, method: "GET", json:true, headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36" } }; return new Promise(function(resolve,reject){ var requestC = request.defaults({jar: true}); console.log("Step1: get issue detail via url: " url ); requestC(getIssueOptions,function(error,response,body){ if(error){ console.log("error occurred: " error); reject(error); } console.log("title:" body.title); console.log("body: " body.body); for( var i = 0; i < body.labels.length; i ){ console.log("label: " body.labels[i].name); } resolve(body); }); });}module.exports = getIssue;var readIssue = require("./readIssueMod");var createPost = require("./createPostMod");readIssue(2215).then(createPost).catch((error)=>{console.log("error: " error)});执行结果: ...

May 25, 2019 · 1 min · jiezi

一个简单的例子学会github-repository的webhook

github的webhook是个有用的功能,允许开发人员指定一个服务器的url。当开发者对github仓库施加操作,比如提交代码,创建issue时,github网站会自动向该url指定的服务器推送事件。借助webhook,我们可以实现很多自动化流程。比如部署一个应用在AWS上,本地提交代码后,github网站自动触发webhook,调用AWS上应用的逻辑,在AWS上将本地提交的最新代码用git pull抓取到AWS上并重新部署。 下面我们通过一个具体的例子来学习github webhook的用法。 新建一个github仓库,点击Settings链接: 在Payload url里指定一个应用的url,该url对应的应用监听github网站推送的事件。 Content Type指定成application/json便于我们在nodejs应用里解析payload。 创建后点Add webhook保存,github会发送一个json paload到这个url指定的应用上。 在Recent Deliveries里查看负载明细: 负载明细如下: 我们现在来做个实验,把webhook指定的url对应的应用设置一个断点,然后在github仓库里新建一个issue: 断点立即触发了。 从调试器里能观察到这个create issue事件的所有负载。 我部署在AWS上监听github webhook框架推送github repository发生变化的事件的应用源代码,可以从我的github上获取:https://github.com/i042416/we... 代码很短,我的同事Haytham写的: var http = require('http')var createHandler = require('github-webhook-handler')var handler = createHandler({ path: '/push', secret: 'dis-koi' }) function run_cmd(cmd, args, callback) { var spawn = require('child_process').spawn; var child = spawn(cmd, args); var resp = ""; child.stdout.on('data', function(buffer) { resp += buffer.toString(); }); child.stdout.on('end', function() { callback (resp) });}http.createServer(function (req, res) { handler(req, res, function (err) { res.statusCode = 404 res.end('no such location') })}).listen(8083) handler.on('error', function (err) { console.error('Error:', err.message);}) handler.on('push', function (event) { switch(event.payload.repository.name) { case 'githubHook': //this push event is from my persional github account, as SAP github.tool's github hook do not work, so I use this one to test push event console.log("reveive a push event from githubHook"); run_cmd('sh', ['./webshop.sh'], function(text){ console.log(text) }); break; case 'frontend-web': //push event from frontend-web console.log("reveive a push event from frontend-web"); run_cmd('sh', ['./webshop.sh'], function(text){ console.log(text) }); break; case 'backend-ms': //push event from backenf-ms console.log("reveive a push event from backend-ms"); run_cmd('sh', ['./backend_ms.sh'], function(text){ console.log(text) }); break; }}) handler.on('issues', function (event) { console.log('Received an issue event for %s action=%s: #%d %s', event.payload.repository.name, event.payload.action, event.payload.issue.number, event.payload.issue.title);})要获取更多Jerry的原创文章,请关注公众号"汪子熙": ...

May 9, 2019 · 1 min · jiezi

什么是Github的元数据metadata以及如何备份github上的数据

github被微软收购后,提供的工具种类是越来越多了,大大提高了我们程序员日常工作的效率。今天我偶然发现,我们可以一键把自己整个github上的数据,不仅仅是代码,还包含每个仓库里创建的issue都轻松下载到本地进行备份。点这个setting按钮:点Account超链接:新建一个export作业 - 导出作业。过了一会,我们github注册的邮箱地址会收到一封邮件,点击Download export就可以下载一个压缩包到本地:我这个账号的所有github数据不export不知道,一export才吓一跳,竟然有1.7个G那么大。下载下来的文件是一个巨大的压缩包,解开之后是这样子的:随便看几个文件的内容。比如这个commit_comment的json文件:实际就是指的这个commit:这是我github上一个仓库的issue的明细:通过上图的url打开这个issue,发现内容和我通过工具下载的内容一致:我所有上传到github issue里的图片也会通过附件的方式被下载到本地,存储在这些文件夹里:希望这个工具对大家备份自己在github网站上的数据有所帮助。要获取更多Jerry的原创文章,请关注公众号"汪子熙":

February 3, 2019 · 1 min · jiezi