Closed janheinrichmerker closed 5 years ago
Update: It does not seem to depend on whether only one release is uploaded or an arbitrary number of releases. Just confirmed on my own repository, that it occurs anytime I have a pending draft and try to update that.
I've applied your suggested changes, please try out version 2.2.5.
Wow, that's a pretty big commit. Not sure if I can understand all your changes. But anyway, I'll check it out later today.
When there is only exactly one release on GitHub, and you're re-running
githubRelease
, the plugin fails to find the last commit hash:Stack trace
When running
gradlew githubRelease --stacktrace
the second time, I get this output:Cause
I've looked it up in the plugin's code, and I think I have found the cause. In
ChangeLogSupplier.groovy
at line 115 you're assuming, the next release could be queried by simply incrementing the list index. But when there's only one release on Github, and the tag is the same as the release, we're trying to upload, this assumption fails, and Gradle throws anIndexOutOfBoundsException
.Fix
I think this issue could be fixed by checking, whether, if only one release is returned by the API, that is the same as the one we're trying to upload. In that case we would proceed just like we would normally do, if there wouldn't be a release at all.
So we only need to replace line 99 with the following check: