{"id":1470,"date":"2025-09-09T23:24:54","date_gmt":"2025-09-09T23:24:54","guid":{"rendered":"https:\/\/davidka.net\/ru\/?p=1470"},"modified":"2025-09-13T20:43:22","modified_gmt":"2025-09-13T20:43:22","slug":"github-personal-access-token-pat","status":"publish","type":"post","link":"https:\/\/it.davidka.net\/it\/github-personal-access-token\/","title":{"rendered":""},"content":{"rendered":"\n<p class=\"has-neve-link-color-color has-text-color has-link-color has-medium-font-size wp-elements-bd2e81513827eeeb1914934002402257 wp-block-paragraph\">GitHub Personal Access Token (PAT) \u2014 autenticazione sicura su GitHub<\/p>\n\n\n\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"1470\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ol class=\"rtoc-mokuji decimal_ol level-1\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">Introduzione<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-2\">Perch\u00e9 usare un PAT<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-3\">Tipi di token<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-4\">Come creare un PAT<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-5\">Passo 1: Vai alle impostazioni<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-6\">Passo 2: Crea un nuovo token<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-7\">Utilizzo del PAT<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-8\">1. Git tramite HTTPS<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">2. Lavorare con l\u2019API GitHub<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-10\">3. CI\/CD e script<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-11\">4. IDE e sviluppo locale<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-12\">5. Gestione e sicurezza<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-13\">6. Alternativa: GitHub CLI<\/a><\/li><\/ul><\/li><\/ol><\/div><h2 id=\"rtoc-1\"  class=\"wp-block-heading\">Introduzione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il GitHub Personal Access Token (PAT), ovvero \u201ctoken di accesso personale\u201d, \u00e8 un metodo moderno per autenticarsi in sicurezza sulla piattaforma GitHub.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da agosto 2021 GitHub non supporta pi\u00f9 l\u2019uso delle password per le operazioni Git tramite HTTPS. Ci\u00f2 significa che qualsiasi operazione che prima richiedeva una password ora richiede un token. Il PAT permette di:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>accedere in sicurezza ai repository;<\/li>\n\n\n\n<li>lavorare con le API di GitHub;<\/li>\n\n\n\n<li>automatizzare processi in script, CI\/CD e altri strumenti senza rischiare la compromissione dell\u2019account.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In breve: il PAT \u00e8 una \u201cchiave\u201d che fornisce accesso limitato, pu\u00f2 essere facilmente revocata e ha una data di scadenza.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-2\"  class=\"wp-block-heading\">Perch\u00e9 usare un PAT<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019obiettivo principale del PAT \u00e8 garantire la sicurezza del lavoro su GitHub, mantenendo la comodit\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Funzioni principali:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Sicurezza<\/strong><br>Una password concede l\u2019accesso completo all\u2019account. In caso di fuga di dati, tutto \u00e8 a rischio. Il token pu\u00f2 essere limitato per permessi e durata.<\/li>\n\n\n\n<li><strong>Automazione<\/strong><br>Script, CI\/CD, bot e altri strumenti possono usare il PAT invece di inserire manualmente nome utente e password.<\/li>\n\n\n\n<li><strong>Controllo degli accessi<\/strong><br>\u00c8 possibile creare pi\u00f9 token con permessi diversi per compiti differenti. Se un token viene compromesso, pu\u00f2 essere revocato senza influire sugli altri.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-3\"  class=\"wp-block-heading\">Tipi di token<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub offre due tipi di token:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Classic (classico)<\/strong>\n<ul class=\"wp-block-list\">\n<li>L\u2019accesso \u00e8 definito tramite <em>scopes<\/em> (es. <code class=\"\" data-line=\"\">repo<\/code>, <code class=\"\" data-line=\"\">workflow<\/code>).<\/li>\n\n\n\n<li>Concede diritti su tutti i repository dell\u2019utente.<\/li>\n\n\n\n<li>Facile da usare ma meno flessibile.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Fine-grained (dettagliato)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Permette di limitare l\u2019accesso a repository specifici.<\/li>\n\n\n\n<li>Si possono assegnare permessi precisi, es. \u201csolo lettura delle issues\u201d.<\/li>\n\n\n\n<li>Le organizzazioni possono richiedere l\u2019approvazione per questi token.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Suggerimento: usare i token fine-grained quando sicurezza e limitazione degli accessi sono importanti; classic per compatibilit\u00e0 con strumenti pi\u00f9 vecchi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-4\"  class=\"wp-block-heading\">Come creare un PAT<\/h2>\n\n\n\n<h3 id=\"rtoc-5\"  class=\"wp-block-heading\">Passo 1: Vai alle impostazioni<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Apri GitHub \u2192 <strong>Settings<\/strong> \u2192 <strong>Developer settings<\/strong> \u2192 <strong>Personal access tokens<\/strong> \u2192 <strong>Tokens (classic)<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h3 id=\"rtoc-6\"  class=\"wp-block-heading\">Passo 2: Crea un nuovo token<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clicca su <strong>Generate new token (classic)<\/strong>.<\/li>\n\n\n\n<li>Dai un nome al token (Note), ad esempio <code class=\"\" data-line=\"\">CI-token<\/code> o <code class=\"\" data-line=\"\">Git-PC<\/code>.<\/li>\n\n\n\n<li>Imposta la scadenza \u2014 consigliati 90 giorni o 1 anno.<\/li>\n\n\n\n<li>Seleziona i permessi necessari (Scopes) \u2014 minimo per Git: <code class=\"\" data-line=\"\">repo<\/code>, per Actions: <code class=\"\" data-line=\"\">workflow<\/code>.<\/li>\n\n\n\n<li>Genera il token e <strong>salvalo immediatamente<\/strong> \u2014 sar\u00e0 visibile solo una volta.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-7\"  class=\"wp-block-heading\">Utilizzo del PAT<\/h2>\n\n\n\n<h3 id=\"rtoc-8\"  class=\"wp-block-heading\">1. Git tramite HTTPS<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">git clone https:\/\/github.com\/username\/repo.git\n# Username: il tuo GitHub username\n# Password: token generato\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per non inserire il token ogni volta, \u00e8 possibile memorizzarlo nella cache:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">git config --global credential.helper manager   # Windows\/Mac\ngit config --global credential.helper &#039;cache --timeout=3600&#039;  # Linux\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-9\"  class=\"wp-block-heading\">2. Lavorare con l\u2019API GitHub<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$token = Get-Secret -Name GitHubToken  # recupero sicuro del token\n$headers = @{ Authorization = &quot;token $token&quot; }\n\n$repos = Invoke-RestMethod -Uri &quot;https:\/\/api.github.com\/user\/repos&quot; -Headers $headers\n$repos | ForEach-Object { $_.name }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Creare una issue:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$body = @{\n    title = &quot;Nuovo task di test&quot;\n    body  = &quot;Descrizione del task&quot;\n} | ConvertTo-Json\n\nInvoke-RestMethod -Uri &quot;https:\/\/api.github.com\/repos\/username\/repo\/issues&quot; `\n                  -Method Post `\n                  -Headers $headers `\n                  -Body $body\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-10\"  class=\"wp-block-heading\">3. CI\/CD e script<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">$token = Get-Secret -Name GitHubToken\ngit config --global user.name &quot;CI Bot&quot;\ngit config --global user.email &quot;ci@example.com&quot;\n\ngit add .\ngit commit -m &quot;Aggiornamento automatico&quot;\ngit push &quot;https:\/\/$token@github.com\/username\/repo.git&quot; main\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Suggerimento: usare un token separato con permessi minimi per CI\/CD.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-11\"  class=\"wp-block-heading\">4. IDE e sviluppo locale<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In Visual Studio Code e altri IDE \u00e8 possibile usare il PAT al posto della password per lavorare con repository privati e pull request.<\/li>\n\n\n\n<li>Creare token separati per diverse macchine o IDE per limitare l\u2019impatto di eventuali fughe di dati.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-12\"  class=\"wp-block-heading\">5. Gestione e sicurezza<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conservare i token in password manager o SecretStore.<\/li>\n\n\n\n<li>Creare token separati per compiti diversi.<\/li>\n\n\n\n<li>Controllare regolarmente e cancellare token non utilizzati.<\/li>\n\n\n\n<li>Impostare sempre una scadenza (non usare \u201cNo expiration\u201d).<\/li>\n\n\n\n<li>Pianificare la rotazione dei token per CI\/CD e script automatizzati.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-13\"  class=\"wp-block-heading\">6. Alternativa: GitHub CLI<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">gh auth login\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La CLI aprir\u00e0 il browser, eseguir\u00e0 l\u2019autenticazione, creer\u00e0 e salver\u00e0 il token localmente. Questo evita la creazione manuale del PAT e semplifica la gestione delle chiavi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il Personal Access Token (PAT) di GitHub \u00e8 una chiave digitale per l&#8217;autenticazione sicura durante l&#8217;interazione con la piattaforma GitHub<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"default","neve_meta_container":"full-width","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"on","neve_post_elements_order":"[\"content\",\"tags\",\"comments\"]","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[660],"tags":[743,733,731,845,739],"class_list":["post-1470","post","type-post","status-publish","format-standard","hentry","category-devops","tag-tag-authentication","tag-tag-ci-cd-github","tag-tag-devops","tag-tag-git","tag-tag-github-pat"],"acf":[],"_links":{"self":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/1470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/comments?post=1470"}],"version-history":[{"count":0,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/1470\/revisions"}],"wp:attachment":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media?parent=1470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/categories?post=1470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/tags?post=1470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}