Skip to content

Instantly share code, notes, and snippets.

@dariye
dariye / docker.md
Last active May 24, 2018 20:18
Running Docker locally
docker-machine start default

eval "$(docker-machine env default)"
@dariye
dariye / labeled.js
Last active August 21, 2018 01:14
Handler for 'labeled' event on a github issue
/**
* 'labeled' event handler
* @param {Object} payload Github event payload
*/
const { query } = require('../graphql')
const {
graphqlClient,
addProjectCard,
moveProjectCard,
baseVariables
@dariye
dariye / index.js
Last active August 21, 2018 01:06
Github webhook handler
const { json, send, text } = require('micro')
const micro = require('micro')
const config = require('../config')
const actions = require('../actions')
const { signRequestBody } = require('../lib/crypto')
/**
* Main request handler
* @param {Object} req HTTP request object
* @param {Object} res HTTP response object
* @returns {Object} Updated server response object
@dariye
dariye / crypto.js
Last active August 21, 2018 01:05
Validate github webhook event
const crypto = require('crypto')
/**
* Sign request body using secret and HTTP request body
* @param {string} key Secret key
* @param {body} body HTTP request body
* @returns {string} Generate hash code
*/
function signRequestBody (key, body) {
return `sha1=${crypto.createHmac('sha1', key).update(body, 'utf-8').digest('hex')}`
}
@dariye
dariye / github.js
Last active August 21, 2018 01:13
GitHub api clients and utility methods
const async = require('async')
const Github = require('github-api')
const { GraphQLClient } = require('graphql-request')
const { query, mutation } = require('../graphql')
const config = require('../config')
const { token, repo, owner } = config.github
const issues = new Github({ token }).getIssues(`${owner}/${repo}`)
const graphqlClient = new GraphQLClient('https://api.github.com/graphql', {
headers: { Authorization: `bearer ${token}`, }
@dariye
dariye / micro-proxy.js
Created September 7, 2018 15:02
micro-proxy.js programmatic usage
const createProxy = require('micro-proxy')
const services = require('./services')
const {port} = require('./config').server
const server = createProxy(Object.values(services)
.map(service => service[process.env.NODE_ENV]))
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
@dariye
dariye / micro-db-server.js
Created September 9, 2018 13:39
Micro-starter
const { json, send } = require('micro')
module.exports = async (req, res) => {
return send(res, 200, req.url)
}
@dariye
dariye / index.css
Created November 6, 2018 17:48
WorrisomeSaddlebrownRuby created by pauldariye - https://repl.it/@pauldariye/WorrisomeSaddlebrownRuby
Empty file
@dariye
dariye / tmux-cheatsheet.markdown
Created March 7, 2019 13:57 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname

Folder Structure

Motivations

  • Clear feature ownership
  • Module usage predictibility (refactoring, maintainence, you know what's shared, what's not, prevents accidental regressions, avoids huge directories of not-actually-reusable modules, etc)