Skip to content

Instantly share code, notes, and snippets.

@oz
Created February 11, 2013 18:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oz/4756591 to your computer and use it in GitHub Desktop.
Save oz/4756591 to your computer and use it in GitHub Desktop.
A quick and dirty hack to remove yourself from Trello cards that belong to a "done" column. This is quite useful if you're using Trello as a scrum-like board, but don't want to receive notifications when someone else picks up the card. The script is originally from @shakaman, so go and thank him. Meanwhile, fork to your heart's content!
#!/usr/bin/env ruby
# encoding: UTF-8
require 'rest_client'
require 'yajl'
@api = RestClient::Resource.new('https://api.trello.com/1')
@key = 'API_KEY'
@token = 'OAUTH_TOKEN'
@login = 'YOUR_LOGIN'
puts "Trello: done assigned tickets"
data = @api["/members/#{@login}/boards?filter=open&fields=name&key=#{@key}&token=#{@token}"].get
boards = Yajl::Parser.parse(data.body)
data = @api["/members/me?key=#{@key}&token=#{@token}"].get
me = Yajl::Parser.parse(data.body)
lists = []
puts "Search DONE column on boards."
boards.each do |board|
data = @api["/boards/#{board['id']}/lists?cards=none&fields=name&key=#{@key}&token=#{@token}"].get
columns = Yajl::Parser.parse(data.body)
columns.each do |column|
lists << column['id'] if column['name'].downcase == 'done'
end
end
data = @api["/members/#{@login}/cards?filter=open&fields=idList,name&key=#{@key}&token=#{@token}"].get
cards = Yajl::Parser.parse(data.body)
puts "Remove me on cards in DONE columns"
# cardList = []
cards.each do |card|
# cardList << card['id'] if lists.include?(card['idList'])
if lists.include?(card['idList'])
puts "#{card['id']}: ok"
# TODO: Remplacer me['id'] par ton id user
@api["/cards/#{card['id']}/members/#{me['id']}?key=#{@key}&token=#{@token}"].delete
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment