sbt-github-packages icon indicating copy to clipboard operation
sbt-github-packages copied to clipboard

Allow using Resolver/Publisher independently

Open iRevive opened this issue 4 years ago • 1 comments

Currently, it's hard to use a plugin only for publishing. Especially when the publishing process happens only on CI. At this point, a valid token is not needed locally.

But the build will fail anyway since the credentials setting requires a token to be defined.

From my point of view, the functionality can be separated into smaller modules.

Project modules:

  • sbt-github-packages-common - shared modules: TokenSource, GitHubRepository, utility methods
  • sbt-github-packages-publisher - only Publisher
  • sbt-github-packages-resolver - only Resolver
  • sbt-github-packages - both Publisher and Resolver. Identical to the current definition.

Publisher

Responsible for the publishing part.

Settings:

  • githubSuppressPublicationWarning
  • githubPublishToRepository - The entry is a combination of owner, repository, and token source.
githubPublishToRepository := GitHubRepository(
  "djspiewak", 
  "sbt-github-packages", 
  TokenSource.Environment("GH_PACKAGES_TOKEN")
)

Derived settings (based on githubPublishToRepository):

  • githubPublishTo
  • scmInfo
  • homepage
  • pomIncludeRepository
  • publishMavenStyle

Behavior:

  • update - does not fail if a token is missing
  • publish - may fail if a token is missing

Resolver/Downloader/Loader

The should be a better name I believe.

It would be nice if multiple GitHub repositories can be supported.

Settings:

  • githubRepositories - The GitHub repositories. The entry is a combination of owner, repository, and token source.
githubRepositories += GitHubRepository(
  "djspiewak", 
  "sbt-github-packages", 
  TokenSource.Environment("GH_TOKEN")
)

Derived settings (based on githubRepositories):

  • resolvers
  • credentials

Behavior:

  • update - may fail if a token is missing

iRevive avatar Dec 14 '21 10:12 iRevive

I just had to work around this problem with https://github.com/target/data-validator/pull/98 by setting an invalid token just to allow sbt to run.

colindean avatar Jun 09 '22 18:06 colindean