さわらブログ

さわら(@xhiroga)の技術ブログ

チーム開発でコミットを公私混同しないための Git/GitHub 設定3選

最近PCを新しくしたので、チーム開発でGitを使う場合にやっておきたい設定をまとめました。

前提

GitHubはプライベートとチーム開発で同じアカウントを利用します。

一人で2つ以上のアカウントを持つことは利用規約違反だし、これから紹介する設定を利用すれば困ることは少ないはずです。

qiita.com

設定

[Git] コミット時のメールアドレスをチームのメールアドレスにする

リンク先で説明されているように、リポジトリごとにユーザー情報を設定することで可能です。

linuxize.com

私はリポジトリ数が多くて面倒なのでシェルで一括設定しています。(macOSのfindで動くようになっています。Linux等の場合は自分で書き直してください)

/usr/bin/find ./*/.git/config | xargs -I {} git config -f {} user.email "$EMAIL"

[GitHub] チームのメールアドレスによるコミットを、GitHub上で自分のコミットとして表示する

Emails から Add email address を設定してください。

f:id:hiroga_cc:20201114120446p:plain
GitHub - Emails

[GitHub] Organizationのリポジトリの通知はチームのメールアドレスで受け取る

Notification の Custom routing を設定することで可能です。

f:id:hiroga_cc:20201114120549p:plain
GitHub - Notification - Custom routing

IntelliJでTool WindowのCommitウィンドウとGitウィンドウを統合する

統合方法

Commitウィンドウのどこかにある "Switch to commit dialog" というメニューを選択すると、Commitウィンドウがなくなります。

それまでCommitウィンドウにあった Local ChangesタブはGitウィンドウに移動し、GitウィンドウでLocal Changes, Log, Consoleのすべてを参照できるようになります。

f:id:hiroga_cc:20201114111417p:plain
Local Changesが統合されたGitウィンドウ

この方法で2つのウィンドウを接続すると、たとえ Command + 0 (macOS標準のCommitウィンドウを開くショートカット) も効かなくなります。

解除方法

分かりません。

関係するか分かりませんが、私の環境だと Gitプロジェクトにも VCSウィンドウが出てきません。代わりにGitウィンドウが出ています。

まとめ

なんなんだろう?

Amplify Console 豆知識(Amplify Console 実践入門 第1.2版のアップデート)

(2版→1.2版に修正)

2020年9月に「Amplify Console 実践入門」という本を出品しました。

techbookfest.org

それ以降に業務でAmplify Consoleを使っていて得た知識をまとめました。いくつかは第2版にも記載しています。
ほお〜と思っていただければ幸いです。

ブランチの接続を解除するとWebサイトは403エラーになる

Amplifyアプリからブランチの接続を解除すると、ホスティングされているコンテンツが削除されます。結果、Webサイトが403 Errorになります。

f:id:hiroga_cc:20201108101325p:plain
403 Error

とはいえ、ブランチ切断の確認画面だとそれって分からないんですよね。よく考えれば確かに予想できるんですが...

f:id:hiroga_cc:20201108101624p:plain
Disconnect Branch

こちらはIssueにまとめているので、よければUp Voteをお願いします! github.com

DockerHubへのログインはできない。

以下のIssueで言及されている通り、DockerHubのRate Limitに引っかかってビルドができないことがあります。

github.com

そして2020-11-08現在、ログイン手段はありません。カスタムイメージを利用されている方は、こちらもIssueのUpVoteを是非お願いします。

CFn, CDKでは DependsOn を設定しよう

ブランチが存在しない状態で AWS::Amplify::Domain が先に作成されようとした場合、 SubDomainSetting に指定されているドメインが未接続のため CloudFormation/CDK のデプロイが失敗します。 DependsOn属性で明示的に指定してあげましょう。

GitHubのWebhookとIncoming Webhookは別物

形式がちょっと違うので、Incoming Webhookを再発行してもGitHub側に登録することはできません。

リポジトリの再接続でOK。

まとめ

以上、Amplify Consoleの豆知識でした。Issueに関しては今後のアップデートに期待ですね!

その他の豆知識も気になる方は、本をご覧いただければ幸いです。

techbookfest.org

IntelliJ (macOS) で Cmd + Shift + A を押すとたまに現れる黄色いプロンプトの正体は manページインデックスの検索だった

IntelliJでたまに黄色いプロンプトが出て困ることありませんか?

黄色いプロンプト

黄色いプロンプトは何なのか。どうして出てしまい、出さないためにはどうすればいいのか。調べました。

黄色いプロンプトは manページのインデックス検索

このプロンプトですが、すべてのmanページから指定したキーワードを検索した結果です。
Search the Manual Page Index で検索すると言及しているブログが出てきます。 osxdaily.com

実はターミナルで文字列を選択したときのメニューにもあります。

ターミナルのmanページインデックスで検索

Linuxだと apropos コマンドが対応するようです。この apropos コマンドは私の macOS 環境では普通に使えました。
気になる方はターミナルで apropos ${適当なキーワード} で調べてみてください。

一部のエディタで文字列選択をしていると表示される。ショートカットをOFFにすればOK

IntelliJで文字列選択をしているときに Cmd + Shift + Aを押すと表示されます。
私が利用しているアプリで他に manページのインデックスの検索 をショートカットから起動できるのは、他に InkDrop と Postman でした。
逆に、同じエディタでも VSCode、DBeaverでは起動しませんでした。

対策は簡単で、ショートカットをOFFにすればOKです。

ターミナルのmanページインデックスで検索 のショートカット

こんなところにあったんですね。気が付かなかった...

2023-04-19追記

macOS Venturaでの設定画面です。

macOS Ventura

まとめ

IntelliJでたまに現れる黄色いプロンプトは、文字列選択をしている際にmanページをインデックス検索した結果でした。
使わない場合はシステム環境設定からショートカットをOFFにしましょう。

Google Workspaceの共有ドライブでフォルダの共有ができるようになっていた

GSuitesのUpdateブログにあるように、2020年9月時点で共有ドライブのフォルダが共有ドライブに所属していないユーザーにも共有できるようになっていました! https://gsuiteupdates.googleblog.com/2020/09/share-folders-shared-drives-ga.html

仕様(2020年10月現在)

  • 共有ドライブのメンバーのうち、 管理者(Manager)権限を持つメンバーだけが共有ドライブ外のメンバーを追加できる。
  • 共有ドライブ外のメンバーは ゲスト として扱われる。ゲストが持ちうる最大の権限は コンテンツ管理者(Content Manager)である。
  • 上記から、ゲストはフォルダを共有できるようにならない(コンテンツ管理者では権限が足りないため)
  • 共有したフォルダは、ゲストの Shared With Me に表示される。

データ基盤を立ち上げるので データマネジメントが30分でわかる本 を読んだ #DMBOK30min

TwitterSum (@nepinepimate3) | Twitter さんに勧めてもらったのと、社内でデータ基盤を立ち上げようとして悩みが多かったので読みました。

SREらしく(?) システム構築のことばかり心配していましたが、データ分析基盤はもっと多くの人と関わる仕事だと気づかされました。

ちなみに同人誌としても特筆すべきポイントが多々あるのですが割愛(宣伝手法・表紙デザイン・協賛・ターゲティング...)

感想サマリー

特に勘違いしていたこと・知らなかったこと

データウェアハウスに関する知識について、アプリケーションのためのデータの話と勘違いしていたことに気づけた。
特にスタースキーマ、データモデルなど。

CIF(コーポレートインフォメーションファクトリー)についても初めて知った、DWH, Data Mart... と分けるやつ。アレ名前知りたかったんだ。本書ではサラッと触れてた、別途以下のブログが参考になりそう。
gotouma.hatenablog.com

アクションが間違ってたこと・想定が甘かったこと

具体的な話はむしろ著者のデブサミ資料に詳しい。
speakerdeck.com

  • 広告と購買データを結びつけて分析したいのはそうだと思う、ビジネス側が満足な分析をできていない可能性もっと知りたい
  • 問い合わせの分析はたしかにアプリケーションDBの中身と組み合わせて分析したいだろうと思う
  • 必要なデータモデルごとにチケットが切られる未来を知れてよかった(著者の会社はそうっぽい)

しっくり来てないこと...

  • データ分析基盤になんでも入れるのか?会社KPIや開発チケットに関するメトリクスなどは違和感あるが、やれば慣れる/便利?
  • 社内のドキュメント管理についても触れているが、これは情シスの守備範囲のような気も?
  • DWH時点で個人情報をすべて削ぎ落とすのは攻めてる印象、DM送ったり代理店に情報連携したりで必要にならないか
  • 個人情報のクレンジングについてもっと知りたい。半匿名化(社内で紐付けはできるが、外部に流出しても分からない)のような考えとかないのか

まとめ

偶然知った本だがこのタイミングで読めて本当に良かった、具体的なデータ活用のユースケースについては(この方だけでは限界があると思うので、色んな人から)もっと知りたい。私の所属している会社も未活用のデータがあるはずだ。

brew cask 夏の小掃除

Macが散らかってきたので、過去にbrew cask install した、今では使っていないアプリケーションを掃除しました。

brew cask list でインストールしているアプリがわかります。

掃除したもの

brew uninstall airdroid

airdroid はMacAndroidiPhoneのプラットフォーム間でBluetoothを使ったファイル転送ができるアプリ。
しかし、Androidエンジニアの皆さんは開発者モードを使ってファイルを転送していると知ったので、インストールしておくモチベーションがなくなってしまった。

brew cask uninstall flotato

Webサイトをアプリ化できる。
私の場合、ブラウザにピン留めすれば事足りることに気づいた。

brew cask uninstall sourcetree

forkのほうが好き。

brew cask uninstall kitematic

docker本体のDashboardIntelliJの拡張、VSCodeの拡張、lazydocker、と代わりの選択肢が無数にある。

brew cask uninstall robo-3t

mongodb-compass で事足りている。

brew cask uninstall soundflower

ゲーム画面・音声を友達と共有して遊びたかったので試してみた、気がする。

brew cask uninstall tandem

結局会社で採用されることのなかったビデオ通話アプリ。

brew cask uninstall webcamoid

とりあえず入れて、使わなかった。

brew cask uninstall zoom

みなさんが使っているのは brew cask install zoomus です。