Теперь хочу сделать похожую закладку для редактирования файлов на GitHub. Как это можно реализовать?
Контекст задачи
Я работаю с Alfred workflow (приложение для macOS) и пытаюсь расширить его функционал. Сейчас оно умеет нажимать кнопку коммита, но хочется добавить возможность редактирования текущего документа.
А ты проверял что происходит с несохраненными изменениями? Когда я делал подобную штуку, заметил что GitHub иногда показывает предупреждение если на странице уже есть открытые формы. Может стоит добавить проверку на document.querySelector('.is-dirty') перед переходом? И кстати, а зачем тебе именно через Alfred, не проще ли хоткей в браузере сделать?
можешь попробовать через URL-хак. github позволяет сразу переходить в режим редактирования если добавить /edit/branch-name/ в адресную строку. например, если у тебя есть файл github.com/user/repo/blob/main/file.txt, то для редактирования будет github.com/user/repo/edit/main/file.txt. закладка может просто заменять /blob/ на /edit/ в текущем url: window.location.href = window.location.href.replace('/blob/', '/edit/'). это работает стабильнее чем клики по кнопкам, потому что гитхаб не меняет структуру урлов так часто.
На странице файла в GitHub есть кнопка с карандашом для редактирования. Можно кликнуть по ней через document.querySelector('.js-edit-blob')?.click() или найти по aria-label. Но учти, что GitHub часто меняет селекторы, так что лучше использовать более стабильные атрибуты типа [aria-label*="Edit"]. У меня такая закладка работала месяца два, потом пришлось обновлять селектор.