Upload
tetsuya-sato
View
253
Download
3
Embed Size (px)
Citation preview
Git操作自動化クライアントを作った話
株)デザインルール
佐藤哲也
つくったもの
• github-flowのための下記の操作を自動化
origin/master:
local/topic:
1)自動でclone
2)Topicを生成 3)変更を検知して自動コミット
origin/topic:
4) 一定の変化がない場合に自動でpush
5)PullReq/MergeReqを作成
6)設定により自動マージ
つくったもの(その2)
• Office/PDFのファイルをgit管理したい
•つまり、xlsx/docx/pptx/pdfのdiffを見ながら作業したい
•ローカルでdiff確認用のテキストファイルを作成
想定する利用シーン
•作業の結果をPullReq/MergeReqで欲しい• しかし、作業者がgitを使えないケースが多い
• マイクロ(クラウド)タスキングでのデータ収集
• Webアプリのデザインの組み込み
•作業者がいつ、どのぐらい作業しているのか把握したい• コミット履歴を共有できると便利
•大学の研究室でゼミのレジュメを共有
メモランダム
•メリット• 原本の同一性保持
• 変更内容を細かくレビューできる
•制約・できないこと・課題など• 一人=1Topic=1PullReq/MergeReq
• コンフリクトが起きたら別名ファイルを生成するしかない
• 大きいファイルへの対応(LFS)
将来的に
•知的生産のロガーとして使えたりしないだろうか?
• RPA(Robot Process Automation)の基盤としてのgitの活用• git-commitの履歴を蓄積して、学習データにすれば単純な作業は自動化するんじゃないだろうか?
• リポジトリマイニングとの親和性
• PullReq/MergeReqベースで作業結果を提案される世界• 論文の英語校閲
• クラウドソーシング
利用している技術
• Electron• windowsとMacでCompatibleで便利
• git-credential-manager• 公開鍵認証を使わないため、レポジトリへのhttpsを利用
• ユーザアカウントはgit-credenetial機構に依存
• windowsのgit-credentil-managerは動作が微妙、平文保存するしかないかも
• gitlab/github api• 認証からのtoken取得
• MergeReq/PullReqの作成のためにAPI コールができる
• bitbucketはAPI対応がなさそう?で非対応
開発におけるgitlab.comの利用
• gitlab-ci-runnerの利用による実機テスト
•プライベートなリボジトリをMac環境でビルドする手段として重宝
• Electronアプリのため、OS固有環境を踏まえたテスト必要
•コードサイニングやネイティブモジュールのビルド
•当初はwin/macの両方で実施• 途中からwin環境不安定のためAppveyorに移行
• windowsでの実機テストを断念した理由• spectronがwindowsで起動できず起動できなかった(electron-mochaから起動していたから)
• ssdの調子が悪いせいか、単体テストが不安定だったので