Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gylfie the Robot

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Gylfie the Robot

Gylfie is the robot who interfere with our work process on Github and helps proper flow of issues.

Source code: https://github.com/vtambourine/robot-gylfie-webhook

Avatar for Benjamin Tambourine

Benjamin Tambourine

December 26, 2014
Tweet

More Decks by Benjamin Tambourine

Other Decks in Programming

Transcript

  1. КАЧЕСТВО КОДА • ПРОСТОЙ КОД ЛЕГКО ЧИТАТЬ • ПРОСТОЙ КОД

    ЛЕГКО ПИСАТЬ • В ПРОСТОМ КОДЕ ТРУДНЕЕ ДОПУСТИТЬ ОШИБКУ
  2. CALL REVIEWERS • СОЗДАТЬ ЛОКАЛЬНУЮ КОПИЮ • СПИСОК ИЗМЕНЕННЫХ ФАЙЛОВ

    • ОПРЕДЕЛИТЬ АВТОРОВ • ПРИЗВАТЬ РЕЦЕНЗЕНТОВ
  3. CALL REVIEWERS • СОЗДАТЬ ЛОКАЛЬНУЮ КОПИЮ • СПИСОК ИЗМЕНЕННЫХ ФАЙЛОВ

    • ОПРЕДЕЛИТЬ АВТОРОВ • ПРИЗВАТЬ РЕЦЕНЗЕНТОВ
  4. CALLBACK var getContributors = (callback) => { repository.getBlame((error, authors) =>

    { if (error) callback(error) // ... callback(null, contributors) }) }
  5. PROMISE var getContributors = () => { return Promise((resolve, reject)

    => { repository.getBlame().then((authors) => { // ... resolve(contributors) }, (error) => { reject(error) }) }) }
  6. GENERATORS var getContributors = function () { return spawn(function* ()

    { var authors = yield repository.getBlame() // ... return contributors }) }
  7. ASYNC FUNCTION async function getContributors() { var authors = await

    repository.getBlame() // ... return contributors }
  8. ASYNC FUNCTION async function getContributors() { var authors = await

    repository.getBlame() // ... return contributors } getContributors().then(...)
  9. ASYNC FUNCTION async handle(payload) { await cloneRepository() // … var

    files = await getChangedFiles() // … var authors = await getAuthors(files) // … callReviewers(contributors) }
  10. TRACEUR traceur.require.makeDefault( (filename) => { return filename.indexOf('node_modules') === -1 },

    {asyncFunctions: true} ) require('traceur-source-maps').install(traceur)
  11. TRACEUR traceur.require.makeDefault( (filename) => { return filename.indexOf('node_modules') === -1 },

    {asyncFunctions: true} ) require('traceur-source-maps').install(traceur) require('./server').default.listen(4567)