たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 1693
どうもこんばんわ。
OSSRH→Central Portalはここ!
GitHub Actionsを使ってボタンを押すだけでライブラリのリリース、今日も使おうと思ったら失敗してしまった。
その調査です。
Received status code 401 from server: Content access is protected by tokenこの記事はOSSRHを使っているユーザー向けです。
いまライブラリを公開しようとすると、Central PortalというOSSRHの代替に誘導されるらしいです。
めっちゃ最近で草OSSRHのユーザー名、パスワードでアップロード出来なくなったらしい(?)。
解決方法はユーザートークンなるものを使うらしい、これっぽい。
ログインしたら、名前のところのドロップダウンメニューを開いて、Profileを押します。
そしたらドロップダウンメニューが出るので、User Tokenを選びます。
そしたら、Access User Tokenボタンを押します。
ダイアログが出るのでログイン情報を再度入力します。
すると、2つの値が生成されます。
これを急いでコピーします。どうやら1分で勝手にウィンドウが消えるらしいです()。
左側がユーザーネームの代わりになるもの、右側がパスワードの代わりになるものです。
これをlocal.propertiesなり、GitHub Actionsの環境変数なりに入れれば良いわけですね。
local.propertiesの場合は、OSSRHのユーザー名、パスワードの値を変えれば良いはず。
# Sonatype OSSRH UserToken UserName
ossrhUsername={UserToken ユーザー名}
# Sonatype OSSRH UserToken Password
ossrhPassword={UserToken パスワード}build.gradle.kts(ルートね、ライブラリの方のbuild.gradle.ktsじゃない)にベタ書きしてる場合は多分この辺。
以下のコードは公開にio.github.gradle-nexus.publish-pluginプラグインを使っている場合ですが、多分ユーザー名とパスワードをそれぞれユーザートークンで発行されたものに置き換えれば良いはずです。
// Sonatype OSSRH リポジトリ情報
nexusPublishing.repositories.sonatype {
stagingProfileId.set(extra["sonatypeStagingProfileId"] as String)
username.set(extra["ossrhUsername"] as String) // ←UserToken ユーザー名、私は環境変数から取ってるので extra から取り出している
password.set(extra["ossrhPassword"] as String) // ←UserToken パスワード、私は環境変数から取ってるので extra から取り出している
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
}一応ローカルで試して、成功しました。GitHub Actionsのシークレットの方も更新します。
ユーザー名、パスワードが変わっただけなので、シークレットを更新して、GitHub Actionsを起動すれば良いはず。
環境変数から取ってる場合ymlは特に変えるところ無いはず。
以上です。お疲れさまでした