Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lyulumos/weekly-report-generator
GitHub 周报生成器
https://github.com/lyulumos/weekly-report-generator
Last synced: 11 days ago
JSON representation
GitHub 周报生成器
- Host: GitHub
- URL: https://github.com/lyulumos/weekly-report-generator
- Owner: LyuLumos
- License: gpl-3.0
- Created: 2022-07-19T18:11:43.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-08-09T15:45:45.000Z (over 2 years ago)
- Last Synced: 2023-02-26T15:26:01.525Z (almost 2 years ago)
- Language: Python
- Size: 27.3 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub 周报生成器
## About
基于 [GitHub GraphQL API](https://docs.github.com/en/graphql),帮你生成接近「平均水平」(doge) 的周报。## Usage
```bash
python wr.py --account_name 'GitHub Username' --token 'Your GitHub Token'
```使用 `python wr.py --help` 查看详细指令。
## Notes
- 暂不支持超过100个分支的仓库。
- 结果包括私有仓库,公开时请注意隐私安全。## Why use GraphQL API
[GraphQL API](https://docs.github.com/en/graphql) (GitHub API v4) 相比于 [REST API](https://docs.github.com/en/rest) 更为优雅,但是写起来也比后者复杂一些。
## GitLab
这里只给出一个基于 `git log` 的实现。将 `wr.sh` 放置在根目录,然后运行即可。类似于
```
├── Weekly-Report-Generator/
│ ├── .git/
│ └── ...
├── ftp/
│ ├── .git/
│ └── ...
├── ...
└── wr.sh
```接着执行指令
```bash
bash wr.sh
```需要保证的是,各仓库均已拉取各分支最新的更改,可使用如下代码拉取某个仓库所有分支的更改
```bash
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
````wr.sh` 中的 `--author` 代表是否指定提交人的信息,生成个人周报的时候可以取消注释。
**请注意**
GitLab 常规用户拥有的权限非常有限,很难使用 `GitLab GraphQL API` 去查询 commits,`GitLab REST API` 会是更好的选择。如有需要请自行查阅 [API Docs | GitLab](https://docs.gitlab.com/ee/api/)。
另一方面,如果你的仓库内容不涉密,可以使用 [GitLab CI](https://docs.gitlab.com/ee/ci/) 等工具,在 GitLab 上更新时同步更新到 GitHub 的私有仓库中,也可以达到同样的效果。
## Create a token
需要 `token` 才能与GitHub GraphQL 服务器通信。
`Settings` > `Developer settings` > `Personal access tokens` > `Generate new token`
生成时需要勾选的项
```
repo
repo_deployment
read:packages
read:org
read:public_key
read:repo_hook
user
read:discussion
read:enterprise
read:gpg_key
```## To-do
- [ ] Issues, PR, Repo Creation as contribution
## An Example
[一个生成的「半年」报](WeeklyReport.md)