Drone是一款CICD工具,提供rest API,简单介绍下如何使用API 获取构建日志。

获取token

登录进入drone,点头像,在菜单里选择token

复制token即可

API 介绍

Drone的api分为几大类

  • Builds 构建
  • Cron 定时任务
  • Repos 仓库
  • Secrets
  • User 用户
  • Users

调用举例:

Build API

构建列表(Build List)

获取仓库的最新构建:

GET /api/repos/{owner}/{repo}/builds

curl -i http://drone.YOUR_HOST.cn/api/repos/jqpeng/springboot-rest-demo/builds -H "Authorization: Bearer TOKEN"

响应正文示例:

[
{
"id": 100207,
"repo_id": 296163,
"number": 42,
"status": "success",
"event": "pull_request",
"action": "sync",
"link": "https://github.com/octoat/hello-world/compare/e3320539a4c0...9fc1ad6ebf12",
"message": "updated README",
"before": "e3320539a4c03ccfda992641646deb67d8bf98f3",
"after": "9fc1ad6ebf12462f3f9773003e26b4c6f54a772e",
"ref": "refs/heads/master",
"source_repo": "spaceghost/hello-world",
"source": "develop",
"target": "master",
"author_login": "octocat",
"author_name": "The Octocat",
"author_email": "octocat@github.com",
"author_avatar": "http://www.gravatar.com/avatar/7194e8d48fa1d2b689f99443b767316c",
"sender": "bradrydzewski",
"started": 1564085874,
"finished": 1564086343,
"created": 1564085874,
"updated": 1564085874,
"version": 3
}
]

构建详情

通过该接口获取构建详情,返回构建状态等信息,{build} 为上面列表里的number,既构建序号。

GET /api/repos/{owner}/{repo}/builds/{build}

Example Response Body:

{
"id": 39862,
"number": 20,
"parent": 0,
"event": "push",
"status": "success",
"error": "",
"enqueued_at": 1576636849,
"created_at": 1576636849,
"started_at": 1576636850,
"finished_at": 1576639053,
"deploy_to": "",
"commit": "7729006bfe11933da6c564101acaf8c7f78c5f62",
"branch": "master",
"ref": "refs/heads/master",
"refspec": "",
"remote": "",
"title": "",
"message": "通过update更新\n",
"timestamp": 0,
"sender": "",
"author": "jqpeng",
"author_avatar": "https://www.gravatar.com/avatar/4ab53b564545f18efc4079c30a2d35cf.jpg?s=128",
"author_email": "jqpeng@iflytek.com",
"link_url": "",
"signed": false,
"verified": true,
"reviewed_by": "",
"reviewed_at": 0,
"procs": [
{
"id": 247912,
"build_id": 39862,
"pid": 1,
"ppid": 0,
"pgid": 1,
"name": "",
"state": "success",
"exit_code": 0,
"start_time": 1576636850,
"end_time": 1576639053,
"machine": "21e73ce43038",
"children": [
{
"id": 247913,
"build_id": 39862,
"pid": 2,
"ppid": 1,
"pgid": 2,
"name": "clone",
"state": "success",
"exit_code": 0,
"start_time": 1576636853,
"end_time": 1576636933,
"machine": "21e73ce43038"
},
{
"id": 247914,
"build_id": 39862,
"pid": 3,
"ppid": 1,
"pgid": 3,
"name": "build",
"state": "success",
"exit_code": 0,
"start_time": 1576636933,
"end_time": 1576636998,
"machine": "21e73ce43038"
}
]
}
]
}

procs 是构建的步骤,记住pid,获取构建日志有用

构建日志

获取构建日志,需要传入{log} 和 {pid}, log是上面的{build},{pid}是上一步返回的pid

GET /api/repos/{owner}/{repo}/logs/{log}/{pid}

响应正文示例:

[
{
"proc": "clone",
"pos": 0,
"out": "+ git init\n"
},
{
"proc": "clone",
"pos": 1,
"out": "Initialized empty Git repository in /drone/src/github.com/octocat/hello-world/.git/\n"
},
{
"proc": "clone",
"pos": 2,
"out": "+ git remote add origin https://github.com/octocat/hello-world.git\n"
},
{
"proc": "clone",
"pos": 3,
"out": "+ git fetch --no-tags origin +refs/heads/master:\n"
},
{
"proc": "clone",
"pos": 4,
"out": "From https://github.com/octocat/hello-world\n"
},
{
"proc": "clone",
"pos": 5,
"out": " * branch master -> FETCH_HEAD\n"
},
{
"proc": "clone",
"pos": 6,
"out": " * [new branch] master -> origin/master\n"
},
{
"proc": "clone",
"pos": 7,
"out": "+ git reset --hard -q 62126a02ffea3dabd7789e5c5407553490973665\n"
},
{
"proc": "clone",
"pos": 8,
"out": "+ git submodule update --init --recursive\n"
}
]

