CircleCIでcheckoutしてきたリポジトリ以外のprivateリポジトリを操作する方法
マシンユーザーを作成する
一般的なユーザーを作るときと同じように作成します。
メール通知などが来るので、開発用の共有メールアドレスなどがあればそちらを使ったほうが良いかも。
マシンユーザにPersonal access tokenを発行する
Githubにマシンユーザでログインして、下記にアクセス。
https://github.com/settings/tokens/new
(ユーザーのSettings -> Developer Settings -> Personal access token)から発行します。
マシンユーザに操作したいリポジトリのRead権限を与える
リポジトリのSettings -> Manage access -> invite teams or people(https://github.com/{リポジトリのURL}/settings/access)から
マシンユーザを招待し、Read権限を与えます。
CircleCIでcheckoutをするプロジェクトの環境変数にPersonal access tokenを設定する
Project Settings -> Environment Variables
(https://app.circleci.com/settings/project/github/{GitHubのユーザー名}/{リポジトリ名}/environment-variables) に
任意の名前でGithubのマシンユーザのPersonal access tokenを貼り付けます。
yamlの中で環境変数を使う
操作したいリポジトリに関して下記のようにyamlに記載すれば、
checkoutしてきたリポジトリ以外のprivateリポジトリでも操作できます。
git clone https://${GITHUB_PERSONAL_ACCESS_TOKEN}@github.com/Hoge/fuga.git
マシンユーザーとPersonal access tokenを使う理由
- リポジトリとPersonal access tokenで権限を与えた範囲でしかマシンユーザーは操作できない。
- 万が一マシンユーザーのPersonal access tokenが漏れた可能性がある場合、
すぐにPersonal access tokenを無効にできる。 - ssh key pairだと管理が手間。
参考URL
How to Authorize Your CI/CD to Checkout Additional RepositoryEnquizit Inc
GitHub と Bitbucket のインテグレーション - CircleCI
Managing deploy keys | GitHub Developer Guide
本当にそれでいい?CircleCIにおける複数のPrivateリポジトリのClone方法 | by Takuo | VELTRA Engineering | Medium
SchemaSpyでDBからER図を生成する
PostgreSQLのER図を生成する
dockerコマンド
docker run -v "${ドキュメントを生成したいディレクトリ}/schema:/output" --net="host" schemaspy/schemaspy:6.1.0 -t pgsql -host ${ホスト}:${ポート番号} -db ${DB名} -u ${ユーザー名} -p ${パスワード}
生成されたドキュメントに上書きしたい場合
schemameta.xml
<schemaMeta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schemaspy.org/xsd/6/schemameta.xsd" > <comments>Database comment</comments> <tables> <table name="staff" comments="Table comment"> <column name="name" comments="Column comment" /> </table> </tables> </schemaMeta>
dockerコマンド
docker run -v "${ドキュメントを生成したいディレクトリ}/schema:/output" -v "${ドキュメントを生成したいディレクトリ}/schemameta.xml:/schemameta.xml" --net="host" schemaspy/schemaspy:6.1.0 -t pgsql -host ${ホスト}:${ポート番号} -db ${DB名} -u ${ユーザー名} -p ${パスワード} -meta schemameta.xml
propertiesファイルを使う場合
schemaspy.propertiesファイル
# type of database. schemaspy.t=pgsql # database properties: host, db name, name user, password schemaspy.host=${ホスト} schemaspy.db=${DB名} schemaspy.u=${ユーザー名} schemaspy.p=${パスワード}
dockerコマンド
sudo docker run -v "${ドキュメントを生成したいディレクトリ}/schema:/output" -v "${プロパティファイルが置いてあるディレクトリ}/schemaspy.properties:/schemaspy.properties" --net="host" schemaspy/schemaspy:6.1.0
参考URL
まだER図の管理で消耗してるの? SchemaSpy でER図を自動生成して管理する - Qiita
Macでコマンドを自作する
シェルを書く
$vim testhello
#!/bin/sh echo "HelloWorld!"
シェルの権限を変更する
$ chmod a+x testhello
$PATHを調べる
$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$PATHの一つへ作成したシェルをコピーする
$ cp testhello /usr/local/bin/ $ which testhello /usr/local/bin/testhello
コマンド完成!
$ testhello HelloWorld!
参考サイト
Photoshopで画像の切り抜きをしたい
クイック選択ツールを使う
クイック選択ツールで切り抜きたい画像を大まかに選択します。
投げ縄ツールを使う
細部を追加で選択
ツールオプションバーの「選択範囲に追加」を押下し、 クイック選択ツールで選択できなかった細かい部分を選択していきます。
選択しすぎてしまった部分を選択から削除
ツールオプションバーの「現在の選択範囲から一部削除」を押下し、 クイック選択ツールで選択しすぎてしまった部分を選択から削除していきます。
選択範囲を反転する
全て選択し終わったら、選択範囲から「選択範囲を反転」を選ぶ。
背景レイヤを標準レイヤへ変換
移動ツールで背景レイヤを選択し標準レイヤへ変換する。
完成
背景が透明な画像の切り抜きが完成します。
これが正しいかわからないので、どなたかもしもっと良いやり方をご存知であれば教えてほしいです!
キーボードもディスプレイもマウスもLANケーブルもないけどRaspberry Piを触りたい
Macbook ProしかないけどRaspberry Piを触りたい
家が狭いので&持ち運びが面倒なのでキーボードetc持ってません...。
でもRaspberry Piで遊びたい!
使ったもの
- Raspberry Pi 3 (以下ラズパイ)
- microSD
- microSDをMacで読み込むためのリーダー
- Mac
手順
Raspbianをダウンロードする
Download ZIPからRaspbianをダウンロードします。
The Unarchiverを使って解凍します。
SDカードのフォーマット
SD Card Formatterを使ってmicroSDを初期化します。
今回はクイックフォーマットにしました。
RaspbianをmicroSDカードへ書き込む
balenaEtcherを使ってmicroSDへRaspbianを書き込みます。
ラズパイをssh接続できるようにする
microSDのルートであるboot
にssh
という空フォルダを作ります。
microSDをMacで読み込んで、ターミナルから下記を実行します。
$ touch /Volumes/boot/ssh
ラズパイでWi-Fi接続するためにwpa_supplicant.confを作成する
/Volumes/boot/
配下へwpa_supplicant.conf
を作成し、下記を記載します。
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="Wi-FiのSSID(ネットワーク名)" psk="Wi-Fiのパスワード" }
Macからラズパイへ無線でssh接続する
microSDをラズパイへ挿して電源を入れます。
その後、Macから下記を叩きます。
$ ssh pi@raspberrypi.local
初期パスワード raspberry
を入力すると、下記のように表示されます。
ラズパイへの接続が完了です。
pi@raspberrypi:~ $
ラズパイのIPアドレスを調べる
exit
でラズパイを終了し、下記を叩いてラズパイのIPアドレスを調べます。
$ arp -a
ラズパイのMACアドレスはb8:27:eb
ので、
b8:27:eb
から始まるMACアドレスを探して、
その行頭に記載があるIPアドレスをメモしておきましょう。
Macでラズパイの画面共有をする
ラズパイへVNCサーバをインストールする
$ ssh pi@raspberrypi.local
下記コマンドを叩いてラズパイへVCNサーバをインストールします。
pi@raspberrypi:~ $ sudo apt-get install tightvncserver
インストールが完了したら、下記コマンドでサーバを立ち上げます。
pi@raspberrypi:~ $ sudo tightvncserver
サーバが立ち上がるとNew 'X' desktop is raspberrypi:1
のように表示されます。
この末尾の1、プラス5900の、5901がMacからラズパイ画面に接続するポート番号となります。
MacのFinderからラズパイへVNC接続する
Finderの移動タブ->「サーバーへ接続」を選択します。
「サーバアドレス」の欄にvnc://IPアドレス:ポート番号(5901)
と入力し、「接続」を押下します。
パスワードにVNCサーバ初回立ち上げ時に設定したパスワードを入力すると、 Raspbianの画面が表示されるはずです。
参考
PostgreSQLでテーブル一覧とテーブル定義を表示する
テーブル一覧の表示
\dt;
List of relations
Schema | Name | Type | Owner
-----------+---------+-------+-----------
java_user | uketuke | table | java_user
(1 row)
テーブル定義の表示
\d テーブル名;
Column | Type | Collation | Nullable | Default
-------------+-----------------------------+-----------+----------+---
--------------------------------------
uke_no | integer | | not null |
nextval('uketuke_uke_no_seq'::regclass)
sei_name | character varying(100) | | |
mei_name | character varying(100) | | |
nk_add | character varying(13) | | |
nm_add1 | character varying(200) | | |
nm_add2 | character varying(200) | | |
nm_add3 | character varying(200) | | |
nk_tel | character varying(15) | | |
gender_no | character varying(2) | | |
birthday_dt | timestamp without time zone | | |
nk_mail | character varying(300) | | |
nk_pass | character varying(50) | | |
Indexes:
"uketuke_pkey" PRIMARY KEY, btree (uke_no)