GitHub Actions рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдорд╛ рд░рд╣реЗрдХреЛ рдХрдордЬреЛрд░реАрд▓реЗ Nixpkgs рдорд╛ рд░рд╣реЗрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

NixOS рд╡рд┐рддрд░рдг рд░ Nix рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдордорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ Nixpkgs рдкреНрдпрд╛рдХреЗрдЬ рднрдгреНрдбрд╛рд░рдорд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреЗрд╢ рдЧрд░реНрджрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЖрд╣реНрд╡рд╛рди рдЧрд░рд┐рдПрдХрд╛ GitHub Actions рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрдорд╛ рднрдПрдХрд╛ рдХрдордЬреЛрд░реАрд╣рд░реВ рдЦреБрд▓рд╛рд╕рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреЛ рдХрдордЬреЛрд░реАрд▓реЗ рдЕрдирдзрд┐рдХреГрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ Nixpkgs рдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ рдкрдвреНрдиреЗ рд░ рд▓реЗрдЦреНрдиреЗ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдЯреЛрдХрди рдирд┐рдХрд╛рд▓реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред рдпреЛ рдЯреЛрдХрдирд▓реЗ рд╕рдореАрдХреНрд╖рд╛ рд░ рдЕрдиреБрдореЛрджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрджреИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ Git рднрдгреНрдбрд╛рд░ рдорд╛рд░реНрдлрдд рдХреБрдиреИ рдкрдирд┐ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

Nixpkgs рд▓рд╛рдИ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реНрдиреЗ рд░ рдХреБрдиреИ рдкрдирд┐ рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдЕрдиреБрдХреВрд▓рди рдХреЛрдб рдЗрдиреНрдЬреЗрдХреНрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЧрдд рдЕрдХреНрдЯреЛрдмрд░рдорд╛ NixCon рд╕рдореНрдореЗрд▓рдирдорд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реЗрдХрд╛ рдерд┐рдП рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рддреБрд░реБрдиреНрддреИ рдкреНрдпрд╛рдЪ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпрджреНрдпрдкрд┐, рдЖрдХреНрд░рдордгрдХреЛ рд╡рд┐рд╡рд░рдг рдПрдХ рд╡рд░реНрд╖ рдкрдЫрд┐ рдорд╛рддреНрд░ рдЦреБрд▓рд╛рд╕рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреЛ рдореБрджреНрджрд╛ Nixpkgs GitHub рднрдгреНрдбрд╛рд░рдорд╛ GitHub рдХрд╛рд░реНрдп рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдерд┐рдпреЛ, рдЬреБрди "pull_request_target" рдШрдЯрдирд╛рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХрд╛ рдЫрдиреН рд░ рдирдпрд╛рдБ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЬрд╛рдБрдЪрд╣рд░реВ рдЧрд░реНрдЫрдиреНред

"pull_request" рдШрдЯрдирд╛рдХреЛ рд╡рд┐рдкрд░реАрдд, "pull_request_target" рдорд╛ рд░рд╣реЗрдХрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд▓рд╛рдИ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдкрдвреНрди/рд▓реЗрдЦреНрди рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓рд╛рдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдбреЗрдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╡рд┐рд╢реЗрд╖ рд╣реЗрд░рдЪрд╛рд╣ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред "pull_request_target" рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдордзреНрдпреЗ рдПрдХрд▓реЗ рдХреЛрдбрдУрдирд░реНрд╕-рднреНрдпрд╛рд▓рд┐рдбреЗрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдирд┐рд░реНрдорд╛рдг рд░ рдХрд▓ рдЧрд░реЗрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ "OWNERS" рдлрд╛рдЗрд▓рд▓рд╛рдИ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНтАНрдпреЛ: рдЪрд░рдгрд╣рд░реВ: тАФ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf рд╕рдБрдЧ: ref: refs/pull/$/merge path: pr тАФ run: nix-build base/ci -A codeownersValidator тАФ run: result/bin/codeowners-рднреНрдпрд╛рд▓рд┐рдбреЗрдЯрд░ env: OWNERS_FILE: pr/ci/OWNERS

