たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 1572
どうもこんばんわ。
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
は特に変えるところ無いはず。
以上です。お疲れさまでした