{"action":"created","issue":{"url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/20","labels_url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/20/comments","events_url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/20/events","html_url":"https://github.com/tfsaggregator/tfsaggregator/issues/20","id":61300294,"number":20,"title":"Cycles and infinite loop check","user":{"login":"giuliov","id":1869724,"avatar_url":"https://avatars.githubusercontent.com/u/1869724?v=3","gravatar_id":"","url":"https://api.github.com/users/giuliov","html_url":"https://github.com/giuliov","followers_url":"https://api.github.com/users/giuliov/followers","following_url":"https://api.github.com/users/giuliov/following{/other_user}","gists_url":"https://api.github.com/users/giuliov/gists{/gist_id}","starred_url":"https://api.github.com/users/giuliov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giuliov/subscriptions","organizations_url":"https://api.github.com/users/giuliov/orgs","repos_url":"https://api.github.com/users/giuliov/repos","events_url":"https://api.github.com/users/giuliov/events{/privacy}","received_events_url":"https://api.github.com/users/giuliov/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"giuliov","id":1869724,"avatar_url":"https://avatars.githubusercontent.com/u/1869724?v=3","gravatar_id":"","url":"https://api.github.com/users/giuliov","html_url":"https://github.com/giuliov","followers_url":"https://api.github.com/users/giuliov/followers","following_url":"https://api.github.com/users/giuliov/following{/other_user}","gists_url":"https://api.github.com/users/giuliov/gists{/gist_id}","starred_url":"https://api.github.com/users/giuliov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giuliov/subscriptions","organizations_url":"https://api.github.com/users/giuliov/orgs","repos_url":"https://api.github.com/users/giuliov/repos","events_url":"https://api.github.com/users/giuliov/events{/privacy}","received_events_url":"https://api.github.com/users/giuliov/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-03-13T23:55:07Z","updated_at":"2015-03-14T21:05:39Z","closed_at":null,"body":"We could drop a context Guid in the comments of a save action and check the history to see if the last save was done using the same Guid. Or a custom field if people want to keep the history clean.\r\n\r\nSee <https://social.msdn.microsoft.com/Forums/vstudio/en-US/36e4bfbb-fd93-4ea8-b0f9-945d2cdc682d/workitemchangedevent-is-work-item-already-written-to-database?forum=tfsworkitemtracking> for some scenario."},"comment":{"url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/comments/80719958","html_url":"https://github.com/tfsaggregator/tfsaggregator/issues/20#issuecomment-80719958","issue_url":"https://api.github.com/repos/tfsaggregator/tfsaggregator/issues/20","id":80719958,"user":{"login":"rbanks54","id":234581,"avatar_url":"https://avatars.githubusercontent.com/u/234581?v=3","gravatar_id":"","url":"https://api.github.com/users/rbanks54","html_url":"https://github.com/rbanks54","followers_url":"https://api.github.com/users/rbanks54/followers","following_url":"https://api.github.com/users/rbanks54/following{/other_user}","gists_url":"https://api.github.com/users/rbanks54/gists{/gist_id}","starred_url":"https://api.github.com/users/rbanks54/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbanks54/subscriptions","organizations_url":"https://api.github.com/users/rbanks54/orgs","repos_url":"https://api.github.com/users/rbanks54/repos","events_url":"https://api.github.com/users/rbanks54/events{/privacy}","received_events_url":"https://api.github.com/users/rbanks54/received_events","type":"User","site_admin":false},"created_at":"2015-03-14T21:05:39Z","updated_at":"2015-03-14T21:05:39Z","body":"We will want to avoid anything that requires customisation of the work item fields in order to use the aggregator. I think a check of the WI history to see if the aggregator made the changes and/or caching recently saved work items (e.g. last 30 secs) in memory and checking against them before doing any processing could work."}}