diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..3e2b6d10 Binary files /dev/null and b/.DS_Store differ diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..bb68b14a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,31 @@ +# Use the latest 2.1 version of CircleCI pipeline process engine. +# See: https://circleci.com/docs/reference/configuration-reference +version: 2.1 + +# Define a job to be invoked later in a workflow. +# See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#jobs-overview & https://circleci.com/docs/reference/configuration-reference/#jobs +jobs: + say-hello: + # Specify the execution environment. You can specify an image from Docker Hub or use one of our convenience images from CircleCI's Developer Hub. + # See: https://circleci.com/docs/guides/execution-managed/executor-intro/ & https://circleci.com/docs/reference/configuration-reference/#executor-job + docker: + # Specify the version you desire here + # See: https://circleci.com/developer/images/image/cimg/base + - image: cimg/base:current + + # Add steps to the job + # See: https://circleci.com/docs/guides/orchestrate/jobs-steps/#steps-overview & https://circleci.com/docs/reference/configuration-reference/#steps + steps: + # Checkout the code as the first step. + - checkout + - run: + name: "Say hello" + command: "echo Hello, World!" + +# Orchestrate jobs using workflows +# See: https://circleci.com/docs/guides/orchestrate/workflows/ & https://circleci.com/docs/reference/configuration-reference/#workflows +workflows: + say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow. + # Inside the workflow, you define the jobs you want to run. + jobs: + - say-hello \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..39bbd268 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,4 @@ +{ + "image": "mcr.microsoft.com/devcontainers/universal:2", + "features": {} +} diff --git a/README.md b/README.md index 1cff9f51..73918a7f 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,33 @@ Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premi For more information about how to use the GitHub Copilot CLI, see [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli). +## 🔌 Connect your tools + +Integrations turn GitHub Copilot CLI into a stronger source of truth around product development. Keep data in sync and reduce manual updates between tools. + +### Key integrations + +- [**Slack**](https://linear.app/settings/integrations/slack): Create issues from Slack messages and sync threads. +- [**GitHub**](https://linear.app/settings/integrations/github) / [**GitLab**](https://linear.app/settings/integrations/gitlab): Automate pull request and commit workflows while keeping issues synced both ways. +- [**Agents**](https://linear.app/integrations/agents): Deploy AI agents that work alongside your team. + +### Browse all integrations + +Discover 150+ available connections in the [Linear integration directory](https://linear.app/integrations), from support tooling (Intercom, Zendesk) to design platforms such as Figma. + +### Build with the Linear API + +If you need a custom workflow, you can build directly on the [Linear API](https://linear.app/developers), which is GraphQL-based and designed for automation. +## 🔌 Connect your tools mock + +For the Linear WWW-3 visual, open `connect-your-tools.html` in a browser to see the recreated "Connect your tools" gradient + icon composition. + + +## 🌐 Import your data mock + +For the Linear `WWW-4` visual, open `import-your-data.html` in a browser to see the recreated gradient hero, integration logos, and migration preview section. +For LIN-5 handoff and future link-development maintenance, use: `docs/lin-5-link-development-checklist.md`. + ## 📢 Feedback and Participation We're excited to have you join us early in the Copilot CLI journey. @@ -130,3 +157,11 @@ We're excited to have you join us early in the Copilot CLI journey. This is an early-stage preview, and we're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! Your insights are invaluable! Open issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! + +## 🎨 Design mock: "Connect your tools" + +A static recreation of the Linear-style integration visual from the `WWW-3` issue is available at: + +- `examples/connect-your-tools.html` + +Open it locally in a browser to preview the gradient background and icon lockup. diff --git a/changelog.md b/changelog.md index 4caea57f..749c12d6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## Unreleased + +- Complete LIN-5 with a link-development checklist and README handoff reference +- Add LIN-1 test follow-up note to complete Linear smoke test workflow + ## 0.0.369 - 2025-12-11 - Add support for GPT-5.2 diff --git a/connect-your-tools.html b/connect-your-tools.html new file mode 100644 index 00000000..190f80fb --- /dev/null +++ b/connect-your-tools.html @@ -0,0 +1,180 @@ + + + + + + Connect your tools + + + +
+ + +
+ + diff --git a/docs/dependency-audit.md b/docs/dependency-audit.md new file mode 100644 index 00000000..a9e882d4 --- /dev/null +++ b/docs/dependency-audit.md @@ -0,0 +1,100 @@ +# Dependency Graph Audit — copilot-cli + +## Scope & approach + +Audit này tập trung vào **dependency thể hiện trong source repo** (không bao gồm binary nội bộ của `copilot` do repo này không chứa mã nguồn implementation chính): + +- File manifest/dependency trong repo +- Lockfile hiện có +- Mức độ pin version +- Mức độ reproducible build + +## 1) Danh sách dependency hiện tại + +### 1.1 Runtime / install channel dependencies + +| Khu vực | Dependency | Vị trí | Kiểu pin | +|---|---|---|---| +| Cài đặt npm | `@github/copilot` | `README.md` | Không pin (latest hoặc tag prerelease) | +| Cài đặt Homebrew | `copilot-cli`, `copilot-cli@prerelease` | `README.md` | Theo formula/cask của brew, không pin theo commit trong repo này | +| Cài đặt WinGet | `GitHub.Copilot`, `GitHub.Copilot.Prerelease` | `README.md`, `install.sh` | Không pin phiên bản cụ thể mặc định | +| Cài đặt script trực tiếp | GitHub Release artifact `copilot-{platform}-{arch}.tar.gz` | `install.sh` | Mặc định lấy `releases/latest`; có hỗ trợ pin bằng `VERSION` | + +### 1.2 CI / automation dependencies + +| Khu vực | Dependency | Vị trí | Kiểu pin | +|---|---|---|---| +| GitHub Actions | `actions/github-script@v7` | `.github/workflows/close-single-word-issues.yml` | Pin theo major tag (movable) | +| GitHub Actions | `actions/stale@v9` | `.github/workflows/no-response.yml`, `.github/workflows/stale-issues.yml` | Pin theo major tag (movable) | +| GitHub Actions | `actions/create-github-app-token@v2` | `.github/workflows/winget.yml` | Pin theo major tag (movable) | +| CircleCI executor image | `cimg/base:current` | `.circleci/config.yml` | Floating tag | +| Dev container image | `mcr.microsoft.com/devcontainers/universal:2` | `.devcontainer/devcontainer.json` | Pin theo major tag (movable) | +| CLI tool trong workflow | `gh` CLI trên runner image | Nhiều workflow dùng `gh ...` | Phụ thuộc tool preinstalled của `ubuntu-latest` (floating) | +| CLI tool tải runtime | `wingetcreate` từ `https://aka.ms/wingetcreate/latest` | `.github/workflows/winget.yml` | Floating `latest` | + +## 2) Kiểm tra lockfile + +### Kết quả + +Không phát hiện lockfile cho các ecosystem phổ biến (`package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `go.sum`, `Cargo.lock`, v.v.). + +### Nhận định + +- Với trạng thái repo hiện tại (chủ yếu docs + script + workflow), việc không có lockfile cho app code là dễ hiểu. +- Tuy nhiên, phần automation vẫn phụ thuộc nhiều thành phần **floating** nên tính tái lập vẫn thấp dù không có package manager manifest truyền thống. + +## 3) Đánh giá pin version + +### 3.1 Điểm tốt + +- `install.sh` cho phép pin release qua biến `VERSION`. + +### 3.2 Rủi ro chính + +- Mặc định `install.sh` dùng `releases/latest` → khó tái lập giữa các lần cài. +- GitHub Actions pin theo `@v*` thay vì commit SHA → có rủi ro supply-chain nếu tag dịch chuyển hoặc action bị compromise. +- CircleCI `cimg/base:current` và GitHub runner `ubuntu-latest` là floating base environment. +- `wingetcreate/latest` được tải trực tiếp, chưa checksum/khóa phiên bản. + +## 4) Phân loại risk + +| Risk | Mức độ | Vì sao | +|---|---|---| +| Third-party action không pin SHA | High | Chuỗi CI có thể thay đổi mà không đổi code repo | +| Download artifact từ `latest` không verify checksum | High | Rủi ro integrity và khó rollback chính xác | +| Base image / runner floating (`current`, `*-latest`) | Medium | Build/test behavior có thể drift theo thời gian | +| Không có SBOM/dependency inventory tự động | Medium | Khó theo dõi thay đổi dependency và lỗ hổng | +| Không có lockfile ứng dụng | Low (hiện tại) | Repo không chứa app source/package manifest rõ ràng | + +## 5) Reproducible build assessment + +**Kết luận:** mức reproducibility hiện tại là **thấp đến trung bình** (đặc biệt ở pipeline automation), do phụ thuộc vào nhiều nguồn “latest/current/movable tags”. + +## 6) Đề xuất cải thiện (ưu tiên) + +### Ưu tiên 1 — Giảm rủi ro supply chain + +1. Pin toàn bộ `uses:` trong workflow sang **full commit SHA**. +2. Với `wingetcreate`, pin bản phát hành cụ thể thay vì `latest` + verify checksum/signature. +3. Trong `install.sh`, thêm khuyến nghị rõ ràng: production nên set `VERSION` cố định và (nếu có thể) verify checksum release asset. + +### Ưu tiên 2 — Tăng reproducibility môi trường CI + +1. Tránh `cimg/base:current`, pin image digest/tag cố định. +2. Đánh giá thay `ubuntu-latest` bằng version cụ thể ở workflow cần tính ổn định cao. + +### Ưu tiên 3 — Quản trị dependency liên tục + +1. Bật Dependabot cho GitHub Actions updates. +2. Tạo định kỳ báo cáo dependency/SBOM cho automation assets. +3. Thêm checklist “dependency pinning” vào PR template hoặc repo policy. + +## 7) Mapping theo acceptance criteria + +- [x] Có danh sách dependency +- [x] Có phân loại risk +- [x] Có đề xuất cải thiện + +## Reference note + +Tham chiếu best practice từ GitHub Docs: pin action theo full-length commit SHA để giảm rủi ro mutable tags. diff --git a/docs/lin-5-link-development-checklist.md b/docs/lin-5-link-development-checklist.md new file mode 100644 index 00000000..32776d6e --- /dev/null +++ b/docs/lin-5-link-development-checklist.md @@ -0,0 +1,42 @@ +# LIN-5 Link Development Checklist + +This guide closes **LIN-5** and gives a practical checklist for link-related development so future updates are consistent and easy to maintain. + +## 1) Source references + +- Jira dashboard for tracking: + `https://nguyencuong2509-1772060629335.atlassian.net/jira/dashboards/10000` +- Local mock reference in this repository: + - `examples/connect-your-tools.html` + - README section: **Connect your tools mock** + +## 2) Recommended local workflow + +1. Create a short branch name tied to the issue (for example: `lin-5-link-check`). +2. Update docs and mock files together so links and descriptions stay aligned. +3. Verify every added/updated URL is: + - reachable, + - using HTTPS, + - and written once in canonical format. +4. Validate markdown formatting and ensure changed files are non-empty. +5. Add a short changelog note under `Unreleased` when user-visible docs are updated. + +## 3) Done criteria for link-related tasks + +A LIN-5 style “link check & finish” task is done when all items below are true: + +- [ ] Link targets are correct and use final URLs. +- [ ] README points to the latest relevant local doc or mock. +- [ ] Supporting doc explains purpose, maintenance notes, and where to extend. +- [ ] Changelog contains one concise completion note. +- [ ] Basic repository checks pass (`git diff --check`, file presence/non-empty checks). + +## 4) Maintenance notes + +- Prefer repository-relative references for local files (`docs/...`, `examples/...`) over repeating long explanations. +- Keep one checklist doc per issue when the change is process/documentation oriented. +- If links change in future issues, update this checklist and README in the same PR. + +--- + +If this file is updated later, keep the structure above so contributors can quickly verify “what to check” and “what marks the task complete.” diff --git a/docs/repo-capability-analysis.vi.md b/docs/repo-capability-analysis.vi.md new file mode 100644 index 00000000..4a90d04b --- /dev/null +++ b/docs/repo-capability-analysis.vi.md @@ -0,0 +1,108 @@ +# Phân tích năng lực repository `copilot-cli` + +## 1) Tổng quan nhanh + +Repository hiện tại **đóng vai trò public distribution repo** cho GitHub Copilot CLI hơn là nơi chứa toàn bộ source code ứng dụng. Dấu hiệu: + +- README tập trung vào giá trị sản phẩm, cách cài đặt và cách sử dụng cho người dùng cuối. +- Có script cài đặt đa nền tảng (`install.sh`) để tải binary từ GitHub Releases. +- Có changelog chi tiết theo phiên bản để truyền thông tính năng và bản vá. +- Chưa thấy cấu trúc mã nguồn ứng dụng (ví dụ `src/`, `package.json`, test suite). + +=> Vì vậy, năng lực chính của repo là: **phân phối (distribution), tài liệu hóa (documentation), và trải nghiệm cài đặt nhanh**. + +--- + +## 2) Năng lực hiện có + +### 2.1. Năng lực phân phối và cài đặt + +- Hỗ trợ cài đặt qua nhiều kênh: `winget`, `brew`, `npm`, và shell installer. +- Shell installer tự nhận diện hệ điều hành, kiến trúc CPU, tải artifact phù hợp. +- Cho phép cài bản cụ thể qua biến môi trường `VERSION`. +- Cho phép tùy biến thư mục cài bằng `PREFIX`, có xử lý root/non-root. + +**Đánh giá:** tốt cho onboarding người dùng mới, giảm ma sát triển khai trên đa môi trường. + +### 2.2. Năng lực tương thích nền tảng + +- README nêu rõ hỗ trợ Linux/macOS/Windows. +- `install.sh` bao phủ Darwin/Linux; nhánh còn lại fallback cài qua `winget` cho Windows. + +**Đánh giá:** bao phủ tốt nhóm OS phổ biến cho developer tooling. + +### 2.3. Năng lực truyền thông sản phẩm + +- README trình bày rõ proposition: terminal-native, GitHub integration, agentic workflow, MCP extensibility. +- Changelog dày và đều theo phiên bản, cho thấy nhịp phát hành nhanh và liên tục cải tiến. + +**Đánh giá:** rất tốt ở mức “go-to-market docs” và minh bạch tiến hóa sản phẩm. + +### 2.4. Năng lực CI trong repo + +- Có cấu hình CircleCI nhưng hiện chỉ là job “Say hello” (mức tối thiểu). + +**Đánh giá:** hiện tại **gần như chưa có CI kiểm chứng chất lượng** ở chính repository này. + +--- + +## 3) Hạn chế / khoảng trống + +1. **Thiếu code implementation trong repo** + - Không có đủ thành phần để đánh giá sâu về kiến trúc nội bộ, chất lượng code, test coverage, bảo mật runtime. + +2. **CI quality gates còn rất mỏng** + - Pipeline hiện chưa chạy lint/test/security scan cho script và docs. + +3. **Thiếu chuẩn đóng góp cụ thể cho repo public-facing** + - Chưa thấy `CONTRIBUTING.md`, issue template, PR template. + +4. **Script installer có thể tăng cường thêm hardening** + - Hiện đã có kiểm tra tarball hợp lệ; nhưng chưa thấy checksum/signature verification của artifact. + +--- + +## 4) Mức trưởng thành hiện tại (đề xuất) + +- **Distribution Maturity:** 4/5 +- **Documentation Maturity:** 4/5 +- **Engineering Transparency (source/test/quality):** 2/5 (do không phải repo source đầy đủ) +- **Repository Governance (contribution standards):** 2.5/5 + +Tổng quan: repo phù hợp mục tiêu phân phối public preview, nhưng chưa tối ưu cho vai trò “engineering repository” theo nghĩa truyền thống. + +--- + +## 5) Đề xuất hoàn chỉnh (ưu tiên theo tác động) + +## Ưu tiên cao (Quick wins) + +1. **Nâng cấp CI cho chính repo này** + - Thêm job kiểm tra shell script (`shellcheck`), markdown link check, và format/lint cơ bản. + - Mục tiêu: tránh regression ở tài liệu và installer. + +2. **Thêm tài liệu đóng góp tối thiểu** + - `CONTRIBUTING.md` (quy trình issue/PR, quy ước changelog, cách test installer local). + - PR template để chuẩn hóa mô tả thay đổi. + +3. **Tăng độ tin cậy installer** + - Thêm checksum verification (SHA256) cho artifact trước khi giải nén. + +## Ưu tiên trung bình + +4. **Tài liệu vận hành phát hành (release playbook)** + - Mô tả quy trình publish artifact + cập nhật changelog + smoke test đa nền tảng. + +5. **Bổ sung FAQ vận hành thực tế** + - Lỗi PATH, lỗi quyền ghi, lỗi proxy/network enterprise, lỗi token/quota. + +## Ưu tiên dài hạn + +6. **Nếu phù hợp chiến lược public:** thêm “kiến trúc mức cao” + - Một sơ đồ/section giải thích thành phần chính CLI (UI loop, tool harness, MCP bridge, auth flow) ở mức không lộ chi tiết nội bộ. + +--- + +## 6) Kết luận + +Repo hiện có năng lực mạnh về **phân phối công cụ CLI cho người dùng cuối**, truyền thông rõ và cập nhật đều. Để “hoàn chỉnh” hơn theo góc độ engineering repository, nên tập trung bổ sung **quality gates cho installer/docs**, **chuẩn đóng góp**, và **hardening quy trình phát hành**. diff --git a/examples/connect-your-tools.html b/examples/connect-your-tools.html new file mode 100644 index 00000000..5bf3f358 --- /dev/null +++ b/examples/connect-your-tools.html @@ -0,0 +1,205 @@ + + + + + + Connect your tools + + + +
+ + +
+ + +
+ + diff --git a/import-your-data.html b/import-your-data.html new file mode 100644 index 00000000..ed473cd7 --- /dev/null +++ b/import-your-data.html @@ -0,0 +1,149 @@ + + + + + + Import your data + + + +
+ +
+ +
+

Import your data

+

Sync data between Linear and your other tools.

+ + + +
+ Linear migration workflow +
+
+ +