GitBucketのPushをHookするプラグインを作ってみた

こんにちは。先週アドベントカレンダーを待てずにブログを出してしまったせいで、若干ネタ切れの(ほ)です。

※この記事は 『CRESCO Advent Calendar 2017』 6日目の記事です。

最近は企業でもソースコード管理にGitを使用していることが多いと思いますが、ホスティングには何を使用していますでしょうか。

GitHub Enterpriseを使用している企業もあると思いますが、ソースコードは社外に預けたくないという企業もまだ多いと思います。
そんなときに候補になるのが各種Githubクローンだと思いますが、弊社のあるプロジェクトではGitBucketを使用しています。

そのプロジェクトの人から
「masterブランチに管理者以外がPushできないようにしたい」
という話を聞いたのでプラグインを作ってみたのですが、GitのコマンドをHookするプラグインの作成方法が記載されているサイトを見つけられなかったので、ここに書いておきます。

(ちなみに、GitHubでもProtected branchesはGitBucketと同様にForce PushやDeleteを防ぐだけで、通常のPushは防げません。)

続きを読む

Solutions for “Unable to resolve dependency” on building with Android Studio 3.0

Hello, Android Studio users!

I had installed Android Studio 2.3 long time ago, and tried to update it to 3.0 yesterday.
Then, build was failed with the message:

"Unable to resolve dependency"

I’ve struggled with this problem and found a workaround.

On threads of Stack Overflow, it seems many developers have been caught in the same trouble.
So, I write the solutions here.

続きを読む

ocraで生成した.exeのエラーに対処した話

こんにちは。(ほ)です。

最近、RubyのScriptを配布する必要があったのですが、対象者がRuby開発者ではない人がほとんどであったため、Scriptから実行ファイルを生成しました。

そのときに発生したエラーについての対処方法を書きます。

実行ファイルを作成したスクリプト

Google SpreadSheet API のCredentialを作成する目的で、下記のスクリプトを使用しました。

Google SpreadSheet API の Ruby Quickstart

本当は、マルチプラットフォーム対応が容易なGo言語やJavaで作れれば良かったのですが、
下記のように言語で扱う形式がバラバラ、かつRubyと同じYAMLで出力するのは他にはないため、今回の方法となっています。

  • Ruby : YAML
  • Go, .NET, Python等 : JSON
  • Java : ?(オブジェクトファイルっぽい)

続きを読む

CodeBuildでGitbookのPDFを作成する話

こんにちは。(ほ)です。

前回、GitbookのプロジェクトをCodePipeline, CodeBuildを使用してビルドをする方法について記載しました。
しかし、PDFのビルドについては触れていませんでしたので、今回はPDFを作成したいと思います。

GitbookのPDF作成で発生するエラーと対処

GitbookでPDFを作成する場合は下記のようなコマンドを使用します。

しかし、CodeBuildで実行すると下記の4つのエラーが発生するため対処が必要です。

続きを読む

VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話

こんにちは(ほ)です。

私の所属している社内コミュニティでは、IoT についてのドキュメントをGitbookで作成し、EC2上のJenkinsでビルドとデプロイを行っておりました。

ただ、この環境では下記の点から、コスト的にもったいないと感じていたり、重要なタイミングでサーバの再起動が必要になることがあったため、CodePipeline, CodeBuildを使用したサーバーレス環境に移行することにしました。

  • t2.microだと1GBのメモリしかないため、ビルド時にJenkinsがお亡くなりになることがある。
  • t2.microだと1GBのメモリしかないため、GitbookのプラグインのインストールでJenkinsがお亡くなりになることがある。
  • かといって、大きなインスタンスを起動させておくほどは更新頻度が高くない時期がある。

続きを読む

gitbookで楽々ドキュメント作成

ご無沙汰しております。技研の(ほ)です。

突然ですが、仕様書などの各種ドキュメントを作る際には、みなさんは何を使っていますか?
Sphinxのエディタ選択の際にも同じことを書いたのですが、私は今でもSphinxがベストだと思っています。

ただ、ベストだとは思っているのですが、インストール、設定、記法などのハードルの高さは確かに感じております。

そのため、今回はお手軽に使えそうな Gitbook を紹介したいと思います。

続きを読む

あれ?…私のChrome、シークレットウィンドウがない…?

技研の(ほ)です。

Webブラウザは何を使用していますか?
日本のブラウザシェアランキングではChromeが32%弱で1位のようですので、Chromeを使っている人が多いと思います。

私もChromeを使っており、”シークレットウィンドウ”機能を複数アカウントでログインしたり、まっさらな環境での表示を試すのに使用しています。

ところが、ある日シークレットウィンドウを開こうとしたところ、メニューになかったのです。

secret_option

当然、ショートカット “Ctrl + Shift + N” も効きません。

最初はこの機能が廃止されたかと思ったのですが、周りに聞いてもTwitterを見てもそのようなことは無さそうでした。

何とか再度使えるようにはなったのですが、意外と対処法が見つからなかったため、解決手順を書きたいと思います。

続きを読む

Cloud9で作るGAE/Go環境

技術研究所(ほ)です。

去年の冬に Chromebook を購入したことをきっかけに、すべてをChromebookで済ませられる環境を目指しています。

そのなかで、先日 GAE/Go で開発を行いましたので、その開発環境の作り方を書きたいと思います。

続きを読む

Sphinx(reStructuredText)のエディタ選択の話

先日Githubが落ちて午前中が仕事にならなかった皆様、いかがお過ごしですか。
技術研究所の(ほ)です。

突然ですが、仕様書などの各種ドキュメントを作る際には、みなさんは何を使っていますか。

私は、「ドキュメントを作りたくなってしまう魔法のツールSphinx」を推しているので、
今日はSphinxを使うためのエディタについて書きたいと思います。
(ベストなものは見つけられませんでしたが、お付き合いください。)

続きを読む