Un site qui permet de connaître le pourcentage de PRs mergées pour un repo GitHub donné.
Dans mon équipe (infra @ elastic), on utilise Logstash pour indexer les évènements de notre organisation GitHub dans Elasticsearch et générer des alertes et dashboards.
Ce post décrit rapidement notre process.
En bonus, il est possible d'utiliser le nouveau chart officiel Logstash développé par mes soins pour déployer Logstash sur K8S (attention ce chart est toujours en bêta).
Super utile pour coller des gros logs dans un commentaire GitHub par exemple:
## collapsible markdown?
<details><summary>CLICK ME</summary>
<p>
hidden blocks!
</p>
</details>
Un générateur de "CV" basé sur l'activité publique Github.
Pour visualiser l'historique d'un fichier sur GitHub
Un outil tout simple en go développé par un collègue qui vérifie toute les 60 secondes le status d'une PR GitHub et renvoie SUCCESS quand tout les checks définis sur la PR sont OK.
Prérequis: Créer un token GitHub disposant du scope repo:status
$ go get github.com/crazybus/pratus
$ export GITHUB_TOKEN=xxxxxxx
$ pratus https://github.com/Crazybus/pratus/pulls/1
Checking status of pull request 1 in Crazybus/pratus every 60 seconds
......
PR finished with state: success
Petit procédure pour générer une clé GPG avec Keybase sur MacOS et l'utiliser pour signer ses commits GitHub
Les règles de la communication asynchrone chez GitHub:
- Prefer asynchronous communication
- Don’t underestimate high-fidelity mediums
- Nobody gets fired for opening an issue
- Copy teams, not team members
- Be mindful of noise
- Use checklists to make blockers explicit
- Issues are organization-wide todos
- Master the gentle bump
- Keep discussions logically distinct
- There’s only one way to change something
- Secrets, secrets, are no fun
- Surface work early for feedback
- If you can’t diff it, don’t use it
- Pull requests are community property
- Don’t ping, just ask
Bonus: Overcompensate for tone
Double bonus: If it has a URL, link to it
Super utile pour créer, reviewer et merger des PR GitHub depuis VS Code
Atlantis permet d'orchestrer la planification et l'application topologies Terraform depuis des pull requests GitHub, GitLab où BitBucket.
Atlantis fait désormais partie d'Hashicorm (cf. https://medium.com/runatlantis/joining-hashicorp-200ee9572dc5)
Un IDE online pour éditer les repos GitHub
Script utile pour réécrire l'historique d'un repo git en changeant le nom et l'email de l'auteur
Pour mettre à jour un repo fork à partir du repo upstream:
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git push origin master
Un outils en go qui s'occupe de mettre à jour automatiquement le fichier ${HOME}/.ssh/authorized_keys
avec les clés publiques d'un user github (ex pour moi: https://github.com/jmlrt.keys).
Jess Fraz oblige, une image docker est disponible.
Comme indiqué dans le README, à ne mettre en place que si on a activé l'authentifiation 2FA sur GitHub et qu'on surveille les clés publiques déployées pour ne pas se faire hacker ces serveurs en cas de hack du compte GitHub).
GitHub-backup est un outils développé en Haskell qui permet de sauvegarder les metadata d'un repos GitHub (issues, comments, watchers, ...)
Des emojis pour qui fonctionnent sur GitHub
Un webhook listener en Python avec Flask pour exécuter des actions automatiquement après un push git sur GitHub ou BitBucket:
import os
from sys import platform as _platform
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def tracking():
data = request.get_json()
commit_author = data['actor']['username']
commit_hash = data['push']['changes'][0]['old']['target']['hash'][:7]
commit_url = data['push']['changes'][0]['old']['target']['links']['html']['href']
print 'Webhook received! %s committed %s: %s' % (commit_author, commit_hash, commit_url)
return 'OK'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
Un repository fournissant les Makefiles et la configuration pour créer des applications unikernels OSv à partir de pas mal d'applis (ex: haproxy, jetty, mysql, tomcat, ...)
Un wrapper à git qui permet d'utiliser toutes les fonctionnalités spécifiques de GitHub (fork, pullrequests, issues, ...) en ligne de commandes
Docker permet maintenant de lier son compte DockerHub (qui est leur 'registry') à son compte github/bitbucket.
Un build+push docker peut être déclenché automatiquement en cas de nouveau push de code sur le repo source. Ils mettent également des webhooks à disposition.L'avantage de tout cela c'est bien sûr l'automatisation mais aussi la rapidité du push qui se fait dans le réseau interne (du moins pas chez nous) de DockerHub.