概要
前回の続きです
今回はファイルをアップロードしたファイルを Wiki に掲載する方法を紹介します
環境
- Gitlab 14.3.3-ee
サンプルスクリプト
#!/bin/bash
PROJECT_ID=123
HOST="https://gitlab.example.com/"
UPLOAD_API_PATH="/api/v4/projects/${PROJECT_ID}/uploads"
PRIVATE_TOKEN="xxxxxxxxxxx"
FILE_NAME="test.png"
IMAGE_URL=`/usr/bin/curl -s -XPOST "${HOST}${UPLOAD_API_PATH}" --header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" --form "file=@${FILE_NAME}" | jq -r .markdown`
CONTENT="
# API Test Page
## List
* a
* b
* c
## Image
${IMAGE_URL}
"
TITLE="test"
BODY="format=markdown&content=${CONTENT}&title=${TITLE}&slug=${TITLE}"
WIKI_API_PATH="/api/v4/projects/${PROJECT_ID}/wikis/${TITLE}"
/usr/bin/curl -XPUT "${HOST}${WIKI_API_PATH}" \
--header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" \
--data "${BODY}"
解説
アップロード用の API のパスは /api/v4/projects/${PROJECT_ID}/uploads
になります
レスポンスでアップロードしたファイルの URL が取得できます
今回は markdown で Wiki を編集するので markdown の値をそのまま使っています
JSON のパースには jq を使っているのでない場合はインストールしてください
{
"alt": "dk",
"url": "/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
"full_path": "/namespace1/project1/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
"markdown": "![dk](/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png)"
}
あとは前回同様 Wiki を編集する API をコールするだけです
最後に
あとは CI と組み合わせます
0 件のコメント:
コメントを投稿