SVN Post-commit крючок для размещения на стене Facebook - PullRequest
4 голосов
/ 28 ноября 2011

Я использую Visual SVN Server на своем локальном компьютере под управлением Windows 7 x64.

Я ищу простой способ создания перехвата после фиксации для некоторых из моих локальных репозиториев, позволяющий мнеразместить информацию о коммите на моей стене в фейсбуке.

Бонусной функцией будет очередь сообщений, если во время коммита мой компьютер не подключен к Интернету (это ноутбук).

Лучшее решение не требует установки какого-либо другого программного обеспечения,Я могу написать программу соединения HTTP, однако я хотел бы использовать существующее программное обеспечение, если оно может быть полезным.

1 Ответ

4 голосов
/ 26 декабря 2012

Мне удалось реализовать решение, которое создает новый объект канала (т. Е. Создает новый пост) в 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-ловушка фиксации.

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

  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"
    

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

...