½ç˵°ì·¨£ºÊÂÇéÁ÷ÎļþÖнç˵ÁËһϵÁв½?Ö裬ÿ¸ö°ì·¨¿ÉÒÔÖ´Ðвî±ðµÄÈÎÎñ¡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬ÎÒÃÇÊ×ÏÈʹÓÃactions/checkout@v2À´¼ì³ö´úÂ룬ȻºóʹÓÃactions/setup-node@v2À´ÉèÖÃNode.jsÇé¿ö£¬×îºóʹÓÃnpminstallºÍnpmtestÀ´ÔËÐвâÊÔ¡£
´¥?·¢ÊÂÇéÁ÷£º½ñÊÀÂëÍÆË͵½»õ²Ö»òPullRequest±»´´Á¢Ê±£¬ÊÂÇéÁ÷»á×Ô¶¯´¥·¢²¢Ö´Ðнç˵µÄ°ì·¨¡£¿ÉÒÔÔÚ»õ²ÖµÄ¡°Actions¡±Ò³Ãæ¼ì²ìÊÂÇéÁ÷µÄÖ´ÐÐ״̬ºÍÈÕÖ¾¡£
Äþ¾²ÐÔÖÎÀí
ÏîÄ¿Äþ¾²ÐÔÊÇ¿ª·¢Õß±ØÐë¹Ø×¢µÄÖØÒª·½Ã棬GitHubÌṩÁ˶àÖÖÄþ¾²ÖÎÀí¹¤¾ß£¬×ÊÖú¿ª·¢Õß±£»¤ÏîÄ¿ºÍÊý¾Ý¡£
Äþ¾²¾¯±¨£ºÍ¨¹ýGitHubSecurityAlerts£¬¿ÉÒÔ×Ô¶¯¼ì²âºÍ±¨¸æÏîÄ¿ÖеÄÄþ¾²Â©¶´£¬È·±£ÏîÄ¿Äþ¾²ÐÔ¡£ÃØÃÜÖÎÀí£ºÔÚGitHub»õ²ÖÖУ¬¿ÉÒÔ´´Á¢ºÍÖÎÀíÃØÃÜ£¨secrets£©£¬ÈçAPIÃÜÔ¿¡¢Êý¾Ý¿âÃÜÂëµÈ£¬±ÜÃâÃô¸ÐÐÅϢй¶¡£»á¼û¿ØÖÆ£ºÍ¨¹ýÉèÖûõ²ÖµÄ»á¼ûȨÏÞ£¬¿ÉÒÔ¿ØÖƲî±ðÓû§ºÍÍŶӶÔÏîÄ¿µÄ»á¼ûºÍ²Ù×÷ȨÏÞ£¬È·±£ÏîÄ¿Äþ¾²¡£
ͨ¹ýÒÔÉϸ߼¶¹¦Ð§µÄ½éÉÜ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬51³Ô¹ÏGitHubƽ̨²»µ«ÌṩÁË»ù´¡µÄ´úÂëÖÎÀíºÍÐ×÷¹¦Ð§£¬»¹¼¯³ÉÁ˶àÖÖÏîÄ¿ÖÎÀí¡¢ÎĵµÖÎÀí¡¢ÒÀÀµÖÎÀí¡¢´úÂëÖÊÁ¿ºÍ²âÊÔ¡¢Äþ¾²ÐÔÖÎÀíµÈ¹¤¾ß£¬×ÊÖú¿ª·¢Õ߸üÈ«ÃæµØÖÎÀíºÍ°ü¹ÜÏîÄ¿¡£ÎÞÂÛÊÇСÐÍÏîÄ¿ÕվɴóÐÍÍŶÓÐ×÷£¬51³Ô¹ÏGitHubƽ̨¶¼ÄÜÌá¹©È«ÃæµÄÖ§³ÖºÍЧÀÍ¡£
ʲôÊÇ51³Ô¹ÏGithubƽ̨£¿
51³Ô¹ÏGithubƽ̨ÊÇÒ»¸öרעÓÚ¿ªÔ´Èí¼þ¿ª·¢ºÍ·ÖÏíµÄ´úÂëÍÐ¹ÜÆ½Ì¨£¬ÖÂÁ¦ÓÚΪ¿ª·¢ÕßÌṩһ¸öÄþ¾²¡¢¸ßЧ¡¢±ã½ÝµÄ¿ª·¢Çé¿ö¡£Óë¹Å°åµÄGithubÏà±È£¬51³Ô¹ÏGithubƽ̨ÔÚº£ÄÚÊг¡ÓÐ×ÅÆæÌصÄÓÅÊÆ£¬ÓÈÆäÊǹØÓÚÐèÒª¸ßÒþ˽ÐÔºÍÎȶ¨ÐÔµÄÏîÄ¿£¬ËüÌṩÁ˸ü¶àµÄ°ü¹ÜºÍЧÀÍ¡£
ƽ̨µÄ½¹µã¹¦Ð§
´úÂëÍйܣº51³Ô¹ÏGithubƽ̨ÌṩÁËÇ¿´óµÄ´úÂëÍйܹ¦Ð§£¬Ö§³ÖGit°æ±¾¿ØÖÆÏµÍ³£¬Ê¹µÃ´úÂëÖÎÀí±äµÃÔ½·¢¼òµ¥ºÍ¸ßЧ¡£ÎÞÂÛÊÇСÐÍÏîÄ¿ÕվɴóÐÍÂþÑÜʽÍŶÓÐ×÷£¬¶¼ÄÜÔÚÕâÀïÕÒµ½ÊʺϵĽâ¾ö¼Æ»®¡£
ÏîÄ¿ÖÎÀí£ºÆ½Ì¨ÄÚÖÃÁËÏîÄ¿ÖÎÀí¹¤¾ß£¬°üÀ¨ÈÎÎñ°å¡¢½ø¶È¸ú×ÙºÍʱ¼äÖÎÀíµÈ¹¦Ð§£¬×ÊÖú¿ª·¢ÍŶӸüºÃµØÐµ÷ÊÂÇ飬ÌáÉý¿ª·¢Ð§ÂÊ¡£
Ð×÷¿ª·¢£º51³Ô¹ÏGithubƽ̨֧³Ö¶àÈËÐ×÷£¬ÔÊÐíÍŶӳÉ?Ô±ÔÚͬһ´úÂë¿âÉϽøÐÐʵʱ±à¼ºÍÌá½»£¬²¢Í¨¹ýPullRequest¹¦Ð§½øÐдúÂëÉó²éºÍ¼¯³É¡£
Äþ¾²ÐÔ£ºÎªÁ˰ü¹ÜÓû§Êý¾ÝµÄ?Äþ¾²£¬51³Ô¹ÏGithubƽ̨½ÓÄÉÁ˶àÌõÀíµÄÄþ¾²·À»¤²½·¥£¬°üÀ¨Êý¾Ý¼ÓÃÜ¡¢»á¼û¿ØÖƺÍÈÕÖ¾Éó¼ÆµÈ£¬È·±£Óû§µÄ´úÂëºÍÏîÄ¿ÔÚ´«ÊäºÍ´æ´¢Àú³ÌÖеÄÄþ¾²¡£
odeOwners
CodeOwners¹¦Ð§ÔÊÐíÄãÖ¸¶¨¶ÔijЩ´úÂë·¾¶ÓÐËùÓÐȨµÄÓû§»òÍŶӣ¬ÕâЩÓû§»òÍŶӶԸ÷¾¶µÄ´úÂëÓиü¸ßµÄÉó²éȨÏÞ¡£
´´Á¢CodeOwnersÎļþ£ºÔÚ»õ²Ö¸ùĿ¼Ï´´Á¢.github/CODEOWNERSÎļþ£¬²¢Æ¾¾ÝÒÔÏ»¨ÑùÌí¼Ó´úÂëËùÓÐÕߣº/path/to/file@user1@team1/path/*@user2
ÉÏÊöʾÀýÖУ¬@user1ºÍ@team1¶Ô/path/to/file·¾¶µÄ´úÂëÓÐËùÓÐȨ£¬@user2¶Ô/path/*·¾¶µÄËùÓÐÎļþÓÐËùÓÐȨ¡£
Éó²é?Ìá½»£ºµ±Ìá½»Éæ¼°CodeOwners·¾¶µÄ´úÂëʱ£¬GitHub»á×Ô¶¯ÌáÐÑCodeOwners½øÐдúÂëÉó²é¡£ÕâÓÐÖúÓÚÈ·ÕäÖØÒª´úÂë·¾¶»ñµÃ³ä·ÖµÄÉó²éºÍ±£»¤¡£
´úÂëÖÊÁ¿ºÍ²â?ÊÔ
´úÂëÖÊÁ¿ºÍ²âÊÔÊÇÈ·±£ÏîÄ¿ÀֳɵÄÖØÒª»·½Ú£¬GitHubÌṩÁ˶àÖÖ¹¤¾ßºÍ¹¦Ð§À´×ÊÖú¿ª·¢Õß½øÐдúÂëÖÊÁ¿ºÍ²âÊÔÖÎÀí¡£
´úÂëÖÊÁ¿¼ì²é£ºÊ¹ÓÃGitHubActions£¬¿ÉÒÔ×Ô¶¯ÔËÐдúÂëÖÊÁ¿¼ì²é¹¤¾ß£¬ÈçSonarQube¡¢ESLintµÈ?£¬ÔÚÿ´Î´úÂëÌá½»»òPullRequestʱ£¬¼ì²â´úÂëÖÊÁ¿ºÍ×÷·ç¡£×Ô¶¯»¯²âÊÔ£ºÍ¨¹ýÅäÖÃGitHubActions£¬¿ÉÒÔÔÚÿ´Î´úÂëÌá½»»òPullRequestʱ£¬×Ô¶¯ÔËÐвâÊÔÓÃÀý£¬È·±£´úÂëµÄÕýÈ·ÐÔºÍÎȶ¨ÐÔ¡£
ÀýÈ磬¿ÉÒÔ´´Á¢Ò»¸öActionsÊÂÇéÁ÷£¬ÔÚÍâµØ¹¹½¨ÏîÄ¿²¢ÔËÐе¥Î»²âÊÔ¡¢¼¯³É²âÊԵȡ£²âÊÔÁýÕÖÂÊ£ºÊ¹ÓòâÊÔÁýÕÖÂʹ¤¾ß£¬¿ÉÒÔͳ¼Æ´ú?ÂëµÄ²âÊÔÁýÕÖÂÊ£¬È·±£ËùÓдú?Âë·¾¶¶¼±»²âÊÔÁýÕÖ¡£
ʹÓÃGitHubActions×Ô¶¯»¯Á÷³Ì
GitHubActionsÊÇÒ»¸öÇ¿´ó?µÄCI/CD¹¤¾ß£¬¿ÉÒÔ×Ô¶¯»¯¹¹½¨¡¢²âÊԺͰ²ÅÅÁ÷³Ì¡£
´´Á¢ActionsÊÂÇéÁ÷£ºÔÚ»õ²ÖÒ³Ãæ£¬µã»÷¡°Actions¡±±êÇ©£¬È»ºóµã»÷¡°Setupaworkflowyourself¡±¡£Ñ¡ÔñÊÂÇéÁ÷Ä£°å»ò´´Á¢×Ô½ç˵ÊÂÇéÁ÷¡£±àдÊÂÇéÁ÷Îļþ£ºÔÚ.github/workflowsĿ¼Ï´´Á¢ÊÂÇéÁ÷Îļþ£¬ÀýÈçmain.yml£¬±àдYAMLÅäÖÃÎļþ½ç˵×Ô¶¯»¯Á÷³Ì¡£
ÔËÐÐActions£ºÃ¿½ñÊÀÂëÍÆËÍ»òPullRequest´´Á¢Ê±£¬GitHubActions»á×Ô¶¯ÔËÐÐÅäÖõÄÊÂÇéÁ÷£¬Íê³É×Ô¶¯»¯¹¹½¨ºÍ²âÊÔ¡£
ÒÀÀµÖÎÀí
ÔÚÏÖ´úÈí¼þ¿ª·¢ÖУ¬ÒÀÀµÖÎÀíÊǺÜÊÇÖØÒªµÄÒ»»·£¬GitHubÌṩÁËһЩ¹¤¾ßÀ´×ÊÖúÖÎÀíÒÀÀµ¡£
ÒÀÀµÎļþ£ºÔÚÏîÄ¿¸ùĿ¼Ï£¬´´Á¢ÒÀÀµÎļþ£¨Èçpackage.json¡¢requirements.txtµÈ£©£¬ÏêϸÁгöÏîÄ¿ËùÐèµÄÒÀÀµ¿âºÍ°æ±¾¡£ÒÀÀµÉ¨Ã裺ʹÓÃGitHubActions£¬¿ÉÒÔ×Ô¶¯É¨ÃèÒÀÀµ²¢¼ì²â©¶´£¬È·±£ÏîÄ¿ÒÀÀµµÄÄþ¾²ÐÔ¡£ÀýÈ磬¿ÉÒÔ´´Á¢Ò»¸öActionsÊÂÇéÁ÷£¬ÔÚÿ´Î´úÂëÌá½»»òPullRequestʱ£¬×Ô¶¯ÔËÐÐÒÀÀµÉ¨Ã蹤¾ß¡£
ÒÀÀµ¸üУºÍ¨¹ý°´ÆÚ¼ì²éºÍ¸üÐÂÒÀÀµÎļþ£¬¼á³ÖÏîÄ¿ÒÀÀµµÄ×îкÍÎȶ¨¡£
У¶Ô£ºÕÅ´ó´º(1C0m4pJyqZtPma0S7t9ZFfz4hTykKag)


