const DOMAIN = config.domain; const NAME = instance; fn check_domain() { assert(have_namespace(`${global::DOMAIN}`), `There is no ${global::DOMAIN} namespace`); } fn pre_check() { check_domain(); } 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 conditions() { let org = global::NAME; org.replace("org-",""); let insts = list_install(`${global::DOMAIN}-ci`).items; let repos = []; if (insts.some(|i| i.metadata.name=="gitea") && insts.some(|i| i.metadata.name=="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`); } json_encode(#{ repos: repos, have_taiga: have_taiga() }) }