def current_release(request): yt = YouTrack(settings.YOUTRACK_BASE_URL, token=settings.YOUTRACK_TOKEN) result = yt.getAllIssues(filter='#{Scaler Current Release Plan}', after="0", max="60", withFields=()) results = json.dumps(result, default=lambda x: x.to_dict()) return Response(json.loads(results))
class YtClient(object): def __init__(self, server, username, password): self.logger = LoggerFactory.getLogger("com.xebialabs.yourtrack.Server") if server is None: sys.exit("No server provided.") if username is not None: youtrackUsername = username else: youtrackUsername = server['username'] if password is not None: youtrackPassword = password else: youtrackPassword = server['password'] if server['token'] is not None: # authentication request with permanent token self.youtrack = YouTrack(server['url'], token=server['token']) else: # authentication with username and password self.youtrack = YouTrack(server['url'], login=youtrackUsername, password=youtrackPassword) def getIssue(self, issueId): return self.youtrack.getIssue(issueId) def getAllIssues(self, query, withFields): self.logger.debug("getAllIssues") self.logger.debug("Query = %s" % query) self.logger.debug("Fields = %s" % withFields) return self.youtrack.getAllIssues(filter=query, withFields=withFields) def updateIssuesByQuery(self, query, fieldsToUpdate, comment): command = "" for key in fieldsToUpdate: command += key + " " + fieldsToUpdate[key] foundIssues = self.youtrack.getAllIssues(filter=query, withFields=[]) for issue in foundIssues: self.youtrack.executeCommand(issue['id'], command, comment) def getIssuesByQuery(self, query, fieldList=[]): self.logger.debug("getIssuesByQuery") return self.youtrack.getAllIssues(filter=query, withFields=[])
class YouTrackProject: def __init__(self, host: str, project_id: str, token: str): self._instance = YouTrack(host, token=token) self.issues = self._instance.getAllIssues(project_id)