Ошибка перенаправления OAuth

Здравствуйте. Мы используем Discourse для нашего форума на Exercism. Спасибо за вашу работу над ним.

Часть нашего процесса заключается в том, что задачи на GitHub автоматически закрываются с просьбой создать пост на форуме, при этом текст поста включается в URL. Это отлично работало до одного поста сегодня.

Если вы перейдете по этой задаче на GitHub и нажмете на ссылку «this link», вы увидите цикл OAuth, который завершается сообщением «Ой. Программное обеспечение, управляющее этим форумом, столкнулось с неожиданной проблемой. Приносим извинения за неудобства».

Если вы уже вошли в форум, всё работает (по крайней мере, у меня всё работает, хотя от наших мейнтейнеров я получил противоречивые отзывы).

Я подозреваю, что проблема связана с кодированием на этапе настройки OAuth или перенаправления.

На всякий случай, если это не совсем ясно, я записал 15-секундное видео на Loom для демонстрации: Latest topics - Exercism - 4 September 2025 | Loom

Привет, @iHiD, спасибо за отчёт и воспроизведение — похоже, это ошибка кодировки при ссылке на форум:

Я подозреваю, что в теле задачи не хватает URL-кодирования.

Предоставленная ссылка:

https://forum.exercism.org/new-topic?title=Group%20all%20GitHub%20Actions%20updates%20into%20a%20single%20larger%20pull%20request&body=https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#groups--%0D%0A%0D%0AReduces%20the%20number%20of%20pull%20requests%20to%20review%20and%20voids%20blockages%20like:%0D%0A*%20#23%20vs.%0D%0A*%20#27%20vs.%0D%0A*%20#28%20by%20putting%20them%20all%20in%20a%20single%20pull%20request&category=free-pascal

В теле есть текст, который должен быть URL-закодирован, например, слеши и символы решётки.

Хотя ссылка работает напрямую, потому что браузеры умны и обрабатывают такие случаи, наша логика перенаправления задаёт целевой URL через переданные параметры и ориентируется на те параметры, которые были переданы изначально. Без правильного кодирования, я подозреваю, именно это ломает указанное перенаправление.

При использовании ссылки с закодированным телом у меня эта проблема не возникает. Правильно закодированная ссылка выглядит так:

https://forum.exercism.org/new-topic?title=test&body=https%3A%2F%2Fdocs.github.com%2Fen%2Fcode-security%2Fdependabot%2Fworking-with-dependabot%2Fdependabot-options-reference%23groups--%250D%250A%250D%250AReduces%2520the%2520number%2520of%2520pull%2520requests%2520to%2520review%2520and%2520voids%2520blockages%2520like%3A%250D%250A*%2520%2323%2520vs.%250D%250A*%2520%2327%2520vs.%250D%250A*%2520%2328%2520by%2520putting%2520them%2520all%2520in%2520a%2520single%2520pull%2520request%26category%3Dfree-pascal&category=free-pascal

Спасибо за быстрый ответ и подтверждение!

Я спрошу, может ли кто-то из нашего сообщества это исправить. Вы можете смело считать эту тему закрытой! :slight_smile: