GitHub在其全球开发者大会上,宣布Copilot将增加对包括Neovim和JetBrains IDEs在内的编辑器的支持,重点是JetBrains的IntelliJ IDEA和PyCharm。GitHub还宣布Copilot支持Java、C、C++和C#等语言的多行代码完成,还有自上次GitHub Universe 以来,进行的20000多项产品改进。
想写出漂亮的代码,但是就是憋不出来怎么办?急!
其实,大可不必这么焦虑。
因为,写出优秀的代码和能遇见合适的人一样,都是要讲缘分的,不能强求。
不会真相信了吧?
咳咳,开个玩笑,摸鱼是不对滴,工作还是要认真上心。
毕竟,自己搞不定,还可以去GitHub上「借鉴」啊。
可是上GitHub找东西也挺麻烦的啊。
这。。。当然没关系。
还记得6月份GitHub和OpenAI联合推出的全新AI代码补全工具Copilot预览版吗?
在刚刚结束的GitHub开发者大会上,Copilot的超进化版本来了!
「Copilot」的初衷
Copilot一词,意为副驾驶。
打个比方,副驾驶员(Copilot)在简单情况下,他可以从机长手中接管飞机的控制权,驾驶飞机(如直线和水平巡航)
但是,在情况不稳定,难以驾驭的时候(如在恶劣天气着陆时),还是要让机长控制飞机的飞行。
OpenAI 联合创始人兼首席技术官Greg Brockman曾经表示,编程其实应该分为两个部分。
一是认真思考一个问题并试图理解它。
二是将这些小片段映射到现有的代码中,不管它是一个库、一个函数还是一个API。
程序员应该在第一个问题上多花时间,而不是把大量时间消耗在第二部分,毕竟,大量的代码都是在重复别人之前所做的事情。
所以,GitHub和OpenAI的Copilot,目的是让人类程序员从「不断重复前人的工作」这种情况中解脱出来,把较简单和基础的代码编写任务交给AI去完成。
Copilot就是为此而生,可以自己编写代码。
学富五车的「Copilot」
OpenAI在2020年,曾推出1750亿参数的GPT-3,参数规模直逼人类神经元的数量。
GPT-3使用了在2019年之前的互联网上的几乎所有公开的书面文本进行训练,所以它对于自然语言是有一定理解能力的,能作诗、聊天、生成文本等等。
今年夏天,OpenAI 发布了 Codex。
Codex基于GPT-3进行训练,接受了从GitHub中提取的TB级公开代码以及英语语言示例的训练。
只要你对Codex发号施令,它就会将英语翻译成代码。
随后,你的双手离开键盘,Codex会自动编程,火箭就自己动起来了。
而Copilot正是建立在OpenAI强大的Codex算法之上,获得了「海纳百川」的代码积累和前所未有的代码生产能力。
Copilot不仅仅可以模仿它见过的代码,而且还会分析利用函数名、方法名、类名和注释的上下文来生成和合成代码,为开发人员提供编辑器中整行代码或函数的建议。
它能减少工程师通过API文档做苦工的时间,还能帮忙编写测试代码。
「Copilot」超进化!
这一次,编程助手Copilot,增加了对更多代码编辑器和更多语言的支持!
Copilot将增加对包括Neovim和JetBrains IDEs在内的编辑器的支持,重点是JetBrains的IntelliJ IDEA和PyCharm,对Visual Studio Code集成开发环境的支持也仍在开发中。
GitHub还宣布Copilot会支持Java、C、C++和C#等语言的多行代码完成,这就意味着Copilot可以自己生成多行代码,能力更加强大。
此外,Copilot依然会支持它擅长的Python、JavaScript、TypeScript、Ruby和Go等语言,未来几个月还将支持更多语言。
虽然,Copilot因代码版权侵权引起过广泛争议,但GitHub的产品副总裁Ryan Salva表示,Copilot提供的是综合的代码建议,而不是逐字逐句的评论。GitHub坚持认为,用于训练Copilot的公开数据依然是在合理使用权范围内。
目前,GitHub仍在邀请更多开发人员试用Copilot技术预览版,感兴趣的小伙伴可以申请使用哦!
GitHub开发者大会上的其他亮点
全新的GitHub Issue正式公测
新功能包括项目板和动态表格等,从而可以对issue和pull request进行过滤、排序和分组。
- 迭代支持:可以在项目表中创建「迭代」字段类型,以按冲刺和周期对问题进行分类和分组;
- 自定义字段:使用对团队重要的信息来计划和跟踪工作;
- 公共项目:可以将project在open或private之间切换。
GitHub讨论区升级
- 整合GitHub Actions:在Discussion和DiscussionComment webhook事件上触发action工作流程;
- 讨论标签:使用自定义标签对讨论进行分类和过滤;
- GitHub Mobile:随时随地使用GitHub Mobile应用进行讨论。
Codespaces云开发环境更新
GitHub Codespaces可以直接通过浏览器或Visual Studio Code启动新的开发环境。将创建一个新开发环境的时间从45分钟缩短到10秒。
- 更简单的开发环境创建:一键创建和更新devcontainer.json开发环境的代码定义;
- 在CLI中加入Codespaces:支持喜欢命令行和直接SSH访问开发环境的开发者;
- 一个全新的REST API:用编程方式管理Codespace将会变得更加容易;
- 转发端口的访问控制:分享转发的端口到Codespace,并将它们标记为公共、私人或与团队成员共享;
- 无缝访问GitHub Container注册表:自动验证存储在GHCR中的开发容器,无需提供个人访问令牌(PAT)。
GitHub Actions:CI/CD改善以及自动化
- 可重复使用的工作流:工作流可以在一个单一的存储库中维护,并与整个团队共享。通过标准化部署的工作流可以让团队执行最佳的实践,并实现更快速和稳健的进展;
- 自动扩展自托管的运行器的API:通过扩大或缩小fleet来管理自己托管的基础设施成本,以应对特定的工作负载;
- 基于Open ID Connect(OIDC)的认证支持:可以使用任何支持OIDC的云提供商(包括AWS、Azure、GCP)。
Command Palette更新
新的command palette将通过一系列新的命令对工作流进行优化,这些命令在GitHub上的任何地方都可以通过一个快捷键--macOS上的command k和Windows及Linux上的control k进入。
在那里可以快速导航到任何project、 repo、pull request或issue,并运行命令。
支持Ruby代码扫描
Ruby在开源社区最流行的编程语言中排名第10。
为了帮助更多的开源维护者和组织发现代码中的潜在漏洞,GitHub在支持代码扫描的CodeQL引擎中增加了对Ruby的支持。
CodeQL可以识别代码中的安全问题,以及流向漏洞位置的数据。其中包括SQL注入、正则表达式拒绝服务(ReDoS)、命令行注入等等。
GitHub代码扫描、CodeQL CLI和Visual Studio Code的CodeQL扩展中将默认支持Ruby。
除了Ruby以外,CodeQL支持的语言还包括C/C++、C#、Java、JavaScript/TypeScript、Python和Go。
GitHub企业云更新
GitHub企业云为企业用户提供完整的云计算DevOps平台。
- 企业管理用户(EMU)企业管理员可以拥有和管理身份的整个生命周期,同时改善配置和取消配置能力;
- 自定义仓库角色:GitHub管理员现在可以为团队、组织成员和外部合作者创建自定义权限级别。