通过 Drone Rest API 获取构建记录日志
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 获取构建记录日志的更多相关文章
- 微服务系列(二):使用 API 网关构建微服务
		
编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法. 作者介绍:Chris Richardso ...
 - 使用Vue.js和Axios从第三方API获取数据 — SitePoint
		
更多的往往不是,建立你的JavaScript应用程序时,你会想把数据从远程源或消耗一个[ API ](https:/ /恩.维基百科.org /维基/ application_programming_ ...
 - 0102-使用 API 网关构建微服务
		
一.移动客户端如何访问这些服务 1.1.客户端与微服务直接通信[很少使用] 从理论上讲,客户端可以直接向每个微服务发送请求.每个微服务都有一个公开的端点(https ://.api.company.n ...
 - 怎么用API网关构建微服务
		
选择将应用程序构建为微服务时,需要确定应用程序客户端如何与微服务交互.在单体应用程序中,只有一组端点.而在微服务架构中,每个微服务都会暴露一组通常是细粒度的端点.在本文中,我们将讨论一下这对客户端与应 ...
 - 使用 API 网关构建微服务-2
		
「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...
 - 【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)
		
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
 - 劳动节脑洞大开!利用Debug API 获取 加壳客户端的MD5值
		
系统 : Windows xp 程序 : 某游戏客户端 程序下载地址 :不提供 要求 : 远程注入 & 获取MD5值 使用工具 : vc++6.0 & OD 案例说明: 该游戏客户端对 ...
 - html5获取经纬度,百度api获取街区名,并使用JS保存进cookie
		
引用js<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak= ...
 - 利用腾讯企业邮箱开放API获取账户未读邮件数初探
		
公司一直使用腾讯提供的免费企业邮箱服务,今天用管理员帐户登录后发现,原来现在腾讯的企业邮箱也开放了部分API 你可以通过开放接口实现以下功能: 数据同步 数据同步可以帮助你同步部门成员信息,你还可以创 ...
 
随机推荐
- 【翻译】Orleans 3.0 发布
			
aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUF ...
 - 【2018寒假集训Day 8】【最小生成树】Prim和Kruskal算法模板
			
Luogu最小生成树模板题 Prim 原理与dijkstra几乎相同,每次找最优的点,用这个点去松弛未连接的点,也就是用这个点去与未连接的点连接. #include<cstdio> #in ...
 - React源码 React.Children
			
children是什么意思呢?就是我们拿到组件内部的props的时候,有props.children这么一个属性,大部分情况下,我们直接把 props.children 渲染到 JSX 里面就可以了. ...
 - Block-wise 2D kernel PCA/LDA for face recognition-笔记
			
In the present work, we propose a framework for kernel-based 2D feature extraction algorithms tailor ...
 - PAT(甲级)2019年春季考试
			
7-1 Sexy Primes 判断素数 一个点没过17/20分 错因:输出i-6写成了输出i,当时写的很乱,可以参考其他人的写法 #include<bits/stdc++.h> usin ...
 - php 7.4 的 Unpacking inside arrays (...)
			
总的说明 php 7.4 增加了一个很有意思的功能 这是官方说明: Unpacking inside arrays <?php$parts = ['apple', 'pear'];$fruits ...
 - 【IoT平台技术对接分享】如何上传正确的消息推送证书
			
消息推送应用实现消息推送的接口,部署证书,同时上传根证书到平台. 目前消息推送失败,很大一部分原因是证书上传不对.推荐小伙伴们使用下面的方法导出证书. 推送:平台调用应用服务器的restful接口将数 ...
 - 挑战10个最难的Java面试题(附答案)【上】
			
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),验证通过后,输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动&quo ...
 - 华为eNSP路由交换-静态路由
			
静态路由 一. 静态路由及默认路由基本配置 1.1实验内容 在由三台路由器所组成的简单网络中,R1和R3各连着一台PC,现在要求能够实现PC-1和PC-2之间的通信.本实验将通过配置基本的静态路由和默 ...
 - gdb调试常用方法介绍
			
一.概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.没有统一的界面,所有的操作都是通过命令的方式进行提供.对于习惯了图形界面方式进行调试的猿猿来说可能不是很顺手,但是如果你在 ...