From 2b80dedd7b50260d5735bd5df4421fec8c7823e4 Mon Sep 17 00:00:00 2001 From: POPPIN-FUMI Date: Mon, 13 Nov 2023 15:54:05 +0100 Subject: [PATCH] add iam role - roles/artifactregistry.admin --- dist/index.js | 1 - resource/install | 64 +++++++++++++++++++++++++++++++++++ src/lib/gcloud/iam/addRole.ts | 5 +-- 3 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 resource/install diff --git a/dist/index.js b/dist/index.js index 0c6a302c..a7e4f341 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,3 @@ -#!/usr/bin/env node "use strict";var YRe=Object.create;var ug=Object.defineProperty;var WRe=Object.getOwnPropertyDescriptor;var KRe=Object.getOwnPropertyNames;var XRe=Object.getPrototypeOf,ZRe=Object.prototype.hasOwnProperty;var eNe=(c,f,m)=>f in c?ug(c,f,{enumerable:!0,configurable:!0,writable:!0,value:m}):c[f]=m;var b=(c,f)=>ug(c,"name",{value:f,configurable:!0});var q=(c,f)=>()=>(f||c((f={exports:{}}).exports,f),f.exports),tNe=(c,f)=>{for(var m in f)ug(c,m,{get:f[m],enumerable:!0})},sX=(c,f,m,p)=>{if(f&&typeof f=="object"||typeof f=="function")for(let y of KRe(f))!ZRe.call(c,y)&&y!==m&&ug(c,y,{get:()=>f[y],enumerable:!(p=WRe(f,y))||p.enumerable});return c};var lt=(c,f,m)=>(m=c!=null?YRe(XRe(c)):{},sX(f||!c||!c.__esModule?ug(m,"default",{value:c,enumerable:!0}):m,c)),oNe=c=>sX(ug({},"__esModule",{value:!0}),c);var XT=(c,f,m)=>(eNe(c,typeof f!="symbol"?f+"":f,m),m);var lX=q((J$t,aNe)=>{aNe.exports={name:"dotenv",version:"16.0.3",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{require:"./lib/main.js",types:"./lib/main.d.ts",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^17.0.9",decache:"^4.6.1",dtslint:"^3.7.0",sinon:"^12.0.1",standard:"^16.0.4","standard-markdown":"^7.1.0","standard-version":"^9.3.2",tap:"^15.1.6",tar:"^6.1.11",typescript:"^4.5.4"},engines:{node:">=12"}}});var Yk=q((V$t,tO)=>{var rNe=require("fs"),uX=require("path"),nNe=require("os"),iNe=lX(),sNe=iNe.version,lNe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function uNe(c){let f={},m=c.toString();m=m.replace(/\r\n?/mg,` `);let p;for(;(p=lNe.exec(m))!=null;){let y=p[1],n=p[2]||"";n=n.trim();let r=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),r==='"'&&(n=n.replace(/\\n/g,` `),n=n.replace(/\\r/g,"\r")),f[y]=n}return f}b(uNe,"parse");function $k(c){console.log(`[dotenv@${sNe}][DEBUG] ${c}`)}b($k,"_log");function pNe(c){return c[0]==="~"?uX.join(nNe.homedir(),c.slice(1)):c}b(pNe,"_resolveHome");function cNe(c){let f=uX.resolve(process.cwd(),".env"),m="utf8",p=!!(c&&c.debug),y=!!(c&&c.override);c&&(c.path!=null&&(f=pNe(c.path)),c.encoding!=null&&(m=c.encoding));try{let n=ZT.parse(rNe.readFileSync(f,{encoding:m}));return Object.keys(n).forEach(function(r){Object.prototype.hasOwnProperty.call(process.env,r)?(y===!0&&(process.env[r]=n[r]),p&&$k(y===!0?`"${r}" is already defined in \`process.env\` and WAS overwritten`:`"${r}" is already defined in \`process.env\` and was NOT overwritten`)):process.env[r]=n[r]}),{parsed:n}}catch(n){return p&&$k(`Failed to load ${f} ${n.message}`),{error:n}}}b(cNe,"config");var ZT={config:cNe,parse:uNe};tO.exports.config=ZT.config;tO.exports.parse=ZT.parse;tO.exports=ZT});var Eb=q(Wk=>{var xb=class extends Error{constructor(f,m,p){super(p),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=m,this.exitCode=f,this.nestedError=void 0}};b(xb,"CommanderError");var oO=class extends xb{constructor(f){super(1,"commander.invalidArgument",f),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};b(oO,"InvalidArgumentError");Wk.CommanderError=xb;Wk.InvalidArgumentError=oO});var rO=q(Xk=>{var{InvalidArgumentError:dNe}=Eb(),aO=class{constructor(f,m){switch(this.description=m||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,f[0]){case"<":this.required=!0,this._name=f.slice(1,-1);break;case"[":this.required=!1,this._name=f.slice(1,-1);break;default:this.required=!0,this._name=f;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(f,m){return m===this.defaultValue||!Array.isArray(m)?[f]:m.concat(f)}default(f,m){return this.defaultValue=f,this.defaultValueDescription=m,this}argParser(f){return this.parseArg=f,this}choices(f){return this.argChoices=f.slice(),this.parseArg=(m,p)=>{if(!this.argChoices.includes(m))throw new dNe(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(m,p):m},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};b(aO,"Argument");function mNe(c){let f=c.name()+(c.variadic===!0?"...":"");return c.required?"<"+f+">":"["+f+"]"}b(mNe,"humanReadableArgName");Xk.Argument=aO;Xk.humanReadableArgName=mNe});var eM=q(pX=>{var{humanReadableArgName:gNe}=rO(),nO=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(f){let m=f.commands.filter(p=>!p._hidden);if(f._hasImplicitHelpCommand()){let[,p,y]=f._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/),n=f.createCommand(p).helpOption(!1);n.description(f._helpCommandDescription),y&&n.arguments(y),m.push(n)}return this.sortSubcommands&&m.sort((p,y)=>p.name().localeCompare(y.name())),m}compareOptions(f,m){let p=b(y=>y.short?y.short.replace(/^-/,""):y.long.replace(/^--/,""),"getSortKey");return p(f).localeCompare(p(m))}visibleOptions(f){let m=f.options.filter(n=>!n.hidden),p=f._hasHelpOption&&f._helpShortFlag&&!f._findOption(f._helpShortFlag),y=f._hasHelpOption&&!f._findOption(f._helpLongFlag);if(p||y){let n;p?y?n=f.createOption(f._helpFlags,f._helpDescription):n=f.createOption(f._helpShortFlag,f._helpDescription):n=f.createOption(f._helpLongFlag,f._helpDescription),m.push(n)}return this.sortOptions&&m.sort(this.compareOptions),m}visibleGlobalOptions(f){if(!this.showGlobalOptions)return[];let m=[];for(let p=f.parent;p;p=p.parent){let y=p.options.filter(n=>!n.hidden);m.push(...y)}return this.sortOptions&&m.sort(this.compareOptions),m}visibleArguments(f){return f._argsDescription&&f._args.forEach(m=>{m.description=m.description||f._argsDescription[m.name()]||""}),f._args.find(m=>m.description)?f._args:[]}subcommandTerm(f){let m=f._args.map(p=>gNe(p)).join(" ");return f._name+(f._aliases[0]?"|"+f._aliases[0]:"")+(f.options.length?" [options]":"")+(m?" "+m:"")}optionTerm(f){return f.flags}argumentTerm(f){return f.name()}longestSubcommandTermLength(f,m){return m.visibleCommands(f).reduce((p,y)=>Math.max(p,m.subcommandTerm(y).length),0)}longestOptionTermLength(f,m){return m.visibleOptions(f).reduce((p,y)=>Math.max(p,m.optionTerm(y).length),0)}longestGlobalOptionTermLength(f,m){return m.visibleGlobalOptions(f).reduce((p,y)=>Math.max(p,m.optionTerm(y).length),0)}longestArgumentTermLength(f,m){return m.visibleArguments(f).reduce((p,y)=>Math.max(p,m.argumentTerm(y).length),0)}commandUsage(f){let m=f._name;f._aliases[0]&&(m=m+"|"+f._aliases[0]);let p="";for(let y=f.parent;y;y=y.parent)p=y.name()+" "+p;return p+m+" "+f.usage()}commandDescription(f){return f.description()}subcommandDescription(f){return f.summary()||f.description()}optionDescription(f){let m=[];return f.argChoices&&m.push(`choices: ${f.argChoices.map(p=>JSON.stringify(p)).join(", ")}`),f.defaultValue!==void 0&&(f.required||f.optional||f.isBoolean()&&typeof f.defaultValue=="boolean")&&m.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`),f.presetArg!==void 0&&f.optional&&m.push(`preset: ${JSON.stringify(f.presetArg)}`),f.envVar!==void 0&&m.push(`env: ${f.envVar}`),m.length>0?`${f.description} (${m.join(", ")})`:f.description}argumentDescription(f){let m=[];if(f.argChoices&&m.push(`choices: ${f.argChoices.map(p=>JSON.stringify(p)).join(", ")}`),f.defaultValue!==void 0&&m.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`),m.length>0){let p=`(${m.join(", ")})`;return f.description?`${f.description} ${p}`:p}return f.description}formatHelp(f,m){let p=m.padWidth(f,m),y=m.helpWidth||80,n=2,r=2;function g(o,a){if(a){let u=`${o.padEnd(p+r)}${a}`;return m.wrap(u,y-n,p+r)}return o}b(g,"formatItem");function h(o){return o.join(` diff --git a/resource/install b/resource/install new file mode 100644 index 00000000..b2d01772 --- /dev/null +++ b/resource/install @@ -0,0 +1,64 @@ +#!/bin/sh + +# Constants and configurable variables +NODE_VERSION=18.18.1 + +# This ensures the entire script is downloaded +{ +set -e # exit immediately if a command exits with a non-zero status + +usage() { + cat 1>&2 <> ~/.profile + echo 'eval "\$(nodenv init -)"' >> ~/.profile + source ~/.profile + + echo "Installing node-build..." + git clone https://github.com/nodenv/node-build.git "\$(nodenv root)"/plugins/node-build + + echo "Installing node $NODE_VERSION..." + nodenv install $NODE_VERSION + nodenv global $NODE_VERSION + echo "Node installation completed!" + + echo "Installing @skeet-framework/cli..." + npm i -g @skeet-framework/cli + + echo "Sourcing ~/.profile..." + source ~/.profile +} + +main() { + for arg in "$@"; do + case "$arg" in + -h|--help) + usage + exit 0 + ;; + *) + ;; + esac + done + + install_nodenv_and_node + skeet --help +} + +main "$@" + +} # this ensures the entire script is downloaded diff --git a/src/lib/gcloud/iam/addRole.ts b/src/lib/gcloud/iam/addRole.ts index ada702b7..54d84107 100644 --- a/src/lib/gcloud/iam/addRole.ts +++ b/src/lib/gcloud/iam/addRole.ts @@ -16,7 +16,7 @@ export const runAiRole = async (projectId: string, appName: string) => { export const addAllRoles = async ( projectId: string, appName: string, - roleList: Array + roleList: Array, ) => { for await (const roleName of roleList) { await addRole(projectId, appName, roleName) @@ -26,7 +26,7 @@ export const addAllRoles = async ( export const addRole = async ( projectId: string, appName: string, - roleName: string + roleName: string, ) => { const addRoleCmd = [ 'gcloud', @@ -62,4 +62,5 @@ export const roleList = [ 'roles/cloudtasks.admin', 'roles/firebaserules.admin', 'roles/aiplatform.admin', + 'roles/artifactregistry.admin', ]