在 tools 目录下有一个 oepkgs_djtools 脚本帮你快速的完成这个工作, 使用方法如下:
[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools initdb -d <oepkgs_database_file_path>
子命令为 initdb
此工具的工作流程如下:
通过提供的数据库文件路径创建空文件, 如果文件已经存在就立即错误退出。
通过以下操作创建数据库的 projects 和 users 空表来创建一个空白的启动数据库。
[oepkger@oepkgs-koji-hub ~]$ sqlite3 /mnt/storage/repodb/oepkgs.db
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
sqlite> CREATE TABLE projects (JOB_ID INTEGER PRIMARY KEY AUTOINCREMENT, JOB_NAME TEXT UNIQUE NOT NULL, SCM_REPO TEXT NOT NULL, BRANCH TEXT NOT NULL, PROJ_TOKEN TEXT, YUM_REPO TEXT, USER INTEGER, SCRATCH_BUILD INTEGER DEFAULT 1, WEBHOOK_URL TEXT NOT NULL, BUILD_TAG TEXT, OS TEXT, VERSION TEXT, BUILD_TYPE TEXT, PACKAGE_NAME TEXT);
sqlite> CREATE TABLE users (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT UNIQUE NOT NULL, EMAIL TEXT, API_TOKEN TEXT, USER_PUBKEY TEXT, REPO_PREFIX TEXT NOT NULL UNIQUE);
[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools import -t user -j users/e/eulerblade.json -d /mnt/storage/repodb/oepkgs.db
[euler_blade@samantha oepkgs_packages_configs]$ sqlite3 /mnt/storage/repodb/oepkgs.db
SQLite version 3.30.0 2019-10-04 15:03:17
Enter ".help" for usage hints.
sqlite> .header on
sqlite> .mode colum
sqlite> SELECT * FROM users;
ID NAME EMAIL API_TOKEN USER_PUBKEY REPO_PREFIX
---------- ---------- ---------------------------- ---------- ---------------------------------------- ----------------------------
1 eulerblade euler_blade@isrc.iscas.ac.cn E0230505E0D0D2948050CADD964617B09C96FB5E https://gitee.com/eulerblade
[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools passreset -j users/e/eulerblade.json -d /mnt/storage/repodb/oepkgs.db -p newpass
此步骤是因为目前通过 Jenkins cli 得到的用户 WebHook token 字符串与 Jenkins Web 页面上得到的 WebHook token 字符串不一致,临时加入的步骤,解决此问题后将不再使用。
管理员通过 Jenkins 访问模板 oepkgs_template 。如下图所示,点击 Generate ② 按钮,生成一个新的 WebHook token,记下 ① 中的字符串,并点击 Save ③ 按钮保存。
然后使用 oepkgs_djtools 的 hookset 子命令,保存到用户数据数据库。
$ ./oepkgs_djtools hookset -d path/to/database/file -u USERNAME -t TOKEN_STRING
Copyright © oepkgs.net All rights reserved.
版权所有 © oepkgs.net 保留所有权利
由中国科学院软件研究所、openEuler 社区共同发起并提供支持
Email: support(at)oepkgs.net