/meeting-maker

Create a meeting issue on a schedule

Primary LanguageJavaScriptISC LicenseISC

Schedule regularly occuring meetings via GitHub Issue

test js-standard-style

Schedule meetings via a GitHub Action. Creates issues based on a schedule and template.

Usage

name: Schedule team meetings
on:
  schedule:
    - cron: '0 0 * * * *'
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: wesleytodd/meeting-maker@v0
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        schedules: 2020-04-02T17:00:00.0Z/P1D

Inputs

The meeting schedule, issue, etc can be configured with inouts to this action.

  • token: (required) The token from the action for calling to the GitHub API.
  • schedules: (required) The ISO-8601 interval for the schedule. Default: ${now/P7D} seven days from now
  • createWithin: (required) The ISO-8601 duration for how soon before the meeting to create the issue. Default P7D
  • labels: Labels to create the issue with. Default: meeting
  • agendaLabel: Label to pull the agenda from. Default: meeting-agenda
  • issueTitle: Template string for issue title. Default: Meeting <%= date.toFormat('yyyy-MM-dd') %>
  • issueTemplate: The name of the issue template found in .github/ISSUE_TEMPLATE. Default: meeting.md

Default Issue Template

The default issue template can be seen here: wesleytodd#34

It is based off the one commonly used on across the Node.js Org, but any additions or improvements are welcome.

JS API Usage

The main logic of the module is also published to npm.

$ npm i @wesleytodd/meeting-maker
const maker = require('@wesleytodd/meeting-maker')

;(await () => {
  const issue = await maker.meetings..createNextMeeting(client, {
    owner: 'wesleytodd',
    repo: 'meeting-maker',
    schedules: []
  })
  console.log(issue) // the response from the GitHub api creating the issue
})()

Contributing

This package welcomes contributions. While the basic unit tests are runnable (npm t) Unfortunatly because it is requires access to the GitHub api it means you need to have a token with access to create the issues as part of the integration tests. To specify the key you need to create a personal access token and put it in a .env file as GITHUB_TOKEN=<TOKEN>. Then you can run npm run test:integration to run the main integration tests. To be honest this should probably be configurable, contributions welcome.