рдпрд╣ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ 5 рдХрдо-рдЧрдВрднреАрд░рддрд╛ рд╡рд╛рд▓реЗ рдХреАрдбрд╝реЗ рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдмрдЧ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЬреАрдердм (
рдлрд┐рд░ рд╕реЗ ) рдкрд░ рдирд┐рдЬреА рд╢рд▓рдЬрдо рдХреЛ рдкрдврд╝рдирд╛ / рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдерд╛ред
рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ, рдПрдХ рдЧреАрдердм рдиреЗ рдПрдХ
рдЗрдирд╛рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ред 4 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рджреМрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ URL рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рдЖрдкрдХреЗ github рдЦрд╛рддреЗ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдорд┐рд▓реАред рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреИрд╕реЗ?
рдореИрдВрдиреЗ
рдЧрд┐рддреВрдм рдУрдЙрде рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рд╢реБрд░реБрдЖрдд рдХреАред
рдмрдЧ 1. рдмрд╛рдИрдкрд╛рд╕ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди / рдХреЗ рд╕рд╛рде рд╕рддреНрдпрд╛рдкрди /../
рдпрд╣ рд╕рд░рд▓ рд╣реИ - рдЖрдк рдкрд┐рдЫрд▓реЗ рдкрде (рдкрде рдЯреНрд░реИрд╡рд░реНрд╕рд▓) рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /path1/../path2 рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
рдмрдЧ 2. рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд╣реАрдВ рд╣реИред
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкрд╣рд▓рд╛ рдмрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред OAuth2 рдиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реИ, рдФрд░ рдЬрдм рдПрдХ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕реА рдпреВрд░реА рдХреЛ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдпрджрд┐ рд╕рд╛рдЗрдЯ / рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ / рдХреЙрд▓рдмреИрдХ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдЬреАрдердм рдиреЗ рдЪреЗрдХ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЖрдк /path1/../path2 рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬрд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ / path1 рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд░реЗрдлрд░рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рднреА рд╡реИрдз рд░рд╣рддрд╛ рд╣реИред рдЗрди рджреЛ рдмрдЧреЛрдВ рдХреА рдорджрдж рд╕реЗ, рдЧреАрдердм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд░реЗрдлрд░рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдПрдХ рд╕рдорд╛рди рдмрдЧ vk.com рдореЗрдВ рдерд╛ред
рдмрдЧ 3. рд╣рд┐рд╕реНрдЯ рдкрд░ рдЪрд┐рддреНрд░ред

рдореИрдВрдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд┐рддреБрдм рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ - рд╢рд┐рдХреНрд╖рд╛, рдкреГрд╖реНрда, рд╕реНрдкреАрдХрд░рдбреЗрдХ, рдЬрд┐рд╕реНрдЯред рдкрд╣рд▓реЗ рджреЛ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ OAuth рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддреАрд╕рд░реЗ рдиреЗ рдмрд╛рдЙрдВрдЯреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдерд╛ред рд╡рд╣ рдПрдХ "рдкреВрд░реНрд╡-рдЕрдиреБрдореЛрджрд┐рдд" рдЧреНрд░рд╛рд╣рдХ рдерд╛, рдЕрд░реНрдерд╛рдд, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рд▓реЗрдХрд┐рди рдЖрдк рд╕рд┐рд░реНрдл рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

рдЪреВрдБрдХрд┐ рдЧрд┐рддреБрдм рдХрд╛ рдХреИрдореЛ рдкреНрд░реЙрдХреНрд╕реА рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рд░реЗрдлрд╝рд░рд░ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдирдИ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

///host.com рд░реВрдмреА рд╕рд╣рд┐рдд рд╕рднреА рд╕рд░реНрд╡рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ рдЗрд╕реЗ
github.com///host.com рдХреЗ рдмрдЬрд╛рдп
host.com рдФрд░
host.com рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ url рд╢реЛрд╖рдг рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
github.com/login/oauth/authorize?client_id=7e0a3cd836d3e544dbd9&redirect_uri= https%3A%2F%2Fgist.github.com%2Fauth%2Fgithub%2Fcallback/../../../homakov/8820324 &response_type=code

рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдкрддреЗ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЧрд┐рдЯрд╣рдм рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЬреАрд╕реНрдЯ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛:
рд╕реНрдерд╛рди:
gist.github.com/auth/github/callback/../../../homakov/8820324?code=CODEрдмреНрд░рд╛рдЙрдЬрд╝рд░
gist.github.com/homakov/8820324?code=CODE рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░рддрд╛ рд╣реИрдФрд░ рдпрд╣рд╛рдБ, рдЬрдм рд╣рдорд╛рд░реА рддрд╕реНрд╡реАрд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд░реЗрдлрд╝рд░рд░ рдХрд╛ рд╡рд┐рд▓рдп рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдореЗрдВ рдкреАрдбрд╝рд┐рдд рдХрд╛ CODE рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо
gist.github.com/auth/github/callback?code=CODE - voila рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╣рд┐рд╕реНрдЯреЛ рдкрд░ рдПрдХ рдкреАрдбрд╝рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреА рдирд┐рдЬреА рд╣рд┐рд╕реНрдЯреЛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИред
рдмрдЧ 4. рдЯреЛрдХрди рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реИред

рдпрд╣ OAuth рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╣реИ, рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЯреЛрдХрди рдХреЛ рд╕реНрдЯреЛрд░ / рд╢реЛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рддреНрд░ рд╕рддреНрд░ рд░реЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмрд╕ рдмреЗрд╕ 64 рдПрдирдХреЛрдбреЗрдб рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХреБрдХреА рд╣реИред

рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ - github_token рдЕрдм рд╣рдо hist рдХреА рд╕рд╛рдЗрдЯ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЯреЛрдХрди рдореЗрдВ рд╕реНрдХреЛрдк = gists рд╣реИ рдФрд░ gists рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ ...
рдмрдЧ 5. рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЧреБрдВрдЬрд╛рдЗрд╢ рдХрд╛ рд╕реНрд╡рдд: рдЕрдиреБрдореЛрджрдиред
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ред рдЪреВрдВрдХрд┐ рдЬрд┐рд╕реНрдЯ рдЧрд┐рддреВрдм рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧреНрд░рд╛рд╣рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк "рдЗрди рд╕реНрдХреЛрдкреЛрдВ тАЛтАЛрдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ" рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЧрд┐рддреБрдм рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдореЛрджрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд┐рд░реНрдл рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ
github.com/login/oauth/authorize?client_id=7e0a3cd836d3e544dbd9&
redirect_uri=https%3A%2F%2Fgist.github.com%2Fauth%2Fgithub%2Fcallback/../../../homakov/8820324&
response_type=code&
scope=repo,gists,user,delete_repo,notifications
рдлрд┐рд░ рдкреАрдбрд╝рд┐рдд рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд░реНрдЬ рдХрд┐рдП рдЧрдП CODE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдореИрдВ рдХреБрдХреА рдкрдврд╝реВрдВрдЧрд╛, рд╡рд╣рд╛рдВ рд╕реЗ github_token рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдпрд╣рд╛рдВ рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреГрд╢реНрдп рд░реВрдк рд╕реЗ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдЯреЛрдХрди рдЬрд┐рд╕реНрдЯ рдХрд╛ рд╣реИ! рдПрдХ рдЯреНрд░реЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдЪреБрдкрдХреЗ рдЖрдзреБрдирд┐рдХ рдЕрдкрд░рд╛рдзред
рдЗрдирд╛рдо $ 4,000 рдерд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред