たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 1556
どうもこんばんわ。
GitHub Actions
を使ってボタンを押すだけでライブラリのリリース、今日も使おうと思ったら失敗してしまった。
その調査です。
Received status code 401 from server: Content access is protected by token
この記事はOSSRH
を使っているユーザー向けです。
いまライブラリを公開しようとすると、Central Portal
というOSSRH
の代替に誘導されるらしいです。
めっちゃ最近で草
OSSRH
のユーザー名、パスワードでアップロード出来なくなったらしい(?)。
https://central.sonatype.org/news/20240617_migration_of_accounts/
解決方法はユーザートークンなるものを使うらしい、これっぽい。
https://central.sonatype.org/publish/generate-token/
私はこっちですね: https://s01.oss.sonatype.org/
ログインしたら、名前のところのドロップダウンメニューを開いて、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
は特に変えるところ無いはず。
きたきた
以上です。お疲れさまでした