やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

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連携

DB作成

CUI対話

  • アップロードするとき、GitHubユーザを選択できるようにしたい(デフォルトユーザも決めたい)

D. 永続性の向上

  • ローカルでGitリポジトリサーバを作成する
  • 自動一括git clone
  • 自動一括git push
  • ソースコード等のDB登録
  • オンラインストレージに自動アップロードする

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発行に変更する

RESTの次のパラダイムはGraphQLか - Qiita

所感

例によって、やりたいことが多すぎる。

GitHubという特定の、しかもWebサービスに傾倒しすぎるのは危険。ライセンス表記の半自動化など汎用性の高いものを優先にしたほうがいいか。