[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
原則としては GitLab Documentation にある通りに実行すればとれる。
const request = require('request');
// GITLAB_URL は https://gitlab.example.com 等
// PRIVATE_TOKEN は profile/account から取得できる。これは秘密にするべき情報
const gitlabUrl = GITLAB_URL + '/api/v3/users?private_token=' + PRIVATE_TOKEN;
// SSL 証明書がオレオレな場合に付与
// process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
function getGitlabUsers(url, callback, opt_num, opt_array) {
var num = opt_num || 0;
var list = opt_array || [];
request(url + '&page=' + num, function(e, res, body){
var result = JSON.parse(body);
if(result.length) {
list = list.concat(result);
getGitlabUsers(url, callback, num + 1, list);
} else {
callback(list);
}
});
}
getGitlabUsers(gitlabUrl, function(userList) {
console.log(userList.length, '人のユーザが登録されているぴょん');
});
Promise とか使えばもう少しきれいに書けると思う。node を使わなくても上記 gitlabUrl への curl を打ち続ければユーザリストは取れる。ただし、一度に20人しか取れず、21人目以降は page 引数を与える必要があるため、スクリプトに任せるが吉だと思う。
ただいまコメントを受けつけておりません。