136 lines
3.7 KiB
JavaScript
136 lines
3.7 KiB
JavaScript
(function() {
|
|
this.Api = {
|
|
groupsPath: "/api/:version/groups.json",
|
|
groupPath: "/api/:version/groups/:id.json",
|
|
namespacesPath: "/api/:version/namespaces.json",
|
|
groupProjectsPath: "/api/:version/groups/:id/projects.json",
|
|
projectsPath: "/api/:version/projects.json?simple=true",
|
|
labelsPath: "/api/:version/projects/:id/labels",
|
|
licensePath: "/api/:version/licenses/:key",
|
|
gitignorePath: "/api/:version/gitignores/:key",
|
|
gitlabCiYmlPath: "/api/:version/gitlab_ci_ymls/:key",
|
|
group: function(group_id, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.groupPath);
|
|
url = url.replace(':id', group_id);
|
|
return $.ajax({
|
|
url: url,
|
|
data: {
|
|
private_token: gon.api_token
|
|
},
|
|
dataType: "json"
|
|
}).done(function(group) {
|
|
return callback(group);
|
|
});
|
|
},
|
|
groups: function(query, skip_ldap, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.groupsPath);
|
|
return $.ajax({
|
|
url: url,
|
|
data: {
|
|
private_token: gon.api_token,
|
|
search: query,
|
|
per_page: 20
|
|
},
|
|
dataType: "json"
|
|
}).done(function(groups) {
|
|
return callback(groups);
|
|
});
|
|
},
|
|
namespaces: function(query, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.namespacesPath);
|
|
return $.ajax({
|
|
url: url,
|
|
data: {
|
|
private_token: gon.api_token,
|
|
search: query,
|
|
per_page: 20
|
|
},
|
|
dataType: "json"
|
|
}).done(function(namespaces) {
|
|
return callback(namespaces);
|
|
});
|
|
},
|
|
projects: function(query, order, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.projectsPath);
|
|
return $.ajax({
|
|
url: url,
|
|
data: {
|
|
private_token: gon.api_token,
|
|
search: query,
|
|
order_by: order,
|
|
per_page: 20
|
|
},
|
|
dataType: "json"
|
|
}).done(function(projects) {
|
|
return callback(projects);
|
|
});
|
|
},
|
|
newLabel: function(project_id, data, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.labelsPath);
|
|
url = url.replace(':id', project_id);
|
|
data.private_token = gon.api_token;
|
|
return $.ajax({
|
|
url: url,
|
|
type: "POST",
|
|
data: data,
|
|
dataType: "json"
|
|
}).done(function(label) {
|
|
return callback(label);
|
|
}).error(function(message) {
|
|
return callback(message.responseJSON);
|
|
});
|
|
},
|
|
groupProjects: function(group_id, query, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.groupProjectsPath);
|
|
url = url.replace(':id', group_id);
|
|
return $.ajax({
|
|
url: url,
|
|
data: {
|
|
private_token: gon.api_token,
|
|
search: query,
|
|
per_page: 20
|
|
},
|
|
dataType: "json"
|
|
}).done(function(projects) {
|
|
return callback(projects);
|
|
});
|
|
},
|
|
licenseText: function(key, data, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.licensePath).replace(':key', key);
|
|
return $.ajax({
|
|
url: url,
|
|
data: data
|
|
}).done(function(license) {
|
|
return callback(license);
|
|
});
|
|
},
|
|
gitignoreText: function(key, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.gitignorePath).replace(':key', key);
|
|
return $.get(url, function(gitignore) {
|
|
return callback(gitignore);
|
|
});
|
|
},
|
|
gitlabCiYml: function(key, callback) {
|
|
var url;
|
|
url = Api.buildUrl(Api.gitlabCiYmlPath).replace(':key', key);
|
|
return $.get(url, function(file) {
|
|
return callback(file);
|
|
});
|
|
},
|
|
buildUrl: function(url) {
|
|
if (gon.relative_url_root != null) {
|
|
url = gon.relative_url_root + url;
|
|
}
|
|
return url.replace(':version', gon.api_version);
|
|
}
|
|
};
|
|
|
|
}).call(this);
|