/drone-ci

Primary LanguageRubyMIT LicenseMIT

drone-ci - A Ruby Interface to the Drone CI API

Overview

drone-ci is a Ruby Gem that provides a client for Drone CI servers.

Why does this exist?

Because I couldn't find one that existed. There's Go and JavaScript libraries, but Ruby deserves some love too.

How do I obtain this majestic tool?

If you're using bundler, add the following to your Gemfile:

gem 'drone-ci', '~> 0.1'

Otherwise, install it the usual way:

gem install drone-ci

How do I use it?

drone-ci is primarily intended as a library, so you'll probably want to use it that way.

#! /usr/bin/env ruby

require 'drone-ci'
require 'json'

drone = DroneCI::Client.new(server: "https://drone-server-goes-here", token: "access token goes here")
STDOUT.puts JSON.pretty_generate drone.user_info.body

Which would output something this this:

{
  "id": 191,
  "login": "colstrom",
  "email": "chris@olstrom.com",
  "machine": false,
  "admin": true,
  "active": true,
  "avatar": "https://avatars.githubusercontent.com/u/469456?v=4",
  "syncing": false,
  "synced": 1662068210,
  "created": 1659728463,
  "updated": 1659728463,
  "last_login": 1660781210
}

If you don't pass in a server or a token, drone-ci will read DRONE_SERVER and DRONE_TOKEN from the environment. These are the same environment variables used by the Drone CLI.

Exploration Mode

If you simply run the drone-ci command (installed with the gem), it will drop you into an interactive session where you can explore the API of your Drone server.

License

drone-ci is available under the MIT License. See LICENSE.txt for the full text.