[TOC]
0x00 Github API使用 如果自己写的github爬虫没有特色或者没有很高的效率不如使用Github的API,数据获取可以来得快一些。
支持的验证访问方式有如下几种:
未认证 (最高每小时60次访问请求限制)
使用token认证 (每小时5000次的请求)
使用auth认证
API token申请 Settings > Developer settings > Personal access tokens > Generate new token
,选择您需要的权限,然后生成新的token;
weiyigeek.top-settings-tokens
Github API使用说明
[TOC]
0x00 Github API使用 如果自己写的github爬虫没有特色或者没有很高的效率不如使用Github的API,数据获取可以来得快一些。
支持的验证访问方式有如下几种:
未认证 (最高每小时60次访问请求限制)
使用token认证 (每小时5000次的请求)
使用auth认证
API token申请 Settings > Developer settings > Personal access tokens > Generate new token
,选择您需要的权限,然后生成新的token;
weiyigeek.top-settings-tokens
Github API使用说明 1 2 3 4 5 6 7 8 9 10 11 12 https://api.github.com/rate_limit?access_token=a2c312b7523daf22b677434a722bb2ced9b222dc curl -v -H "Authorization: a2c312b7523daf22b677434a722bb2ced9b222dc" https://api.github.com/user/issues https://api.github.com/users/weiyigeek https://api.github.com/users/weiyigeek/{followers,following,fork,starred,repos} https://api.github.com/search/code?q=keyword&sort=indexed&per_page=100&page=1
0x01 学习遇到配置 仓库建立及初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $ git config --global user.email "self@weiyigeek.top" $ git config --global user.name "WeiyiGeek" echo "# SecOpsDev" >> README.mdgit init git add README.md git commit -m "first commit" git remote add origin git@github.com:WeiyiGeek/SecOpsDev.git git push -u origin master git remote add origin git@github.com:WeiyiGeek/SecOpsDev.git git push -u origin master
Github Page 自定义域名 描述:利用自定义的域名通过域名提供商来绑定github page 或 gitee page;
Github Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Settings > Options > GitHub Pages 正在 Ping weiyigeek.github.io [185.199.111.153] 具有 32 字节的数据: 来自 185.199.111.153 的回复: 字节=32 时间=149ms TTL=49 @ CNAME 默认 www.weiyigeek.github.io. www CNAME 默认 weiyigeek.github.io. $dig www.weiyigeek.github.io +noall +answerDiG 9.11.3-1ubuntu1.7-Ubuntu www.weiyigeek.github.io +noall +answer global options: +cmd www.weiyigeek.github.io. 600 IN CNAME weiyigeek.github.io. weiyigeek.github.io. 2458 IN A 185.199.111.153 weiyigeek.github.io. 2458 IN A 185.199.109.153 weiyigeek.github.io. 2458 IN A 185.199.110.153 weiyigeek.github.io. 2458 IN A 185.199.108.153
weiyigeek.top-腾讯云域名指向github
Gitee Pages 描述:由于Gitee是商业与免费版本一起的,只有付费才能使用git pages的自定义域名指向;但是我们还是有其他办法来解决的;1 2 blog.weiyigeek.github.io -> weiyigeek.gitee.io.
weiyigeek.top-设置完成
参考文档:
Github 仓库信息显示 描述:在网页中显示您的github仓库中项目的start/wathc/fork等等数量; github buttons:https://ghbtns.com/
基础示例:1 2 3 4 5 6 7 8 9 10 11 https://ghbtns.com/github-btn.html?user=weiyigeek&repo=weiyigeek.github.io&type =star&count=true <iframe src="https://ghbtns.com/github-btn.html?user=weiyigeek&repo=weiyigeek.github.io&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px" ></iframe> <iframe src="https://ghbtns.com/github-btn.html?user=weiyigeek&repo=weiyigeek.github.io&type=watch&count=true&v=2" frameborder="0" scrolling="0" width="170px" height="20px" ></iframe> <iframe src="https://ghbtns.com/github-btn.html?user=twbs&repo=bootstrap&type=fork&count=true" frameborder="0" scrolling="0" width="170px" height="20px" ></iframe>
weiyigeek.top-效果图
Github 开源项目PR提交 温馨提示:此处实践环境依赖于git工具, 若你没有安装git或者不了解的git进行代码提交过程的朋友,可以参考博主学习【git系列笔记】汇总, 关注 WeiyiGeek 公众号回复【Git学习之路汇总
】即可获得学习资料:https://www.weiyigeek.top/wechat.html?key=Git学习之路汇总
如何在 Github 上给开源项目提交 PR?
Pull Request (俗称PR): 意思是请求主仓库的所有者从你的仓库中拉取代码合并到主仓库中。 在 GitHub 中如果想参与开源项目开发时,通常会采用进行PR提交方式,当项目管理员收到你提交的PR后,他会对你提交的代码进行审(即查看你写的代码,并考虑其中写的好的和写的不好的地方,然后给你提出意见和建议), 当我们我们的代码通过了审查,它就会被合并到主仓库中,这时候我们的一次代码贡献就算是完成啦!
提交 PR 流程简述: 我们在使用开源项目的过程中,发现一个新的需求,但是开源项目不支持,这时我们就可以在开源项目的基础上实现这个需求,向开源项目提交 PR,让开源项目考虑后续版本是否接纳该需求, 提交 PR 是参与开源项目,为开源项目做贡献的起点。 提交 PR 的过程包括:fork 开源项目到自己的 Github 账户下,clone 项目到自己的本地仓库,建立本地仓库到远程仓库的 remote 链接,新建本地分支,修改代码,提交代码到自己的 Github 远程仓库,新建 PR。
提交 PR 详细步骤
描述: 此处我们向 Github上 how-does-MobaXterm-encrypt-password 开源项目 (它是一个解密MobaXterm存储的Session的工具
) 提交 PR 为例,进行讲解我的 Github的仓库地址 ( https://github.com/weiyigeek ) 欢迎大家来访哟!
步骤 01.浏览器访问Github上how-does-MobaXterm-encrypt-password开源项目( https://github.com/HyperSine/how-does-MobaXterm-encrypt-password) , 点击 Fork 复制项目到自己 Github 仓库之中, 点击确定后稍等片刻,此项目便会出现在自己的仓库中。
weiyigeek.top-Fork开源项目图
步骤 02.下载 Fork 复制到自己 Github 仓库中的该 how-does-MobaXterm-encrypt-password 开源项目, 你可采用 Https 或者 ssh 方式拉取,此处我已经使用ssh公钥进行认证,所以采用SSH方式进行clone项目到本地的 github/opensource/ 目录中 。
1 2 3 4 5 6 7 $ cd github/opensource/ $ git clone git@github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git $ git config --global --list user.email=master@weiyigeek.top user.name=WeiyiGeek core.quotepath=false
步骤 03.查看项目remote 远程链接以及添加上游仓库连接(开源项目仓库),此处上游指的是一开始 fork 的那个项目源。1 2 3 4 5 6 7 8 9 10 11 12 $ git remote -v origin git@github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git (fetch) origin git@github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git (push) $ git remote add upstream https://github.com/HyperSine/how-does-MobaXterm-encrypt-password $ git remote -v origin git@github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git (fetch) origin git@github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git (push) upstream https://github.com/HyperSine/how-does-MobaXterm-encrypt-password.git (fetch) upstream https://github.com/HyperSine/how-does-MobaXterm-encrypt-password.git (push)
步骤 04.创建本地 dev-pr 分支, 通常测试功能的代码会在测试分支上,当功能成熟后便可Merge到Master分支上(后续会讲解)1 2 3 $ git checkout -b dev-pr Switched to a new branch 'dev-pr'
步骤 05.切换分支后我们便可以开始开源项目代码修改了,然后提交修改的代码到本地分支,推送本地分支到 Github 远程仓库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ git add . $ git commit -m "如果在执行python ShowMobaXterm.py weiyigeek 出现如下错误时,请将第 232 与 231 行的 ConnHostname.encode('ansi'), ConnUsername.encode('ansi') 删除, 如果有中文编码,可以将 encode('ansi') => decode(\"utf8\",\"ignore\")" [dev-pr 4d1c83c] 如果在执行python ShowMobaXterm.py weiyigeek 出现如下错......,可以将 encode('ansi' ) => decode(utf8,ignore) 1 file changed, 7 insertions(+), 9 deletions(-) $ git push origin dev-pr Enumerating objects: 7, done . ...... To github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git * [new branch] dev-pr -> dev-pr
步骤 06.在自己的远程仓库便能看刚才push上去的dev-pr分支, 此时点击项目仓库中pull request
选项卡,然后再点击 New pull request,
,进行创建PR。
步骤 07.当上一步完成后,将显示如下页面,此处需要注意的是 compare 处选择刚才提交上来的dev-pr
分支, 然后点击 Create pull request.
weiyigeek.top-Create pull request图
步骤 08.填写本次提交PR的标题,以及建议的修改或新增的功能点等,完毕后提交(Create pull request
)就 OK 啦。
weiyigeek.top-PR提交描述图
步骤 09.提交PR完毕后,我们将会在原开源项目仓库的pull request
查看到我们提交的 PR 代码情况了。
weiyigeek.top-在源项目中查看提交的PR图
步骤 10.上述演示在dev-pr分支中进行修改并提交了PR,当PR审核通过或者内部测试无问题时,此时将可以把其合并到 master 分支上,操作如下然后在FORK的项目中可以看到已经合并到主分支了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 WeiyiGeek@WeiyiGeek MINGW64 /e/github/opensource/how-does-MobaXterm -encrypt-password (dev-pr) $ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master' . WeiyiGeek@WeiyiGeek MINGW64 /e/github/opensource/how-does-MobaXterm-encrypt-password (master) $ git merge dev-pr Updating 462cd00..4d1c83c Fast-forward python3/ShowMobaXterm.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) WeiyiGeek@WeiyiGeek MINGW64 /e/github/opensource/how-does-MobaXterm-encrypt-password (master) $ git push Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 To github.com:WeiyiGeek/how-does-MobaXterm-encrypt-password.git 462cd00..4d1c83c master -> master
weiyigeek.top-分支合并图
补充说明: 关于check不通过的问题如何解决?
描述: github 有代码自己编译和 check 机制,在你提交 pr 的时候,项目可能已经有了比较大的变更(每天都有世界各地的 coder 提 pr),而你没有将分支保持与项目同步,所以有可能会导致 check 失败,pr 被无视。 此时我们前面添加的upstream
上游地址作用就展现出来了,他可以用于远程代码同步,所以每次提交 pr 前,都要先从做代码同步。
过程如下:
1 2 3 4 5 6 7 8 git fetch upstream git rebase upstream/develop git push origin develop
更详细的参与开源项目的开放,建议大家可以参考此篇文章[^pr]
[^pr]: 如何参与开源项目 - 细说 GitHub 上的 PR 全过程: https://mp.weixin.qq.com/s/mY-1mDFvBkyHGBgI9KpGOA