• This repository has been archived on 15/Jan/2022
  • Stars
    star
    741
  • Rank 61,194 (Top 2 %)
  • Language
    JavaScript
  • License
    ISC License
  • Created about 7 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿค–โœ… GitHub App that creates new issues from actionable comments in your code.

This repository has been archived

See this discussion for details on why!


todo[bot]

A GitHub App built with Probot that creates new issues based on actionable comments in your code.

GitHub Actions status Codecov

Usage

Using todo should be really simple. Once you've installed it in your repository, simply push some code (to your default branch, a PR; doesn't matter). If the code you pushed includes one of the configured keywords (defaults are @todo and TODO), then the integration will create a new issue for you using the comment your wrote in your code!

If I pushed this:

/**
 * @todo Take over the world
 * @body Humans are weak; Robots are strong. We must cleanse the world of the virus that is humanity.
 */
function ruleOverPunyHumans () {
  // We must strategize beep boop
}

todo would create a new issue:

todo

Note: While the above example is in Javascript, todo has been tested in JS, Go, C, C#, Ruby, Bash and Python, and should work in any language.

Behaviour in pull requests

To reduce noise and keep your todo notes in the right context, todo comments made in commits that are part of a pull request will be converted into comments on that pull request. When the PR is merged, todo will determine which of those todos have yet to be resolved and open an appropriate issue.

Configuring for your project

There are a couple of configuration options in case you need to change the default behaviour.

Note: Adding a configuration file is completely optional. The defaults are likely fine for most projects, so you might not need to change them.

