Skip to content

reposition is a command line tool to send a repository list to Notion database.

License

Notifications You must be signed in to change notification settings

hankei6km/reposition

Repository files navigation

reposition

reposition is a command line tool to send a repository list to Notion database.

Requirement

  • GitHub CLI with authenticated to GitHub
  • Notion Database
  • Notion Integration

Install

npm install -g @hankei6km/reposition

Setup

Create a database with following properties in Notion workspace.

name type
title title
isPrivate checkbox
name text
owner text
url url
description text
repositoryTopics multi_select
createdAt date
updatedAt date
pushedAt date

Usage

$ export REPOSITION_API_KEY=<Integration API KEY>
$ export REPOSITION_DATABASE_ID=<Database Id>
$ gh repo list \
  --json nameWithOwner,isPrivate,name,owner,url,description,repositoryTopics,createdAt,updatedAt,pushedAt,openGraphImageUrl \
  --jq .[] | reposition

Add -L option to gh if you hava many repositories.

$ gh repo list -L 50 \
  --json nameWithOwner,isPrivate,name,owner,url,description,repositoryTopics,createdAt,updatedAt,pushedAt,openGraphImageUrl \
  --jq .[] | reposition

When updating the database, use the --filter-time-range option to reduce the number of repositories to be send.

$ gh repo list -L 50 \
  --json nameWithOwner,isPrivate,name,owner,url,description,repositoryTopics,createdAt,updatedAt,pushedAt,openGraphImageUrl \
  --jq .[] | reposition --filter-time-range 172800 # repositories updated(pushed) within 2 days.

Note: reposition does not have the function to remove pages from the database.

License

MIT License

Copyright (c) 2023 hankei6km