
Александр
31.07.2018
06:27:47

Alexander
31.07.2018
07:12:27
Друзья всем привет. Подскажите, есть ли какой то способ хранить контент (jira, confluence) не на локальной ФС сервера, а в S3 хранилище? Не спрашивайте зачем, следующий вопрос будет про контейнеризацию :).


Stas
31.07.2018
07:13:27
Стас, привет. Только добрался до компа.
Во-первых curl под виндой ведёт себя иначе чем под Линухом, увы тот синтаксис со всякими апострофами он больше про линукс.
Чтобы под виндой, да и пол Линухом нормально работать с РЕСТ АПИ, я уже давно не использую его базовую функциональность из мануалов Атлассиан.
Во-вторых я пользую Confluence CLI, так мне лучше и удобнее с рестом работать. (тут пример команд)
Также там есть много ништяков простых для добавления файлов на страницу и.т.п.
Например, если хочу увидеть список страниц в пространстве просто будет так
confluence.bat --server https://YOURDOMAIN.COM --user vasya --password "vasya" --action getPageList --space "TST"
А если твой вариант, как узнать реальное количество страниц, то вот так хак:
Вот пример
confluence.bat --server https://YOURDOMAIN.COM --user vasya --password "vasya" --action getPageList --space TST --file test.txt
36 pages in list written to file: test.txt
Качать тут
Саша, привет! Спасибо! CLI посмотрю.
Там проблема с таким запросом:
Но вот как быть с запросом PUT?
curl -u admin:admin -X PUT -H 'Content-Type: application/json' -d'{"id":"3604482","type":"page",
"title":"new page","space":{"key":"TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}' http://example.net/confluence/rest/api/content/3604482
Нужно поместить блок кода таблицы на все страницы пространства.

Google

Stas
31.07.2018
07:14:27
Файл поместить через POST --- нет проблем.
А вот пакет данных -- никак.
Что-то с синтаксисом не то после -d.

Danila
31.07.2018
07:15:56
Что там может быть не то? Это просто курл прости г-споди, у вас может быть курл новый старый, сделайте curl -h и посмотрите, может там поменялось что-то

Stas
31.07.2018
07:16:07
Вот так тоже не работает
curl -k -S -v -u admin -X PUT -H "Content-Type: application/json" -d'{"id":"3604482","type":"page",
"title":"new page","space":{"key":"TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}' http://example.net/confluence/rest/api/content/3604482

Danila
31.07.2018
07:17:02
Нихрена себе

Stas
31.07.2018
07:17:47
--data/-d на винде не предполагает кавычки перед JSON, судя по справке.

Danila
31.07.2018
07:18:24
Какую ошибку дает вам курл?
Даже не так. У вас хром есть?
Даже не так. У вас хром есть?
Попробуйте воспользоваться этой тулзой, чтобы с рестом общаться. Наверное, так будет проще и быстрее https://chrome.google.com/webstore/detail/aejoelaoggembcahagimdiliamlcdmfm

Stas
31.07.2018
07:22:55
Какую ошибку дает вам курл?
Если копировать пример как есть (ординарные кавычки):
curl -v -S -u admin -X PUT -H 'Content-Type: application/json' -d'{"id":"3604482","type":"page",
"title":"new page","space":{"key":"~TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}' http://example.net/confluence/rest/api/content/3604482
Возвращает
curl: (6) Could not resolve host: application
Очевидно на винде (семёрка) с кавычками синтаксис другой.

Google

Danila
31.07.2018
07:23:31
А, ну бывает
Кавычки на двойные замените
После -d кавычку ставьте перед скобкой, а не после -d сразу, там пробел нужен
И дело не особо в винде, хотя в винде тоже, но не совсем, но мне не нравится это извращение

Ярослав
31.07.2018
07:24:39

Александр
31.07.2018
07:36:59

Ярослав
31.07.2018
07:40:11
А ваще все кишит статьями как это все развернуть на aws за 10 минут

Andrey
31.07.2018
07:43:21


Stas
31.07.2018
07:54:30
Кавычки на двойные замените
Если заменить кавычки во всех аргументах, кроме -d вот так:
curl -S -v -u user -X PUT -H "Content-Type: application/json" -d '{"id":"3604482","type":"page",
"title":"new page","space":{"key":"~TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}' http://example.net/confluence/rest/api/content/3604482
Уже интереснее, потому что возвращает:
{"statusCode":500, "message":"org.codehaus.jackson.JsonParseException: Unexpected character (‘‘‘ (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: com.atlassian.confluence.plugins.restapi.filtersLimitingRequestFilter$1@43bd0f71; line: 1, column: 2]"}* Closing connection
Экран \" в аргументе -d не работает. То же с "" и ^"


Danila
31.07.2018
07:58:28
Если заменить кавычки во всех аргументах, кроме -d вот так:
curl -S -v -u user -X PUT -H "Content-Type: application/json" -d '{"id":"3604482","type":"page",
"title":"new page","space":{"key":"~TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}' http://example.net/confluence/rest/api/content/3604482
Уже интереснее, потому что возвращает:
{"statusCode":500, "message":"org.codehaus.jackson.JsonParseException: Unexpected character (‘‘‘ (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: com.atlassian.confluence.plugins.restapi.filtersLimitingRequestFilter$1@43bd0f71; line: 1, column: 2]"}* Closing connection
Теперь в аргументе -d верните кавычки на одинарные :)

Andrey
31.07.2018
08:00:18

Danila
31.07.2018
08:02:05
Друзья, чтобы не сталкиваться с такими проблемами, могу предложить очень дельный воркэраунд: используйте linux-окружение.

Stas
31.07.2018
08:11:30

Sergey
31.07.2018
08:13:07
Да и плагинов для браузеров море


Stas
31.07.2018
08:22:47
Друзья, чтобы не сталкиваться с такими проблемами, могу предложить очень дельный воркэраунд: используйте linux-окружение.
Не понял, заменить двойные на ординарные в JSON-запросе?
Если оставить только ординарные, ругается консоль: Не удаётся найти указанный файл.
curl -S -v -u user -X PUT -H "Content-Type: application/json" -d '{'id':'3604482','type':'page',
'title':'new page','space':{'key':'~TST'},'body':{'storage':{'value':
'<p>This is the updated text for the new page</p>','representation','storage'}},
'version':{'number':2}}' http://example.net/confluence/rest/api/content/3604482
А если заменить двойные на ординарные только в JSON-пакете, а аргумент -d напротив оформить в двойных, возникает уже ошибка от сервера Confluence, та же 500.
Bummers!
curl -S -v -u user -X PUT -H "Content-Type: application/json" -d "{'id':'3604482','type':'page',
'title':'new page','space':{'key':'~TST'},'body':{'storage':{'value':
'<p>This is the updated text for the new page</p>','representation','storage'}},
'version':{'number':2}}" http://example.net/confluence/rest/api/content/3604482


Nikita
31.07.2018
08:29:58
Я бы попытался использовать двойные ковычки в аргументах, а сам JSON из файла взять (где тоже двойные ковычки везде). curl --data "@/path/to/filename". Извиняюсь, если это уже было выше.

Stas
31.07.2018
09:24:26
Я бы попытался использовать двойные ковычки в аргументах, а сам JSON из файла взять (где тоже двойные ковычки везде). curl --data "@/path/to/filename". Извиняюсь, если это уже было выше.
Я сделал так:
1) Скопировал всё, что стоит в аргументе параметра -d (весь JSON-payload) в текстовый файл:
{"id":"3604482","type":"page",
"title":"new page","space":{"key":"~TST"},"body":{"storage":{"value":
"<p>This is the updated text for the new page</p>","representation":"storage"}},
"version":{"number":2}}
2) Составил запрос:
curl -S -v -u user -X PUT -d @json.txt
http://example.net/confluence/rest/api/content/3604482
И получил статус: HTTP Status 415.
Если есть идеи, буду рад.

