27 ΠΌΠ°ΠΉ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ 2.93.0 Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π°ΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° GitHub CLI, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° GitHub.
Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Go ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MIT.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ
Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ
- ΠΡΠΊΡΠΈΡΠ° ΠΈ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π² API Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ ΠΎΠ³Π»Π΅Π΄Π°Π»Π°ΡΠ° Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ TUF Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ gh attestation, gh release verify ΠΈ gh release verify-asset Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ gh Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 2.93.0 Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎ.
- ΠΡΠΊΡΠΈΡΠ° ΠΈ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π² API Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ ΠΎΠ³Π»Π΅Π΄Π°Π»Π°ΡΠ° Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ TUF Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ gh attestation, gh release verify ΠΈ gh release verify-asset Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ.
ΠΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ° 30 ΠΌΠ°ΠΉ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° GCLI, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ° API Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π° Ρ
ΠΎΡΡΠΈΠ½Π³ Π½Π° Git ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΏΡΠ΅Π³Π»Π΅Π΄ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅, Π΅ΡΠΈΠΊΠ΅ΡΠΈ ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΏΠΎ ΡΡΡ
, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° CI ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠΈΡΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ GitHub CLI, GCLI ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½Π΅ ΡΠ°ΠΌΠΎ API Π½Π° GitHub, Π½ΠΎ ΠΈ API Π½Π° Codeberg, Forgejo, Gitea, GitLab ΠΈ Bugzilla.
Π£ΡΠΈΠ»ΠΈΡΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD-2.
ΠΡΡΡΡΠ°Π½Π΅Π½ Π΅ ΡΡΠΈΠ²ΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ milestone Π² ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° issues Π·Π°
GitLab. Π ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ gcli URL Π°Π΄ΡΠ΅ΡΡΡ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΊΡΠΌ API Π½Π° GitLab ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ,
ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ.ΠΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΠ΅Π³Π° ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π½Π΅-Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π΅Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ forge:owner/repo. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
gcli issues gh:curl/curl
gcli pulls gl:gitlab-org/gitlab
gcli pipelines cb:forgejo/forgejoΠΠ³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈ: gh: (GitHub), gl: (GitLab) ΠΈ cb: (Codeberg). ΠΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» gcli ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
freebsd-bz {
apibase=https://bugs.freebsd.org/bugzilla
forge-type=bugzilla
}work-gl {
apibase=https://gitlab.example.com
forge-type=gitlab
}$ gcli issues freebsd-bz:"Base System/tests"
$ gcli pulls work-glb:acme-corp/frontendΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π·Π° Bugzilla ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΡΡΡ product/component Π²ΠΌΠ΅ΡΡΠΎ owner/repo.
ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ: issues, pulls, pipelines, ci, releases, forks, labels, milestones ΠΈ comment. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ»Π°Π³ΠΎΠ²Π΅ -t, -o ΠΈ -r Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ.
ΠΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° pipelines ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° βactionsβ Π½Π° GitHub. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, pipeline Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ monitor, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½ Π½Π°Π±ΠΎΡ ΠΎΡ CI ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΡΡ. ΠΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅Π½ Π΅ΠΌΡΠ»Π°ΡΠΎΡ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Xterm.
ΠΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ci Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ Π±Π΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΈ Π½Π΅ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru




