CINXE.COM
Refreshing user access tokens - GitHub Docs
<!DOCTYPE html><html data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="/assets/cb-345/images/site/favicon.png"/><link href="/manifest.json" rel="manifest"/><meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"/><title>Refreshing user access tokens - GitHub Docs</title><meta name="description" content="To enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire."/><link rel="alternate" hrefLang="zh-Hans" href="https://docs.github.com/zh/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="es" href="https://docs.github.com/es/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="pt" href="https://docs.github.com/pt/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="ru" href="https://docs.github.com/ru/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="ja" href="https://docs.github.com/ja/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="fr" href="https://docs.github.com/fr/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="de" href="https://docs.github.com/de/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><link rel="alternate" hrefLang="ko" href="https://docs.github.com/ko/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><meta name="keywords" content="GitHub Apps"/><meta name="path-language" content="en"/><meta name="path-version" content="free-pro-team@latest"/><meta name="path-product" content="apps"/><meta name="path-article" content="apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><meta name="page-document-type" content="article"/><meta name="status" content="200"/><meta property="og:site_name" content="GitHub Docs"/><meta property="og:title" content="Refreshing user access tokens - GitHub Docs"/><meta property="og:type" content="article"/><meta property="og:url" content="https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"/><meta property="og:image" content="https://github.githubassets.com/images/modules/open_graph/github-logo.png"/><meta name="next-head-count" content="27"/><link rel="preload" href="/_next/static/css/87cea936052d1d95.css" as="style"/><link rel="stylesheet" href="/_next/static/css/87cea936052d1d95.css" data-n-g=""/><link rel="preload" href="/_next/static/css/66757a3783028467.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66757a3783028467.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-ec48c0d94b7da59f.js" defer=""></script><script src="/_next/static/chunks/framework-945b357d4a851f4b.js" defer=""></script><script src="/_next/static/chunks/main-c95ae151e287e458.js" defer=""></script><script src="/_next/static/chunks/pages/_app-797fa94dba278176.js" defer=""></script><script src="/_next/static/chunks/727f57db-570e92d04a1cf153.js" defer=""></script><script src="/_next/static/chunks/4432-e0b0889138923fc7.js" defer=""></script><script src="/_next/static/chunks/6066-8d61a14f5f75720a.js" defer=""></script><script src="/_next/static/chunks/5293-274846982f5b82bb.js" defer=""></script><script src="/_next/static/chunks/2689-e7cc4d533fabe066.js" defer=""></script><script src="/_next/static/chunks/9418-89747b124934b544.js" defer=""></script><script src="/_next/static/chunks/5343-e2ac6b70d565e15c.js" defer=""></script><script src="/_next/static/chunks/pages/%5BversionId%5D/%5BproductId%5D/%5B...restPage%5D-d93d7776ab1c3347.js" defer=""></script><script src="/_next/static/Zr9yNgDb7T41Gt_68LwT6/_buildManifest.js" defer=""></script><script src="/_next/static/Zr9yNgDb7T41Gt_68LwT6/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.5">.cEhRXB{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .dmdEgz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;pointer-events:none;}/*!sc*/ .hROlum{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-width:0;}/*!sc*/ .bmseMA{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;font-weight:400;word-break:break-word;}/*!sc*/ .Ywlla{list-style:none;}/*!sc*/ .cUxMoC{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}/*!sc*/ .lmYNOb{height:20px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));margin-left:8px;font-weight:initial;}/*!sc*/ [data-variant="danger"]:hover .Box-sc-g0xbh4-0,[data-variant="danger"]:active .lmYNOb{color:var(--fgColor-default,var(--color-fg-default,#1F2328));}/*!sc*/ .gMkIpo{padding:0;margin:0;display:none;}/*!sc*/ .gMkIpo *{font-size:14px;}/*!sc*/ .enEvIH{padding:0;margin:0;display:block;}/*!sc*/ .enEvIH *{font-size:14px;}/*!sc*/ .ivpQTm{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;font-weight:600;word-break:break-word;}/*!sc*/ .eQiQea{grid-area:topper;}/*!sc*/ .ijSsTo{grid-area:intro;}/*!sc*/ .giVcWX{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;grid-area:sidebar;}/*!sc*/ .kohLxz{grid-area:content;}/*!sc*/ data-styled.g3[id="Box-sc-g0xbh4-0"]{content:"cEhRXB,dmdEgz,hROlum,bmseMA,Ywlla,cUxMoC,lmYNOb,gMkIpo,enEvIH,ivpQTm,eQiQea,ijSsTo,giVcWX,kohLxz,"}/*!sc*/ .hXCKEr{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:transparent;box-shadow:none;}/*!sc*/ .hXCKEr:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hXCKEr:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .hXCKEr:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hXCKEr[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .hXCKEr[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .hXCKEr:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .hXCKEr:active{-webkit-transition:none;transition:none;}/*!sc*/ .hXCKEr[data-inactive]{cursor:auto;}/*!sc*/ .hXCKEr:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .hXCKEr:disabled [data-component=ButtonCounter],.hXCKEr:disabled [data-component="leadingVisual"],.hXCKEr:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.hXCKEr:focus{outline:solid 1px transparent;}}/*!sc*/ .hXCKEr [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hXCKEr[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .hXCKEr[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .hXCKEr[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .hXCKEr[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hXCKEr[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .hXCKEr[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .hXCKEr[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .hXCKEr[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hXCKEr[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .hXCKEr[data-block="block"]{width:100%;}/*!sc*/ .hXCKEr[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .hXCKEr[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .hXCKEr[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .hXCKEr[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .hXCKEr [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .hXCKEr [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .hXCKEr [data-component="trailingAction"]{margin-right:-4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .hXCKEr [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hXCKEr [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .hXCKEr [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .hXCKEr:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .hXCKEr:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .hXCKEr[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .hXCKEr[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr[data-no-visuals]{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));}/*!sc*/ .hXCKEr:has([data-component="ButtonCounter"]){color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));}/*!sc*/ .hXCKEr:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .hXCKEr:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .hXCKEr{height:auto;text-align:left;}/*!sc*/ .hXCKEr span:first-child{display:inline;}/*!sc*/ .jOdgLl{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .jOdgLl:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jOdgLl:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .jOdgLl:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jOdgLl[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .jOdgLl[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .jOdgLl:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .jOdgLl:active{-webkit-transition:none;transition:none;}/*!sc*/ .jOdgLl[data-inactive]{cursor:auto;}/*!sc*/ .jOdgLl:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .jOdgLl:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.jOdgLl:focus{outline:solid 1px transparent;}}/*!sc*/ .jOdgLl [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .jOdgLl[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .jOdgLl[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .jOdgLl[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .jOdgLl[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jOdgLl[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .jOdgLl[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .jOdgLl[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .jOdgLl[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jOdgLl[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .jOdgLl[data-block="block"]{width:100%;}/*!sc*/ .jOdgLl[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .jOdgLl[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .jOdgLl[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .jOdgLl[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .jOdgLl [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .jOdgLl [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .jOdgLl [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .jOdgLl [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .jOdgLl [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .jOdgLl [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jOdgLl [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .jOdgLl [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .jOdgLl:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl [data-component="leadingVisual"],.jOdgLl [data-component="trailingVisual"],.jOdgLl [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jOdgLl[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jOdgLl[data-no-visuals]{border-top-left-radius:unset;border-bottom-left-radius:unset;}/*!sc*/ .hmWbvh{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .hmWbvh:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hmWbvh:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .hmWbvh:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hmWbvh[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .hmWbvh[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .hmWbvh:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .hmWbvh:active{-webkit-transition:none;transition:none;}/*!sc*/ .hmWbvh[data-inactive]{cursor:auto;}/*!sc*/ .hmWbvh:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .hmWbvh:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.hmWbvh:focus{outline:solid 1px transparent;}}/*!sc*/ .hmWbvh [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .hmWbvh[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .hmWbvh[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .hmWbvh[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .hmWbvh[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hmWbvh[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .hmWbvh[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .hmWbvh[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .hmWbvh[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hmWbvh[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .hmWbvh[data-block="block"]{width:100%;}/*!sc*/ .hmWbvh[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .hmWbvh[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .hmWbvh[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .hmWbvh[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .hmWbvh [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .hmWbvh [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .hmWbvh [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .hmWbvh [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .hmWbvh [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .hmWbvh [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hmWbvh [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .hmWbvh [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .hmWbvh:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh [data-component="leadingVisual"],.hmWbvh [data-component="trailingVisual"],.hmWbvh [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hmWbvh[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .lkeyoI{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .lkeyoI:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .lkeyoI:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .lkeyoI:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .lkeyoI[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .lkeyoI[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .lkeyoI:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .lkeyoI:active{-webkit-transition:none;transition:none;}/*!sc*/ .lkeyoI[data-inactive]{cursor:auto;}/*!sc*/ .lkeyoI:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .lkeyoI:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.lkeyoI:focus{outline:solid 1px transparent;}}/*!sc*/ .lkeyoI [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .lkeyoI[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .lkeyoI[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .lkeyoI[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .lkeyoI[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .lkeyoI[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .lkeyoI[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .lkeyoI[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .lkeyoI[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .lkeyoI[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .lkeyoI[data-block="block"]{width:100%;}/*!sc*/ .lkeyoI[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .lkeyoI[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .lkeyoI[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .lkeyoI[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .lkeyoI [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .lkeyoI [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .lkeyoI [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .lkeyoI [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .lkeyoI [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .lkeyoI [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .lkeyoI [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .lkeyoI [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .lkeyoI:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI [data-component="leadingVisual"],.lkeyoI [data-component="trailingVisual"],.lkeyoI [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .lkeyoI[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .lkeyoI[data-no-visuals]{display:none;}/*!sc*/ .htZXvk{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .htZXvk:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .htZXvk:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .htZXvk:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .htZXvk[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .htZXvk[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .htZXvk:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .htZXvk:active{-webkit-transition:none;transition:none;}/*!sc*/ .htZXvk[data-inactive]{cursor:auto;}/*!sc*/ .htZXvk:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .htZXvk:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.htZXvk:focus{outline:solid 1px transparent;}}/*!sc*/ .htZXvk [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .htZXvk[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .htZXvk[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .htZXvk[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .htZXvk[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .htZXvk[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .htZXvk[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .htZXvk[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .htZXvk[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .htZXvk[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .htZXvk[data-block="block"]{width:100%;}/*!sc*/ .htZXvk[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .htZXvk[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .htZXvk[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .htZXvk[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .htZXvk[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .htZXvk [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .htZXvk [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .htZXvk [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .htZXvk [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .htZXvk [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .htZXvk [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .htZXvk [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .htZXvk [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .htZXvk:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk [data-component="leadingVisual"],.htZXvk [data-component="trailingVisual"],.htZXvk [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .htZXvk[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .htZXvk[data-no-visuals]{margin-left:16px;}/*!sc*/ @media (min-width:768px){.htZXvk[data-no-visuals]{margin-left:0;}}/*!sc*/ @media (min-width:1012px){.htZXvk[data-no-visuals]{display:none;}}/*!sc*/ .jCopKa{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:transparent;box-shadow:none;}/*!sc*/ .jCopKa:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jCopKa:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .jCopKa:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jCopKa[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .jCopKa[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .jCopKa:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .jCopKa:active{-webkit-transition:none;transition:none;}/*!sc*/ .jCopKa[data-inactive]{cursor:auto;}/*!sc*/ .jCopKa:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .jCopKa:disabled [data-component=ButtonCounter],.jCopKa:disabled [data-component="leadingVisual"],.jCopKa:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.jCopKa:focus{outline:solid 1px transparent;}}/*!sc*/ .jCopKa [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jCopKa[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .jCopKa[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .jCopKa[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .jCopKa[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jCopKa[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .jCopKa[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .jCopKa[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .jCopKa[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jCopKa[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .jCopKa[data-block="block"]{width:100%;}/*!sc*/ .jCopKa[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .jCopKa[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .jCopKa[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .jCopKa[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .jCopKa[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .jCopKa [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .jCopKa [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .jCopKa [data-component="trailingAction"]{margin-right:-4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .jCopKa [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jCopKa [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .jCopKa [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .jCopKa:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .jCopKa:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .jCopKa[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .jCopKa[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa[data-no-visuals]{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));}/*!sc*/ .jCopKa:has([data-component="ButtonCounter"]){color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));}/*!sc*/ .jCopKa:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .jCopKa:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ data-styled.g4[id="types__StyledButton-sc-ws60qy-0"]{content:"hXCKEr,jOdgLl,hmWbvh,lkeyoI,htZXvk,jCopKa,"}/*!sc*/ .eiGLpS{display:none;}/*!sc*/ .eiGLpS[popover]{position:absolute;padding:0.5em 0.75em;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:auto;-webkit-clip:auto;clip:auto;white-space:normal;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff));text-align:center;word-wrap:break-word;background:var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f));border-radius:6px;border:0;opacity:0;max-width:250px;inset:auto;overflow:visible;}/*!sc*/ .eiGLpS[popover]:popover-open{display:block;}/*!sc*/ .eiGLpS[popover].\:popover-open{display:block;}/*!sc*/ @media (forced-colors:active){.eiGLpS{outline:1px solid transparent;}}/*!sc*/ .eiGLpS::after{position:absolute;display:block;right:0;left:0;height:var(--overlay-offset,0.25rem);content:'';}/*!sc*/ .eiGLpS[data-direction='n']::after,.eiGLpS[data-direction='ne']::after,.eiGLpS[data-direction='nw']::after{top:100%;}/*!sc*/ .eiGLpS[data-direction='s']::after,.eiGLpS[data-direction='se']::after,.eiGLpS[data-direction='sw']::after{bottom:100%;}/*!sc*/ .eiGLpS[data-direction='w']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;left:100%;}/*!sc*/ .eiGLpS[data-direction='e']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;right:100%;margin-left:-8px;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .eiGLpS:popover-open,.eiGLpS:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .eiGLpS.\:popover-open,.eiGLpS.\:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ data-styled.g8[id="Tooltip__StyledTooltip-sc-e45c7z-0"]{content:"eiGLpS,"}/*!sc*/ .daAEFx{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}/*!sc*/ .gzcJGA{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}/*!sc*/ data-styled.g11[id="Octicon-sc-9kayk9-0"]{content:"daAEFx,gzcJGA,"}/*!sc*/ .bebFBv{font-weight:600;font-size:32px;margin:0;font-size:14px;}/*!sc*/ @media (min-width:1012px) and (max-width:1400px){.bebFBv{margin-top:2rem;}}/*!sc*/ data-styled.g28[id="Heading__StyledHeading-sc-1c1dgg0-0"]{content:"bebFBv,"}/*!sc*/ .hgjakc{margin:0;padding-inline-start:0;padding-top:8px;padding-bottom:8px;}/*!sc*/ data-styled.g29[id="List__ListBox-sc-1x7olzq-0"]{content:"hgjakc,"}/*!sc*/ .lnYQME{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;padding-right:0;font-size:14px;padding-top:0;padding-bottom:0;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;}/*!sc*/ .lnYQME[data-loading]{cursor:default;}/*!sc*/ .lnYQME[aria-disabled],.lnYQME[data-inactive]{cursor:not-allowed;}/*!sc*/ .lnYQME[aria-disabled] [data-component="ActionList.Checkbox"],.lnYQME[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.lnYQME:focus,.lnYQME:focus-visible,.lnYQME > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .lnYQME [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .lnYQME [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .lnYQME:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .lnYQME:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.lnYQME[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .lnYQME:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.lnYQME[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ @media (hover:hover) and (pointer:fine){.lnYQME:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.lnYQME:focus-visible,.lnYQME > a.focus-visible,.lnYQME:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.lnYQME:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ .itjSOb{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;padding-right:8px;padding-top:6px;padding-bottom:6px;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;}/*!sc*/ .itjSOb[data-loading]{cursor:default;}/*!sc*/ .itjSOb[aria-disabled],.itjSOb[data-inactive]{cursor:not-allowed;}/*!sc*/ .itjSOb[aria-disabled] [data-component="ActionList.Checkbox"],.itjSOb[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.itjSOb:focus,.itjSOb:focus-visible,.itjSOb > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .itjSOb [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .itjSOb [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .itjSOb:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .itjSOb:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.itjSOb[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .itjSOb:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.itjSOb[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ @media (hover:hover) and (pointer:fine){.itjSOb:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.itjSOb:focus-visible,.itjSOb > a.focus-visible,.itjSOb:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.itjSOb:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ .kXKjOF{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:16px;padding-right:8px;font-size:12px;padding-top:6px;padding-bottom:6px;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;}/*!sc*/ .kXKjOF[data-loading]{cursor:default;}/*!sc*/ .kXKjOF[aria-disabled],.kXKjOF[data-inactive]{cursor:not-allowed;}/*!sc*/ .kXKjOF[aria-disabled] [data-component="ActionList.Checkbox"],.kXKjOF[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.kXKjOF:focus,.kXKjOF:focus-visible,.kXKjOF > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .kXKjOF [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .kXKjOF [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .kXKjOF:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .kXKjOF:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.kXKjOF[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .kXKjOF:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.kXKjOF[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ @media (hover:hover) and (pointer:fine){.kXKjOF:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.kXKjOF:focus-visible,.kXKjOF > a.focus-visible,.kXKjOF:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.kXKjOF:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ .hTSEii{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;padding-right:0;font-size:14px;padding-top:0;padding-bottom:0;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;font-weight:600;background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .hTSEii[data-loading]{cursor:default;}/*!sc*/ .hTSEii[aria-disabled],.hTSEii[data-inactive]{cursor:not-allowed;}/*!sc*/ .hTSEii[aria-disabled] [data-component="ActionList.Checkbox"],.hTSEii[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.hTSEii:focus,.hTSEii:focus-visible,.hTSEii > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .hTSEii [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .hTSEii [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .hTSEii:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .hTSEii:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.hTSEii[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .hTSEii:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.hTSEii[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ .hTSEii::after{position:absolute;top:calc(50% - 12px);left:-8px;width:4px;height:24px;content:"";background-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));border-radius:6px;}/*!sc*/ @media (hover:hover) and (pointer:fine){.hTSEii:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.hTSEii:focus-visible,.hTSEii > a.focus-visible,.hTSEii:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.hTSEii:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ data-styled.g31[id="Item__LiBox-sc-yeql7o-0"]{content:"lnYQME,itjSOb,kXKjOF,hTSEii,"}/*!sc*/ .cJbOew{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));-webkit-text-decoration:none;text-decoration:none;padding-left:8px;padding-right:8px;padding-top:6px;padding-bottom:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-radius:6px;color:inherit;}/*!sc*/ [data-a11y-link-underlines='true'] .Link__StyledLink-sc-14289xe-0[data-inline='true']{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cJbOew:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cJbOew:is(button){display:inline-block;padding:0;font-size:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;}/*!sc*/ .cJbOew:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .fuIgwR{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));-webkit-text-decoration:none;text-decoration:none;padding-left:16px;padding-right:8px;padding-top:6px;padding-bottom:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-radius:6px;color:inherit;font-size:12px;font-weight:400;}/*!sc*/ [data-a11y-link-underlines='true'] .Link__StyledLink-sc-14289xe-0[data-inline='true']{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .fuIgwR:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .fuIgwR:is(button){display:inline-block;padding:0;font-size:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;}/*!sc*/ .fuIgwR:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .dibTck{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));-webkit-text-decoration:none;text-decoration:none;padding-left:24px;padding-right:8px;padding-top:6px;padding-bottom:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-radius:6px;color:inherit;font-size:12px;font-weight:400;}/*!sc*/ [data-a11y-link-underlines='true'] .Link__StyledLink-sc-14289xe-0[data-inline='true']{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .dibTck:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .dibTck:is(button){display:inline-block;padding:0;font-size:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;}/*!sc*/ .dibTck:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ data-styled.g32[id="Link__StyledLink-sc-14289xe-0"]{content:"cJbOew,fuIgwR,dibTck,"}/*!sc*/ .cnCOhW{font-size:14px;line-height:20px;color:var(--fgColor-default,var(--color-fg-default,#1F2328));vertical-align:middle;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));border:1px solid var(--control-borderColor-rest,var(--borderColor-default,var(--color-border-default,#d0d7de)));border-radius:6px;outline:none;box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset,inset 0 1px 0 rgba(208,215,222,0.2)));display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;min-height:32px;overflow:hidden;width:100%;height:2rem;-webkit-transition:width 0.3s ease-in-out;transition:width 0.3s ease-in-out;border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none;min-width:15rem;}/*!sc*/ .cnCOhW input,.cnCOhW textarea{cursor:text;}/*!sc*/ .cnCOhW select{cursor:pointer;}/*!sc*/ .cnCOhW input::-webkit-input-placeholder,.cnCOhW textarea::-webkit-input-placeholder,.cnCOhW select::-webkit-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input::-moz-placeholder,.cnCOhW textarea::-moz-placeholder,.cnCOhW select::-moz-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input:-ms-input-placeholder,.cnCOhW textarea:-ms-input-placeholder,.cnCOhW select:-ms-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input::placeholder,.cnCOhW textarea::placeholder,.cnCOhW select::placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW:focus-within{border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .cnCOhW > textarea{padding:12px;}/*!sc*/ @media (min-width:768px){.cnCOhW{font-size:14px;}}/*!sc*/ data-styled.g34[id="TextInputWrapper__TextInputBaseWrapper-sc-1mqhpbi-0"]{content:"cnCOhW,"}/*!sc*/ .hmJNAM{background-repeat:no-repeat;background-position:right 8px center;padding-left:0;padding-right:0;width:100%;height:2rem;-webkit-transition:width 0.3s ease-in-out;transition:width 0.3s ease-in-out;border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none;min-width:15rem;}/*!sc*/ .hmJNAM > :not(:last-child){margin-right:8px;}/*!sc*/ .hmJNAM .TextInput-icon,.hmJNAM .TextInput-action{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ .hmJNAM > input,.hmJNAM > select{padding-left:12px;padding-right:12px;}/*!sc*/ data-styled.g35[id="TextInputWrapper-sc-1mqhpbi-1"]{content:"hmJNAM,"}/*!sc*/ .jvumlb{border:0;font-size:inherit;font-family:inherit;background-color:transparent;-webkit-appearance:none;color:inherit;width:100%;}/*!sc*/ .jvumlb:focus{outline:0;}/*!sc*/ data-styled.g36[id="UnstyledTextInput-sc-14ypya-0"]{content:"jvumlb,"}/*!sc*/ </style></head><body><div id="__next"><a href="#main-content" class="visually-hidden skip-button color-bg-accent-emphasis color-fg-on-emphasis">Skip to main content</a><div data-container="header" class="border-bottom d-unset color-border-muted no-print z-3 color-bg-default Header_header__frpqb"><div data-container="notifications"></div><header class="color-bg-default p-2 position-sticky top-0 z-1 border-bottom" role="banner" aria-label="Main"><div class="d-flex flex-justify-between p-2 flex-items-center flex-wrap" data-testid="desktop-header"><div tabindex="-1" class="Header_logoWithClosedSearch__zhF6Q" id="github-logo"><a rel="" class="d-flex flex-items-center color-fg-default no-underline mr-3" href="/en"><svg aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path></svg><span class="h4 text-semibold ml-2 mr-3">GitHub Docs</span></a><div class="hide-sm border-left pl-3"><div data-testid="version-picker" class=""><button type="button" aria-label="Select GitHub product version: current version is free-pro-team@latest" class="types__StyledButton-sc-ws60qy-0 hXCKEr color-fg-default width-full p-1 pl-2 pr-2" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" aria-describedby=":Ripn6:-loading-announcement" id=":Ripn6:"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 cEhRXB"><span data-component="text"><span style="white-space:pre-wrap">Version: </span><span class="f5 color-fg-muted text-normal" data-testid="field">Free, Pro, & Team</span></span></span><span data-component="trailingAction" class="Box-sc-g0xbh4-0 dmdEgz"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></div></div><div class="d-flex flex-items-center"><div class="Header_searchContainerWithClosedSearch__h372b mr-3"><div data-testid="search"><div class="position-relative z-2"><form role="search" class="width-full d-flex"><meta name="viewport" content="width=device-width initial-scale=1"/><label class="text-normal width-full"><span class="visually-hidden" aria-describedby="Enter a search term to find it in the GitHub Docs.">Search GitHub Docs</span><span class="TextInputWrapper__TextInputBaseWrapper-sc-1mqhpbi-0 TextInputWrapper-sc-1mqhpbi-1 cnCOhW hmJNAM TextInput-wrapper" aria-busy="false"><input type="search" aria-required="true" data-testid="site-search-input" placeholder="Search GitHub Docs" autoComplete="off" autoCorrect="off" autoCapitalize="off" spellcheck="false" maxLength="512" aria-label="Search GitHub Docs" aria-describedby="Enter a search term to find it in the GitHub Docs." data-component="input" class="UnstyledTextInput-sc-14ypya-0 jvumlb" value=""/></span></label><button data-component="IconButton" type="submit" data-loading="false" data-no-visuals="true" aria-describedby=":Rucpn6:-loading-announcement" aria-labelledby=":R6cpn6:" class="types__StyledButton-sc-ws60qy-0 jOdgLl"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R6cpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Search</span></form></div></div></div><div class="d-none d-lg-flex flex-items-center"><div data-testid="language-picker" class="d-flex"><button data-component="IconButton" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" data-no-visuals="true" aria-describedby=":Rkpn6:-loading-announcement" aria-labelledby=":Rukpn6:" id=":Rkpn6:" class="types__StyledButton-sc-ws60qy-0 hmWbvh"><svg aria-hidden="true" focusable="false" class="octicon octicon-globe" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rukpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Select language: current language is English</span></div></div><button data-component="IconButton" type="button" class="types__StyledButton-sc-ws60qy-0 hmWbvh hide-lg hide-xl d-flex flex-items-center" data-testid="mobile-search-button" aria-expanded="false" data-loading="false" data-no-visuals="true" aria-describedby=":R74pn6:-loading-announcement" aria-labelledby=":R14pn6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R14pn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Search Bar</span><button data-component="IconButton" type="button" class="types__StyledButton-sc-ws60qy-0 lkeyoI px-3" data-testid="mobile-search-button" aria-expanded="false" data-loading="false" data-no-visuals="true" aria-describedby=":R7cpn6:-loading-announcement" aria-labelledby=":R1cpn6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-x" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R1cpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Close Search Bar</span><div><button data-component="IconButton" type="button" data-testid="mobile-menu" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" data-no-visuals="true" aria-describedby=":R1kpn6:-loading-announcement" aria-labelledby=":Rvkpn6:" id=":R1kpn6:" class="types__StyledButton-sc-ws60qy-0 htZXvk"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rvkpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Menu</span></div></div></div><div class="d-flex flex-items-center d-xxl-none mt-2" data-testid="header-subnav"><div class="mr-2" data-testid="header-subnav-hamburger"><button data-component="IconButton" type="button" data-testid="sidebar-hamburger" class="types__StyledButton-sc-ws60qy-0 jCopKa color-fg-muted" data-loading="false" data-no-visuals="true" aria-describedby=":R3b9n6:-loading-announcement" aria-labelledby=":Rb9n6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-three-bars" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rb9n6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Sidebar</span></div><div class="mr-auto width-full" data-search="breadcrumbs"><nav data-testid="breadcrumbs-header" class="f5 breadcrumbs Breadcrumbs_breadcrumbs__xAC4i" aria-label="Breadcrumb" data-container="breadcrumbs"><ul><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Apps" class="Link--primary mr-2 color-fg-muted" href="/en/apps">Apps</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Creating GitHub Apps" class="Link--primary mr-2 color-fg-muted" href="/en/apps/creating-github-apps">Creating GitHub Apps</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Authenticate with a GitHub App" class="Link--primary mr-2 color-fg-muted" href="/en/apps/creating-github-apps/authenticating-with-a-github-app">Authenticate with a GitHub App</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Refresh user access tokens" class="Link--primary mr-2 color-fg-muted" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens">Refresh user access tokens</a></li></ul></nav></div></div></header></div><div class="d-lg-flex"><div data-container="nav" class="position-sticky d-none border-right d-xxl-block" style="width:326px;height:calc(100vh - 65px);top:65px"><nav aria-labelledby="allproducts-menu"><div class="d-none px-4 pb-3 border-bottom d-xxl-block"><div class="mt-3"><a rel="" class="f6 pl-2 pr-5 ml-n1 pb-1 Link--primary color-fg-default" href="/en"><svg aria-hidden="true" focusable="false" class="mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg>Home</a></div><div class="mt-3" id="allproducts-menu"><a rel="" data-testid="sidebar-product-xl" class="d-block pl-1 mb-2 h3 color-fg-default no-underline _product-title" href="/en/apps">Apps</a></div></div><div class="border-right d-none d-xxl-block bg-primary overflow-y-auto flex-shrink-0" style="width:326px;height:calc(100vh - 175px);padding-bottom:185px"><div data-testid="sidebar" style="overflow-y:auto" class="pt-3"><div class="ml-3" data-testid="product-sidebar"><nav aria-label="Product sidebar" class="NavList__NavBox-sc-1c8ygf7-0"><ul class="List__ListBox-sc-1x7olzq-0 hgjakc"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R3b6n6:--label " id=":R3b6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 cJbOew" href="/en/apps/overview"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R3b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Overview</span></div></a></li><li aria-labelledby=":R5b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R5b6n6:--label " id=":R5b6n6:" aria-expanded="false" aria-controls=":R5b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R5b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Using GitHub Apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R5b6n6H1:" aria-labelledby=":R5b6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6lb6n6:--label " id=":R6lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/about-using-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About using apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ralb6n6:--label " id=":Ralb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-personal-account"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ralb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install from Marketplace for user</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Relb6n6:--label " id=":Relb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Relb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install from Marketplace for org</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rilb6n6:--label " id=":Rilb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/installing-a-github-app-from-a-third-party"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rilb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install from third party</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmlb6n6:--label " id=":Rmlb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/installing-your-own-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmlb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install your own app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqlb6n6:--label " id=":Rqlb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/requesting-a-github-app-from-your-organization-owner"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqlb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Request for org</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rulb6n6:--label " id=":Rulb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/authorizing-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rulb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authorize</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12lb6n6:--label " id=":R12lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Approve new permissions</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R16lb6n6:--label " id=":R16lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R16lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Review your authorizations</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1alb6n6:--label " id=":R1alb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1alb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Review installations</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1elb6n6:--label " id=":R1elb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/using-github-apps/internal-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1elb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Internal apps</span></div></a></li></ul></div></li><li aria-labelledby=":R7b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R7b6n6:--label " id=":R7b6n6:" aria-expanded="true" aria-controls=":R7b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R7b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Creating GitHub Apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 gzcJGA" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R7b6n6H1:" aria-labelledby=":R7b6n6:" class="Box-sc-g0xbh4-0 enEvIH"><li aria-labelledby=":R6nb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R6nb6n6:--label " id=":R6nb6n6:" aria-expanded="false" aria-controls=":R6nb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R6nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About creating GitHub Apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R6nb6n6H1:" aria-labelledby=":R6nb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rd6nb6n6:--label " id=":Rd6nb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rd6nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About creating apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rl6nb6n6:--label " id=":Rl6nb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rl6nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">GitHub App versus other options</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rt6nb6n6:--label " id=":Rt6nb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rt6nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Best practices</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R156nb6n6:--label " id=":R156nb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/about-creating-github-apps/migrating-oauth-apps-to-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R156nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Migrate from OAuth apps</span></div></a></li></ul></div></li><li aria-labelledby=":Ranb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Ranb6n6:--label " id=":Ranb6n6:" aria-expanded="false" aria-controls=":Ranb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Ranb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Registering a GitHub App</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Ranb6n6H1:" aria-labelledby=":Ranb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdanb6n6:--label " id=":Rdanb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdanb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Register a GitHub App</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlanb6n6:--label " id=":Rlanb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/about-the-user-authorization-callback-url"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlanb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Callback URL</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtanb6n6:--label " id=":Rtanb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/about-the-setup-url"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtanb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Setup URL</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15anb6n6:--label " id=":R15anb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15anb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Permissions</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1danb6n6:--label " id=":R1danb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1danb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Webhooks</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1lanb6n6:--label " id=":R1lanb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/making-a-github-app-public-or-private"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1lanb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Visibility</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1tanb6n6:--label " id=":R1tanb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/rate-limits-for-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1tanb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Rate limits</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R25anb6n6:--label " id=":R25anb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/registering-a-github-app/creating-a-custom-badge-for-your-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R25anb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Custom badge</span></div></a></li></ul></div></li><li aria-labelledby=":Renb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Renb6n6:--label " id=":Renb6n6:" aria-expanded="true" aria-controls=":Renb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Renb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate with a GitHub App</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 gzcJGA" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Renb6n6H1:" aria-labelledby=":Renb6n6:" class="Box-sc-g0xbh4-0 enEvIH"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdenb6n6:--label " id=":Rdenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About authentication</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlenb6n6:--label " id=":Rlenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate as an app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtenb6n6:--label " id=":Rtenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate as an installation</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15enb6n6:--label " id=":R15enb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15enb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate on behalf of users</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1denb6n6:--label " id=":R1denb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1denb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Manage private keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1lenb6n6:--label " id=":R1lenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1lenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Generate a JWT</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1tenb6n6:--label " id=":R1tenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-an-installation-access-token-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1tenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Generate an installation access token</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R25enb6n6:--label " id=":R25enb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R25enb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Generate a user access token</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 hTSEii"><a sx="[object Object]" tabindex="0" aria-labelledby=":R2denb6n6:--label " id=":R2denb6n6:" aria-current="page" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2denb6n6:--label" class="Box-sc-g0xbh4-0 ivpQTm">Refresh user access tokens</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R2lenb6n6:--label " id=":R2lenb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2lenb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate in Actions workflow</span></div></a></li></ul></div></li><li aria-labelledby=":Rinb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rinb6n6:--label " id=":Rinb6n6:" aria-expanded="false" aria-controls=":Rinb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rinb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Writing code for a GitHub App</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rinb6n6H1:" aria-labelledby=":Rinb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdinb6n6:--label " id=":Rdinb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/about-writing-code-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdinb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About writing GitHub App code</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlinb6n6:--label " id=":Rlinb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/quickstart"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlinb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Quickstart</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtinb6n6:--label " id=":Rtinb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtinb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Respond to webhooks</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15inb6n6:--label " id=":R15inb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-login-with-github-button-with-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15inb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Build a "Login" button</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1dinb6n6:--label " id=":R1dinb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-cli-with-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1dinb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Build a CLI</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1linb6n6:--label " id=":R1linb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1linb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Build CI checks</span></div></a></li></ul></div></li></ul></div></li><li aria-labelledby=":R9b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R9b6n6:--label " id=":R9b6n6:" aria-expanded="false" aria-controls=":R9b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R9b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Sharing GitHub Apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R9b6n6H1:" aria-labelledby=":R9b6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6pb6n6:--label " id=":R6pb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/sharing-github-apps/sharing-your-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6pb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Share your app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rapb6n6:--label " id=":Rapb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rapb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Share with GHES</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Repb6n6:--label " id=":Repb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/sharing-github-apps/registering-a-github-app-from-a-manifest"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Repb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">App manifest</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ripb6n6:--label " id=":Ripb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/sharing-github-apps/registering-a-github-app-using-url-parameters"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ripb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">App query parameters</span></div></a></li></ul></div></li><li aria-labelledby=":Rbb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rbb6n6:--label " id=":Rbb6n6:" aria-expanded="false" aria-controls=":Rbb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rbb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Maintaining GitHub Apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rbb6n6H1:" aria-labelledby=":Rbb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6rb6n6:--label " id=":R6rb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/modifying-a-github-app-registration"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6rb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Modify app settings</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rarb6n6:--label " id=":Rarb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/activating-optional-features-for-github-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rarb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Activate optional features</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rerb6n6:--label " id=":Rerb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/about-github-app-managers"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rerb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">GitHub App managers</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rirb6n6:--label " id=":Rirb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/managing-allowed-ip-addresses-for-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rirb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Manage allowed IP addresses</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmrb6n6:--label " id=":Rmrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/suspending-a-github-app-installation"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Suspend an installation</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqrb6n6:--label " id=":Rqrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/transferring-ownership-of-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Transfer ownership</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rurb6n6:--label " id=":Rurb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/apps/maintaining-github-apps/deleting-a-github-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rurb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Delete your app</span></div></a></li></ul></div></li><li aria-labelledby=":Rdb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rdb6n6:--label " id=":Rdb6n6:" aria-expanded="false" aria-controls=":Rdb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rdb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">GitHub Marketplace</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rdb6n6H1:" aria-labelledby=":Rdb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li aria-labelledby=":R6tb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R6tb6n6:--label " id=":R6tb6n6:" aria-expanded="false" aria-controls=":R6tb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R6tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Overview</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R6tb6n6H1:" aria-labelledby=":R6tb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rd6tb6n6:--label " id=":Rd6tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rd6tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About GitHub Marketplace for apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rl6tb6n6:--label " id=":Rl6tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/github-marketplace-overview/about-marketplace-badges"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rl6tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About marketplace badges</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rt6tb6n6:--label " id=":Rt6tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/github-marketplace-overview/applying-for-publisher-verification-for-your-organization"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rt6tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Publisher verification</span></div></a></li></ul></div></li><li aria-labelledby=":Ratb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Ratb6n6:--label " id=":Ratb6n6:" aria-expanded="false" aria-controls=":Ratb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Ratb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Create Marketplace apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Ratb6n6H1:" aria-labelledby=":Ratb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdatb6n6:--label " id=":Rdatb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdatb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Listing requirements</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlatb6n6:--label " id=":Rlatb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps-on-github-marketplace"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlatb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Security best practice</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtatb6n6:--label " id=":Rtatb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/creating-apps-for-github-marketplace/customer-experience-best-practices-for-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtatb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Customer experience best practice</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15atb6n6:--label " id=":R15atb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15atb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">View listing metrics</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1datb6n6:--label " id=":R1datb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/creating-apps-for-github-marketplace/viewing-transactions-for-your-listing"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1datb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">View listing transactions</span></div></a></li></ul></div></li><li aria-labelledby=":Retb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Retb6n6:--label " id=":Retb6n6:" aria-expanded="false" aria-controls=":Retb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Retb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Marketplace API usage</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Retb6n6H1:" aria-labelledby=":Retb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdetb6n6:--label " id=":Rdetb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdetb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">REST API</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rletb6n6:--label " id=":Rletb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rletb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Webhook events</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtetb6n6:--label " id=":Rtetb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtetb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Testing your app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15etb6n6:--label " id=":R15etb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15etb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">New purchases & free trials</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1detb6n6:--label " id=":R1detb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1detb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Handling plan changes</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1letb6n6:--label " id=":R1letb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1letb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Plan cancellations</span></div></a></li></ul></div></li><li aria-labelledby=":Ritb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Ritb6n6:--label " id=":Ritb6n6:" aria-expanded="false" aria-controls=":Ritb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Ritb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">List an app on the Marketplace</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Ritb6n6H1:" aria-labelledby=":Ritb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rditb6n6:--label " id=":Rditb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rditb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Draft an app listing</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlitb6n6:--label " id=":Rlitb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlitb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Write listing descriptions</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtitb6n6:--label " id=":Rtitb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtitb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Set listing pricing plans</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R15itb6n6:--label " id=":R15itb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R15itb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Webhooks for plan changes</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1ditb6n6:--label " id=":R1ditb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/submitting-your-listing-for-publication"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1ditb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Submit your listing</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1litb6n6:--label " id=":R1litb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/listing-an-app-on-github-marketplace/deleting-your-app-listing-from-github-marketplace"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1litb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Delete your listing</span></div></a></li></ul></div></li><li aria-labelledby=":Rmtb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rmtb6n6:--label " id=":Rmtb6n6:" aria-expanded="false" aria-controls=":Rmtb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rmtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Sell apps on the Marketplace</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rmtb6n6H1:" aria-labelledby=":Rmtb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rdmtb6n6:--label " id=":Rdmtb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rdmtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Pricing plans for apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rlmtb6n6:--label " id=":Rlmtb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/selling-your-app-on-github-marketplace/billing-customers"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rlmtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Billing customers</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rtmtb6n6:--label " id=":Rtmtb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rtmtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Receive payment</span></div></a></li></ul></div></li></ul></div></li><li aria-labelledby=":Rfb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rfb6n6:--label " id=":Rfb6n6:" aria-expanded="false" aria-controls=":Rfb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rfb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">OAuth apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rfb6n6H1:" aria-labelledby=":Rfb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li aria-labelledby=":R6vb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R6vb6n6:--label " id=":R6vb6n6:" aria-expanded="false" aria-controls=":R6vb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R6vb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Using OAuth apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R6vb6n6H1:" aria-labelledby=":R6vb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6mvb6n6:--label " id=":R6mvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/installing-an-oauth-app-in-your-personal-account"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6mvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install app personal account</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ramvb6n6:--label " id=":Ramvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/installing-an-oauth-app-in-your-organization"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ramvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Install app organization</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Remvb6n6:--label " id=":Remvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/authorizing-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Remvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authorizing OAuth apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rimvb6n6:--label " id=":Rimvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rimvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Review OAuth apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmmvb6n6:--label " id=":Rmmvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/connecting-with-third-party-applications"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmmvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Third-party applications</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqmvb6n6:--label " id=":Rqmvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/using-oauth-apps/internal-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqmvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Internal apps</span></div></a></li></ul></div></li><li aria-labelledby=":Ravb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Ravb6n6:--label " id=":Ravb6n6:" aria-expanded="false" aria-controls=":Ravb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Ravb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Building OAuth apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Ravb6n6H1:" aria-labelledby=":Ravb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6qvb6n6:--label " id=":R6qvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/differences-between-github-apps-and-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6qvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">GitHub Apps & OAuth apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Raqvb6n6:--label " id=":Raqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/rate-limits-for-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Raqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Rate limits</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Reqvb6n6:--label " id=":Reqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Reqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Creating an OAuth app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Riqvb6n6:--label " id=":Riqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/authenticating-to-the-rest-api-with-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Riqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate with an OAuth app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmqvb6n6:--label " id=":Rmqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authorizing OAuth apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqqvb6n6:--label " id=":Rqqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Scopes for OAuth apps</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ruqvb6n6:--label " id=":Ruqvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/creating-a-custom-badge-for-your-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ruqvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Create custom badges</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12qvb6n6:--label " id=":R12qvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/building-oauth-apps/best-practices-for-creating-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12qvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Best practices</span></div></a></li></ul></div></li><li aria-labelledby=":Revb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Revb6n6:--label " id=":Revb6n6:" aria-expanded="false" aria-controls=":Revb6n6H1:" class="Item__LiBox-sc-yeql7o-0 kXKjOF"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Revb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Maintaining OAuth apps</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Revb6n6H1:" aria-labelledby=":Revb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6uvb6n6:--label " id=":R6uvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/modifying-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6uvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Modifying an OAuth app</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rauvb6n6:--label " id=":Rauvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/activating-optional-features-for-oauth-apps"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rauvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Activate optional features</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Reuvb6n6:--label " id=":Reuvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/transferring-ownership-of-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Reuvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Transfer ownership</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Riuvb6n6:--label " id=":Riuvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-authorization-request-errors"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Riuvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Troubleshoot authorization</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmuvb6n6:--label " id=":Rmuvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmuvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Troubleshoot token request</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rquvb6n6:--label " id=":Rquvb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 dibTck" href="/en/apps/oauth-apps/maintaining-oauth-apps/deleting-an-oauth-app"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rquvb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Deleting an OAuth app</span></div></a></li></ul></div></li></ul></div></li></ul></nav></div></div></div></nav></div><div class="flex-column flex-1 min-width-0"><main id="main-content" style="scroll-margin-top:5rem"><div class="container-xl px-3 px-md-6 my-4"><div class="d-none d-xxl-block mt-3 mr-auto width-full"><nav data-testid="breadcrumbs-in-article" class="f5 breadcrumbs Breadcrumbs_breadcrumbs__xAC4i" aria-label="Breadcrumb" data-container="breadcrumbs"><ul><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Apps" class="Link--primary mr-2 color-fg-muted" href="/en/apps">Apps</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Creating GitHub Apps" class="Link--primary mr-2 color-fg-muted" href="/en/apps/creating-github-apps">Creating GitHub Apps</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Authenticate with a GitHub App" class="Link--primary mr-2 color-fg-muted" href="/en/apps/creating-github-apps/authenticating-with-a-github-app">Authenticate with a GitHub App</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Refresh user access tokens" class="Link--primary mr-2 color-fg-muted d-none" href="/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens">Refresh user access tokens</a></li></ul></nav></div><div class="ArticleGridLayout_containerBox__lLLio"><div class="Box-sc-g0xbh4-0 eQiQea"><div class="d-flex flex-items-baseline flex-justify-between" data-container="title"><h1 id="title-h1" class="border-bottom-0">Refreshing user access tokens</h1></div></div><div id="article-intro" class="Box-sc-g0xbh4-0 ijSsTo f4 pb-4"><div class="f2 color-fg-muted mb-3 Lead_container__m3L5f _page-intro" data-container="lead" data-testid="lead" data-search="lead"><p>To enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire.</p></div></div><div data-container="toc" class="Box-sc-g0xbh4-0 giVcWX ArticleGridLayout_sidebarBox__Cj_03 border-bottom border-lg-0 pb-4 mb-5 pb-xl-0 mb-xl-0"><h2 id="in-this-article" class="Heading__StyledHeading-sc-1c1dgg0-0 bebFBv mb-1 ml-3" aria-label="In this article">In this article</h2><nav data-testid="minitoc" class="NavList__NavBox-sc-1c8ygf7-0 Minitocs_miniToc__NaGol my-2" aria-labelledby="in-this-article"><ul class="List__ListBox-sc-1x7olzq-0 hgjakc"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R1dkteqn6:--label " id=":R1dkteqn6:" aria-current="false" href="#about-user-access-tokens-that-expire" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1dkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">About user access tokens that expire</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R1lkteqn6:--label " id=":R1lkteqn6:" aria-current="false" href="#configuring-your-app-to-use-user-access-tokens-that-expire" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1lkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Configuring your app to use user access tokens that expire</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R1tkteqn6:--label " id=":R1tkteqn6:" aria-current="false" href="#refreshing-a-user-access-token-with-a-refresh-token" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1tkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Refreshing a user access token with a refresh token</span></div></a></li></ul></nav></div><div data-container="article" data-search="article-body" class="Box-sc-g0xbh4-0 kohLxz"><div id="article-contents"><div class="MarkdownContent_markdownBody__v5MYy markdown-body"><h2 id="about-user-access-tokens-that-expire" tabindex="-1"><a class="heading-link" href="#about-user-access-tokens-that-expire">About user access tokens that expire<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <div class="ghd-alert ghd-alert-accent"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p> <p> User access tokens that expire are currently an optional feature and are subject to change. For more information, see "<a href="https://developer.github.com/changes/2020-04-30-expiring-user-to-server-access-tokens-for-github-apps">Expiring user-to-server access tokens for GitHub Apps</a>."</p> </div> <p>To enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire. If your app uses user access tokens that expire, then you will receive a refresh token when you generate a user access token. The user access token expires after eight hours, and the refresh token expires after six months. For more information, see "<a href="/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app" _originalHref="/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app">Generating a user access token for a GitHub App</a>."</p> <p>You can use the refresh token to generate a new user access token and a new refresh token. Once you use a refresh token, that refresh token and the old user access token will no longer work.</p> <p>If your refresh token expires before you use it, you can regenerate a user access token and refresh token by sending users through the web application flow or device flow. For more information, see "<a href="/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app" _originalHref="/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app">Generating a user access token for a GitHub App</a>."</p> <h2 id="configuring-your-app-to-use-user-access-tokens-that-expire" tabindex="-1"><a class="heading-link" href="#configuring-your-app-to-use-user-access-tokens-that-expire">Configuring your app to use user access tokens that expire<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>When you create your app, expiration of user access tokens is enabled unless you opt out. For more information, see "<a href="/en/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app" _originalHref="/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app">Registering a GitHub App</a>." You can also configure this setting after your app has been created.</p> <ol> <li> <p>In the upper-right corner of any page on GitHub, click your profile photo.</p> </li> <li> <p>Navigate to your account settings.</p> <ul> <li>For an app owned by a personal account, click <strong>Settings</strong>.</li> <li>For an app owned by an organization: <ol> <li>Click <strong>Your organizations</strong>.</li> <li>To the right of the organization, click <strong>Settings</strong>.</li> </ol> </li> </ul> </li> <li> <p>In the left sidebar, click <strong><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-hidden="true"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Developer settings</strong>.</p> </li> <li> <p>In the left sidebar, click <strong>GitHub Apps</strong>.</p> </li> <li> <p>Next to the GitHub App that you want to modify, click <strong>Edit</strong>.</p> </li> <li> <p>In the GitHub Apps settings sidebar, click <strong>Optional Features</strong>.</p> </li> <li> <p>Next to "User-to-server token expiration", click <strong>Opt-in</strong> or <strong>Opt-out</strong>. This setting may take a couple of seconds to apply.</p> <p>GitHub recommends that you opt in to this feature for improved security.</p> </li> </ol> <p>If you opt into user access tokens that expire after you have already generated user access tokens, the previously generated user access tokens will not expire. You can delete these tokens by using the <code>DELETE /applications/CLIENT_ID/token</code> endpoint. For more information, see "<a href="/en/rest/apps/oauth-applications#delete-an-app-token" _originalHref="/rest/apps/oauth-applications#delete-an-app-token">REST API endpoints for OAuth authorizations</a>."</p> <h2 id="refreshing-a-user-access-token-with-a-refresh-token" tabindex="-1"><a class="heading-link" href="#refreshing-a-user-access-token-with-a-refresh-token">Refreshing a user access token with a refresh token<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <ol> <li> <p>Make a <code>POST</code> request to this URL, along with the following query parameters: <code>https://github.com/login/oauth/access_token</code></p> <table><thead><tr><th scope="col">Query parameter</th><th scope="col">Type</th><th scope="col">Description</th></tr></thead><tbody><tr><td><code>client_id</code></td><td><code>string</code></td><td><strong>Required.</strong> The client ID for your GitHub App. The client ID is different from the app ID. You can find the client ID on the settings page for your app.</td></tr><tr><td><code>client_secret</code></td><td><code>string</code></td><td><strong>Required</strong> unless the user access token was generated using the device flow. The client secret for your GitHub App.</td></tr><tr><td><code>grant_type</code></td><td><code>string</code></td><td><strong>Required.</strong> The value must be "refresh_token".</td></tr><tr><td><code>refresh_token</code></td><td><code>string</code></td><td><strong>Required.</strong> The refresh token that you received when you generated a user access token.</td></tr></tbody></table> </li> <li> <p>GitHub will give a response that includes the following parameters:</p> <table><thead><tr><th scope="col">Response parameter</th><th scope="col">Type</th><th scope="col">Description</th></tr></thead><tbody><tr><td><code>access_token</code></td><td><code>string</code></td><td>The user access token. The token starts with <code>ghu_</code>.</td></tr><tr><td><code>expires_in</code></td><td><code>integer</code></td><td>The number of seconds until <code>access_token</code> expires. If you disabled expiration of user access tokens, this parameter will be omitted. The value will always be <code>28800</code> (8 hours).</td></tr><tr><td><code>refresh_token</code></td><td><code>string</code></td><td>The refresh token. If you disabled expiration of user access tokens, this parameter will be omitted. The token starts with <code>ghr_</code>.</td></tr><tr><td><code>refresh_token_expires_in</code></td><td><code>integer</code></td><td>The number of seconds until <code>refresh_token</code> expires. If you disabled expiration of user access tokens, this parameter will be omitted. The value will always be <code>15897600</code> (6 months).</td></tr><tr><td><code>scope</code></td><td><code>string</code></td><td>The scopes that the token has. This value will always be an empty string. Unlike a traditional OAuth token, the user access token is limited to the permissions that both your app and the user have.</td></tr><tr><td><code>token_type</code></td><td><code>string</code></td><td>The type of token. The value will always be <code>bearer</code>.</td></tr></tbody></table> </li> </ol></div></div></div></div></div></main><footer data-container="footer"><section class="container-xl mt-lg-8 mt-6 px-3 px-md-6 no-print mx-auto"><h2 class="f3">Help and support</h2><div class="container-xl mx-auto py-6 py-lg-6 clearfix border-top border-color-secondary"><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-3"><form class="f5" data-testid="survey-form" aria-live="polite"><h3 id="survey-title" class="f4 mb-3">Did you find what you needed?</h3><input type="text" class="d-none" name="survey-token" value=""/><div class="mb-2" role="radiogroup" aria-labelledby="survey-title"><input class="Survey_visuallyHidden__Xh_nl Survey_customRadio__aNqUl" id="survey-yes" type="radio" name="survey-vote" aria-label="Yes" value="Y"/><label class="btn mr-1" for="survey-yes"><svg aria-hidden="true" focusable="false" class="color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8.834.066c.763.087 1.5.295 2.01.884.505.581.656 1.378.656 2.3 0 .467-.087 1.119-.157 1.637L11.328 5h1.422c.603 0 1.174.085 1.668.333.508.254.911.679 1.137 1.2.453.998.438 2.447.188 4.316l-.04.306c-.105.79-.195 1.473-.313 2.033-.131.63-.315 1.209-.668 1.672C13.97 15.847 12.706 16 11 16c-1.848 0-3.234-.333-4.388-.653-.165-.045-.323-.09-.475-.133-.658-.186-1.2-.34-1.725-.415A1.75 1.75 0 0 1 2.75 16h-1A1.75 1.75 0 0 1 0 14.25v-7.5C0 5.784.784 5 1.75 5h1a1.75 1.75 0 0 1 1.514.872c.258-.105.59-.268.918-.508C5.853 4.874 6.5 4.079 6.5 2.75v-.5c0-1.202.994-2.337 2.334-2.184ZM4.5 13.3c.705.088 1.39.284 2.072.478l.441.125c1.096.305 2.334.598 3.987.598 1.794 0 2.28-.223 2.528-.549.147-.193.276-.505.394-1.07.105-.502.188-1.124.295-1.93l.04-.3c.25-1.882.189-2.933-.068-3.497a.921.921 0 0 0-.442-.48c-.208-.104-.52-.174-.997-.174H11c-.686 0-1.295-.577-1.206-1.336.023-.192.05-.39.076-.586.065-.488.13-.97.13-1.328 0-.809-.144-1.15-.288-1.316-.137-.158-.402-.304-1.048-.378C8.357 1.521 8 1.793 8 2.25v.5c0 1.922-.978 3.128-1.933 3.825a5.831 5.831 0 0 1-1.567.81ZM2.75 6.5h-1a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h1a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg> <!-- -->Yes</label><input class="Survey_visuallyHidden__Xh_nl Survey_customRadio__aNqUl" id="survey-no" type="radio" name="survey-vote" aria-label="No" value="N"/><label class="btn" for="survey-no"><svg aria-hidden="true" focusable="false" class="color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.083 15.986c-.763-.087-1.499-.295-2.011-.884-.504-.581-.655-1.378-.655-2.299 0-.468.087-1.12.157-1.638l.015-.112H3.167c-.603 0-1.174-.086-1.669-.334a2.415 2.415 0 0 1-1.136-1.2c-.454-.998-.438-2.447-.188-4.316l.04-.306C.32 4.108.41 3.424.526 2.864c.132-.63.316-1.209.669-1.672C1.947.205 3.211.053 4.917.053c1.848 0 3.234.332 4.388.652l.474.133c.658.187 1.201.341 1.726.415a1.75 1.75 0 0 1 1.662-1.2h1c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-1a1.75 1.75 0 0 1-1.514-.872c-.259.105-.59.268-.919.508-.671.491-1.317 1.285-1.317 2.614v.5c0 1.201-.994 2.336-2.334 2.183Zm4.334-13.232c-.706-.089-1.39-.284-2.072-.479l-.441-.125c-1.096-.304-2.335-.597-3.987-.597-1.794 0-2.28.222-2.529.548-.147.193-.275.505-.393 1.07-.105.502-.188 1.124-.295 1.93l-.04.3c-.25 1.882-.19 2.933.067 3.497a.923.923 0 0 0 .443.48c.208.104.52.175.997.175h1.75c.685 0 1.295.577 1.205 1.335-.022.192-.049.39-.075.586-.066.488-.13.97-.13 1.329 0 .808.144 1.15.288 1.316.137.157.401.303 1.048.377.307.035.664-.237.664-.693v-.5c0-1.922.978-3.127 1.932-3.825a5.878 5.878 0 0 1 1.568-.809Zm1.75 6.798h1a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-1a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25Z"></path></svg> <!-- -->No</label></div><a rel="" class="f6 text-underline" target="_blank" href="/en/site-policy/privacy-policies/github-privacy-statement">Privacy policy</a></form></div><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-4 offset-xl-1"><div class="f5 contribution"><h3 class="f4 mb-3">Help us make these docs great!</h3><p class="max-w-xs color-fg-muted mb-3">All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.</p><a class="btn" href="https://github.com/github/docs/blob/main/content/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens.md"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>Make a contribution</a><p class="color-fg-muted f6 mt-2"><a class="text-underline" href="/contributing" target="_blank" rel="noopener">Learn how to contribute</a></p></div></div><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-3 offset-xl-1"><div><h3 class="mb-3 f4">Still need help?</h3><div class="mb-2"><a id="ask-community" href="https://github.com/orgs/community/discussions" class="text-underline"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path></svg>Ask the GitHub community</a></div><div><a id="support" href="https://support.github.com" class="text-underline"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Contact support</a></div></div></div></div></section><section class="container-xl px-3 mt-6 pb-8 px-md-6 color-fg-muted"><h2 class="f4 mb-2 col-12">Legal</h2><ul class="d-flex flex-wrap list-style-none"><li class="mr-3">© <!-- -->2024<!-- --> GitHub, Inc.</li><li class="mr-3"><a class="text-underline" href="/en/site-policy/github-terms/github-terms-of-service">Terms</a></li><li class="mr-3"><a class="text-underline" href="/en/site-policy/privacy-policies/github-privacy-statement">Privacy</a></li><li class="mr-3"><a class="text-underline" href="https://www.githubstatus.com/">Status</a></li><li class="mr-3"><a class="text-underline" href="https://github.com/pricing">Pricing</a></li><li class="mr-3"><a class="text-underline" href="https://services.github.com">Expert services</a></li><li class="mr-3"><a class="text-underline" href="https://github.blog">Blog</a></li></ul></section><div role="tooltip" class="position-fixed bottom-0 mb-4 right-0 mr-4 z-1 ScrollButton_transition200__rLxBo ScrollButton_opacity0__vjKQD"><button class="ghd-scroll-to-top tooltipped tooltipped-n tooltipped-no-delay btn circle border-1 d-flex flex-items-center flex-justify-center ScrollButton_customFocus__L3FsX" style="width:40px;height:40px" aria-label="Scroll to top"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M3.22 10.53a.749.749 0 0 1 0-1.06l4.25-4.25a.749.749 0 0 1 1.06 0l4.25 4.25a.749.749 0 1 1-1.06 1.06L8 6.811 4.28 10.53a.749.749 0 0 1-1.06 0Z"></path></svg></button></div></footer></div></div><script type="application/json" id="__PRIMER_DATA_:R16:__">{"resolvedServerColorMode":"day"}</script></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"mainContext":{"breadcrumbs":[{"href":"/en/apps","title":"Apps"},{"href":"/en/apps/creating-github-apps","title":"Creating GitHub Apps"},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app","title":"Authenticate with a GitHub App"},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens","title":"Refresh user access tokens"}],"communityRedirect":{},"currentProduct":{"id":"apps","name":"Apps","href":"/apps","dir":"content/apps","toc":"content/apps/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-cloud@latest","enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"]},"currentProductName":"Apps","isHomepageVersion":false,"error":"","data":{"ui":{"alerts":{"NOTE":"Note","IMPORTANT":"Important","WARNING":"Warning","TIP":"Tip","CAUTION":"Caution"},"header":{"github_docs":"GitHub Docs","contact":"Contact","notices":{"release_candidate":" is currently available as a \u003ca href=\"/admin/overview/about-upgrades-to-new-releases\"\u003erelease candidate\u003c/a\u003e.","early_access":"📣 Please \u003cb\u003edo not share\u003c/b\u003e this URL publicly. This page contains content about a private preview feature.","release_notes_use_latest":"Please use the latest release for the latest security, performance, and bug fixes.","ghes_release_notes_upgrade_patch_only":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_release_only":"📣 This is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_patch_and_release":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of this release series, and this is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server."},"sign_up_cta":"Sign up","menu":"Menu","go_home":"Home"},"search":{"description":"Enter a search term to find it in the GitHub Docs.","placeholder":"Search GitHub Docs","label":"Search GitHub Docs"},"survey":{"able_to_find":"Did you find what you needed?","yes":"Yes","no":"No","cancel":"Cancel","additional_feedback":"Can you tell us more about your rating? (Optional)","optional":"Optional","required":"Required","email_label":"Leave your email if we can contact you. (Optional)","email_validation":"Please enter a valid email address","send":"Send","feedback":"Thank you! We received your feedback.","not_support":"If you need a reply, please contact \u003ca href=\"https://support.github.com/\"\u003esupport\u003c/a\u003e.","privacy_policy":"Privacy policy","server_error":"Unable to process comment at the moment. Please try again."},"toc":{"getting_started":"Getting started","popular":"Popular","startHere":"Start here","whats_new":"What's new","videos":"Videos","all_changelogs":"All changelog posts"},"meta":{"default_description":"Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products."},"scroll_button":{"scroll_to_top":"Scroll to top"},"pages":{"article_version":"Article version","miniToc":"In this article","all_enterprise_releases":"All Enterprise Server releases","about_versions":"About versions","permissions_callout_title":"Who can use this feature?","video_from_transcript":"See video for this transcript"},"picker":{"language_picker_label":"Language","product_picker_default_text":"All products","version_picker_default_text":"Choose a version"},"footer":{"support_heading":"Help and support","legal_heading":"Legal","imprint":"Imprint","terms":"Terms","privacy":"Privacy","status":"Status","pricing":"Pricing","expert_services":"Expert services","blog":"Blog"},"contribution_cta":{"title":"Help us make these docs great!","body":"All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.","button":"Make a contribution","to_guidelines":"Learn how to contribute"},"support":{"still_need_help":"Still need help?","contact_support":"Contact support","ask_community":"Ask the GitHub community"},"rest":{"banner":{"api_versioned":"The REST API is now versioned.","api_version_info":"For more information, see \"\u003ca href=\"{{ versionWithApiVersion }}/rest/overview/api-versions\"\u003eAbout API versioning\u003c/a\u003e.\"","ghes_api_versioned":"After a site administrator upgrades your Enterprise Server instance to {{ firstGhesReleaseWithApiVersions.versionTitle }} or later, the REST API will be versioned. To learn how to find your instance's version, see \"\u003ca href=\"/{{ currentVersion }}/get-started/learning-about-github/about-versions-of-github-docs#github-enterprise-server\"\u003eAbout versions of GitHub Docs\u003c/a\u003e\".","redirect_notice":"We've recently moved some of the REST API documentation.","redirect_repo":"If you can't find what you're looking for, you might try the new {{ newRestPagesLinks }} REST API pages.","redirect_enterprise":"If you can't find what you're looking for, you might try the {{ actionsPageLink }} REST API page.","actions_api_title":"Actions"},"versioning":{"about_versions":"About REST API versions"},"overview":{"permissions":{"access":"Access","endpoints":"Endpoint","tokens":"Token types","additionalPermissions":"Additional permissions","uat":"UAT","iat":"IAT"}},"screen_reader_text_checkmark_icon":"Multiple permissions are required, or a different permission may be used. For more information about the permissions, see the documentation for this endpoint."},"domain_edit":{"name":"Domain name","edit":"Edit","edit_your":"Edit your domain name","experimental":"Experimental","your_name":"Your domain name","cancel":"Cancel","save":"Save","snippet_about":"Updating will include the new domain name in all code snippets across GitHub Docs.","learn_more":"Learn more","submission_failed":"Submission failed. Please try again in a minute."},"popovers":{"role_description":"hovercard link"}},"reusables":{},"variables":{"release_candidate":{"version":"enterprise-server@3.15"}}},"currentCategory":"creating-github-apps","currentPathWithoutLanguage":"/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens","page":{"documentType":"article","type":null,"title":"Refreshing user access tokens","fullTitle":"Refreshing user access tokens - GitHub Docs","topics":["GitHub Apps"],"introPlainText":"To enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire.","applicableVersions":["free-pro-team@latest","enterprise-cloud@latest","enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"],"hidden":false,"noEarlyAccessBanner":false},"enterpriseServerReleases":{"isOldestReleaseDeprecated":true,"oldestSupported":"3.10","nextDeprecationDate":"2024-09-25","supported":["3.15","3.14","3.13","3.12","3.11","3.10"]},"enterpriseServerVersions":["enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"],"allVersions":{"free-pro-team@latest":{"version":"free-pro-team@latest","versionTitle":"Free, Pro, \u0026 Team","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28"},"enterprise-cloud@latest":{"version":"enterprise-cloud@latest","versionTitle":"Enterprise Cloud","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28"},"enterprise-server@3.15":{"version":"enterprise-server@3.15","versionTitle":"Enterprise Server 3.15","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.14":{"version":"enterprise-server@3.14","versionTitle":"Enterprise Server 3.14","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.13":{"version":"enterprise-server@3.13","versionTitle":"Enterprise Server 3.13","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.12":{"version":"enterprise-server@3.12","versionTitle":"Enterprise Server 3.12","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.11":{"version":"enterprise-server@3.11","versionTitle":"Enterprise Server 3.11","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.10":{"version":"enterprise-server@3.10","versionTitle":"Enterprise Server 3.10","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true}},"currentVersion":"free-pro-team@latest","currentProductTree":null,"sidebarTree":{"href":"/en/apps","title":"Apps","childPages":[{"href":"/en/apps/overview","title":"Overview","childPages":[]},{"href":"/en/apps/using-github-apps","title":"Using GitHub Apps","childPages":[{"href":"/en/apps/using-github-apps/about-using-github-apps","title":"About using apps","childPages":[]},{"href":"/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-personal-account","title":"Install from Marketplace for user","childPages":[]},{"href":"/en/apps/using-github-apps/installing-a-github-app-from-github-marketplace-for-your-organizations","title":"Install from Marketplace for org","childPages":[]},{"href":"/en/apps/using-github-apps/installing-a-github-app-from-a-third-party","title":"Install from third party","childPages":[]},{"href":"/en/apps/using-github-apps/installing-your-own-github-app","title":"Install your own app","childPages":[]},{"href":"/en/apps/using-github-apps/requesting-a-github-app-from-your-organization-owner","title":"Request for org","childPages":[]},{"href":"/en/apps/using-github-apps/authorizing-github-apps","title":"Authorize","childPages":[]},{"href":"/en/apps/using-github-apps/approving-updated-permissions-for-a-github-app","title":"Approve new permissions","childPages":[]},{"href":"/en/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps","title":"Review your authorizations","childPages":[]},{"href":"/en/apps/using-github-apps/reviewing-and-modifying-installed-github-apps","title":"Review installations","childPages":[]},{"href":"/en/apps/using-github-apps/internal-github-apps","title":"Internal apps","childPages":[]}]},{"href":"/en/apps/creating-github-apps","title":"Creating GitHub Apps","childPages":[{"href":"/en/apps/creating-github-apps/about-creating-github-apps","title":"About creating GitHub Apps","childPages":[{"href":"/en/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps","title":"About creating apps","childPages":[]},{"href":"/en/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app","title":"GitHub App versus other options","childPages":[]},{"href":"/en/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app","title":"Best practices","childPages":[]},{"href":"/en/apps/creating-github-apps/about-creating-github-apps/migrating-oauth-apps-to-github-apps","title":"Migrate from OAuth apps","childPages":[]}]},{"href":"/en/apps/creating-github-apps/registering-a-github-app","title":"Registering a GitHub App","childPages":[{"href":"/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app","title":"Register a GitHub App","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/about-the-user-authorization-callback-url","title":"Callback URL","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/about-the-setup-url","title":"Setup URL","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app","title":"Permissions","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/using-webhooks-with-github-apps","title":"Webhooks","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/making-a-github-app-public-or-private","title":"Visibility","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/rate-limits-for-github-apps","title":"Rate limits","childPages":[]},{"href":"/en/apps/creating-github-apps/registering-a-github-app/creating-a-custom-badge-for-your-github-app","title":"Custom badge","childPages":[]}]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app","title":"Authenticate with a GitHub App","childPages":[{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/about-authentication-with-a-github-app","title":"About authentication","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app","title":"Authenticate as an app","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation","title":"Authenticate as an installation","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-with-a-github-app-on-behalf-of-a-user","title":"Authenticate on behalf of users","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps","title":"Manage private keys","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app","title":"Generate a JWT","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-an-installation-access-token-for-a-github-app","title":"Generate an installation access token","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app","title":"Generate a user access token","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens","title":"Refresh user access tokens","childPages":[]},{"href":"/en/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow","title":"Authenticate in Actions workflow","childPages":[]}]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app","title":"Writing code for a GitHub App","childPages":[{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/about-writing-code-for-a-github-app","title":"About writing GitHub App code","childPages":[]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/quickstart","title":"Quickstart","childPages":[]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-github-app-that-responds-to-webhook-events","title":"Respond to webhooks","childPages":[]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-login-with-github-button-with-a-github-app","title":"Build a \"Login\" button","childPages":[]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-cli-with-a-github-app","title":"Build a CLI","childPages":[]},{"href":"/en/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app","title":"Build CI checks","childPages":[]}]}]},{"href":"/en/apps/sharing-github-apps","title":"Sharing GitHub Apps","childPages":[{"href":"/en/apps/sharing-github-apps/sharing-your-github-app","title":"Share your app","childPages":[]},{"href":"/en/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server","title":"Share with GHES","childPages":[]},{"href":"/en/apps/sharing-github-apps/registering-a-github-app-from-a-manifest","title":"App manifest","childPages":[]},{"href":"/en/apps/sharing-github-apps/registering-a-github-app-using-url-parameters","title":"App query parameters","childPages":[]}]},{"href":"/en/apps/maintaining-github-apps","title":"Maintaining GitHub Apps","childPages":[{"href":"/en/apps/maintaining-github-apps/modifying-a-github-app-registration","title":"Modify app settings","childPages":[]},{"href":"/en/apps/maintaining-github-apps/activating-optional-features-for-github-apps","title":"Activate optional features","childPages":[]},{"href":"/en/apps/maintaining-github-apps/about-github-app-managers","title":"GitHub App managers","childPages":[]},{"href":"/en/apps/maintaining-github-apps/managing-allowed-ip-addresses-for-a-github-app","title":"Manage allowed IP addresses","childPages":[]},{"href":"/en/apps/maintaining-github-apps/suspending-a-github-app-installation","title":"Suspend an installation","childPages":[]},{"href":"/en/apps/maintaining-github-apps/transferring-ownership-of-a-github-app","title":"Transfer ownership","childPages":[]},{"href":"/en/apps/maintaining-github-apps/deleting-a-github-app","title":"Delete your app","childPages":[]}]},{"href":"/en/apps/github-marketplace","title":"GitHub Marketplace","childPages":[{"href":"/en/apps/github-marketplace/github-marketplace-overview","title":"Overview","childPages":[{"href":"/en/apps/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps","title":"About GitHub Marketplace for apps","childPages":[]},{"href":"/en/apps/github-marketplace/github-marketplace-overview/about-marketplace-badges","title":"About marketplace badges","childPages":[]},{"href":"/en/apps/github-marketplace/github-marketplace-overview/applying-for-publisher-verification-for-your-organization","title":"Publisher verification","childPages":[]}]},{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace","title":"Create Marketplace apps","childPages":[{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app","title":"Listing requirements","childPages":[]},{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps-on-github-marketplace","title":"Security best practice","childPages":[]},{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace/customer-experience-best-practices-for-apps","title":"Customer experience best practice","childPages":[]},{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing","title":"View listing metrics","childPages":[]},{"href":"/en/apps/github-marketplace/creating-apps-for-github-marketplace/viewing-transactions-for-your-listing","title":"View listing transactions","childPages":[]}]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app","title":"Marketplace API usage","childPages":[{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api","title":"REST API","childPages":[]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api","title":"Webhook events","childPages":[]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app","title":"Testing your app","childPages":[]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials","title":"New purchases \u0026 free trials","childPages":[]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes","title":"Handling plan changes","childPages":[]},{"href":"/en/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations","title":"Plan cancellations","childPages":[]}]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace","title":"List an app on the Marketplace","childPages":[{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app","title":"Draft an app listing","childPages":[]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app","title":"Write listing descriptions","childPages":[]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing","title":"Set listing pricing plans","childPages":[]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes","title":"Webhooks for plan changes","childPages":[]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/submitting-your-listing-for-publication","title":"Submit your listing","childPages":[]},{"href":"/en/apps/github-marketplace/listing-an-app-on-github-marketplace/deleting-your-app-listing-from-github-marketplace","title":"Delete your listing","childPages":[]}]},{"href":"/en/apps/github-marketplace/selling-your-app-on-github-marketplace","title":"Sell apps on the Marketplace","childPages":[{"href":"/en/apps/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps","title":"Pricing plans for apps","childPages":[]},{"href":"/en/apps/github-marketplace/selling-your-app-on-github-marketplace/billing-customers","title":"Billing customers","childPages":[]},{"href":"/en/apps/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases","title":"Receive payment","childPages":[]}]}]},{"href":"/en/apps/oauth-apps","title":"OAuth apps","childPages":[{"href":"/en/apps/oauth-apps/using-oauth-apps","title":"Using OAuth apps","childPages":[{"href":"/en/apps/oauth-apps/using-oauth-apps/installing-an-oauth-app-in-your-personal-account","title":"Install app personal account","childPages":[]},{"href":"/en/apps/oauth-apps/using-oauth-apps/installing-an-oauth-app-in-your-organization","title":"Install app organization","childPages":[]},{"href":"/en/apps/oauth-apps/using-oauth-apps/authorizing-oauth-apps","title":"Authorizing OAuth apps","childPages":[]},{"href":"/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps","title":"Review OAuth apps","childPages":[]},{"href":"/en/apps/oauth-apps/using-oauth-apps/connecting-with-third-party-applications","title":"Third-party applications","childPages":[]},{"href":"/en/apps/oauth-apps/using-oauth-apps/internal-oauth-apps","title":"Internal apps","childPages":[]}]},{"href":"/en/apps/oauth-apps/building-oauth-apps","title":"Building OAuth apps","childPages":[{"href":"/en/apps/oauth-apps/building-oauth-apps/differences-between-github-apps-and-oauth-apps","title":"GitHub Apps \u0026 OAuth apps","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/rate-limits-for-oauth-apps","title":"Rate limits","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app","title":"Creating an OAuth app","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/authenticating-to-the-rest-api-with-an-oauth-app","title":"Authenticate with an OAuth app","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps","title":"Authorizing OAuth apps","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps","title":"Scopes for OAuth apps","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/creating-a-custom-badge-for-your-oauth-app","title":"Create custom badges","childPages":[]},{"href":"/en/apps/oauth-apps/building-oauth-apps/best-practices-for-creating-an-oauth-app","title":"Best practices","childPages":[]}]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps","title":"Maintaining OAuth apps","childPages":[{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/modifying-an-oauth-app","title":"Modifying an OAuth app","childPages":[]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/activating-optional-features-for-oauth-apps","title":"Activate optional features","childPages":[]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/transferring-ownership-of-an-oauth-app","title":"Transfer ownership","childPages":[]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-authorization-request-errors","title":"Troubleshoot authorization","childPages":[]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors","title":"Troubleshoot token request","childPages":[]},{"href":"/en/apps/oauth-apps/maintaining-oauth-apps/deleting-an-oauth-app","title":"Deleting an OAuth app","childPages":[]}]}]}]},"featureFlags":{},"nonEnterpriseDefaultVersion":"free-pro-team@latest","status":200,"fullUrl":"https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens","currentLayoutName":"default","relativePath":"apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens.md"},"articleContext":{"title":"Refreshing user access tokens","intro":"\u003cp\u003eTo enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire.\u003c/p\u003e","effectiveDate":"","renderedPage":"\u003ch2 id=\"about-user-access-tokens-that-expire\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#about-user-access-tokens-that-expire\"\u003eAbout user access tokens that expire\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-accent\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\u003e\u003c/path\u003e\u003c/svg\u003eNote\u003c/p\u003e\n\u003cp\u003e\nUser access tokens that expire are currently an optional feature and are subject to change. For more information, see \"\u003ca href=\"https://developer.github.com/changes/2020-04-30-expiring-user-to-server-access-tokens-for-github-apps\"\u003eExpiring user-to-server access tokens for GitHub Apps\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eTo enforce regular token rotation and reduce the impact of a compromised token, you can configure your GitHub App to use user access tokens that expire. If your app uses user access tokens that expire, then you will receive a refresh token when you generate a user access token. The user access token expires after eight hours, and the refresh token expires after six months. For more information, see \"\u003ca href=\"/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app\" _originalHref=\"/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app\"\u003eGenerating a user access token for a GitHub App\u003c/a\u003e.\"\u003c/p\u003e\n\u003cp\u003eYou can use the refresh token to generate a new user access token and a new refresh token. Once you use a refresh token, that refresh token and the old user access token will no longer work.\u003c/p\u003e\n\u003cp\u003eIf your refresh token expires before you use it, you can regenerate a user access token and refresh token by sending users through the web application flow or device flow. For more information, see \"\u003ca href=\"/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app\" _originalHref=\"/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app\"\u003eGenerating a user access token for a GitHub App\u003c/a\u003e.\"\u003c/p\u003e\n\u003ch2 id=\"configuring-your-app-to-use-user-access-tokens-that-expire\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#configuring-your-app-to-use-user-access-tokens-that-expire\"\u003eConfiguring your app to use user access tokens that expire\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen you create your app, expiration of user access tokens is enabled unless you opt out. For more information, see \"\u003ca href=\"/en/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app\" _originalHref=\"/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app\"\u003eRegistering a GitHub App\u003c/a\u003e.\" You can also configure this setting after your app has been created.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eIn the upper-right corner of any page on GitHub, click your profile photo.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNavigate to your account settings.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFor an app owned by a personal account, click \u003cstrong\u003eSettings\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eFor an app owned by an organization:\n\u003col\u003e\n\u003cli\u003eClick \u003cstrong\u003eYour organizations\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eTo the right of the organization, click \u003cstrong\u003eSettings\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the left sidebar, click \u003cstrong\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-hidden=\"true\"\u003e\u003cpath d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"\u003e\u003c/path\u003e\u003c/svg\u003e Developer settings\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the left sidebar, click \u003cstrong\u003eGitHub Apps\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNext to the GitHub App that you want to modify, click \u003cstrong\u003eEdit\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the GitHub Apps settings sidebar, click \u003cstrong\u003eOptional Features\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNext to \"User-to-server token expiration\", click \u003cstrong\u003eOpt-in\u003c/strong\u003e or \u003cstrong\u003eOpt-out\u003c/strong\u003e. This setting may take a couple of seconds to apply.\u003c/p\u003e\n\u003cp\u003eGitHub recommends that you opt in to this feature for improved security.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eIf you opt into user access tokens that expire after you have already generated user access tokens, the previously generated user access tokens will not expire. You can delete these tokens by using the \u003ccode\u003eDELETE /applications/CLIENT_ID/token\u003c/code\u003e endpoint. For more information, see \"\u003ca href=\"/en/rest/apps/oauth-applications#delete-an-app-token\" _originalHref=\"/rest/apps/oauth-applications#delete-an-app-token\"\u003eREST API endpoints for OAuth authorizations\u003c/a\u003e.\"\u003c/p\u003e\n\u003ch2 id=\"refreshing-a-user-access-token-with-a-refresh-token\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#refreshing-a-user-access-token-with-a-refresh-token\"\u003eRefreshing a user access token with a refresh token\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eMake a \u003ccode\u003ePOST\u003c/code\u003e request to this URL, along with the following query parameters: \u003ccode\u003ehttps://github.com/login/oauth/access_token\u003c/code\u003e\u003c/p\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth scope=\"col\"\u003eQuery parameter\u003c/th\u003e\u003cth scope=\"col\"\u003eType\u003c/th\u003e\u003cth scope=\"col\"\u003eDescription\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003eclient_id\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eRequired.\u003c/strong\u003e The client ID for your GitHub App. The client ID is different from the app ID. You can find the client ID on the settings page for your app.\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003eclient_secret\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eRequired\u003c/strong\u003e unless the user access token was generated using the device flow. The client secret for your GitHub App.\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003egrant_type\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eRequired.\u003c/strong\u003e The value must be \"refresh_token\".\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003erefresh_token\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003cstrong\u003eRequired.\u003c/strong\u003e The refresh token that you received when you generated a user access token.\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGitHub will give a response that includes the following parameters:\u003c/p\u003e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth scope=\"col\"\u003eResponse parameter\u003c/th\u003e\u003cth scope=\"col\"\u003eType\u003c/th\u003e\u003cth scope=\"col\"\u003eDescription\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003eaccess_token\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe user access token. The token starts with \u003ccode\u003eghu_\u003c/code\u003e.\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003eexpires_in\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe number of seconds until \u003ccode\u003eaccess_token\u003c/code\u003e expires. If you disabled expiration of user access tokens, this parameter will be omitted. The value will always be \u003ccode\u003e28800\u003c/code\u003e (8 hours).\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003erefresh_token\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe refresh token. If you disabled expiration of user access tokens, this parameter will be omitted. The token starts with \u003ccode\u003eghr_\u003c/code\u003e.\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003erefresh_token_expires_in\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe number of seconds until \u003ccode\u003erefresh_token\u003c/code\u003e expires. If you disabled expiration of user access tokens, this parameter will be omitted. The value will always be \u003ccode\u003e15897600\u003c/code\u003e (6 months).\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003escope\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe scopes that the token has. This value will always be an empty string. Unlike a traditional OAuth token, the user access token is limited to the permissions that both your app and the user have.\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003ccode\u003etoken_type\u003c/code\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\u003ctd\u003eThe type of token. The value will always be \u003ccode\u003ebearer\u003c/code\u003e.\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\n\u003c/li\u003e\n\u003c/ol\u003e","miniTocItems":[{"contents":{"href":"#about-user-access-tokens-that-expire","title":"About user access tokens that expire"}},{"contents":{"href":"#configuring-your-app-to-use-user-access-tokens-that-expire","title":"Configuring your app to use user access tokens that expire"}},{"contents":{"href":"#refreshing-a-user-access-token-with-a-refresh-token","title":"Refreshing a user access token with a refresh token"}}],"permissions":"","includesPlatformSpecificContent":false,"includesToolSpecificContent":false,"defaultPlatform":"","defaultTool":"","product":"","productVideoUrl":"","currentLearningTrack":null,"detectedPlatforms":[],"detectedTools":[],"allTools":{"agents":"Agents","api":"API","azure_data_studio":"Azure Data Studio","bash":"Bash","cli":"GitHub CLI","codespaces":"Codespaces","curl":"curl","desktop":"Desktop","importer_cli":"GitHub Enterprise Importer CLI","javascript":"JavaScript","jetbrains":"JetBrains IDEs","jetbrains_beta":"JetBrains IDEs (Beta)","skillsets":"Skillsets","vimneovim":"Vim/Neovim","powershell":"PowerShell","visualstudio":"Visual Studio","vscode":"Visual Studio Code","webui":"Web browser","windowsterminal":"Windows Terminal","xcode":"Xcode"},"supportPortalVaIframeProps":{"supportPortalUrl":"https://support.github.com","vaFlowUrlParameter":""},"currentLayout":"default"}},"languagesContext":{"languages":{"en":{"name":"English","code":"en"},"zh":{"name":"Simplified Chinese","code":"zh","hreflang":"zh-Hans","nativeName":"简体中文"},"es":{"name":"Spanish","code":"es","nativeName":"Español"},"pt":{"name":"Portuguese","code":"pt","nativeName":"Português do Brasil"},"ru":{"name":"Russian","code":"ru","nativeName":"Русский"},"ja":{"name":"Japanese","code":"ja","nativeName":"日本語"},"fr":{"name":"French","code":"fr","nativeName":"Français"},"de":{"name":"German","code":"de","nativeName":"Deutsch"},"ko":{"name":"Korean","code":"ko","nativeName":"한국어"}}},"__N_SSP":true},"page":"/[versionId]/[productId]/[...restPage]","query":{"versionId":"free-pro-team@latest","productId":"apps","restPage":["creating-github-apps","authenticating-with-a-github-app","refreshing-user-access-tokens"]},"buildId":"Zr9yNgDb7T41Gt_68LwT6","isFallback":false,"isExperimentalCompile":false,"gssp":true,"appGip":true,"locale":"en","locales":["en","zh","es","pt","ru","ja","fr","de","ko"],"defaultLocale":"en","scriptLoader":[]}</script></body></html>