ちょっと作ったのでメモ。
取得したいもの
今回、ここにあるRedshiftのView定義用のSQLファイルを取得したいと思います。
https://github.com/awslabs/amazon-redshift-utils/tree/master/src/AdminViews
利用するGithub API
以下のContents APIを利用します。
以下のルールでAPIのURL組み立てます。
GET https://api.github.com/repos/:owner/:repo/contents/:path
上記のリポジトリの場合は以下のURLになります。
https://api.github.com/repos/awslabs/amazon-redshift-utils/contents/src/AdminViews
ワンラインナー
ワンライナーと言っておきながらですが、APIのURL入れると長くなって読み難いので、変数入れます。
PS:> $url = "https://api.github.com/repos/awslabs/amazon-redshift-utils/contents/src/AdminViews"
後は以下を実行するだけです。
PS:> (Invoke-WebRequest -Uri $url).Content | ConvertFrom-Json | foreach{$_.download_url} | foreach{Invoke-WebRequest -Uri $_ -OutFile ([System.Web.HttpUtility]::UrlDecode(([System.Uri]$_).segments[-1],[Text.Encoding]::GetEncoding("utf-8")))}
取得できています。
PS: > ls Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2019/07/18 13:42 3759 README.md -a---- 2019/07/18 13:42 1510 v_check_data_distribution.sql -a---- 2019/07/18 13:42 765 v_check_transaction_locks.sql -a---- 2019/07/18 13:42 1124 v_check_wlm_query_time.sql --省略-- -a---- 2019/07/18 13:42 2982 v_space_used_per_tbl.sql -a---- 2019/07/18 13:42 2610 v_vacuum_summary.sql -a---- 2019/07/18 13:42 1308 v_view_dependency.sql