Как загрузить заархивированный исходный код в Checkmarx SAST с помощью APIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как загрузить заархивированный исходный код в Checkmarx SAST с помощью API

Сообщение Anonymous »

Я пытался загрузить заархивированный исходный код в Checkmarx SAST следующими двумя способами:
  • Конечная точка по умолчанию согласно официальной документации: документация

Код: Выделить всё

import requests

def upload_source(token: str, path_to_archive: str, host: str, project_id: int) -> None:
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json;v=1.0',
'Authorization': 'Bearer {token}'
}

data = {'zippedSource': open(path_to_archive, 'rb').read()}

response = requests.post(f'{host}/projects/{project_id}/sourceCode/attachments',
headers=headers, data=data)
  • Библиотека CheckmarxPythonSDK: страница pypi:

Код: Выделить всё

from CheckmarxPythonSDK.CxRestAPISDK import ProjectsAPI

def upload_source(path_to_archive: str, project_id: int) -> None:

cx_loader = ProjectsAPI()
cx_loader.upload_source_code_zip_file(project_id, path_to_archive)
В обоих случаях я получил одни и те же ошибки:

Код: Выделить всё

{
"messageCode": 27000,
"messageDetails": "The requested file not found in Http-Message body"
}
SDK использует следующие части запроса для загрузки файла. Я пробовал использовать их с модулем python.requests вместо примеров документации, но никаких изменений не произошло:

Код: Выделить всё

data = {"zippedSource": ("archive_name", open('path_to_arhive', 'rb'), "application/zip")}
headers = {
'Content-Type': 'multipart/form-data; boundary=1d8174c7f75344e0b5dcd64a9f874c1a',
'cxOrigin': 'Checkmarx Python SDK 1.0.5',
'Authorization': f'Bearer {token}'
}
Использование разных архиваторов также не дало эффекта:
  • 7zip
  • python .shutil.make_archive()
  • Cx7zip
Я не могу понять проблему. Это могут быть неправильные заголовки, неправильное управление файлами или что-то еще...
Надеюсь, вы сможете помочь.
Я запустил сценарий из WSL (Ubuntu).

Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-the-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»