V6R Dart SDK

A Dart SDK for interacting with the V6R API, providing a simple and efficient way to integrate V6R services into your Dart applications.

Features

  • Authentication: Simple authentication with Basic Auth support
  • Project Management: Create, read, update, and delete projects
  • Repository Integration: Manage repositories and their configurations
  • Ticket System: Full ticket lifecycle management
  • Agentic API: Access to V6R's agentic capabilities
  • Type-safe API: Fully typed request and response models
  • Built on Kiota: Leverages Microsoft's Kiota for reliable API client generation

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  dart_sdk: ^1.0.0

Then run:

dart pub get

Getting Started

Prerequisites

  • Dart SDK ^3.9.2 or higher
  • V6R API credentials (username and password)
  • V6R API endpoint URL

Basic Setup

import 'package:dart_sdk/dart_sdk.dart';
import 'package:microsoft_kiota_bundle/microsoft_kiota_bundle.dart';
import 'dart:convert';

void main() async {
  // Setup authentication
  String username = "your-username";
  String password = "your-password";
  String basicAuth = 'Basic ' + base64.encode(utf8.encode('$username:$password'));

  // Create authentication provider
  var authenticationProvider = AnonymousAuthenticationProvider();

  // Create request adapter with your V6R API base URL
  var requestAdapter = DefaultRequestAdapter(
    authProvider: authenticationProvider,
  );
  requestAdapter.baseUrl = 'https://api.v6r.io'; // Replace with your V6R API endpoint

  // Create V6R client
  var client = V6rClient(requestAdapter);
}

Usage

Authentication

// Login with Basic Auth
var authResponse = await client.auth.login.getAsync((requestConfiguration) {
  requestConfiguration.headers['Authorization'] = {basicAuth};
});

print('Authentication successful: $authResponse');

Working with Projects

// Get all projects
var projects = await client.projects.getAsync();

// Get a specific project
var projectId = 'project-123';
var project = await client.projects.byProjectId(projectId).getAsync();

// Create a new project
var newProject = await client.projects.postAsync(projectData);

Managing Repositories

// Get all repositories
var repositories = await client.repositories.getAsync();

// Get a specific repository
var repoId = 'repo-456';
var repository = await client.repositories.byRepositoryId(repoId).getAsync();

Working with Tickets

// Get all tickets
var tickets = await client.tickets.getAsync();

// Get a specific ticket
var ticketId = 'ticket-789';
var ticket = await client.tickets.byTicketId(ticketId).getAsync();

// Create a new ticket
var newTicket = await client.tickets.postAsync(ticketData);

Using Agentic API

// Access agentic capabilities
var agenticResponse = await client.agentic.getAsync();

Example

For a complete working example, see the example file in this repository.

API Documentation

For detailed API documentation, run:

dart doc .

Then open the generated documentation in doc/api/index.html.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support

If you encounter any issues or have questions, please:

  1. Check the example directory for usage examples
  2. Open an issue on the GitHub repository
  3. Contact the V6R support team

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Additional Information

This SDK is auto-generated using Microsoft Kiota and provides complete coverage of the V6R API. The SDK is regularly updated to match the latest API specifications.

Libraries

dart_sdk
A comprehensive Dart SDK for interacting with the API