我可以使用HP Fortify SSC的REST API创建项目吗?这样可以很好地获取项目列表:
import requests
import getpass
import json
url = "https://www.example.com/ssc/api/v1/"
endpoint = "auth/obtain_token"
headers = {"Content-Type": "application/json",
"Accept": "application/json"}
username = getpass.getuser()
password = getpass.getpass()
auth = (username, password)
r = requests.post("{url}{endpoint}".format(url=url, endpoint=endpoint), headers=headers, auth=auth)
data = r.json().get("data")
token = data.get("token")
endpoint = "projects"
headers["Authentication"] = "FortifyToken {token}".format(token=token)
r = requests.get("{url}{endpoint}".format(url=url, endpoint=endpoint), headers=headers)
print json.dumps(r.json(), sort_keys=True, indent=4, separators=(',', ': '))
...但我没有在API文档中看到实际创建项目的任何示例。我特别感兴趣的是使用Python请求库。我 NOT 想要用Java做任何事情(这是Fortify SSC WAR软件包附带的所有示例)。
如果有任何人对SSC REST API有任何经验(或者可以给我一些更好的文档),我会感谢您提供的任何帮助。
答案 0 :(得分:3)
我终于从HPE技术支持中获得了一些很好的信息,并且能够使用Python中的SSC REST API组建一个用于创建项目的脚本。最新版本的SSC(17.10)使用Swaggerized REST API使这更容易。
答案 1 :(得分:2)
我写了一个开放的source python library,可以在这里使用。 这很容易使用,它还提供了一个命令行工具来上传静态代码扫描的源代码。
答案 2 :(得分:0)
感谢SonarQube Fortify plugin的作者(不是Fortify SSC文档,而不是它自动生成的ssc / html / docs / api-reference),我想我需要对令牌进行base64编码。
if len(auth) == 1:
headers.update((("Authorization", "FortifyToken " + base64.b64encode(auth[0])),))
elif len(auth) == 2:
headers.update((("Authorization", "Basic " + base64.b64encode("{}:{}".format(*auth))),))
auth/token
通话有助于避免重新发送用户名/密码对。 Fortify SCA bin目录中的fortifyclient脚本可以事先执行调用。