程序化GForge上传和下载

时间:2016-06-14 12:41:50

标签: download upload gforge

引言

我是一个项目团队的成员,该团队使用旧的GForge系统(社区版v5.6.1)来托管我们的源代码并提供一些其他服务。一个内置服务是上传和下载功能。因此用户可以轻松获得生成的应用程序版本。为了提供这个可下载的版本,我们作为开发人员必须使用浏览器(例如IE或FF)导航到相应的GForge页面,然后勾选一些按钮,填写一些文本框,最后点击"上传&#34 ;按钮,打开文件对话框,指定要上传到GForge下载区域的任何文件。要下载,过程类似。此外,还会有一个单独的WEB页面来请求会话登录。

现在,正如我们开发人员正处于热门阶段一样。并且需要提供高频率的可下载版本,上述过程在发布的基本部分上太容易出错,并且太慢。除此之外,屏幕前总是需要一个真人来点击。

问题

我们如何设法以编程方式上传和下载生成的软件版本进出GForge的下载区域,同时克服第一手的密码页面(当然使用有效的用户帐户)?

我们做了什么,我们做得很快

使用Python脚本。 Python提供了非常有用的模块,如" urllib"," urllib2"和"请求",任何HTTP访问(甚至是具有会话密码保护的访问)都应该是可管理的。经过几个小时的尝试,GForge系统只返回密码请求页面。不是任何有趣的文件。甚至远离上传任何东西。

使用AutoIt脚本。 AutoIt可以自动执行鼠标移动和键盘按键,以及直接访问屏幕上的可见元素。它提供了一个"窗口信息"应用程序来识别任何窗口元素。但是例如无法识别 WEB页面(HTML)中的按钮和文本字段。因此,我们不知道如何正确识别GForge的密码文本字段,以便将鼠标移动到那里,并输入必要的文本。然后继续模仿坐在屏幕前面的那个人。

有没有人对解决我们的问题有一些经验?

1 个答案:

答案 0 :(得分:0)

我将您的系统升级到v6.4.2(当前的GForge版本)。从那里,您将可以访问SOAP接口,从而实现所有这些功能。当GForgeNEXT发布https://next.gforge.com时,SOAP接口将被REST-ful API取代,这使得这种集成变得更加容易。

从5.6.x升级到v6.4.2会有点痛苦,但我们的团队很乐意提供帮助,只需在gforge.com上创建一个帐户,然后在这里打开免费支持票:

https://gforge.com/gf/project/gforge5/tracker/?action=TrackerItemBrowse&tracker_id=10345

免责声明:我的公司管理GForge所以上面给出的建议我会给任何付费客户。为了进一步清楚,GForge中的文件存储在文件系统中。 SOAP接口允许您访问数据库以获取任何故障单或文档,获取相应的文档甚至替换它。以编程方式,这是最干净的答案。