背景
- 自分が業務でよく利用する
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
方法
- 別途追記予定
参考資料
個人ブログ