Esempio n. 1
0
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))
Esempio n. 2
0
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=[])
Esempio n. 3
0
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)