[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fen\u002Fdocs\u002Fintegrations\u002Fgithub":3,"docs-nav-en":351},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":345,"_id":346,"_source":347,"_file":348,"_stem":349,"_extension":350},"\u002Fen\u002Fdocs\u002Fintegrations\u002Fgithub","integrations",false,"","GitHub","Measure a development team's output (commits, PRs, reviews) and GitHub Actions CI status from a pipeline.",{"type":11,"children":12,"toc":337},"root",[13,35,42,86,92,111,159,172,249,266,298,304],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,26,28,33],{"type":19,"value":20},"text","The ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":8},{"type":19,"value":27}," integration gives your pipelines a read of development activity: commits, pull requests, reviews, and GitHub Actions runs — by repository and by developer. It is ",{"type":14,"tag":22,"props":29,"children":30},{},[31],{"type":19,"value":32},"read-only",{"type":19,"value":34},": nothing is written to your repositories.",{"type":14,"tag":36,"props":37,"children":39},"h2",{"id":38},"what-you-can-do-with-it",[40],{"type":19,"value":41},"What you can do with it",{"type":14,"tag":43,"props":44,"children":45},"ul",{},[46,57,67],{"type":14,"tag":47,"props":48,"children":49},"li",{},[50,55],{"type":14,"tag":22,"props":51,"children":52},{},[53],{"type":19,"value":54},"Team output report",{"type":19,"value":56}," — who shipped what over the period: commits, lines added \u002F deleted, PRs opened and merged, number of reviews.",{"type":14,"tag":47,"props":58,"children":59},{},[60,65],{"type":14,"tag":22,"props":61,"children":62},{},[63],{"type":19,"value":64},"CI health",{"type":19,"value":66}," — number of successful, failed and in-progress GitHub Actions runs, per repository.",{"type":14,"tag":47,"props":68,"children":69},{},[70,75,77,84],{"type":14,"tag":22,"props":71,"children":72},{},[73],{"type":19,"value":74},"Feed an agent",{"type":19,"value":76}," — an agent that summarizes the technical week (see ",{"type":14,"tag":78,"props":79,"children":81},"a",{"href":80},"\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcto-ia",[82],{"type":19,"value":83},"Use cases → CTO IA",{"type":19,"value":85},").",{"type":14,"tag":36,"props":87,"children":89},{"id":88},"connection",[90],{"type":19,"value":91},"Connection",{"type":14,"tag":15,"props":93,"children":94},{},[95,97,102,104,109],{"type":19,"value":96},"In ",{"type":14,"tag":22,"props":98,"children":99},{},[100],{"type":19,"value":101},"Settings → Services → GitHub",{"type":19,"value":103},", ",{"type":14,"tag":22,"props":105,"children":106},{},[107],{"type":19,"value":108},"Accounts",{"type":19,"value":110}," tab, two methods:",{"type":14,"tag":112,"props":113,"children":114},"ol",{},[115,125],{"type":14,"tag":47,"props":116,"children":117},{},[118,123],{"type":14,"tag":22,"props":119,"children":120},{},[121],{"type":19,"value":122},"Connect with GitHub",{"type":19,"value":124}," — OAuth via the platform's application (when the operator has configured it), then selection of the repositories to track. No token to copy.",{"type":14,"tag":47,"props":126,"children":127},{},[128,133,135,140,142,148,150,157],{"type":14,"tag":22,"props":129,"children":130},{},[131],{"type":19,"value":132},"Paste a token",{"type":19,"value":134}," (BYO) — a read-only GitHub ",{"type":14,"tag":22,"props":136,"children":137},{},[138],{"type":19,"value":139},"access token",{"type":19,"value":141}," (ideally a ",{"type":14,"tag":143,"props":144,"children":145},"em",{},[146],{"type":19,"value":147},"fine-grained PAT",{"type":19,"value":149}," limited to the relevant repositories), the list of repositories to track (",{"type":14,"tag":151,"props":152,"children":154},"code",{"className":153},[],[155],{"type":19,"value":156},"owner\u002Frepo",{"type":19,"value":158},") and, for GitHub Enterprise, an API base URL. The token is stored server-side and never shown again.",{"type":14,"tag":36,"props":160,"children":162},{"id":161},"the-github_report-node",[163,164,170],{"type":19,"value":20},{"type":14,"tag":151,"props":165,"children":167},{"className":166},[],[168],{"type":19,"value":169},"github_report",{"type":19,"value":171}," node",{"type":14,"tag":15,"props":173,"children":174},{},[175,176,184,186,192,193,199,201,207,209,215,217,223,225,231,233,239,241,247],{"type":19,"value":20},{"type":14,"tag":22,"props":177,"children":178},{},[179],{"type":14,"tag":151,"props":180,"children":182},{"className":181},[],[183],{"type":19,"value":169},{"type":19,"value":185}," node fetches activity over a time window (",{"type":14,"tag":151,"props":187,"children":189},{"className":188},[],[190],{"type":19,"value":191},"24h",{"type":19,"value":103},{"type":14,"tag":151,"props":194,"children":196},{"className":195},[],[197],{"type":19,"value":198},"7d",{"type":19,"value":200}," or ",{"type":14,"tag":151,"props":202,"children":204},{"className":203},[],[205],{"type":19,"value":206},"30d",{"type":19,"value":208},") and publishes it into the context: breakdown by developer (",{"type":14,"tag":151,"props":210,"children":212},{"className":211},[],[213],{"type":19,"value":214},"by_developer",{"type":19,"value":216},") and by repository (",{"type":14,"tag":151,"props":218,"children":220},{"className":219},[],[221],{"type":19,"value":222},"by_repo",{"type":19,"value":224},"), commit log (",{"type":14,"tag":151,"props":226,"children":228},{"className":227},[],[229],{"type":19,"value":230},"commit_log",{"type":19,"value":232},"), totals, CI summary (",{"type":14,"tag":151,"props":234,"children":236},{"className":235},[],[237],{"type":19,"value":238},"ci",{"type":19,"value":240},"), and the list of repositories that could not be read (",{"type":14,"tag":151,"props":242,"children":244},{"className":243},[],[245],{"type":19,"value":246},"unreadable_repos",{"type":19,"value":248},"). A downstream agent turns it into a readable report.",{"type":14,"tag":250,"props":251,"children":253},"alert",{"type":252},"info",[254],{"type":14,"tag":15,"props":255,"children":256},{},[257,259,264],{"type":19,"value":258},"Reads are run ",{"type":14,"tag":22,"props":260,"children":261},{},[262],{"type":19,"value":263},"in parallel",{"type":19,"value":265}," (with a bound) across repositories, to stay fast on a busy GitHub organization.",{"type":14,"tag":15,"props":267,"children":268},{},[269,274,276,282,283,289,290,296],{"type":14,"tag":22,"props":270,"children":271},{},[272],{"type":19,"value":273},"Agent tools",{"type":19,"value":275}," (read): ",{"type":14,"tag":151,"props":277,"children":279},{"className":278},[],[280],{"type":19,"value":281},"github.report",{"type":19,"value":103},{"type":14,"tag":151,"props":284,"children":286},{"className":285},[],[287],{"type":19,"value":288},"github.list_commits",{"type":19,"value":103},{"type":14,"tag":151,"props":291,"children":293},{"className":292},[],[294],{"type":19,"value":295},"github.list_pull_requests",{"type":19,"value":297},".",{"type":14,"tag":36,"props":299,"children":301},{"id":300},"best-practices",[302],{"type":19,"value":303},"Best practices",{"type":14,"tag":43,"props":305,"children":306},{},[307,319,324],{"type":14,"tag":47,"props":308,"children":309},{},[310,312,317],{"type":19,"value":311},"Prefer a ",{"type":14,"tag":22,"props":313,"children":314},{},[315],{"type":19,"value":316},"dedicated token",{"type":19,"value":318}," for the integration over a shared personal token.",{"type":14,"tag":47,"props":320,"children":321},{},[322],{"type":19,"value":323},"Restrict scopes to the strict minimum (read access to repositories, pull requests and actions).",{"type":14,"tag":47,"props":325,"children":326},{},[327,329,335],{"type":19,"value":328},"Combine with the ",{"type":14,"tag":78,"props":330,"children":332},{"href":331},"\u002Fen\u002Fdocs\u002Fcanaux\u002Fschedule",[333],{"type":19,"value":334},"Schedule",{"type":19,"value":336}," channel for a recurring report (e.g. every evening at 6pm).",{"title":7,"searchDepth":338,"depth":338,"links":339},2,[340,341,342,344],{"id":38,"depth":338,"text":41},{"id":88,"depth":338,"text":91},{"id":161,"depth":338,"text":343},"The github_report node",{"id":300,"depth":338,"text":303},"markdown","content:en:docs:7.integrations:3.github.md","content","en\u002Fdocs\u002F7.integrations\u002F3.github.md","en\u002Fdocs\u002F7.integrations\u002F3.github","md",[352],{"title":353,"_path":354,"children":355},"En","\u002Fen",[356],{"title":357,"_path":358,"children":359},"Docs","\u002Fen\u002Fdocs",[360,373,400,428,441,457,470,529],{"title":361,"_path":362,"children":363},"Getting started","\u002Fen\u002Fdocs\u002Fdemarrer",[364,367,370],{"title":365,"_path":366},"Welcome","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":368,"_path":369},"Create an account","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":371,"_path":372},"Connect an LLM key","\u002Fen\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":374,"_path":375,"children":376},"Channels","\u002Fen\u002Fdocs\u002Fcanaux",[377,380,383,386,389,392,395,398],{"title":378,"_path":379},"Channels overview","\u002Fen\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":381,"_path":382},"Real-time telephony","\u002Fen\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":384,"_path":385},"Email","\u002Fen\u002Fdocs\u002Fcanaux\u002Femail",{"title":387,"_path":388},"Web chat widget","\u002Fen\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":390,"_path":391},"HTTP Webhook","\u002Fen\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":393,"_path":394},"Messaging (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fen\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":396,"_path":397},"Meta Lead Ads","\u002Fen\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":399,"_path":331},"Schedule (cron)",{"title":401,"_path":402,"children":403},"Pipelines","\u002Fen\u002Fdocs\u002Fpipelines",[404,407,410,413,416,419,422,425],{"title":405,"_path":406},"The Visual Editor","\u002Fen\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":408,"_path":409},"AI Agents","\u002Fen\u002Fdocs\u002Fpipelines\u002Fagents",{"title":411,"_path":412},"Deterministic Operators","\u002Fen\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":414,"_path":415},"Flow Control","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":417,"_path":418},"Code Steps","\u002Fen\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":420,"_path":421},"Sub-pipelines","\u002Fen\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":423,"_path":424},"No-code actions","\u002Fen\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":426,"_path":427},"Knowledge base","\u002Fen\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",{"title":429,"_path":430,"children":431},"Supervision","\u002Fen\u002Fdocs\u002Fsupervision",[432,435,438],{"title":433,"_path":434},"Execution History","\u002Fen\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":436,"_path":437},"Credits & Metering","\u002Fen\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":439,"_path":440},"Benchmarks","\u002Fen\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":442,"_path":443,"children":444},"Security","\u002Fen\u002Fdocs\u002Fsecurite",[445,448,451,454],{"title":446,"_path":447},"Security principles","\u002Fen\u002Fdocs\u002Fsecurite\u002Fprincipes",{"title":449,"_path":450},"Strict multi-tenancy","\u002Fen\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":452,"_path":453},"GDPR audit & access log","\u002Fen\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":455,"_path":456},"Sovereign deployment","\u002Fen\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":458,"_path":459,"children":460},"Developers","\u002Fen\u002Fdocs\u002Fdeveloppeurs",[461,464,467],{"title":462,"_path":463},"Admin API","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",{"title":465,"_path":466},"Outbound webhooks","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":468,"_path":469},"Drive betool from Claude (MCP)","\u002Fen\u002Fdocs\u002Fdeveloppeurs\u002Fmcp",{"title":471,"_path":472,"children":473},"Integrations","\u002Fen\u002Fdocs\u002Fintegrations",[474,477,480,481,484,487,490,493,496,499,502,505,508,511,514,517,520,523,526],{"title":475,"_path":476},"Integrations overview","\u002Fen\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":478,"_path":479},"Stripe","\u002Fen\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":8,"_path":4},{"title":482,"_path":483},"Google","\u002Fen\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":485,"_path":486},"LinkedIn Ads","\u002Fen\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":488,"_path":489},"Kavkom","\u002Fen\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":491,"_path":492},"Jira","\u002Fen\u002Fdocs\u002Fintegrations\u002Fjira",{"title":494,"_path":495},"Slack","\u002Fen\u002Fdocs\u002Fintegrations\u002Fslack",{"title":497,"_path":498},"SMS","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsms",{"title":500,"_path":501},"Enable Banking (open banking)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":503,"_path":504},"CRM, marketing & productivity","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":506,"_path":507},"HeyGen (video)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":509,"_path":510},"La Poste","\u002Fen\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":512,"_path":513},"Industry CRM (beTool Application, Qhare)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":515,"_path":516},"Mitti (field inspections)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":518,"_path":519},"Meta (Messenger, Pages, Meta Ads)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":521,"_path":522},"Onoff Business (Beta)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":524,"_path":525},"Smart Life \u002F Tuya (connected devices)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":527,"_path":528},"beTool products (Desktop, Kiosk, Terminal)","\u002Fen\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":530,"_path":531,"children":532},"Use cases","\u002Fen\u002Fdocs\u002Fcas-usage",[533,536,539,542,544,547],{"title":534,"_path":535},"Typical business agents","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":537,"_path":538},"CFO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":540,"_path":541},"COO IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":543,"_path":80},"CTO IA",{"title":545,"_path":546},"Product Manager IA","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":548,"_path":549},"Personal assistant","\u002Fen\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]