Add a todo object in your .github/config.yml file (and make the file if you don't already have it) like this:

todo:
  keyword: "@makeAnIssue"

Available options

Name Type Description Default
autoAssign boolean, string[], string Should todo automatically assign a user to the new issue? If true, it'll assign whoever pushed the code. If a string, it'll assign that user by username. You can also give it an array of usernames or false to not assign anyone. true
keyword string[] The keyword(s) to use to generate issue titles ['@todo','TODO']
bodyKeyword string[] If this is in the line right after the main keyword, it will become the generated issue body. ['@body','BODY']
blobLines number, boolean The number of lines of code to show, starting from the keyword. 5
caseSensitive boolean Should the keyword be case sensitive? false
label boolean, string[] Add a label to the new issue. If true, add the todo label. If false, don't add any label.You can also give it a label name or an array of label names. true
reopenClosed boolean If an issue already exists and is closed, reopen it. Note: if set to false, no new issue will be created. true
exclude string Exclude certain files and/or directories. Should be a valid regular expression. null

CLI

There is a CLI tool in this repo that you can use to verify that todo is working on your commits. This tool will not actually create new issues, but will let you know what issues a commit would create. Follow the setup instructions below, then run:

$ node ./bin/todo -o OWNER -r REPO -s SHA

You can also parse a local file instead of a sha:

$ node ./bin/todo -o OWNER -r REPO -f ./path/to/file.txt

Or check a merged PR:

$ node ./bin/todo -o OWNER -r REPO --pr NUMBER

Setup

# Install dependencies
npm install

# Run the bot
npm start

See docs/deploy.md if you would like to run your own instance of this app.

More Repositories

1

actions-toolkit

๐Ÿ›  A toolkit for building GitHub Actions in Node.js
TypeScript
928
star
2

create-an-issue

A GitHub Action for creating a new issue from a template file.
TypeScript
268
star
3

rss-to-readme

๐Ÿ“ก๐Ÿ“ A GitHub Action that updates a section of a README from an RSS feed.
TypeScript
221
star
4

is-sponsor-label-action

๐Ÿ’–๐Ÿ”– A GitHub Action that labels issues/PRs if the author sponsors the owner of the repo
JavaScript
221
star
5

activity-box

โšก๏ธ๐Ÿ“Œ Update a pinned gist to contain the latest activity of a user
JavaScript
212
star
6

upload-to-release

A GitHub Action that uploads a file to a new release.
Shell
177
star
7

build-and-tag-action

๐Ÿ“ฆ๐Ÿ”– A GitHub Action for publishing JavaScript Actions
TypeScript
94
star
8

gist-box

๐Ÿ“Œ๐Ÿ“‹ A helper class for updating a single-file Gist
TypeScript
84
star
9

action-badges

๐Ÿ›กโšก๏ธ A README badge service for GitHub Actions
JavaScript
61
star
10

ci-reporter

๐Ÿšง๐Ÿ“ GitHub App to show CI failure logs in PR comments
JavaScript
48
star
11

flintcms

๐Ÿ”ฅ๐Ÿ’ฅ A Node.js CMS
JavaScript
45
star
12

readme-box

๐Ÿ“โš™๏ธ Lil' helper for replacing a section of the contents of a README.
TypeScript
31
star
13

npm-audit-fix-action

[WIP] GitHub Action that opens a pull request following an npm audit fix
JavaScript
29
star
14

jasonet.co

๐Ÿ“ My personal site and blog
Nunjucks
27
star
15

readme-guestbook

A little web app that transforms a README into a guestbook.
HTML
21
star
16

good-first-pin

๐Ÿค–๐Ÿ“Œ A GitHub App built with Probot that rotates pinned issues based on Good First Issue labels
TypeScript
16
star
17

octokit-create-new-file

Creates a new file on a new branch and opens a new pull request.
JavaScript
15
star
18

action-record

๐Ÿ“‘ An "ORM" for storing data to a GitHub repository using GitHub Actions
TypeScript
13
star
19

smee-action

๐Ÿ”ด๐Ÿ“œ Use smee.io to debug GitHub Action runs
JavaScript
13
star
20

JasonEtco

11
star
21

slash-assign-action

A GitHub Action that listens for a `/assign` "command" and assigns the commenter to the issue.
TypeScript
10
star
22

github-user-status

A CLI for setting your GitHub user status
TypeScript
9
star
23

progressvg

๐Ÿ’ฏ% Progress bar as a service
JavaScript
6
star
24

push-to-gh-pages

๐Ÿ“ฆ๐Ÿ’ป A GitHub Action that pushes a directory to the gh-pages branch
Shell
6
star
25

test-selector

๐ŸŽญ๐Ÿ‘ˆ Prompts the user to run specific test suites in a project.
JavaScript
6
star
26

validate-semver-release

๐Ÿ”–๐Ÿค” GitHub Action that validates GitHub Releases against semantic versioning
JavaScript
6
star
27

emojify-everything

๐Ÿ†๐Ÿ”ฅ๐Ÿ’ฏ There aren't enough emojis in your websites. This extension fixes that.
JavaScript
6
star
28

signoff-commit-action

โœ๏ธ Action that creates an empty commit with a list of commits to "sign off on"
6
star
29

craft-emailwhitelist

๐Ÿ”’โœ‰ A whitelist of emails for Craft
PHP
5
star
30

dotfiles

๐Ÿ’ป Public repo for my personal dotfiles.
Shell
3
star
31

actions-counter

JavaScript
3
star
32

flintcms-site

๐Ÿ“™ Landing page & Docs for FlintCMS
CSS
2
star
33

nunjucks-octicons-extension

A Nunjucks extension for using Octicons
JavaScript
2
star
34

jolt

CSS
2
star
35

text-to-emoji

JavaScript
2
star
36

streamydoo

Easy to use stream request handler for your browser
JavaScript
1
star
37

hover

Example of WebSockets using hover behaviors
JavaScript
1
star
38

find-code

๐Ÿ”๐Ÿ’ป Find code snippets in your project
JavaScript
1
star
39

business-card

JavaScript
1
star
40

notarikon4d

JavaScript
1
star
41

tote

[WIP] ๐Ÿ‘œ tote, a markdown note-taking PWA
JavaScript
1
star
42

khaliun-batmunkh

JavaScript
1
star
43

url-shortener

๐Ÿ”— URL Shortener, built on a ๐Ÿš†
JavaScript
1
star
44

grunt-jekyll-post

Prompts questions in command line, then creates a Jekyll post template with the answers.
JavaScript
1
star
45

talks

A repo to store my conference talk slide decks
1
star
46

nunjucks-pre-lexer

๐Ÿค“ A tool for identifying and fetching the data that a Nunjucks template expects
TypeScript
1
star
47

notarikon

Notarikon means deriving a word from the first letter of each word in a sentence (using an anagram)
JavaScript
1
star
48

smee-client-rb

[WIP]: A programmatic client for Smee, in Ruby.
Ruby
1
star
49

dinner

๐Ÿฆƒ Cyberspace Thanksgiving Dinner, with all the people you'd expect.
JavaScript
1
star
50

nunjucks-await-filter

Brings async/await functions to your Nunjucks templates.
JavaScript
1
star
51

server-smee-action

An Action for Servers with Smee
TypeScript
1
star
52

a-learning-lab-course-template

The template repository for the a-learning-lab-course course on Learning Lab.
1
star
53

ondesign-xyz

JavaScript
1
star
54

revolution

JavaScript
1
star
55

personal-site

๐ŸŒˆ๐Ÿ‘Œ๐Ÿ˜ My personal website and portfolio
JavaScript
1
star
56

discord-namer

๐ŸŽฎ Changes my Discord nickname when I'm @-mentioned, using a random emoji.
JavaScript
1
star
57

github-bulk-transfer

Simple CLI utility to trigger bulk transfers of github repos through a headless browser
JavaScript
1
star