SVN Post-commit крючок для размещения на стене Facebook
Я использую Visual SVN Server на моей локальной машине под управлением Windows 7 x64.
Я ищу самый простой способ создать зацепку после коммита для некоторых из моих локальных репозиториев, позволяющую мне публиковать информацию о коммите на моей стене в Facebook.
Бонусной функцией будет очередь сообщений, если во время фиксации мой компьютер не подключен к Интернету (это ноутбук).
Лучшее решение не требует установки какого-либо другого программного обеспечения. Я могу написать программу подключения HTTP, однако я хотел бы использовать существующее программное обеспечение, если таковое может быть полезным.
1 ответ
Мне удалось реализовать решение, которое создает новый объект фида (то есть создает новую публикацию) в Facebook после каждой фиксации. Рецепт не полностью проверен, и вы должны рассматривать его как доказательство концепции. Я бы не стал использовать настоящую учетную запись Facebook для проверки этого.
Среда:
- Windows Server 2012,
- VisualSVN Server 2.5.8,
- Windows Powershell / Powershell ISE,
- FacebookPSModule.
Действия:
Создание приложения Facebook для сообщений коммитов нашего сервера SVN.
- Перейдите на https://developers.facebook.com/,
- Приложения | выбрать для создания нового приложения Facebook,
- В качестве отображаемого имени используйте что-то вроде "Smart & Shiny SVN Server",
- Запрос домена приложения для приложения (запомните URL!),
- Запомните идентификатор приложения.
Настройка Subversion post-commit hook.
Выполнение сценария Powershell должно быть включено для учетной записи пользователя службы VisualSVN Server.
- Установите FacebookPSModule (проверьте документы),
- Запустите Powershell ISE,
Запустите команду:
New-FBConnection -AppID <YOUR-APP-ID> -RedirectUri <YOUR-APP-DOMAIN-URL>
Теперь вы видите веб-браузер со страницей Facebook, который запрашивает у вас вход в систему и разрешает доступ для веб-приложения Facebook сервера SVN. Войдите и согласитесь.
Запустите VisualSVN Server Manager, выберите репозиторий и перейдите к управлению хуками,
Выберите, чтобы редактировать хук после фиксации,
Введите следующий код и нажмите ОК:
@echo off set PWSH=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe %PWSH% -command $input ^| %1\hooks\Facebook.ps1 %1 %2 if errorlevel 1 exit %errorlevel%
Создайте
C:\Repositories\<repo-name>\hooks\Facebook.ps1
и введите следующий код в файл:$repos = $args[0] $rev = $args[1] $logmessage = svnlook info $repos -r $rev New-FBFeed -Message "$logmessage"
Это оно! Хотя сообщения не отформатированы и решение имеет БОЛЬШУЮ КОМНАТУ ДЛЯ УЛУЧШЕНИЯ. Комнату можно сравнить с размером всей вселенной.