Sbt-github-packages: クレデンシャルのJVMプロパティの代替

作成日 2020年06月10日  ·  11コメント  ·  ソース: djspiewak/sbt-github-packages

IntelliJは、プロジェクトのロード時にsbtに設定される環境変数を定義する方法を提供しないため、このプラグインを使用してプロジェクトをロードすることはできません。 以前は機能していたテクニックがOSのアップデートで壊れていたため、MacOS上のアプリにそれらを設定することは信頼できないようです。

githubトークンをJVMプロパティとして提供することもできれば、それは簡単に設定できます。

最も参考になるコメント

IntelliJで環境変数を機能させるには、プロジェクトのリロードでsbtシェルを有効にします。

ビルドツール>sbt>sbtプロジェクト

image

これは、CommunityEditionバージョン2020.3で機能しました。

全てのコメント11件

これを行うTokenSourceのPRを喜んで受け入れます!

私はこれが役立つことに同意しますが、あなたがそれを必要とするならば、私はこれを迅速で汚い解決策としてやっています。

  • 必要になる可能性のあるすべてのパッケージスコープ(読み取り、書き込み、削除)を使用してパーソナルアクセストークンを作成します。
  • 〜/ .gitconfig ...で、リポジトリのREADMEファイルの説明に従ってトークン属性を設定します。
  • build.sbtファイル内... githubTokenSource := TokenSource.GitConfig("github.token") || TokenSource.Environment("GITHUB_TOKEN")
  • IntelliJ + sbtシェルは、欠落している環境変数について文句を言わずに成功するはずです。

その回避策は私にはうまくいきません。

その回避策は私にはうまくいきません。

使用したパーソナルアクセストークンには、パッケージスコープが設定されていますか? 〜/.gitconfigファイルには次のような行が必要です。

[github]
    token = <github_token_value>

はい、それは私が.gitconfigファイルに持っているものです。

その回避策は私にはうまくいきません。

使用したパーソナルアクセストークンには、パッケージスコープが設定されていますか? 〜/.gitconfigファイルには次のような行が必要です。

[github]
  token = <github_token_value>

私は同様の~/.gitconfigを試しましたが、どちらもうまくいきませんでした。

IntelliJで環境変数を機能させるには、プロジェクトのリロードでsbtシェルを有効にします。

ビルドツール>sbt>sbtプロジェクト

image

これは、CommunityEditionバージョン2020.3で機能しました。

IntelliJで環境変数を機能させるには、プロジェクトのリロードでsbtシェルを有効にします。

ビルドツール>sbt>sbtプロジェクト

image

これは、CommunityEditionバージョン2020.3で機能しました。

これは私にはうまくいきませんでした。 環境変数を使用して構成しました。 回避策として、 sbt-dotenvプラグインを使用してこれを回避しました。 この後、IntelliJ構成などを変更することなく、すべてが機能しました。

この問題で提案された回避策のバリエーションは、私のIntelliJセットアップで機能しました。

githubTokenSource := TokenSource.Or(
  TokenSource.Environment("GITHUB_TOKEN"), // Injected during a github workflow for publishing
  TokenSource.GitConfig("github.token") // local token set in ~/.gitconfig
)

私たちのチームは、build.sbtの各プロジェクトの構成ブロックに共通の設定としてgithubTokenSource値を挿入することにより、この問題が単一プロジェクトおよび複数プロジェクトのビルドで解決されたと考えたことを共有します。 〜/ .gitconfig github.tokenエントリまたはGITHUB_TOKENenv変数のいずれかを持つユーザー、IDE、およびGitHubActionワークスペースではすべてがうまくいきました。

私たちの1人がLagomプラグインのrunAllタスクを使用することを決定するまで。

これは元の問題のためにすぐに死にます。

Lagomプラグインがサービススウォームをデプロイするために使用するフォークされたコンテキストには、環境変数と〜/.gitconfigファイルの両方がありません。

その分岐した実行環境の環境を設定する方法を研究しています。

ただし、GitHubパッケージプラグインタスクが呼び出されていない場合でもGITHUB_TOKENを提供する必要があるという全体的な想定は、そのトークンをすぐに利用できるようになっていないユーザーやボットにとっては苛立たしいことです。

SBTの達人。

設定(特にgithubTokenSource )をグローバル名前空間に「注入」して、 sbt-github-packagesのようなプラグインが、すべての動的に定義されたプロジェクト( Lagomのプラグインが作成するように)、すべてのビルドフェーズ、およびすべてのフォークされたコンテキストに対して?

SBTが名前空間または状態キャッシュを管理する方法の詳細を掘り下げる必要があるため、これらすべての順列にわたって不変であるクレデンシャルの場所を明示的に要求する必要があるのは面倒です。

おそらくこれはこの特定のプラグインのせいではありませんが、このプラグインは、すべてのケースをカバーしようとするためにこのすべての内部SBT手術を行わなければならないことで非難されています。

このページは役に立ちましたか?
0 / 5 - 0 評価