sbt-github-packages
sbt-github-packages copied to clipboard
Allow using Resolver/Publisher independently
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
PublisherandResolver. Identical to the current definition.
Publisher
Responsible for the publishing part.
Settings:
githubSuppressPublicationWarninggithubPublishToRepository- 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):
githubPublishToscmInfohomepagepomIncludeRepositorypublishMavenStyle
Behavior:
update- does not fail if a token is missingpublish- 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):
resolverscredentials
Behavior:
update- may fail if a token is missing
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.