Pulumi を使って GitHub Teamsを管理する
これはなに
Pulumi で GitHub の様々な設定をプロビジョニング出来そうだったため軽く検証してみました。
ちなみに、 pulumi/github は、 terraform-provider-github
を wrap したものになるため、必要な環境変数や設定などは、 Pulumi 側のドキュメントと Terraform側のドキュメント両方を参照する必要があります。
pulumi のプロジェクトを作成する
pulumi の プロジェクト作成時に実行するコマンドは、pulumi new aws-typescript
等行っているサンプルが多いですが、 今回は、AWS, GAP, Azure 等は利用しません。
pulumi new [言語]
ように実行することで、最低限の設定でプロジェクトを作成出来ます。
今回は、TypeScript を用いるため以下のように実行します。
pulumi new typescript
詳細については以下を確認してください
@pulumi/github を追加する
以下ページのREADMEを参考にパッケージを追加します。
yarn add @pulumi/github
teamを定義する
今回は、Project rootに存在する index.tsに以下のように指定しました。
import * as pulumi from "@pulumi/pulumi";
import * as github from "@pulumi/github";
const someTeam = new github.Team("some_team", {
description: "Some cool team",
privacy: "closed",
});
GITHUB_TOKEN を用意する
今回は、 GitHub Teamsの変更を行う予定なので、 admin:org
にチェックを入れ TOKENを発行します。
発行した TOKEN は、pulumi up
を実行するときに必要です無くさないようにしましょう。
pulumi up を実行し適用する
Pulumi には Pulumi Service を利用することで簡単に apply や revert 等を試せますが、今回は手元の Console 上から試します。
先ほど用意した GITHUB_TOKEN
と、変更を適用する GITHUB_OWNER
(Organization名または、ユーザー名など) を指定し pulumi up
を実行します。
※ 今回は検証のため、実行時にTOKENを渡しましたが、コマンド実行時にTOKENを渡すと history に残ってしまうので、適切な場所にTOKENを指定することをおすすめします。
mziyut% GITHUB_TOKEN=YOUR_TOKEN_HERE GITHUB_OWNER=YOUR_ORG_NAME_HERE pulumi up
Previewing update (dev)
View Live: https://app.pulumi.com/mziyut/sample/dev/previews/sample-sample-sample-sample-sample
Type Name Plan
pulumi:pulumi:Stack pulum-dev
+ └─ github:index:Team some_team create
Resources:
+ 1 to create
1 unchanged
Do you want to perform this update? yes
Updating (dev)
View Live: https://app.pulumi.com/mziyut/sample/dev/updates/2
Type Name Status
pulumi:pulumi:Stack pulum-dev
+ └─ github:index:Team some_team created
Resources:
+ 1 created
1 unchanged
Duration: 7s
実行が終わったら 実際に GitHub上にTeamの作成が完了しているか確認しましょう。
無事作成できました
pulumi destroy を実行し削除する
最後に、検証用に作成した some_team
を pulumi destroy
コマンドで削除します。
pulumi up
と同様に GITHUB_TOKEN
と GITHUB_OWNER
を渡し実行します。
mziyut% GITHUB_TOKEN=YOUR_TOKEN_HERE GITHUB_OWNER=YOUR_ORG_NAME_HERE pulumi destroy
Previewing destroy (dev)
View Live: https://app.pulumi.com/mziyut/sample/dev/previews/sample-sample-sample-sample-sample
Type Name Plan
- pulumi:pulumi:Stack pulum-dev delete
- └─ github:index:Team some_team delete
Resources:
- 2 to delete
Do you want to perform this destroy? yes
Destroying (dev)
View Live: https://app.pulumi.com/mziyut/sample/dev/updates/3
Type Name Status
- pulumi:pulumi:Stack pulum-dev deleted
- └─ github:index:Team some_team deleted
Resources:
- 2 deleted
Duration: 2s
The resources in the stack have been deleted, but the history and configuration associated with the stack are still maintained.
If you want to remove the stack completely, run 'pulumi stack rm dev'.
実行が終わったら 実際に GitHub上にTeamの作成が完了しているか確認しましょう。
無事削除できました
最後に
今回は、 GitHub Teams の変更がどのように実施されるかを確認するために最小限の定義だけに留めましたが、
メンバーの招待やレポジトリの作成なども出来るようです。
Author And Source
この問題について(Pulumi を使って GitHub Teamsを管理する), 我々は、より多くの情報をここで見つけました https://qiita.com/mziyut/items/1c97cd71216a60ff0528著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .