跳到主要内容

配置方法

本篇介绍配置仓库的方法以及一些相关的配置项

你可以在管理面板点击 编辑配置 - 下拉选择 sync.yml 来在线编辑

主要配置项

名称必填类型默认值描述
namestring仓库名称
urlstring仓库远程地址
branchstring分支名称
enablebooleantrue是否启用该仓库配置
isPrivatebooleantrue是否为私有仓库
authSettingsobject私有仓库访问凭据配置
cronSettingsobject定时任务配置
  • cronSettings

    名称必填类型默认值描述
    updateTaskListbooleanfalse是否为该配置启用定时任务(默认不启用)
    scriptsPathstring定时文件路径(默认为仓库根目录)
    scriptsTypearray["js", "py", "ts"]定时文件格式(默认为三种类型的代码文件)
    whiteListstring定时文件匹配白名单(默认为空,即所有文件)
    blackListstring定时文件匹配黑名单(默认为空)
    autoDisablebooleanfalse是否自动禁用新的定时任务(默认不禁用)
    addNotifybooleantrue是否为新增定时任务推送通知提醒
    delNotifybooleantrue是否为过期定时任务推送通知提醒

    scriptsPath

    根据导入工作原理,匹配文件不会递归仓库下的所有目录,不设置该项或键值为空即代表默认根目录
    如果你想配置匹配指定目录下的文件则需要手动配置,多个路径需要使用空格来进行分割,仓库根目录用 / 来表示

    示例
    scriptsPath: "/ test"

    如上,最终会匹配位于仓库根目录和 test 子目录下的所有文件即 /arcadia/repo/<repo_dir>/*/arcadia/repo/<repo_dir>/test/*

    scriptsType

    你需要通过数组的形式进行配置,键名为文件后缀格式名称,默认(不填)为 Node.js、Python、TypeScript

    示例
    scriptsType:
    - js
    - py
    - ts

    工作原理是在读取该项配置时会使用 join() 方法将数组合并成一个用空格进行分割的字符串 js py ts,之后会通过遍历数组的方式转变成基于 grep 指令过滤规则的最终形态字符串 \.js$|\.py$|\.ts$

    whiteListblackList

    基于 grep 指令进行过滤(默认使用 -E 命令选项用于匹配多个表达式),支持正则表达式。如果要匹配多个表达式,那么根据该指令规范你需要使用 | 字符来进行分割,你可以先在本地调试好再进行配置,例如 ls | grep -E "<xxx>"。如果你想学习正则表达式和该指令你可以看看 《基础正则表达式》 这篇文章

    为什么需要使用单引号包裹键值?

    根据 YAML 语法规范,如果使用双引号来包裹键值那么会使转义字符生效,这样在读取与过滤规则相关的键值对时会出现问题

  • authSettings

    名称必填类型默认值描述
    methodboolean认证方式,需填写固定值 sshhttp
    sshConfigobjectSSH认证配置,详见下方
    httpAuthobjectHTTP认证配置,详见下方
    名称必填类型默认值描述
    aliasstring配置别名(此处每个仓库需要使用独特的名称,不支持中文字符,尽量不要使用特殊字符)
    hostNamestring主机地址,例如 github.com
    privateKeyPathstring私钥文件全局路径(建议放在用户配置文件目录下即 /arcadia/config/xxx

    SSH 配置需要用户自行上传私钥

    认证方式二选一,不要同时配置

填法示例

repo:
- name: "仓库1"
url: "https://gihub.com/User1/Repo1.git"
branch: "main"
enable: true
isPrivate: false
cronSettings:
updateTaskList: true
autoDisable: false
addNotify: true
delNotify: true
scriptsPath: ''
scriptsType:
- js
whiteList: ''
blackList: ''
- name: "仓库2"
url: "https://gitlab.com/User2/Repo2.git"
branch: "master"
enable: true
isPrivate: true
authSettings:
method: "ssh"
sshConfig:
alias: "Repo2"
hostName: "gitlab.com"
privateKeyPath: "/arcadia/config/repo2_rsa"

配置好后你需要执行 arcadia update repo 命令来使该配置生效

如何修改已配置仓库的远程地址?

针对同一个仓库直接修改 url 键值对即可,同一个仓库指的是两个不同的地址所指向的仓库拥有相同的用户名和仓库名,否则将被视为一个新的仓库

删除已配置的代码仓库

  1. 手动删除配置文件中的仓库配置
  2. 手动删除相关定时任务,你可以通过管理面板的定时任务页进行操作,在任务名称列设置过滤后批量删除
  3. 手动删除本地仓库文件,一般在 repo 目录下,文件夹名格式为 作者名_仓库名

关于定时任务

根据工作原理,你可能会遇到下方提到的特殊情况,你应该了解这些情况并且知道如何解决

  1. 修改定时过滤规则并不会影响已经添加的定时任务,所以如果有不合适的定时任务则需要你手动进行删除。

  2. 匹配定时任务仅支持处理基于文件增删变动的情况,这意味着如果在首次克隆仓库之后再配置启用仓库定时任务是无效的,因为没有检测到文件变动。不过你可以通过删除本地仓库目录来解决这个问题,这样在下次更新时就会因为克隆仓库而检测到文件变动,不过这样会覆盖用户关于导入定时任务的手动修改数据,所以最好从一开始就确定使用需求。

快速添加配置

详见 CLI 文档教程 添加代码仓库配置