GitLab: Allow browsing and cloning projects

Change-Id: I1cc877ea6b5a55ae7bdb8e7a529afeb08d09e0c0
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2022-05-06 15:15:46 +02:00
parent b336ebafc3
commit dcfa15ff17
14 changed files with 1228 additions and 2 deletions

View File

@@ -25,6 +25,8 @@
#pragma once
#include <QList>
#include <QMetaType>
#include <QString>
namespace GitLab {
@@ -35,6 +37,26 @@ struct Error
QString message;
};
class PageInformation
{
public:
int currentPage = -1;
int totalPages = -1;
int perPage = -1;
int total = -1;
};
class User
{
public:
QString name;
QString realname;
QString email;
Error error;
int id = -1;
bool bot = false;
};
class Project
{
public:
@@ -42,18 +64,32 @@ public:
QString displayName;
QString pathName;
QString visibility;
QString httpUrl;
QString sshUrl;
Error error;
int id = -1;
int starCount = -1;
int forkCount = -1;
int issuesCount = -1;
int accessLevel = -1; // 40 maintainer, 30 developer, 20 reporter, 10 guest
int accessLevel = -1; // 50 owner, 40 maintainer, 30 developer, 20 reporter, 10 guest
};
class Projects
{
public:
QList<Project> projects;
Error error;
PageInformation pageInfo;
};
namespace ResultParser {
User parseUser(const QByteArray &input);
Project parseProject(const QByteArray &input);
Projects parseProjects(const QByteArray &input);
Error parseErrorMessage(const QString &message);
} // namespace ResultParser
} // namespace GitLab
Q_DECLARE_METATYPE(GitLab::Project)