SVN Post-commit钩子,用于在Facebook墙上发帖



我在本地机器上使用Visual SVN Server,运行Windows 7 x64。

我正在寻找一个最简单的方法来创建一个post-commit hook到我的一些本地存储库,允许我发布提交信息到我的Facebook墙。

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

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

我已经设法实现了一个解决方案,创建一个新的feed对象(即创建一个新的帖子)在Facebook上每次提交后。这个食谱没有经过充分的测试,你应该把它看作是一个概念的证明。我不会用一个真实的Facebook帐户来测试这个。

环境:

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

动作:

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

  1. 进入https://developers.facebook.com/,
  2. Apps |选择创建一个新的Facebook应用,
  3. 作为显示名称使用类似"The Smart &"闪亮的SVN服务器",
  4. 请求应用程序域 (记住URL!),
  5. 记住App ID

配置Subversion提交后钩子。

必须为VisualSVN Server服务用户帐户启用Powershell脚本执行。

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

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

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

  4. 启动VisualSVN服务器管理器,选择一个存储库并进入hooks管理,

  5. 选择编辑提交后钩子,

  6. 输入以下代码并单击OK:

    @echo off
    set PWSH=%SystemRoot%System32WindowsPowerShellv1.0powershell.exe
    %PWSH% -command $input ^| %1hooksFacebook.ps1 %1 %2
    if errorlevel 1 exit %errorlevel%
    
  7. 创建C:Repositories<repo-name>hooksFacebook.ps1,并在文件中输入以下代码:

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

就是这样!虽然消息没有格式化,解决方案有很大的改进空间。

最新更新