作者:Jadepeng

出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi

您的支持是对博主最大的鼓励,感谢您的认真阅读。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

通过 Drone Rest API 获取构建记录日志的更多相关文章

  1. 微服务系列(二):使用 API 网关构建微服务

    编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法. 作者介绍:Chris Richardso ...

  2. 使用Vue.js和Axios从第三方API获取数据 — SitePoint

    更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...

  3. 0102-使用 API 网关构建微服务

    一.移动客户端如何访问这些服务 1.1.客户端与微服务直接通信[很少使用] 从理论上讲,客户端可以直接向每个微服务发送请求.每个微服务都有一个公开的端点(https ://.api.company.n ...

  4. 怎么用API网关构建微服务

    选择将应用程序构建为微服务时,需要确定应用程序客户端如何与微服务交互.在单体应用程序中,只有一组端点.而在微服务架构中,每个微服务都会暴露一组通常是细粒度的端点.在本文中,我们将讨论一下这对客户端与应 ...

  5. 使用 API 网关构建微服务-2

    「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...

  6. 【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  7. 劳动节脑洞大开!利用Debug API 获取 加壳客户端的MD5值

    系统 : Windows xp 程序 : 某游戏客户端 程序下载地址 :不提供 要求 : 远程注入 & 获取MD5值 使用工具 : vc++6.0 & OD 案例说明: 该游戏客户端对 ...

  8. html5获取经纬度,百度api获取街区名,并使用JS保存进cookie

    引用js<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak= ...

  9. 利用腾讯企业邮箱开放API获取账户未读邮件数初探

    公司一直使用腾讯提供的免费企业邮箱服务,今天用管理员帐户登录后发现,原来现在腾讯的企业邮箱也开放了部分API 你可以通过开放接口实现以下功能: 数据同步 数据同步可以帮助你同步部门成员信息,你还可以创 ...

随机推荐

  1. 【Flink】Flink基础之WordCount实例(Java与Scala版本)

    简述 WordCount(单词计数)作为大数据体系的标准示例,一直是入门的经典案例,下面用java和scala实现Flink的WordCount代码: 采用IDEA + Maven + Flink 环 ...

  2. 【集训Day3 离散化】矩形覆盖

    矩形覆盖(planting) [问题描述] 给定在一个平面坐标系上的N(1 <= N <= 100)个矩形区域,这N个矩形可能有相互覆盖的部分.求平面上被所有矩形覆盖的总面积,重复部分只算 ...

  3. React源码 React.Children

    children是什么意思呢?就是我们拿到组件内部的props的时候,有props.children这么一个属性,大部分情况下,我们直接把 props.children 渲染到 JSX 里面就可以了. ...

  4. CSS文字,文本常用样式

    CSS文字,文本常用样式 字体属性 font-family 如果电脑没有第一个字体,就切换到下一个 body { font-family: Microsoft YaHei,Helvetica,Aria ...

  5. 浅析vue混入(mixin)

    vue中的混入,可以在一定程度上提高代码的复用性.通俗来说,混入类似于“继承”,当前组件对象继承于组件对象,一般情况下遵循“就近原则”.但是与继承不同的是,继承一般都跟随着属性的重写与合并,混入在不同 ...

  6. Netty源码分析之ChannelPipeline(二)—ChannelHandler的添加与删除

    上篇文章中,我们对Netty中ChannelPipeline的构造与初始化进行了分析与总结,本篇文章我们将对ChannelHandler的添加与删除操作进行具体的的代码分析: 一.ChannelHan ...

  7. Scrapy 框架 (学习笔记-1)

    环境: 1.windows 10 2.Python 3.7 3.Scrapy 1.7.3 4.mysql 5.5.53 一.Scrapy 安装 1. Scrapy:是一套基于Twisted的一部处理框 ...

  8. Flask 蓝图机制及应用

    我们都知道 flask 是一个轻量级的 web 框架,相对于其他同类型框架更为灵活.轻便.安全且容易上手.开发者可以随意编写自己想要的项目结构,同时还有很多的第三方库供君选择.但是灵活的同时也带来了相 ...

  9. 【nodejs原理&源码赏析(5)】net模块与通讯的实现

    [摘要] Node.js net模块的原理及使用 示例代码托管在:http://www.github.com/dashnowords/blogs 一. net模块简介 net模块是nodejs通讯功能 ...

  10. 区块链学习笔记:DAY01 区块链的技术原理

    其实很早之前就听过区块链,也看过有关区块链的介绍,那个时候的理解主要还是一句话:分布式记账 然后开始关注比特币,听了有几年了,对于其来历.用途其实一直都是一知半解. 这次的课算是第一次以一个学员的身份 ...