Giter Club home page Giter Club logo

auto's Introduction

This repository is no longer in use, see https://github.com/ipld/github-mgmt for the current org automation.

auto

Org level github automation.

This repo contains github actions we use for the whole org. Automation for individual repositories live in their respective repos.

auto's People

Contributors

mikeal avatar rvagg avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

isabella232

auto's Issues

Auto add people to triage group

I think it would be great that if we merge a PR from someone, that this person gets added to a team that has triage permission. This way you can also add this person to future code reviews.

I want that for the Multiformats org.

Automate Team Permissions

I’ve written a script that we can run once a day to normalize permissions in all of the repos for our primary language teams.

Below is the logic used for each team, functions return ’pull’, ’push’, ’admin’ or false in the case of no permissions.

/* Repos that pretty much everyone should be on */
const openRepo = new Set([
  'ipld-examples',
  'specs',      
  'interface-ipld-format',
  'ipld',       
  'replication',
  'team-mgmt',  
  'cid-cbor'    
])

const fallbacks = repo => { 
  if (openRepo.has(repo.name)) return 'pull'
  return false
}   
  
run('ipld', {
  core: repo => {
    if (repo.name === 'specs') return 'push'
    return 'pull'
  },
  'javascript-team': repo => {
    if (repo.languages.JavaScript && repo.languages.JavaScript > 0.5) return 'push'
    if (repo.name.startsWith('js-')) return 'push'
    return fallbacks(repo)
  },
  'go-team': repo => {
    if (repo.languages.Go && repo.languages.Go > 0.5) return 'push'
    if (repo.name.startsWith('go-')) return 'push'
    return fallbacks(repo)
  },
  'rust-team': repo => {
    if (repo.languages.Rust && repo.languages.Rust > 0.5) return 'push'
    if (repo.name.startsWith('rust-')) return 'push'
    return fallbacks(repo)
  }
})

I wrote a “dry run” feature that prints all the permission adjustments. I wanted to make sure everyone was alright with these changes before adjusting so many repo permissions.

Another change, I added a “core” team with all the full time contributors. That group is set to have ’pull’ (read) access in every repo.

set pull permission for core in ipld/js-ipld-dag-cbor    
set pull permission for core in ipld/go-ipld-deprecated      
set pull permission for core in ipld/ipld-examples               
set pull permission for core in ipld/js-ipld                   
set pull permission for core in ipld/js-ipld-cli                  
set pull permission for core in ipld/js-ipld-block          
set pull permission for core in ipld/react-ipld         
set push permission for core in ipld/specs                   
set pull permission for core in ipld/website         
set pull permission for core in ipld/js-ipld-dag-pb        
set pull permission for core in ipld/interface-ipld-format
set pull permission for core in ipld/js-ipld-eth-block 
set pull permission for core in ipld/ipld                 
set pull permission for core in ipld/js-ipld-graph-builder
set pull permission for core in ipld/js-ipld-eth-tx          
set pull permission for core in ipld/java-cid          
set pull permission for core in ipld/js-ipld-eth-trie 
set pull permission for core in ipld/js-ipld-eth-account-snapshot
set pull permission for core in ipld/js-ipld-eth-state-trie
set pull permission for core in ipld/js-ipld-eth-block-list
set pull permission for core in ipld/js-ipld-eth-storage-trie
set pull permission for core in ipld/js-ipld-eth-tx-trie
set pull permission for core in ipld/persistent-metadata       
set pull permission for core in ipld/js-ipld-selector
set pull permission for core in ipld/eth-hash-to-cid 
set pull permission for core in ipld/js-ipld-torrent-file
set pull permission for core in ipld/js-ipld-bencode
set pull permission for core in ipld/js-ipld-torrent-info 
set pull permission for core in ipld/js-ipld-ethereum
set pull permission for core in ipld/js-ipld-raw
set pull permission for core in ipld/js-ipld-git
set pull permission for core in ipld/py-cid
set pull permission for core in ipld/py-ipld-dag
set pull permission for core in ipld/ipld-yang
set pull permission for core in ipld/go-ipld-daghelpers
set pull permission for core in ipld/docs
set pull permission for core in ipld/research
set pull permission for core in ipld/js-ipld-bitcoin
set pull permission for core in ipld/js-ipld-zcash
set pull permission for core in ipld/java-ipld-cbor
set pull permission for core in ipld/js-unixfsv2
set pull permission for core in ipld/go-ipld
set pull permission for core in ipld/js-dag-json
set pull permission for core in ipld/go-ipld-prime
set pull permission for core in ipld/roadmap
set pull permission for core in ipld/replication
set pull permission for core in ipld/team-mgmt
set pull permission for core in ipld/ipld-in-memory
set pull permission for core in ipld/js-ipld-stack
set pull permission for core in ipld/js-codec-interface
set pull permission for core in ipld/js-path-level-one
set pull permission for core in ipld/js-get-codec
set pull permission for core in ipld/js-block
set pull permission for core in ipld/js-composites
set pull permission for core in ipld/js-iq
set pull permission for core in ipld/js-printify
set pull permission for core in ipld/js-cli
set pull permission for core in ipld/book
set pull permission for core in ipld/cid-cbor
set pull permission for core in ipld/metrics
set pull permission for core in ipld/auto
set push permission for javascript-team in ipld/react-ipld
set pull permission for javascript-team in ipld/specs
set pull permission for javascript-team in ipld/interface-ipld-format
set pull permission for javascript-team in ipld/ipld
set push permission for javascript-team in ipld/js-unixfsv2
set push permission for javascript-team in ipld/js-dag-json
set pull permission for javascript-team in ipld/replication
set pull permission for javascript-team in ipld/team-mgmt
set push permission for javascript-team in ipld/js-ipld-stack
set push permission for javascript-team in ipld/js-path-level-one
set push permission for javascript-team in ipld/eth-hash-to-cid
set push permission for javascript-team in ipld/js-codec-interface
set push permission for javascript-team in ipld/js-get-codec
set push permission for javascript-team in ipld/js-block
set push permission for javascript-team in ipld/js-composites
set push permission for javascript-team in ipld/js-iq
set push permission for javascript-team in ipld/js-printify
set push permission for javascript-team in ipld/js-cli
set push permission for javascript-team in ipld/metrics
set push permission for go-team in ipld/go-ipld-deprecated
set pull permission for go-team in ipld/specs
set pull permission for go-team in ipld/interface-ipld-format
set pull permission for go-team in ipld/ipld
set pull permission for go-team in ipld/replication
set pull permission for go-team in ipld/team-mgmt
set push permission for go-team in ipld/go-ipld
set push permission for go-team in ipld/go-ipld-prime
set pull permission for rust-team in ipld/ipld-examples
set pull permission for rust-team in ipld/specs
set pull permission for rust-team in ipld/interface-ipld-format
set pull permission for rust-team in ipld/ipld
set pull permission for rust-team in ipld/replication
set pull permission for rust-team in ipld/team-mgmt
set pull permission for rust-team in ipld/cid-cbor

@ipld/core @ipld/rust-team @ipld/javascript-team @ipld/go-team

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.