8
Git操作自動化クライアント を作った話 株)デザインルール 佐藤哲也

Gitlab meetup prm説明資料_2017_1117

Embed Size (px)

Citation preview

Page 1: Gitlab meetup prm説明資料_2017_1117

Git操作自動化クライアントを作った話

株)デザインルール

佐藤哲也

Page 2: Gitlab meetup prm説明資料_2017_1117

つくったもの

• github-flowのための下記の操作を自動化

origin/master:

local/topic:

1)自動でclone

2)Topicを生成 3)変更を検知して自動コミット

origin/topic:

4) 一定の変化がない場合に自動でpush

5)PullReq/MergeReqを作成

6)設定により自動マージ

Page 3: Gitlab meetup prm説明資料_2017_1117

つくったもの(その2)

• Office/PDFのファイルをgit管理したい

•つまり、xlsx/docx/pptx/pdfのdiffを見ながら作業したい

•ローカルでdiff確認用のテキストファイルを作成

Page 4: Gitlab meetup prm説明資料_2017_1117

想定する利用シーン

•作業の結果をPullReq/MergeReqで欲しい• しかし、作業者がgitを使えないケースが多い

• マイクロ(クラウド)タスキングでのデータ収集

• Webアプリのデザインの組み込み

•作業者がいつ、どのぐらい作業しているのか把握したい• コミット履歴を共有できると便利

•大学の研究室でゼミのレジュメを共有

Page 5: Gitlab meetup prm説明資料_2017_1117

メモランダム

•メリット• 原本の同一性保持

• 変更内容を細かくレビューできる

•制約・できないこと・課題など• 一人=1Topic=1PullReq/MergeReq

• コンフリクトが起きたら別名ファイルを生成するしかない

• 大きいファイルへの対応(LFS)

Page 6: Gitlab meetup prm説明資料_2017_1117

将来的に

•知的生産のロガーとして使えたりしないだろうか?

• RPA(Robot Process Automation)の基盤としてのgitの活用• git-commitの履歴を蓄積して、学習データにすれば単純な作業は自動化するんじゃないだろうか?

• リポジトリマイニングとの親和性

• PullReq/MergeReqベースで作業結果を提案される世界• 論文の英語校閲

• クラウドソーシング

Page 7: Gitlab meetup prm説明資料_2017_1117

利用している技術

• Electron• windowsとMacでCompatibleで便利

• git-credential-manager• 公開鍵認証を使わないため、レポジトリへのhttpsを利用

• ユーザアカウントはgit-credenetial機構に依存

• windowsのgit-credentil-managerは動作が微妙、平文保存するしかないかも

• gitlab/github api• 認証からのtoken取得

• MergeReq/PullReqの作成のためにAPI コールができる

• bitbucketはAPI対応がなさそう?で非対応

Page 8: Gitlab meetup prm説明資料_2017_1117

開発におけるgitlab.comの利用

• gitlab-ci-runnerの利用による実機テスト

•プライベートなリボジトリをMac環境でビルドする手段として重宝

• Electronアプリのため、OS固有環境を踏まえたテスト必要

•コードサイニングやネイティブモジュールのビルド

•当初はwin/macの両方で実施• 途中からwin環境不安定のためAppveyorに移行

• windowsでの実機テストを断念した理由• spectronがwindowsで起動できず起動できなかった(electron-mochaから起動していたから)

• ssdの調子が悪いせいか、単体テストが不安定だったので