Drone Dart

image

Dart is a multi client programming language which allow you to compile and run your code on multiple platforms. Because of that we decided to create a Package for Drone Ci which is self-service Continuous Integration platform. This package give you ability to integrate with Drone API easily in any platform using Dart language and build your own interface and a lot more.

Example

For first step you need to initialize your DroneClient instance which need Server(Drone interface host, for example drone.example.com) and Token(Access token). You can retrieve an token in the Drone user interface by navigating to your user profile.

  final instance = DroneClient(
    server: '<Your Drone Server Address>',
    token: '<Your Token>',
  );

Note: Full code example is available in example folder.

All Methods

Methods below are available in DroneClient. Appellation and type of arguments is same as Drone API request data.

Builds

Doc: docs.drone.io/api/builds/

  instance.buildSection.approve(owner,repo,build);
  instance.buildSection.create(namespace,name,commit,branch,parameters);
  instance.buildSection.decline(owner,repo,build);
  instance.buildSection.info(owner,build,repo);
  instance.buildSection.list(owner,repo);
  instance.buildSection.log(owner,repo,build,stage,step);
  instance.buildSection.promote(owner,repo,build,target,parameters);
  instance.buildSection.restart(owner,repo,build);
  instance.buildSection.stop(owner,repo,build);

Cron

Doc: docs.drone.io/api/cron/

  instance.croneSection.create(owner,repo,cronRequestBody);
  instance.croneSection.delete(owner,repo,name);
  instance.croneSection.info(owner,repo,name);
  instance.croneSection.list(owner,repo);
  instance.croneSection.trigger(owner,repo,name);
  instance.croneSection.update(owner,repo,name,requestBody);

Repos

Doc: docs.drone.io/api/repos/

  instance.repoSection.chown(owner,repo);
  instance.repoSection.disable(owner,repo);
  instance.repoSection.enable(owner,name);
  instance.repoSection.info(owner,repo);
  instance.repoSection.list();
  instance.repoSection.repair(owner,repo);
  instance.repoSection.update(owner,repo,requestBody);

Secrets

Doc: docs.drone.io/api/secrets/

  instance.secretSection.create(owner,repo,requestBody);
  instance.secretSection.delete(owner,repo,secret);
  instance.secretSection.info(owner,repo,secret);
  instance.secretSection.list(owner,repo);
  instance.secretSection.update(owner,repo,secret,requestBody);

Templates

Doc: docs.drone.io/api/templates/

  instance.templateSection.create(requestBody);
  instance.templateSection.delete(namespace,name);
  instance.templateSection.info(namespace,name);
  instance.templateSection.list(namespace);
  instance.templateSection.update(namespace,name);

User

Doc: docs.drone.io/api/user/

  instance.userSection.feed();
  instance.userSection.repos(latest);
  instance.userSection.info();
  instance.userSection.sync();

Users

Doc: docs.drone.io/api/users/

  instance.userSection.create(requestBody);
  instance.userSection.delete(login);
  instance.userSection.info(login);
  instance.userSection.list();
  instance.userSection.update(login,requestBody);

Stream

  instance.stream.listen((event) => print(event));

  instance
    .logStream(
        repoName: 'repoName',
        stage: 'stage',
        step: 'step',
        nameSpace: 'nameSpace',
        build: 'build')
    .listen(
  (event) => print(event)
  );

Libraries

drone_dart