CircleCI で hubコマンド (GitHub CLI) をインストールする方法

結論

以下のような config.yml を書きます。

version: 2
jobs:
  build:
    docker:
      - image: circleci/ruby:2.6.5
    working_directory: ~/repo
    steps:
(省略)
      - run:
          name: Install hub command 2.13.0
          command: |
            cd /tmp && wget https://github.com/github/hub/releases/download/v2.13.0/hub-linux-amd64-2.13.0.tgz
            tar xzf hub-linux-amd64-2.13.0.tgz
            cd hub-linux-amd64-2.13.0
            sudo ./install
      - run:
          name: Check whether hub command has been installed or not
          command: |
            hub --version
            which hub

上記によるコンソールの出力

上記のコマンド群が実行されると以下のようにコンソールに出力されます。ローカルの CLI で CircleCI を走らせた場合です。

====>> Install hub command 2.13.0
  #!/bin/bash -eo pipefail
cd /tmp && wget https://github.com/github/hub/releases/download/v2.13.0/hub-linux-amd64-2.13.0.tgz
tar xzf hub-linux-amd64-2.13.0.tgz
cd hub-linux-amd64-2.13.0
sudo ./install

--2019-11-21 06:21:13--  https://github.com/github/hub/releases/download/v2.13.0/hub-linux-amd64-2.13.0.tgz
Resolving github.com (github.com)... 52.69.186.44
Connecting to github.com (github.com)|52.69.186.44|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/401025/b3445500-00b2-11ea-8cb5-c17a75fea13f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191121%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191121T062114Z&X-Amz-Expires=300&X-Amz-Signature=82f447660799b23ab6df380f23fc9191a42be7418bba8fd896be74636198291a&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dhub-linux-amd64-2.13.0.tgz&response-content-type=application%2Foctet-stream [following]
--2019-11-21 06:21:14--  https://github-production-release-asset-2e65be.s3.amazonaws.com/401025/b3445500-00b2-11ea-8cb5-c17a75fea13f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20191121%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20191121T062114Z&X-Amz-Expires=300&X-Amz-Signature=82f447660799b23ab6df380f23fc9191a42be7418bba8fd896be74636198291a&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dhub-linux-amd64-2.13.0.tgz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 54.231.49.170
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|54.231.49.170|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5094920 (4.9M) [application/octet-stream]
Saving to: ‘hub-linux-amd64-2.13.0.tgz’

hub-linux-amd64-2.1 100%[===================>]   4.86M  3.42MB/s    in 1.4s

2019-11-21 06:21:16 (3.42 MB/s) - ‘hub-linux-amd64-2.13.0.tgz’ saved [5094920/5094920]

====>> Check whether hub command has been installed or not
  #!/bin/bash -eo pipefail
hub --version
which hub

git version 2.20.1
hub version 2.13.0
/usr/local/bin/hub
Success!

補足

  • tarball を落として展開する場所は上記では /tmp ですが、まあ一時的なのでどこでも構いません
  • ./install を実行することで hub がインストールされます
    • インストールされる場所は /usr/local/bin/hub です
    • したがって、./install の実行の際には sudo が必要です
  • 上記ではバージョンが 2.13.0 で決め打ちしていますので、適宜バージョン番号を変更しましょう

Quora が面白い

Quora という Webサービス があります。いわゆる Q&Aサイト です。ただ、ちょっとした SNS の側面もあると思います。

jp.quora.com

回答に鋭いものが多く、重厚な文章で読ませてくれるものが多いです。知識や論拠が明確で説得力があります*1。高い見地から世の中を見た場合には、このように冷静に現状が分析され判断されているのだな、ということを垣間見ることができます。

自分がそこまでの域に達することができなくても、その位置から世の中を俯瞰している人は少なくないということを知ることには、大きな意義があると思います。

興味深い回答の例は、例えば次のとおりです。

jp.quora.com

jp.quora.com

jp.quora.com

ただし、Q&Aサイトに代表されるユーザ参加型のサイトは、参加するユーザの質にサービスの存亡が左右されます。現時点では Quora にはユーザの質を担保するための仕組みがほぼなく、ユーザの自主的な自治に任されています。

事実、Quora の一部でも、極端な意見や大衆迎合的な意見が*2多くの支持を集めているのを見かけます。そうすると回答者はさらにその方向性を強めていくように見えます。

今後、この点がどうなるかも注目しています。

僕が mixi を始めたのが確か 2002年ごろ、Twitter が 2007年、そして 2019年 に Quora ということで、時代は変わるものですね。Quora とともに reddit も面白く、利用しています。Pawoo は事業主体が変わりましたが、Mastodon の性質上、これもまた利用し続けます。

*1:ただし、全てを真に受けているわけではないです

*2:私がそうであると考えるだけですが

Golang の Slack API 実装 nlopes/slack のメソッド名は自力でコードを読んで把握する

nlopoes/slack

こちらです。

github.com

ドキュメントが(ほぼ)ない

一応 README にサンプルはあります。が、公式のAPI名と完全に一致しているわけではない ので、自力でメソッド名を発掘する必要があります。

コードにメソッド名が書いてある

ではどこのコードからメソッド名を発掘するかというと、example/ 配下 です。ここに様々な例が挙がっているので、当たりをつけながら実装すればいいでしょう。

Powered by はてなブログ