用于在Facebook墙上发布的SVN Post-commit钩子

时间:2011-11-28 10:11:40

标签: windows facebook svn visualsvn visualsvn-server

我在运行Windows 7 x64的本地计算机上使用Visual SVN Server。

我正在寻找一种最简单的方法来创建一些本地存储库的提交后挂钩,允许我将提交信息发布到我的Facebook墙上。

奖金功能会将消息排队,如果在提交时我的电脑没有连接到互联网(它是笔记本电脑)。

最佳解决方案不需要安装任何其他软件。我能够编写HTTP连接程序,但我喜欢使用现有的软件,如果有任何帮助的话。

1 个答案:

答案 0 :(得分:4)

我设法实现了一个解决方案,在每次提交后在Facebook上创建一个新的Feed对象(即创建一个新帖子)。配方未经过全面测试,您应将其视为概念验证。我不会使用真实的Facebook帐户来测试它。

环境:

  • Windows Server 2012,
  • VisualSVN Server 2.5.8,
  • Windows Powershell / Powershell ISE,
  • FacebookPSModule

操作:

为我们的SVN服务器的提交消息创建Facebook应用程序。

  1. 转到https://developers.facebook.com/
  2. 应用程序|选择创建一个新的Facebook应用程序,
  3. 作为显示名称使用类似“Smart& Shiny SVN Server”的内容,
  4. 为应用程序请求应用程序域记住URL!),
  5. 请记住 App ID
  6. 配置Subversion post-commit hook。

    Powershell script execution must be enabled用于VisualSVN服务器服务用户帐户。

    1. 安装FacebookPSModule(查看docs),
    2. 启动Powershell ISE,
    3. 运行命令:

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

      现在您看到一个带有Facebook页面的Web浏览器,要求您登录并允许访问SVN服务器Facebook Web应用程序。登录并同意。

    4. 启动VisualSVN服务器管理器,选择存储库并进入挂钩管理,

    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"
      
    8. 就是这样!虽然消息没有格式化,但解决方案有一个很好的改进房间。可以将房间与整个宇宙的大小进行比较。