背景
- 自分が業務でよく利用する
codeをライブラリ化しcodeの共通化と業務効率化を図りたい。 - 業務で使用する
codeなので組織外の人間にはアクセスできないようにしたい。 - 上記の要件を満たすライブラリの作成方法を調査したので、その手順書である。
- いったん自分用として記載するため、いつもの投稿より文体やまとめ方が雑である。
目標
- github-hosted-pypiを使用して、認証付きライブラリを作れるようになる。
認証付きライブラリのリポジトリの構築手順
-
github-hosted-pypiの「
USE THIS TEMPLATE」をクリックする。 - 適当な
Repository nameを入力する。 -
Publicでリポジトリを作成する。(有料プランであれば、PrivateでGitHub Pagesを公開することが可能) - 作成されたリポジトリページで
Settingsに移動する。 - 左のサイドバーから
Pagesに移動する。 -
Branchセクションで、GitHub Pagesのソースとなるブランチを選択する。(基本はmainの「/(root)」で良いと思われる。) -
「Save」(保存)ボタンをクリックする。 -
mainブランチで適当にpushする。 - 設定が適切であれば
Github Actionsが起動し、GitHub Pagesの機能でWeb Pageが公開される。(Github Actionsの完了まで少し時間がかかる。 - 公開された
Web PageのURLは、先ほどGitHub Pagesの設定をした場所(Settings→Pages)の上部に表示される。
認証付きライブラリのリポジトリの使い方
- ここから、作成した認証付きライブラリの公開・削除などの運用方法について記載する。
- 使用したgithub-hosted-pypiの機能により、作成したリポジトリの
Actionsのタブに新しいworkflowとして (register/update/delete)の3つのworkflowが追加される。 - この3つの
workflowを使用し、ライブラリの公開・追加・削除・updateなどの運用操作を行っていく。 - これらの
workflowの機能を正常に動かすために、workflowができる操作の権限をupdateする。 -
SettingsからサイドバーのActionsを選択する。 -
Workflow permissionsセクションで、Read and write permissionsに権限を変更する(ラジオボタンを選択する。)。 - また、
Allow GitHub Actions to create and approve pull requestsにもチェックボックスを入れ、Saveをクリックする。 - 上記の設定で、(
register/update/delete)を使用できるようになる。
ライブラリの削除方法delete Workflowの使い方
- 試しに、
deleteを使用して、現在存在するprivate-helloライブラリを削除してみる。 -
Actionsに移動する。 - サイドバーから
deleteを選択する。 - 右側の
Run workflowをクリックし、Package nameにprivate-helloを入力し、緑ボタンのRun workflowをクリックし、delete Workflowを実行する。 - 実行した
delete Workflowが終了するまでしばらく待機する。(実行状況はサイドバーのAll workflowsから確認できる。) - 正常に成功した場合、
Pull requestが作成されるので、Pull requestsに移動する。 - 作成された
[🤖] Delete private-hello{ここは入力したPackage nameになる} from PyPi indexのPull requestに移動する。 -
Merge Pull requestとconfirmをクリックしdelete Workflowで作成されたPull requestをMergeする。 - 適切に
Mergeされれば、GitHub Pagesから該当のPackage nameが削除され、またリポジトリのtopからも該当のライブラリのディレクトリが削除される。
ライブラリの公開方法register workflowの使い方
- 次に作成したライブラリの公開方法を紹介する。
- ライブラリの公開には
register workflowを使用する。 - 前提として、独自で作成したライブラリがあり、
privateリポジトリで作成されており、tagをつけたcommitがあることとする。(リポジトリはpublicでも良いと思われるがそれだと認証付きのライブラリの公開方法とはならないと思われる。) -
Actionsのサイドバーregisterを選択しRun workflowをクリックすると以下の入力が求められる。-
Package name:作成した独自ライブラリの名前を入力(ライブラリを入れたリポジトリ名で良いと思われる。) -
Version of the package(tag name):該当ライブラリで公開するcommitのtag名を入力する。 -
Author(s) of the package:ライブラリの作成者名を入力する。通常は自分のはずだと思うので、無難にgithubの登録名を入力で良いと思われる。 -
A short description of the package to show on the index:ライブラリの簡単な説明を入力する。公開されているGithub Pagesのライブラリの概要に表示されることになる内容。 -
Homepage of the package (link to the github repository):公開するライブラリのgithubのurlを入力する。
-
- 上記の情報を入力し、
Run workflowをクリックしPull repuestを作成する。 - 先ほどと同様の手順で作成された
Pull requestのMergeを行い、自作のライブラリを公開する。
認証付きのライブラリのinstall方法
- 別途追記予定
参考資料
個人ブログ