github-projectv2-csv-exporter
v1.1.11
Published
Export GitHub project cards as CSV files. Uses the ProjectV2 API.
Downloads
53
Maintainers
Readme
→ Open The GitHub Project Exporter ←
Documentation
Read the official documentation.
Overview
This export tool allows you to export GitHub projects as a CSV.
Projects must exist within the ProjectV2 API. For exporting "classic" GitHub projects (older implementation), you can try using this exporter by Stephen Wu.
Features include:
- ⬇️ Export all GitHub project cards as a CSV.
- View your GitHub cards in your spreadsheet software of choice.
- 🎛️ Filter issues by status, customize fields, and exclude closed issues.
- Only export cards with the statuses you specify, with options to choose custom fields, or hide closed issues.
- 🚀 Easy to use
- Features a simple and easy to use web UI. Configure once. Click once to export.
Donate
If this project helped you, please consider buying me a coffee or sponsoring me. Your support is much appreciated!
Table of Contents
- → Open The GitHub Project Exporter ←
- Documentation
- Overview
- Donate
- Table of Contents
- Installation
- Usage
- TypeScript
- Icon Attribution
- Contributing
- ⭐ Found It Helpful? Star It!
- License
Installation
npm i github-projectv2-csv-exporter
Usage
Via Website
Go here: GitHub Project Exporter.
This is a static Storybook site hosted on GitHub Pages.
Via Local Storybook Site
If you'd like, you can run the project locally.
Clone the project
git clone [email protected]:justinmahar/github-projectv2-csv-exporter.git
And navigate to the project:
cd github-projectv2-csv-exporter
Install dependencies
npm install
Start the project
npm start
Open localhost:6006
Once the Storybook server starts, a development server will be running locally.
Open the project here: localhost:6006
Via npm
If you want to fetch the data yourself, you can install this package via npm and use the exported fetch functions.
Note: Your access token must include the following scopes:
repo
,read:org
,read:user
,read:project
fetchProjects
fetchProjects = async (login: string, isOrg: boolean, token: string): Promise<Projects>
Provide an org or username and the token. The promise will be resolved with a Projects
instance.
Example
import { fetchProjects } from 'github-projectv2-csv-exporter';
// ...
fetchProjects('my-org', true, 'abc123mytoken').then((orgProjects) =>
console.log(
'Loaded projects:',
orgProjects
.getProjects()
.map((p) => `${p.getTitle()} (number ${p.getProjectNumber()} | ${p.getTotalItemCount()} items)`)
.join(', '),
),
);
fetchProjectItems
fetchProjectItems = async (login: string, isOrg: boolean, projectNumber: number, token: string, progress?: (loaded: number, total: number) => void): Promise<ProjectItem[]>
Provide an org or username, project number, and token. Optionally, you can provide a progress
function that will be called periodically with the number of items loaded, and the total expected.
The promise will be resolved with an array of ProjectItem
instances.
Example
import { fetchProjectItems } from 'github-projectv2-csv-exporter';
// ...
const projectNumber = loadedProject.getProjectNumber();
fetchProjectItems('my-org', true, projectNumber, 'abc123mytoken', (loaded, total) =>
console.log(`Progress: ${Math.round((loaded / total) * 100)}%`),
).then((items) => console.log('Loaded', items.length, 'items'));
TypeScript
Type definitions have been included for TypeScript support.
Icon Attribution
Favicon by Twemoji.
Contributing
Open source software is awesome and so are you. 😎
Feel free to submit a pull request for bugs or additions, and make sure to update tests as appropriate. If you find a mistake in the docs, send a PR! Even the smallest changes help.
For major changes, open an issue first to discuss what you'd like to change.
⭐ Found It Helpful? Star It!
If you found this project helpful, let the community know by giving it a star: 👉⭐
License
See LICENSE.md.