diffplug / spotless-changelog

The changelog is cast, let the versions fall where they may.
Apache License 2.0
45 stars 2 forks source link

Integrate with GitHub releases #10

Open nedtwigg opened 4 years ago

nedtwigg commented 4 years ago

It would be useful to turn GitHub releases into a changelog, and vice-versa. Our Changelog.java would be helpful for this. In pseudocode:

import com.diffplug.spotless.changelog.Changelog;
import com.diffplug.spotless.changelog.Changelog.VersionEntry;

// this won't compile, but the main APIs are already present
Changelog empty = new Changelog("## [Unreleased]\n");
Changelog withGitHub = empty.withMutatedVersions(versions -> {
  for (GitHubRelease r : GitHubApi.releases()) {
    versions.add(VersionEntry.versionDate(r.version(), r.date())
      .setChanges(r.releaseNotes()));
  }
})
System.out.println(withGitHub.toStringUnix());

We'd be happy to merge any PRs which add GitHub integration (in either direction) into spotless-changelog-lib. Once that has been accomplished, we'd be happy to merge any PRs which add GitHub-related functionality into the gradle plugin.

Goooler commented 2 weeks ago

Addressed in https://github.com/diffplug/spotless/pull/2196.