Sbt-github-packages: Alternatif Properti JVM untuk kredensial

Dibuat pada 10 Jun 2020  ·  11Komentar  ·  Sumber: djspiewak/sbt-github-packages

IntelliJ tidak dapat memuat proyek dengan plugin ini karena tidak menawarkan cara untuk mendefinisikan variabel lingkungan yang akan disetel untuk sbt saat memuat proyek. Menyetelnya untuk aplikasi di MacOS tampaknya tidak dapat diandalkan, karena teknik kerja sebelumnya rusak pada pembaruan OS.

Akan lebih baik jika token github dapat disediakan sebagai properti JVM, yang dapat dengan mudah diatur.

Komentar yang paling membantu

Untuk membuat variabel lingkungan berfungsi di IntelliJ, aktifkan sbt Shell untuk memuat ulang proyek.

Alat Bangun > sbt > proyek sbt

image

Ini bekerja untuk saya di Edisi Komunitas versi 2020.3.

Semua 11 komentar

Senang menerima PR untuk TokenSource yang melakukan ini!

Saya setuju ini akan membantu, tetapi saya melakukan ini sebagai solusi cepat/kotor jika Anda membutuhkannya.

  • Buat token akses pribadi dengan semua cakupan paket yang mungkin Anda perlukan (baca, tulis, hapus).
  • di ~/.gitconfig... atur atribut token seperti yang dijelaskan dalam file README repo.
  • Dalam file build.sbt Anda... githubTokenSource := TokenSource.GitConfig("github.token") || TokenSource.Environment("GITHUB_TOKEN")
  • IntelliJ + sbt Shell harus berhasil tanpa mengeluh tentang variabel lingkungan yang hilang.

Solusi itu tidak berhasil untuk saya.

Solusi itu tidak berhasil untuk saya.

Apakah token akses pribadi yang Anda gunakan memiliki cakupan paket yang ditetapkan? File ~/.gitconfig harus memiliki baris seperti ini.

[github]
    token = <github_token_value>

Ya, dan itulah yang saya miliki di file .gitconfig.

Solusi itu tidak berhasil untuk saya.

Apakah token akses pribadi yang Anda gunakan memiliki cakupan paket yang ditetapkan? File ~/.gitconfig harus memiliki baris seperti ini.

[github]
  token = <github_token_value>

Saya telah mencoba yang serupa ~/.gitconfig , itu juga tidak berhasil untuk saya.

Untuk membuat variabel lingkungan berfungsi di IntelliJ, aktifkan sbt Shell untuk memuat ulang proyek.

Alat Bangun > sbt > proyek sbt

image

Ini bekerja untuk saya di Edisi Komunitas versi 2020.3.

Untuk membuat variabel lingkungan berfungsi di IntelliJ, aktifkan sbt Shell untuk memuat ulang proyek.

Alat Bangun > sbt > proyek sbt

image

Ini bekerja untuk saya di Edisi Komunitas versi 2020.3.

Ini tidak berhasil untuk saya. Saya telah mengonfigurasinya melalui variabel lingkungan. Saya menyiasatinya, sebagai solusinya, dengan menggunakan plugin sbt-dotenv . Setelah ini, semuanya bekerja tanpa perubahan dalam konfigurasi IntelliJ atau sebaliknya.

Variasi solusi yang disarankan dalam masalah ini berfungsi untuk pengaturan IntelliJ saya.

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

Saya berbagi bahwa tim kami mengira kami telah menyelesaikan masalah ini dengan proyek tunggal dan dengan pembangunan multi-proyek dengan menyuntikkan nilai githubTokenSource sebagai pengaturan umum ke dalam setiap blok konfigurasi proyek di build.sbt. Semuanya berjalan dengan baik untuk pengguna, IDE, dan ruang kerja GitHub Action yang memiliki entri ~/.gitconfig github.token atau memiliki variabel env GITHUB_TOKEN.

Sampai salah satu dari kami memutuskan untuk menggunakan tugas runAll plugin Lagom.

Ini mati segera untuk masalah asli.

Konteks bercabang yang digunakan oleh plugin Lagom untuk men-deploy service swarm tidak memiliki variabel lingkungan dan file ~/.gitconfig.

Kami sedang meneliti cara untuk mengatur lingkungan untuk lingkungan eksekusi bercabang itu.

Namun, asumsi keseluruhan bahwa GITHUB_TOKEN harus disediakan bahkan jika tugas plugin Paket GitHub tidak dipanggil terbukti membuat frustasi bagi pengguna kami dan bot yang kebetulan belum memiliki token tersebut.

guru SBT.

Apakah ada cara yang tepat untuk "menyuntikkan" pengaturan (terutama githubTokenSource ) ke ruang nama global sehingga plugin seperti sbt-github-packages melihat pengaturan itu untuk semua proyek yang ditentukan secara eksplisit, untuk semua proyek yang ditentukan secara dinamis ( seperti yang dibuat oleh plugin Lagom), untuk semua fase pembuatan, dan untuk semua konteks bercabang?

Sulit untuk secara eksplisit mengklaim lokasi kredensial yang tidak berubah di semua permutasi itu berulang-ulang, harus menelusuri detail tentang bagaimana SBT mengelola ruang nama atau cache negara.

Mungkin ini bukan kesalahan plugin khusus ini tetapi plugin ini yang disalahkan karena harus melakukan semua operasi SBT internal ini untuk mencoba menutupi semua kasus.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat