phly / keep-a-changelog

Tools for manipulating CHANGELOG.md files in Keep A Changelog format, including tagging and releasing.
https://phly.github.io/keep-a-changelog/
BSD 2-Clause "Simplified" License
181 stars 21 forks source link

Allow gitlab redirects to login when probing links #94

Closed heiglandreas closed 3 years ago

heiglandreas commented 3 years ago

At least with gitlab you will be redirected to the login-page when doing HEAD requests even though you provide an authentication token as that token is not used in the HTTP-request. So when the location-header contains multiple URLs the first one is the one we are after, the second one is the link to the login-page

Before this fix adding an entry to the changelog via keep-a-changelog entry:added failed with this error-message:

Fatal error: Uncaught TypeError: Argument 1 passed to Phly\KeepAChangelog\Entry\AbstractPrependLinkListener::probeLink() must be of the type string, array given, called in /app/vendor/phly/keep-a-changelog/src/Entry/AbstractPrependLinkListener.php on line 102 and defined in /app/vendor/phly/keep-a-changelog/src/Entry/AbstractPrependLinkListener.php:74
Stack trace:
#0 /app/vendor/phly/keep-a-changelog/src/Entry/AbstractPrependLinkListener.php(102): Phly\KeepAChangelog\Entry\AbstractPrependLinkListener->probeLink(Array)
#1 /app/vendor/phly/keep-a-changelog/src/Entry/AbstractPrependLinkListener.php(53): Phly\KeepAChangelog\Entry\AbstractPrependLinkListener->probeLink('https://gitlab....')
#2 /app/vendor/phly/keep-a-changelog/src/EventDispatcher.php(41): Phly\KeepAChangelog\Entry\AbstractPrependLinkListener->__invoke(Object(Phly\KeepAChangelog\Entry\AddChangelogEntryEvent))
#3 /app/vendor/phly/keep-a-changelog/src/Entry/EntryCommand.php(124): Phly\KeepAChangelog\EventDispatcher->dispatch(Object(Phly\KeepAChangelog\Entry\AddCh in /app/vendor/phly/keep-a-changelog/src/Entry/AbstractPrependLinkListener.php on line 74