
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
This is a Slack bot that asks people about KPIs
Check out the announcement post on our tech blog.
bash$ npm install $ ./node_modules/typescript/bin/tsc
To run the bot you'll need:
https://docs.google.com/spreadsheets/d/ in the URL of your Google SpreadsheetThen you can run the bot by passing the above with env vars:
bash$ AUTH_JSON=./xxx.json SLACK_TOKEN=XYZ SPREADSHEET_ID=ABC \ node build/index.js
The AUTH_JSON variable is only required if your spreadsheet is private.
Remember to share read/write access on the spreadsheet to the service account email that you created.
In case you're running the bot without authentication (i.e. without setting AUTH_JSON),
you'll have to publish the spreadsheet to the web (File > Publish to the Web).
You can find https://www.npmjs.com/package/google-spreadsheet#unauthenticated-access-read-only-access-on-public-docs.
The Heroku deploy button currently only works for public spreadsheets that don't require authentication.
https://www.herokucdn.com/deploy/button.svg](https://heroku.com/deploy?template=https://github.com/measurence/kippino/tree/master)
Never heard of Heroku? Here's how to install it: [***]
At start, the bot will create the KPIs and Data worksheets if they don't exist yet.
The KPIs worksheet is where you put the KPIs you want to track. Each KPI must have the following attributes:
name: an alphanumeric unique identifier for the KPIquestion: this is the text that gets used to create the question together with the period (for instance if the question field is How many customer signed up and the period is May 1st, 2016, then the bot will ask How many customer signed up on May 1st, 2016?)owner-slack: the Slack username of the user that will be asked about this KPI (this may be different from the name that you see in the chat, you can look up the username on the Slack profile of the user)frequency: how often to collect the value of this KPI (daily, weekly, monthly)since: the date (YYYY-MM-DD) since you want to track this KPI - in case of weekly KPIs it must be the Monday of that week, in case of monthly KPIs it must be the 1st day of that month.kippino-enable: set this to true or yes if you want to enable this KPI.The Data worksheet is where Kippino puts the values collected from your team. Each data point has the following attributes:
timestamp: ISO formatted timestamp for when the value was capturedkpi: the KPI namevalue: the KPI valuefor: the date associated to the period that this value refers to (same convention used by the since attribute)source: the user that provided this valueThe bot accepts the following commands:
help provides a brief description of the bot and the list of commandssync KPIs reloads the list of KPIs (this is also done every hour)sync users reloads the list of Slack users (this is also done every hour)list KPIs lists the configured KPIspending lists the users that have pending questions (i.e. the bot asked them for a KPI but they didn't respond yet)You can run Kippino via Docker, there's already a https://hub.docker.com/r/measurence/kippino/ or you can build your own from the provided Dockerfile.
bash$ docker run \ -v ./auth.json:/auth.json \ -e AUTH_JSON=/auth.json \ -e SLACK_TOKEN=xyz \ -e SPREADSHEET_ID=abc \ --name kippino measurence/kippino
You can easily deploy Kippino on a Kubernetes cluster with the following config. The authentication JSON and the Slack token should be configured as secrets.
yaml--- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kippino labels: app: kippino spec: strategy: type: Recreate template: metadata: name: kippino labels: app: kippino spec: volumes: - name: kippino-google-auth secret: secretName: "kippino-google-auth" containers: - image: "measurence/kippino:latest" name: kippino volumeMounts: - name: "kippino-google-auth" mountPath: "/kippino-google-auth/" readOnly: true env: - name: SLACK_TOKEN valueFrom: secretKeyRef: name: kippino key: "slack-token" - name: SPREADSHEET_ID value: "XYZ" - name: AUTH_JSON value: "/kippino-google-auth/auth.json" resources: requests: cpu: 0.1 memory: "256Mi" limits: cpu: 0.1 memory: "256Mi"
Currently the bot is quite stupid and it will start asking questions as soon as a new day starts in the bot timezone.
It will also keep waiting for an answer "forever", it doesn't keep "nudging" people until they respond.
Make sure that your spreadsheet is configured in the US locale since the bot uses
Javascript's parseFloat to parse numbers in the US format (using . as decimal
separator).
Dates in the spreadsheet must be formatted as YYYY-MM-DD.
For weekly KPIs, the since field must be set to the Monday of the week you want to start collecting the KPI.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务