Google

Sergey
31.07.2018
09:31:26

Nikita
31.07.2018
09:38:38
забыл поставить content-type заголовок

Александр
31.07.2018
10:09:57

Stas
31.07.2018
10:14:16

Александр
31.07.2018
10:15:08
Дык кли не надо ставить просто скачай пакет

Stas
31.07.2018
10:32:17
забыл поставить content-type заголовок
О! Гениально. Это оно. Сделал так:
curl -S -v -u user -X PUT -H "Content-Type: application/json" -d @json.txt
http://example.net/confluence/rest/api/content/3604482
Вернулось Status code: 409, "message":"Version must be incremented on update. Current version is: 4".
Так как у меня в JSON было 2, поставил 5, и всё обновилось.
Можно как-то добавлять текст на страницу, а не перезаписывать его?
Или надо вначале GET, а потом туда добавлять свой json?
А то у меня переписалась вся страница...

Александр
31.07.2018
10:40:04

Stas
31.07.2018
10:41:02

Александр
31.07.2018
11:06:20

Stas
31.07.2018
11:12:24
Там свой референс по командам я выше приводил пример и ссылки
Вижу, что можно так:
confluence.bat --action modifyPage --targetServer "http://example.net" --space "~TEST" --id "846922693" --title "My title" --content2 "#Text appended"
А где данные для входа указываются? Логин отдельной командой? Он на сеанс запоминается?

Admin
ERROR: S client not available

Александр
31.07.2018
11:13:55

Stas
31.07.2018
11:15:17
? Чукча не читатель, ты ж понимаешь. )) Спасибо.
Что-то не могу понять, а как его с HTTPS научить работать, да ещё, чтобы самоподписный сертификат принимал?
Есть параметр вроде -k в curl?

Александр
31.07.2018
11:19:53
Просто адрес пишешь с https, там не надо таких парметров, по крайней мере в облаке

Stas
31.07.2018
11:22:45

Александр
31.07.2018
11:23:22
Скрин покажи

Nikita
31.07.2018
11:24:01
Добавь его в jks

Google

Nikita
31.07.2018
11:24:14
через keytool, например

Stas
31.07.2018
12:24:20
Скрин покажи
Client error: Invalid request: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targets.

Александр
31.07.2018
12:34:40

Stas
31.07.2018
12:35:38
Чтоб я помнил, как это делается.

Александр
31.07.2018
12:36:05
Аааа

Stas
31.07.2018
12:36:07
Нужен openssl.

Марфа
31.07.2018
14:30:29
Привет)
А кто-нибудь знает как можно сделать, чтобы на канбан-доске нельзя было перетащить задачу в статус, где уже есть максимальное кол-во задач ?

Anton
31.07.2018
14:43:55

Gonchik
01.08.2018
05:18:07
Боты, которые нападают от чего их логины берут хэш? Если hash(display name).equals(username) = бот?

Danila
01.08.2018
06:07:30

b0g3r
01.08.2018
06:15:41

Gonchik
01.08.2018
06:18:07

Ярослав
01.08.2018
06:22:13
так можно ж по дисплей нейм стартс виз

Stassio
01.08.2018
06:22:27
блокируй по молчанию

Sergey
01.08.2018
06:22:43
По длине имени

Stassio
01.08.2018
06:22:43
пришел, не представился за сутки - кикай