Создайте проект, используя API-интерфейс REST API Fortify Software Security Center

Могу ли я создавать проекты с использованием REST API HP Fortify SSC? Это прекрасно работает, чтобы захватить список проектов:

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. Я не хочу ничего делать на Java (это то, что все образцы, которые поставляются с пакетом Fortify SSC WAR).

Если у кого-то есть опыт работы с API REST SSC (или может указать мне на лучшую документацию), я был бы признателен за любую помощь, которую вы можете дать.

python,rest,fortify,

2

Ответов: 3


2

Я написал библиотеку python с открытым исходным кодом, которая может быть использована здесь полезной. Это прост в использовании, а также предоставляет инструмент командной строки для загрузки исходного кода для статического сканирования кода.


2 принят

Я, наконец, получил некоторую хорошую информацию из технической поддержки HPE и смог собрать сценарий для создания проектов с использованием SSC REST API в Python. Самая новая версия SSC (17.10) делает это намного проще с помощью Swaggerized REST API.


0

Спасибо авторам плагина SonarQube Fortify (не документация 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вызов помогает избежать повторной отправки пары имени пользователя / пароля. Скрипт fortifyclient из каталога Fortify SCA bin может выполнить вызов заранее.

питон, отдых, подкрепиться,
Похожие вопросы