Below is the version history of TrelloDotNet (An wrapper of the Trello API)
- Fixed that GetCardsOnBoardFilteredAsync would not give Lists back on Archived Cards that were on a Archived List but instead return null - Issue #47)
- Added DeleteListAsync (Thanks to cmoski for mentioning that this is even possible as I did not know that) - Issue #46)
- Fix that AddChecklistItemAsync did not use the NamedPosition Property
- Added AddChecklistItemAsync
- Added GetAttachmentOnCardAsync
- Added DownloadAttachmentAsync [Via Ids or URL]
GetBoardOptions
now have Filter options (All, Open, Closed or Starred boards)- Added GetTrelloPlanInformationForOrganization and GetTrelloPlanInformationForBoard to get information what features the Workspace/Board support
- Bumped System.Text.Json dependency to version 8.0.5 due to Security Vulnerability CVE-2024-43485 in previous version)
- Started Long-term preparing for v2.0 by obsoleting various things
- Added overload GetLabelsOfBoardAsync that let you specify
GetLabelOptions
in order to control fields returned and how many labels are returned (Default: 50, Max: 1000) - All Get
<object>
Options now have anAddtionalParameters
where you can inject additional QueryParameters should the out-of-the box framework not support it - Added
Limit
, andBefore
/Since
(paginating options) toGetCardOptions
- Added options on
CustomFieldItemValue
to get the raw Custom Field Values as String/DateTimeOffset?/Decimal?/Bool (so you do not need to parse them yourself)
- Added option to add/update
Color
onList
(Only Paid Trello Plans support this feature) - Added overload of UpdateCard that is more simple and intuative to use (no need to know magic strings) (Issue #35)
- Added
LastLogin
andLastActivity
toMember
object
- Added optional
SubType
to UpdateCardTrigger
- Added Sourcelink to Nuget Package (So you can debug source code directly)
- Bumped System.Text.Json dependency to version 8.0.4 due to Security Vulnerability CVE-2024-30105 in previous version)
- Added pagination options
Page
,Before
andSince
toGetActionsOfBoardAsync
(Thanks to mashbrno for the contribution 💪) - PR#37
- Added options
TypeOfBoardsToInclude
andIncludeLists
toGetBoardOptions
- Using GetCardOptions on methods
GetCardsOnBoardAsync
,GetCardsInListAsync
andGetCardsForMember
now correctly get the Board ifIncludeBoard
option is used
- Exposed Text as TrelloAction Old value
- Fixed Issue #30 that if you provided a Cover to
AddCardAsync
it would not add the cover
- Methods
GetCardsOnBoardAsync
,GetCardsOnBoardFilteredAsync
,GetCardsInListAsync
,GetCardsForMemberAsync
will now correctly include theList
a card is on if specified in theGetCardOptions
- Fixed that membertype 'ghost' was not supported
- Added option to get Label Colors as Enum (
LabelColor
) Value andColorInfo
that explains the labels color in RBG and #Hex Value
- Added a set of handy Checklist Extensions on single and collection of checklists (
GetNumberOfItems
,GetNumberOfCompletedItems
,GetNumberOfIncompleteItems
,IsAllComplete
,IsAnyIncomplete
) - Added advanced version of
MoveCardToListAsync
that accept additional options for the move (Position and NamedPosition) - Added
MoveCardToBoard
- Added
GetMemberOption
overloads to the various member-get methods - Added Member Properties
Email
andMemberType
- Added Properties on Member to the various Avatar URLs (30x30, 50x50, 170x170 pixels and the original image)
- Better nuget description and tags
- Added option to Add/Update with named positions (Top or Bottom) on
Cards
,Lists
,Attachments
,Checklists
andChecklist Items
- Added
UpdateChecklistAsync
- Added option to get
Stickers
on a card viaGetCardOptions
- Added option to get
CustomFieldItems
on a card viaGetCardOptions
- Added option to get
MemberVotes
on a card viaGetCardOptions
- Added
AddVoteToCardAsync
- Added
RemoveVoteFromCardAsync
- Added
GetMembersWhoVotedOnCardAsync
- Added option to get
PluginData
on a card viaGetCardOptions
- Added option to get
PluginData
of a board viaGetBoardOptions
- Added
GetPluginDataOnCardAsync
- Added
GetPluginDataOfBoardAsync
- All internal usage of
UpdateCardAsync
now uses the new 'partial update'-variant described below for better performance and more secure async usage in the Automation Engine
- Added overload to
UpdateCardAsync
that instead of a full update with a card can do partial updates with only the parameters you provide
- Added Automation Trigger
AddChecklistToCardTrigger
- Added Automation Trigger
CreateCheckItemTrigger
- Added Automation Trigger
DeleteCheckItemTrigger
- Added Automation Trigger
RemoveChecklistFromCardTrigger
- Added Automation Trigger
UpdateCheckItemTrigger
- Tweaked the format of the README
- Tweaked the description, release-notes, and tags of the NuGet Package
- This changelog now has sub-sections "General", "TrelloClient", "Automation Engine" and "Webhook Receiver" to better allow you to focus on the parts you use of the package
- Added GetBoardOptions to all get-methods that return Boards. This allows more advanced control of what should be included on the Board (For example only a few fields to increase performance or more nested data to avoid more API calls).
- Added
IncludeChecklists
andChecklistFields
to GetCardOptions - Added more properties on the
Card
object - Added more properties on the
Board
object - Added Batch Get operations:
ExecuteBatchedRequestAsync
,GetListsAsync
,GetCardsAsync
,GetBoardsAsync
,GetMembersAsync
,GetOrganizationsAsync
(more work but better performance) - Added
GetUrlBuilder
to make it easier to build Trello Rest API Urls (for batch and generic requests) - Fields in
GetCardOptions
andGetBoardOptions
can now alternatively be set via enums instead of strings - Fixed that you could not make a custom request if the suffix contained a ? (aka you used some of the optional API features)
- Added option to use Webhook Signature Validation (Thanks to compujuckel for the contribution 💪) - PR#26
- Added Automation Trigger
CardNameUpdatedTrigger
- Added Automation Trigger
ConvertToCardFromCheckItemTrigger
- Added Generic Automation
Trigger
,Condition
andAction
that can use Func instead of needing to make custom implementations - Automation Engine can now make automations with multiple triggers (For example do something when a 'Card is Created' OR 'Card is emailed')
- Performance optimized various
AutomationEngine
Conditions and one of the Actions by internally using the GetCardOptions system to only the absolute minimum needed data AddChecklistToCardIfLabelMatchAction
now supports both Include and Exclude Matching (example: If this label is present and this is not then add checklist)- Added that Automation Action
AddChecklistToCardAction
can use**ID**
and**NAME**
in the name of checklist and checklist items to on the fly get them to replace by card's name and id
- Added option to use Webhook Signature Validation (Thanks to compujuckel for the contribution 💪) - PR#26
- Added
SearchAsync
- Added
SearchMembersAsync
- Added
GetCommentReactions
- Added GetCardOptions to all get-methods that return Cards. This allows more advanced control of what should be included on the cards (For example only a few fields to increase performance or more nested data to avoid more API calls).
- Added more properties on the
Member
object - Added more properties on the
Card
object
- New Logo
- Increased Test coverage
- Fixed that
AddCommentToCardAction
did not increment propertyActionsExecuted
inProcessingResult
- Fixed incorrect spelling of property
Position
inWebhookActionDataList
[COMPILE TIME BREAKING CHANGE]
- API will automatically retry failed requests that get the 'API_TOKEN_LIMIT_EXCEEDED' error (retry up to 3 times with 1 second between). You can change/disable this behavior via TrelloClientOptions if you like.
- Rewritten all Tests to be faster and easier to maintain, while also being able to run on any Trello Account
- Greatly increased test coverage (+ coverage can be inspected via the new README.md badge)
- Added
GetOrganizationsForMemberAsync
- Added
GetOrganizationsCurrentTokenCanAccessAsync
- Added DebuggerDisplay to
Organization
- Added option to set
OrganizationId
when creating aBoard
- Fixed that if you used option 'AddCheckItemsToExistingChecklist' in an
AddChecklistToCardAction
and a Checklist existed but had no items, the automation failed. - Added better error context to the AutomationException (what Board, List, and Card was involved in the event that caused the Exception)
- Added
DeleteChecklistItemAsync
- Change the Project URL to point at the Wiki
- A bit of restructuring of the ReadMe
- Added Badges in ReadMe for eaiser discovery of additional resources.
- Added Automation Trigger
CardMovedAwayFromListTrigger
- Tweaked various documentation for spelling errors
- Added
MoveCardToListAsync
for greater discoverability how to do it (was already possible viaUpdateCardAsync
)
- Added Automation Action
AddLabelsToCardAction
- Added Automation Action
AddMembersToCardAction
- Added Automation Action
RemoveMembersFromCardAction
- Added the Webhook Object to the
WebhookNotification
(Trello recently exposed this feature)
- Tweaked various documentation for spelling errors
- Added Automation Action
RemoveCardDataAction
- Tweaked various documentation for spelling errors
- This changelog now links to the Wiki
- Added Automation Trigger
CheckItemStateUpdatedOnCardTrigger
- Added Automation Condition
ChecklistItemsCompleteCondition
- Added option to pass
Cancellation Tokens
to the API
- Added
GetActionsOfBoardAsync
- Added
GetActionsOnCardAsync
- Added
GetActionsForListAsync
- Added
GetActionsForMemberAsync
- Added
GetActionsForOrganizationAsync
- Added
GetCardsForMemberAsync
- Added
AddMemberToBoardAsync
- Added
RemoveMemberFromBoardAsync
- Added
UpdateMembershipTypeOfMemberOnBoardAsync
- Added
GetBoardsInOrganization
- Added
GetMembersOfOrganizationAsync
- Added support for
Organizations
(also know as Workspaces)
- Added Automation Action
AddCommentToCardAction
- Added Automation Action
StopProcessingFurtherAction
that allows you to conditionally stop any further processing for the specific webhook call. - Updated Automation Action
AddChecklistToCardAction
to now have the option to add Items to existing Checklists with the same name (Example two Definition of Done Automations for two different labels add their items to a single Checklist)
- Added Automation Action
AddChecklistToCardIfLabelMatchAction
to make combination of creating checklists easier to maintain
- Fixed that strings were not properly URL encoded if they contained an '&'
- Added support for managing
Labels-definitions
on the Board - Added support for managing
Attachments
- Added support to set/remove Attachment Cover on a Card
- Added
UpdateChecklistItemAsync
- Added
GetBoardsForMemberAsync
- Added
GetBoardsCurrentTokenCanAccessAsync
- Added
GetMembershipsOfBoardAsync
- Added Automation Action
RemoveLabelsFromCardAction
- It is now legal to have a null as a Condition in Automation Engine (indicating there are no further conditions)
- Fixed that 'Constraint' was spelled incorrectly (missing an 's') in 2 places (
ListConditionConstraint
andCardMovedToListTriggerConstraint
) [COMPILE TIME BREAKING CHANGE] (sorry but better to change now than later;-( ) - Fixed that
CardCoverCondition
was not evaluated correctly in all scenarios - Fixed that
SetFieldsOnCardAction
did not update processing result (Executed and Skipped Actions counts)
- Added
AddCoverToCardAsync
- Added
UpdateCoverOnCardAsync
- Added
RemoveCoverOnCardAsync
- Update
UpdateCardAsync
so it now has the ability to Add/Update/Remove the Cover of a card - Added quality-of-life methods to maintain
Webhooks
by callback URL instead of Id
- Added RegEx option for string-comparison in Triggers and Conditions
- Added Automation Trigger
CardUpdatedTrigger
- Updated Automation Condition
ChecklistIncompleteCondition
to now have the option to defineChecklistNameMatchCriteria
if you example want to check lists with a certain name prefix.
- Added Webhook Automation Engine that makes it even easier to consume Webhooks (just define your automation rules and give the engine the Webhook JSON and it does the rest :-))
- Fixed various incorrect XML Summaries and parameter names (all non-breaking changes)
- Added support for Retrieving, setting, and removing
Custom Field
values of cards - Added
DeleteChecklistAsync
- Added
GetTokenInformationAsync
to get information about the Trello Token used for connecting - Added
GetTokenMemberAsync
that returns the user that owns the Trello Token used for connecting - Fixed that Null values in strings for an update of objects are now considered empty strings so you do not end up with 'null' values (aka the word 'null' as a string)
WebhookAction
now has reference to the TrelloClient and the sub-objects can get their Full Objects- Added struct
WebhookActionTypes
that list all Types of Webhook events - Added support for Basic Events
OnDeleteCustomField
,OnAddCustomField
,OnUpdateCustomField
andOnUpdateCustomFieldItem
- Added
ListBefore
andListAfter
toTrelloActionData
- Added
UpdateCommentActionAsync
for the ability to update Comments - Added
GetAllCommentsOnCardAsync
andGetPagedCommentsOnCardAsync
for the ability to Get existing comments on a card - Updated
AddChecklistAsync
to now add positions of check items automatically in the same order as the list if none is specified. - Fixed that
AddStickerToCardAsync
did not work as intended (You got an 'Invalid ImageId' error) due to a late refactoring and poor testing on my part (last time I skimp on integration-tests!) :-( - Fixed that
AddCommentAsync
had a wrong return object (Trello API is just weird and not consistent!)
- Added generic WebHookNotification that does not care if Webhook returned from a Board, List, Card, etc
- Overridden
ToString()
methods on Models are removed andDebuggerDisplay
Attributes are now used instead.
- Fixed that various methods were missing the
Async
suffix so it was added (Sorry for this breaking change (oversight by me) but better now than later :-/ ... and it should be easy to fix) [COMPILE TIME BREAKING CHANGE] - Added properties
OrganizationId
,EnterpriseId
, andPinned
to the Board Object - Added support for
Card Stickers
- Added support to add
Comments
on cards.
- Method
SetStartDateOnCardAsync
was renamed toSetStartDateAndDueDateOnCardAsync
[COMPILE TIME BREAKING CHANGE] - Added Property
Closed
on Board so you can see if a board is Closed or not - Fixed that methods
ArchiveListAsync
andReOpenListAsync
incorrectly return a Card and not a List [COMPILE TIME BREAKING CHANGE] - Fixed that methods
CloseBoardAsync
andReOpenBoardAsync
incorrectly return a Card and not a Board [COMPILE TIME BREAKING CHANGE] - Fixed that method
RemoveLabelsFromCardAsync
did not work (wrongly implemented)
- Fixed that Smart-events did not do a proper internal await so could technically be delayed
- Added Webhook System (See video on how to get going here)
- Fixed the Trello icon edges where white
- Added more detailed
README.md
- Added various 'Ease of use methods' to do common actions (For example add or remove Members/Labels from Cards)
- Made class
EnumViaJsonPropertyConverter
internal (incorrectly public) [COMPILE TIME BREAKING CHANGE]
- First official version :-)