Пример #1
0
  async _check_group(group){

    console.log("Checking group %s#%s", group.name, group.id, group);
  
    var pattern = {
      visibility_level : 0,
      request_access_enabled : false,
    };

    await eachOfSeries(pattern, async(prop_value, prop_name) => {

      if(group[prop_name] != prop_value)
        await client.put("/groups/{{id}}", {id : group.id, [prop_name]: prop_value });
    });

  }
Пример #2
0
  async _check_project(project) {

    console.log("Checking project %s#%s", project.name, project.id);

    var pattern = this._lookup_config(project);
console.log(pattern);

    var members = pattern.members;
      delete pattern.members;

    if(members) {
      var current = await client.rq("/projects/{{id}}/members", { id : project.id } );
      current = require('mout/array/pluck')( current, 'id');

      
      var target = values(pick(this.users, this.expand_users(members))).filter( v => !!v);


      var missing = diff(target, current );
      await eachLimit(missing, 1, async(user_id) => {
        await client.post("/projects/{{id}}/members", { id : project.id,  user_id, access_level : 30} );
      });


      process.exit();
    }
    
    await eachOfSeries(pattern, async(prop_value, prop_name) => {

      if(project[prop_name] == prop_value)
        return;
      console.log(project.name, "Changing", prop_name, "to", prop_value );

      if( !(opts['cli://unattended']) &&  !(await bprompt("Proceed", true)))
        return;

      await client.put("/projects/{{id}}", {id : project.id, [prop_name]: prop_value });
    });
  }