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.

  1. Перейдите на https://developers.facebook.com/,
  2. Приложения | выбрать для создания нового приложения Facebook,
  3. В качестве отображаемого имени используйте что-то вроде "Smart & Shiny SVN Server",
  4. Запрос домена приложения для приложения (запомните URL!),
  5. Запомните идентификатор приложения.

Настройка Subversion post-commit hook.

Выполнение сценария Powershell должно быть включено для учетной записи пользователя службы VisualSVN Server.

  1. Установите FacebookPSModule (проверьте документы),
  2. Запустите Powershell ISE,
  3. Запустите команду:

    New-FBConnection -AppID <YOUR-APP-ID> -RedirectUri <YOUR-APP-DOMAIN-URL>

    Теперь вы видите веб-браузер со страницей Facebook, который запрашивает у вас вход в систему и разрешает доступ для веб-приложения Facebook сервера SVN. Войдите и согласитесь.

  4. Запустите VisualSVN Server Manager, выберите репозиторий и перейдите к управлению хуками,

  5. Выберите, чтобы редактировать хук после фиксации,

  6. Введите следующий код и нажмите ОК:

    @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%
    
  7. Создайте C:\Repositories\<repo-name>\hooks\Facebook.ps1 и введите следующий код в файл:

    $repos = $args[0]
    $rev   = $args[1]
    $logmessage = svnlook info $repos -r $rev 
    New-FBFeed -Message "$logmessage"
    

Это оно! Хотя сообщения не отформатированы и решение имеет БОЛЬШУЮ КОМНАТУ ДЛЯ УЛУЧШЕНИЯ. Комнату можно сравнить с размером всей вселенной.

Другие вопросы по тегам