Skip to content

Allow using Resolver/Publisher independently  #44

@iRevive

Description

@iRevive

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions