[Feature][config-ui] Manage teams, members and account mapping from the UI
メンテナーはふだん 3 日以内に返信
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
調査の方向性
Start by reading the config-ui pages and API client, then inspect the existing org plugin CSV endpoints for teams, users, and account mappings. Build a Teams page with three tabs that loads and saves each full CSV, including parent team selection, member team multi-select, and read-only account details with user mapping. Done when each tab round-trips its data and warns that saving replaces the full file; the issue names no files or tests.
索引モデルが issue の本文から書いたものです。
説明
Search before asking
- I had searched in the issues and found no similar feature requirement.
Use case
As an engineering manager, I want to define my teams and their members in DevLake so that the team dashboards show real numbers.
DevLake ships several dashboards that slice metrics by team:
- DORA (by Team)
- Engineering Throughput and Cycle Time - Team View
- GitHub Copilot Adoption by Team / by Team and User
All of them join through teams, team_users and user_accounts.
Description
Those three tables can only be populated through the org plugin's CSV endpoints:
| Endpoint | Columns |
|---|---|
GET/PUT /plugins/org/teams.csv |
Id, Name, Alias, ParentId, SortingIndex |
GET/PUT /plugins/org/users.csv |
Id, Name, Email, TeamIds (;-separated) |
GET/PUT /plugins/org/user_account_mapping.csv |
every account, with its mapped UserId |
config-ui references none of them. There is no page, button or upload control anywhere in the UI for team data, so the only way to set it up is to hand-craft a multipart upload:
curl -X PUT -F "[email protected]" http://localhost:8080/plugins/org/teams.csv
The practical effect is that on a fresh install every team dashboard renders blank, with no indication in the UI of what is missing or how to supply it. A new user who opens "DORA (by Team)" sees empty panels and no path forward. It is also easy to mistake the ?fake_data=true sample rows ("Tyrone K. Cummings") for the dashboards being built on placeholder data.
Proposed solution
A Teams page in config-ui with three tabs, built on the endpoints that already exist — no backend change:
- Teams — editable table; parent team chosen from a select of the other teams rather than typed as a raw id.
- Members — editable table; team membership as a multi-select that serialises back to the
;-delimitedTeamIdscell. - Account Mapping — every collected tool account with identity columns read-only and a select to map it to a member. Accounts come from data collection, so rows are not addable or removable here.
Each tab round-trips a whole CSV file, which matches the endpoints' existing delete-all-then-save behaviour; the page should say so, since a save overwrites rows added elsewhere since it loaded.
Possible follow-up
Per-row REST CRUD on the org plugin (POST/PATCH/DELETE for a single team or user) would remove the full-file replace and its clobbering window. That is a backend change and seems worth keeping separate from the UI work.
Related issues
None found.
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct
- 主要言語
- Go
- スター
- 3.2k
- フォーク
- 819
- 平均マージ
- 3日 6時間
- マージ済み PR(30日)
- 40
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/devlake のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
メンテナーはふだん 3 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
apache/devlake#9195 · リアクション 1 件 ·
メンテナーはふだん 3 日以内に返信
-
[Bug][Migration] modify refs id length fails on MySQL Group Replication and leaves refs without a primary key対応中かも @tpam28 が 5 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
apache/devlake#9194 · リアクション 1 件 · 担当者 1 名 ·
メンテナーはふだん 3 日以内に返信
-
[Bug][jenkins] Incremental collection skips the stages of builds that finish after the next sync対応中かも @pballester が 14 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
apache/devlake#9177 · コメント 2 件 ·
メンテナーはふだん 3 日以内に返信
似ている issue
-
unbounded value for n in `/v1/logs` can panic/OOM対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンsmall item
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
canonical/pebble#1127 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
[schema-coverage] elasticstack_elasticsearch_synonym_set (data source)対応中かも @github-actions が今日担当しました。 オープンacceptance-tests phase-coding schema-coverage testing triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 81/100
elastic/terraform-provider-elasticstack#5211 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 89/100
open-policy-agent/opa#9366 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
defect
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
nats-io/nats-server#8752 ·
メンテナーはふだん 1 日以内に返信
-
enhancement needs-acceptance wg/router-models-inference-runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
vllm-project/semantic-router#5015 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信