gchcg-cli
Version:
1 lines • 1.21 kB
JavaScript
const GitServer=require("./GitServer"),GitlabRequest=require("./GitlabRequest");class Gitlab extends GitServer{constructor(){super("gitlab"),this.request=null}setToken(e){super.setToken(e),this.request=new GitlabRequest(e)}getUser(){return this.request.get("/user").then((e=>({...e,login:e.username})))}getOrg(){return this.request.get("/groups",{page:1,per_page:100}).then((e=>e.map((e=>({...e,login:e.name})))))}getRepo(e,t,r){const s="org"===r?encodeURIComponent(`${e}/${t}`):t;return new Promise(((e,t)=>{this.request.get(`/projects/${s}`).then((t=>{e(t.id?t:null)})).catch((e=>t(e)))}))}getRepoGroupsInfo(e,t){return new Promise(((r,s)=>{this.request.get(`/projects?search=${e}`).then((e=>{r(Array.isArray(e)?e.filter((e=>e.namespace.id===t))[0]:null)})).catch((e=>s(e)))}))}createRepo(e){return this.request.post("/user/repos",{name:e})}createOrgRepo(e,t){return this.request.post("/projects",{name:e,namespace_id:t,visibility:"private"}).then((e=>200!==e.status?e:null))}getTokenUrl(){return"http://gitlab.szjoin.net/profile/personal_access_tokens"}getTokenHelpUrl(){return"http://gitlab.szjoin.net/help/api/README.md"}getRemote(e,t,r){return`http://gitlab.szjoin.net/${e}/${t}.git`}}module.exports=Gitlab;