GitHubアップローダの追加機能について考えてみた
欲を言えばいくらでも出てくる。
前回まで
http://ytyaru.hatenablog.com/entry/2017/08/07/000000
http://ytyaru.hatenablog.com/entry/2017/08/08/000000
ひととおりの機能は実装できた。
やってみたいこと
A. 機能の拡張
- Issue操作
- PullRequest操作
- ReadMe.mdをリアルタイムでプレビューしながら編集したい
- masterブランチ以外も操作できるようにしたい
- ドキュメント画像だけをいれるimgブランチを作成したい
- 集計と分析を充実させたい
- 可視化したい
- GitHubのcontributions(草)を最近1年間分だけでなく累計分すべて作成したい
- 集計は累計だけでなく最近(24時間, 1週間, 1ヶ月, 1年)などの区分でも表示したい
- ランキングはコードのbyteだけでなくスター数、Fork数、ウォッチ数でも順位付けしたい(私の現状はすべてゼロだが)
- 集計と分析をブログでも閲覧できるようにしたい
B. 自動化
- プロジェクト一式テンプレ自動生成
- LICENSE.txt
- ReadMe.md
- .gitignore
- ライセンス表記の半自動化
- ブログ記事の半自動化
- 一括リポジトリ編集
- 一括リポジトリ作成,削除
- 編集があるなら作成と削除も欲しい
- バックアップや、ほかのGitHubライクのサービスへ引っ越しなどのときに使うか
C. 使いやすさの向上
このスクリプトを利用するまでの環境構築がとても大変。その手順を自動化したい。
GitHub連携
- AccessTokenの自動生成
- リモートリポジトリ生成に必要な
repo
またはpublic_repo
のscopesを持ったAccessTokenの存在確認と新規作成 - リモートリポジトリ削除に必要な
delete_repo
のscopesを持ったAccessTokenの存在確認と新規作成
- リモートリポジトリ生成に必要な
- SSH鍵の作成
~/.ssh/config
ファイルの作成と編集- SSH秘密鍵のGitHubアップロード
DB作成
- 必要なDBの作成を自動化したい
- アカウント情報をDBに登録するとき、対話形式で入力できるようにしたい(SQL文でなく)
- すでに作成済みのリポジトリ情報を一括取得してDBに挿入したい
- GitHubリポジトリ情報を取得しローカルDBへマージする - やってみるでスクリプトを作成したが、アップローダと連動させたい
CUI対話
- アップロードするとき、GitHubユーザを選択できるようにしたい(デフォルトユーザも決めたい)
D. 永続性の向上
E. ソースコード検索
F. GraphQL
http://ytyaru.hatenablog.com/entry/GitHubReposList
WebでAPIを使って一覧や集計を表示するとき、GraphQL形式でリクエストするようにしたい。試してみたい。
- WebAPI仕様変更によるコード修正必要の緩和
- ページネーションによる複数回リクエストでのサーバ負荷軽減とリクエスト上限緩和
GitHub GraphQL API | GitHub Developer Guide
RESTの次のパラダイムはGraphQLか - Qiita
GraphQLのドキュメント「Getting Started」【日本語翻訳】 | maesblog
ReactとApolloを使ってGithub GraphQL APIを試してみる - Qiita
GraphQLによるAPI発行に変更する
所感
例によって、やりたいことが多すぎる。
GitHubという特定の、しかもWebサービスに傾倒しすぎるのは危険。ライセンス表記の半自動化など汎用性の高いものを優先にしたほうがいいか。