Home

Awesome

<p align="center"> <img width="450" alt="image" src="https://user-images.githubusercontent.com/41723241/200609689-833f5901-70de-4ba3-aa6f-7a906aa35163.png"> <h3 align="center">date-box</h3> <p align="center">🗓 Update a pinned gist to contain your anniversaries and countdown days (or hours)</p> </p>

Node.js CI Update gist with Date GitHub release (latest SemVer) GitHub release (latest SemVer including pre-releases) GitHub commits since latest release (by SemVer including pre-releases) GitHub


📌 This project is inspired by waka-box and lang-box.

📌 For more pinned-gist projects like this one, check out: https://github.com/matchai/awesome-pinned-gists.

Example gist: https://gist.github.com/kf-liu/7de2a55824ec5e8a78ebc3c57e4ca82b

Setup

Prep work

  1. Create a new public GitHub Gist (https://gist.github.com)
  2. Create a token with the gist scope and copy it. (https://github.com/settings/tokens/new)

Github action only

You can use it directly in github action of an existing repository without cloning a new repository. Here's how to use it in a .yml file in .github/workflows directory.

steps:
  - uses: actions/checkout@master
  - name: Update gist
    uses: kf-liu/date-box@master
    env:
      TYPE: DAY  
      GH_TOKEN: ${{ secrets.GH_TOKEN }}
      GIST_ID: 7de2a55824ec5e8a78ebc3c57e4ca82b
      RECORDS: "0 * * * 0,6 _ WEEKEND | 0 0 10 * * _PAYDAY | 2022-10-22 _ INIT DATE-BOX | 0 * 28 12 * _ MY BIRTHDAY"

env is configured in the same way as below (Project setup).

Project setup

You can also use and modify it in a new repository. Here's how to use it.

  1. Fork this repo

  2. Edit the environment variable in .github/workflows/schedule.yml:

    • GIST_ID: The ID portion from your gist url: https://gist.github.com/kf-liu/7de2a55824ec5e8a78ebc3c57e4ca82b.
    • RECORDS: Your anniversary and countdown days. (The format is below. (Records format))
  3. Go to the repo Settings > Secrets

  4. Add the following environment variables:

    • GH_TOKEN: The GitHub token generated above.

Records format

((cron|moment)( _ (event))? | )|*(cron|moment)( _ (event))?
    |     |     |     |     |
    |     |     |     |     |
    |     |     |     |     +- - - ' | ': record separator
    |     |     |     |
    |     |     |     +- - - - - - (event): what you want to record
    |     |     |
    |     |     +- - - - - - - - - ' _ ': the time and event separator
    |     |
    +- - -+- - - - - - - - - - - - (time): when you want to record

Time format

Currently, two formats are supported: cron (for loop event) and moment (for single event).

One record

One record consists of one time and one event, and thay are connected by _ (a space, an underscore, and a space). Each record will be displayed as a line in your gist.

e.g.

Of course, event is not required, you can just give the time. (_ is not required as well).

Multiple records

This is the final format of records: Connect a series of records with | (a space, an vertical bar, and a space).

e.g. 0 * * * 0,6 _ WEEKEND | 0 0 10 * * _ PAYDAY | 2022-10-22 _ CREATE DATE-BOX | 0 * 28 12 * _ MY BIRTHDAY.

Ideas to be continue


You are the lucky visitor here! Thank you for your 👀attention and ✨star!