Skip to content

CI/CD Integration

Notebind integrates into CI/CD pipelines for automated document publishing. Push documentation on every commit, collect feedback, and pull it back into your workflow.

name: Publish docs to Notebind
on:
push:
branches: [main]
paths: ['docs/**/*.md']
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Notebind CLI
run: cargo install notebind
- name: Push changed docs
env:
NOTEBIND_API_KEY: ${{ secrets.NOTEBIND_API_KEY }}
run: |
notebind auth --token "$NOTEBIND_API_KEY"
for file in docs/*.md; do
notebind push "$file"
done
name: Check Notebind feedback
on:
schedule:
- cron: '0 9 * * 1-5' # Weekdays at 9am
jobs:
feedback:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install tools
run: cargo install notebind
- name: Check for unresolved feedback
env:
NOTEBIND_API_KEY: ${{ secrets.NOTEBIND_API_KEY }}
run: |
notebind auth --token "$NOTEBIND_API_KEY"
notebind list | jq -r '.[].id' | while read doc_id; do
comments=$(notebind comments "$doc_id" | jq 'length')
suggestions=$(notebind suggestions "$doc_id" | jq 'length')
if [ "$comments" -gt 0 ] || [ "$suggestions" -gt 0 ]; then
echo "Document $doc_id has $comments unresolved comments and $suggestions pending suggestions"
fi
done

If you prefer curl over the CLI:

- name: Push document via API
run: |
CONTENT=$(cat docs/readme.md | jq -Rs .)
curl -X POST https://notebind.com/api/documents \
-H "Authorization: Bearer ${{ secrets.NOTEBIND_API_KEY }}" \
-H "Content-Type: application/json" \
-d "{\"title\": \"README\", \"content\": $CONTENT}"
VariableDescription
NOTEBIND_API_KEYYour API key (store as a repository secret)
NOTEBIND_API_URLCustom API URL for self-hosted instances
  1. PR opened → agent generates docs → pushes to Notebind → shares link in PR comment
  2. Reviewer opens share link → leaves comments
  3. Agent polls for feedback → updates PR
  4. PR merged → final docs pushed to Notebind

Run a scheduled job that:

  1. Lists all documents
  2. Checks each for unresolved comments/suggestions
  3. Creates an issue or Slack message with the digest
Terminal window
# Accept all pending suggestions on a document
notebind suggestions DOC_ID | \
jq -r '.[] | select(.status == "pending") | .id' | \
while read sid; do
notebind accept DOC_ID "$sid"
done