fix
This commit is contained in:
56
share/organisation/index.rhai
Normal file
56
share/organisation/index.rhai
Normal file
@@ -0,0 +1,56 @@
|
||||
const DOMAIN = config.domain;
|
||||
const NAME = instance;
|
||||
const DEST = dest;
|
||||
fn have_gitea() {
|
||||
have_namespace(`${global::DOMAIN}-ci`) && have_install(`${global::DOMAIN}-ci`, "gitea") && have_service(`${global::DOMAIN}-ci`, "gitea-http") && have_secret(`${global::DOMAIN}-ci`, "gitea-admin-user")
|
||||
}
|
||||
fn have_sonar() {
|
||||
have_namespace(`${global::DOMAIN}-ci`) && have_install(`${global::DOMAIN}-ci`, "sonar") && have_service(`${global::DOMAIN}-ci`, "sonar-sonar") && have_secret(`${global::DOMAIN}-ci`, "sonar-sonar")
|
||||
}
|
||||
fn have_taiga() {
|
||||
have_namespace(`${global::DOMAIN}-ci`) && have_install(`${global::DOMAIN}-ci`, "taiga") && have_service(`${global::DOMAIN}-ci`, "taiga-taiga") && have_secret(`${global::DOMAIN}-ci`, "taiga-taiga")
|
||||
}
|
||||
fn gitea_repos() {
|
||||
let repos = [];
|
||||
let org = global::NAME;
|
||||
org.replace("org-","");
|
||||
if (have_gitea() && have_sonar()) {
|
||||
let gitea = get_secret(`${global::DOMAIN}-ci`, "gitea-admin-user");
|
||||
let username = base64_decode(gitea.data.username);
|
||||
let password = base64_decode(gitea.data.password);
|
||||
let headers = http_header_basic(username,password);
|
||||
let response = http_get_json(`http://gitea-http.${global::DOMAIN}-ci.svc:3000/api/v1/orgs/${org}/repos`, headers);
|
||||
repos += response.json.map(|p| p.name);
|
||||
repos.sort();
|
||||
log_info(`Found ${repos.len} repos`);
|
||||
}
|
||||
repos
|
||||
}
|
||||
fn post_template() {
|
||||
save_to_tf(`${global::DEST}/conditions.tf`, "conditions", #{
|
||||
have_gitea: have_gitea(),
|
||||
have_sonar: have_sonar(),
|
||||
have_taiga: have_taiga(),
|
||||
repos: gitea_repos()
|
||||
});
|
||||
}
|
||||
fn post_install() {
|
||||
let org = global::NAME;
|
||||
org.replace("org-","");
|
||||
if (have_gitea() && have_sonar()) {
|
||||
let sonar = get_secret(`${global::DOMAIN}-ci`, "sonar-sonar");
|
||||
let gitea = get_secret(`${global::DOMAIN}-ci`, "gitea-admin-user");
|
||||
let username = base64_decode(gitea.data.username);
|
||||
let password = base64_decode(gitea.data.password);
|
||||
let headerGit = http_header_basic(username,password);
|
||||
let headerSonar = http_header_basic("admin",base64_decode(sonar.data.ADMIN_PASSWORD));
|
||||
let response = http_get_json(`http://gitea-http.${global::DOMAIN}-ci.svc:3000/api/v1/orgs/${org}/repos`, headerGit);
|
||||
for p in response.json {
|
||||
let exist = http_get_json(`http://sonar-sonar.${global::DOMAIN}-ci.svc:3000/api/projects/search?projects=${org}__${p.name}`, headerSonar).json.components.len;
|
||||
if (exist < 1) {
|
||||
log_info(`Creating [${org}] ${p.name}`);
|
||||
http_post_json(`http://sonar-sonar.${global::DOMAIN}-ci.svc:3000/api/projects/create?name=%5B${org}%5D%20${p.name}&project=${org}__${p.name}&visibility=private&mainBranch=${p.default_branch}`, headerSonar, #{});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user