Использование скрипта для запуска бота Xcode

Есть ли способ вручную запустить существующих ботов Xcode с помощью сценариев оболочки? У меня есть ручной бот, и я хотел бы запустить его на основе определенных критериев пользовательской логики.


person Tarek    schedule 16.04.2015    source источник


Ответы (2)


да.

Вам нужно будет сделать несколько вещей: во-первых, я собираюсь назвать IP-адрес вашего Xcode-сервера XCS_IP, обычно это localhost, если вы находитесь на машине, на которой работает Xcode-сервер.

  • Узнать ID бота: в Терминале запустить curl -k "https://XCS_IP:20343/api/bots". Скопируйте вывод в какой-нибудь редактор и найдите значение ключа _id для вашего бота, будет что-то вроде 6b3de48352a8126ce7e08ecf85093613. Назовем его BOT_ID.

  • Запустите интеграцию, запустив curl -k -X POST -u "username:password" "https://XCS_IP:20343/api/bots/BOT_ID/integrations" -i

Где username и password — учетные данные пользователя, которому разрешено создавать ботов на сервере, подойдет администратор.

Если вас интересуют подробности, у меня есть приложение на Swift, которое использует этот API и многое другое: https://github.com/czechboy0/Buildasaur/blob/master/BuildaCIServer/XcodeServer.swift#L324

И ознакомьтесь с моей статьей о том, как найти «документацию» по API Xcode Server: http://honzadvorsky.com/blog/2015/5/4/under-the-hood-of-xcode-server.

ТЛ; ДР? На вашем Mac посмотрите /Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcsd/routes/routes.js, где вы можете найти доступные API.

Надеюсь, это помогло.

person czechboy    schedule 05.05.2015
comment
Просто добавлю - он написан с использованием node.js. - person Eimantas; 02.09.2015
comment
Кроме того, начиная с Xcode7 beta5, route.js был разделен на отдельные файлы. - person Eimantas; 02.09.2015
comment
@Eimantas Да, это немного изменилось в Xcode 7, но суть та же. На самом деле, я написал инструмент командной строки для быстрого выполнения некоторых из этих задач: github.com/czechboy0/xcskarel. - person czechboy; 05.09.2015

Apple добавила документацию по API-интерфейсу сервера Xcode, который можно использовать для запуска ботов.

https://developer.apple.com/library/tvos/documentation/Xcode/Conceptual/XcodeServerAPIReference/index.html#//apple_ref/doc/uid/TP40016472-CH1-SW1

Ниже приведен пример кода того, как вы можете создать скрипт Python, который запускает бота.

import requests

xcodeIP = '1.2.3.4.5'

def main():
    botName = "name of bot"
    runBot(botName)

def runBot(botName):
    requests.post(xcodeIP + '/api/bots/' + getBot(botName)["_id"] + '/integrations', auth=('username', 'password'), verify=False)

def getBot(botName):
    botIDRequest = requests.get(xcodeIP + '/api/bots', auth=('username', 'password'), verify=False)
    bots = botIDRequest.json()["results"]
    for bot in bots:
        if bot["name"] == botName:
            return bot

if __name__ == "__main__":
    main()
person Cenny    schedule 01.12.2015