我在本地机器上使用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应用程序
- 进入https://developers.facebook.com/,
- Apps |选择创建一个新的Facebook应用,
- 作为显示名称使用类似"The Smart &"闪亮的SVN服务器",
- 请求应用程序域 (记住URL!),
- 记住App ID。
配置Subversion提交后钩子。
必须为VisualSVN Server服务用户帐户启用Powershell脚本执行。
- 安装FacebookPSModule(检查文档),
- 启动Powershell ISE,
-
运行命令:
New-FBConnection -AppID <YOUR-APP-ID> -RedirectUri <YOUR-APP-DOMAIN-URL>
现在你看到一个带有Facebook页面的web浏览器,请求你登录并允许访问SVN服务器Facebook web应用程序。登录并同意。
-
启动VisualSVN服务器管理器,选择一个存储库并进入hooks管理,
-
选择编辑提交后钩子,
-
输入以下代码并单击OK:
@echo off set PWSH=%SystemRoot%System32WindowsPowerShellv1.0powershell.exe %PWSH% -command $input ^| %1hooksFacebook.ps1 %1 %2 if errorlevel 1 exit %errorlevel%
-
创建
C:Repositories<repo-name>hooksFacebook.ps1
,并在文件中输入以下代码:$repos = $args[0] $rev = $args[1] $logmessage = svnlook info $repos -r $rev New-FBFeed -Message "$logmessage"
就是这样!虽然消息没有格式化,解决方案有很大的改进空间。