cli / cli/cli

Supports installing GitHub CLI via DEB822 format

Open
#13,564 1 comment 1 reaction 0 assignees View on GitHub
enhancement packaging
Dominant language
Go
Stars
46.3k
Forks
9k
Avg merge
2d 9h
Merged PRs (30d)
89

Description

### Describe the feature or problem you’d like to solve

A clear and concise description of what the feature or problem is.

- I personally expect support for installing GitHub CLI via the DEB822 format on `Ubuntu 24.04`. Currently, the outdated `/etc/apt/sources.list.d` is still being used for https://github.com/cli/cli/blob/v2.93.0/docs/install_linux.md#debian . See https://discourse.ubuntu.com/t/spec-apt-deb822-sources-by-default/29333 .

```bash
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& sudo mkdir -p -m 755 /etc/apt/sources.list.d \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
```

- A notable feature of the DEB822 format compared to `/etc/apt/sources.list` is its friendliness towards `Here Documents`. I'll use a configuration change in Docker Engine as an example.
- For `/etc/apt/sources.list`,
```bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
- For DEB822 format,
```bash
sudo tee /etc/apt/sources.list.d/docker.sources <

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.