0.0
The project is in a healthy, maintained state
A Ruby library for interacting with the Yandex Tracker API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

YandexTracker

Ruby API client for YandexTracker with partially implemented resources for essential needs

Installation

Install the gem and add to the application's Gemfile by executing:

$ bundle add yandex_tracker

If bundler is not being used to manage dependencies, install the gem by executing:

$ gem install yandex_tracker

Configure

  YandexTracker.configure do |config|
    config.client_id = "abc"
    config.client_secret = "def"
    config.org_id = "123" # or cloud_org_id
  end

  YandexTracker::Auth.exchange_code(code)

  # or

  YandexTracker.configure do |config|
    config.access_token = "xyz"
    config.org_id = "123" # or cloud_org_id
  end

Usage

  client = YandexTracker::Client.new

  client.users.myself

  client.workflows.list
  client.resolutions.list

  myqueue = client.queues.create(
    key: "MYQUEUE",
    name: "MYQUEUE",
    lead: "me", # should have correct name
    defaultType: "task",
    defaultPriority: "normal",
    issueTypesConfig: {
      issueType: "task",
      workflow: "developmentPresetWorkflow",
      resolutions: ["wontFix"]
    }
  ) #<YandexTracker::Objects::Queue>

  myqueue.issues #<YandexTracker::Collections::Issues>

  issue = myqueue.issues.create(summary: "zxc")
  comment = issue.comments.create(text: "ok")

  issue.attachments.create(File.open("Screenshot.png"))

  unattached_file = client.attachments.create(File.open("Screenshot.png"))
  comment.create(text: "More details", attachmentIds: [temp_attachment.id])

  issue.transitions.list
  issue.transition('wont_fix', comment: 'wae')
  issue.transition('reopen', comment: 'no')
  issue.transition('close', resolution: 'wontFix')

  client.issues.list
  client.issues(queue: "MYQUEUE").list
  attachments = client.attachments(issue: "MYQUEUE-1").list
  attachments.first.download

  client.comments(issue: "MYQUEUE-1").create(text: "hello")

  issue = client.issues.search({
    filter: { queue: "TEST", status: "open"}},
    expand: "attachments"
  ).first

  issue.createdBy
  issue.createdBy.expand

  issue.attachments
  issue.data

  client.issues.import({
    queue: "TEST",
    summary: "Test",
    createdAt: "2017-08-29T12:34:41.740+0000",
    createdBy: "username",
    ...
  })

  client.categories.list
  client.categories.create(
    name: { en: "My Category", ru: "Моя Категория" },
    order: 1
  )

  client.fields.create(
    name: { en: "My Field", ru: "Моe поле" },
    id: "myglobalfield",
    type: "ru.yandex.startrek.core.fields.StringFieldType",
    category: "0000000000000003********"
  )

  myqueue.local_fields.list
  myqueue.local_fields.create(
    name: { en: "My Field", ru: "Моe поле" },
    id: "myglobalfield",
    category: "0000000000000003********",
    type: "ru.yandex.startrek.core.fields.StringFieldType"
  )

License

The gem is available as open source under the terms of the MIT License.