рд╕рдорд╕реНрдпрд╛ рдпреЛ рдерд┐рдпреЛ рдХрд┐ рдпрджрд┐ OWNERS рдлрд╛рдЗрд▓ рдЧрд▓рдд рддрд░рд┐рдХрд╛рд▓реЗ рдврд╛рдБрдЪрд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рднрдиреЗ, codeowners-validator рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рд╡рд┐рдХреГрдд рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рдорд╛рдирдХ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдкрдорд╛ рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдп рд▓рдЧрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреЗрдЫред рдЖрдХреНрд░рдордгрдорд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ OWNERS рдирд╛рдордХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдЩреНрдХ рд░рд╛рдЦреНрдиреБ рд╕рдорд╛рд╡реЗрд╢ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ ".credentials" рдлрд╛рдЗрд▓рд▓рд╛рдИ рдФрдВрд▓реНрдпрд╛рдЙрдБрдЫ, рдЬрд╕рд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдкреНрд░рдорд╛рдгрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред рдлрд▓рд╕реНрд╡рд░реВрдк, рдпреЛ рдлрд╛рдЗрд▓ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рднрдпреЛ рд░ рднрдгреНрдбрд╛рд░ рдкрд╣реБрдБрдЪ рдЯреЛрдХрди рднрдПрдХреЛ рдкрд╣рд┐рд▓реЛ рд▓рд╛рдЗрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓рдЧрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рднрдпреЛред

 GitHub Actions рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдорд╛ рд░рд╣реЗрдХреЛ рдХрдордЬреЛрд░реАрд▓реЗ Nixpkgs рдорд╛ рд░рд╣реЗрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

рдердк рд░реВрдкрдорд╛, рд╕рдореНрдкрд╛рджрдХ рдХрдиреНрдлрд┐рдЧ рдирд┐рдпрдорд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдорд╛ рдЕрд░реНрдХреЛ рдЬреЛрдЦрд┐рдо рдлреЗрд▓рд╛ рдкрд░реНрдпреЛред рдЪрд░рдгрд╣рд░реВ: тАФ рдирд╛рдо: PR рд░рдирдмрд╛рдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН: gh api [тАж] | jq [ тАж ] > ┬л$HOME/changed_files┬╗ тАФ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 рд╕рдБрдЧ: ref: refs/pull/$/merge тАФ рдирд╛рдо: рд╕рдореНрдкрд╛рджрдХ рдХрдиреНрдлрд┐рдЧ рд░рди рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ: cat ┬л$HOME/changed_files┬╗ | xargs -r рд╕рдореНрдкрд╛рджрдХ рдХрдиреНрдлрд┐рдЧ-рдЪреЗрдХрд░

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕рдорд╕реНрдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓рд╕рдБрдЧ editorconfig-checker рдЪрд▓рд╛рдЙрди "xargs" рдЙрдкрдпреЛрдЧрд┐рддрд╛рдХреЛ рдкреНрд░рдпреЛрдЧ рдерд┐рдпреЛред рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВ рдорд╛рдиреНрдп рдирднрдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдЖрдХреНрд░рдордгрдХрд╛рд░реАрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдзрдорд╛ рд╡рд┐рд╢реЗрд╖ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рднрдПрдХреЛ рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫ, рдЬреБрди editorconfig-checker рдЪрд▓рд╛рдЙрдБрджрд╛ рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреЗрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "--help" рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, editorconfig-checker рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдВрдХреЗрдд рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫред

рд╕реНрд░реЛрдд: opennet.ru

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд░рдкрд░реНрджреЛ рд╣реЛрд╕реНрдЯрд┐рдЩ рдЦрд░рд┐рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН ЁЯФе DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрд░рдкрд░реНрджреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдЩ рдХрд┐рдиреНрдиреБрд╣реЛрд╕реН | ProHoster