Skip to content

A GitHub Action that automatically updates your README file with the latest activity from your GitHub account. Customize the displayed events, set a limit on the number of events, and ignore specific event types. Ideal for keeping your personal README file current with recent contributions and changes.

License

Notifications You must be signed in to change notification settings

TheDanniCraft/activity-log

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Activity Log

activity log

made with love nodejs Count of Action Users CodeFactor Grade All Contributors

A GitHub Action that automatically updates your README file with the latest activity from your GitHub account. Customize the displayed events, set a limit on the number of events, and ignore specific event types. Ideal for keeping your personal README file current with recent contributions and changes.

🛠️Features

  • Customizable Event Limits
  • Event Filtering
  • Flexibility with Inputs
  • Customizable
  • Dry Run Mode (preview changes without committing)
  • Custom Commit Messages
  • Markdown or HTML Output Styles
  • Hide Details on Private Repositories

✍️ Example

  1. 🚀 Committed to TheDanniCraft/clipify
  2. 🚀 Committed to TheDanniCraft/clipify
  3. 🚀 Committed to TheDanniCraft/clipify
  4. 🚀 Committed to TheDanniCraft/clipify
  5. 🚀 Committed to TheDanniCraft/clipify
  6. 🚀 Committed to TheDanniCraft/clipify
  7. 🚀 Committed to TheDanniCraft/clipify
  8. 🚀 Committed to TheDanniCraft/clipify
  9. 🚀 Committed to TheDanniCraft/quickdrop
  10. ❌ Closed PR #24 in TheDanniCraft/clipify

📖Usage

1. Add Sections to README.md

Include the following placeholders in your README.md where you want the activity log to appear:

<!--START_SECTION:activity-->
<!--END_SECTION:activity-->

For a reference example, you can view this sample README.md.

2. Create a Personal Access Token

Quick Setup (Recommended)
  1. To create a personal access token with the necessary permissions, click this link to create a new token. This link pre-fills the token description and scopes for your convenience.
  2. On the token creation page, review the pre-filled data and set the expiration date to "Never".
  3. Click "Generate token" and copy the token (be sure to save it as you won’t be able to see it again).
Manual Setup
  1. Go to your GitHub Personal Access Tokens settings.
  2. Click on "Generate new token".
  3. Provide a descriptive name for the token, such as Github Activity Log (TheDanniCraft/activity-log).
  4. Select the repo scope (recommended if you want private repo activity to show up).
  5. Set the expiration date to "Never".
  6. Click "Generate token" and copy the token (be sure to save it as you won’t be able to see it again).

3. Add the Token as a Repository Secret

  1. Navigate to your GitHub repository.
  2. Go to "Settings" > "Secrets and variables" > "Actions".
  3. Click "New repository secret".
  4. Name the secret (e.g., TOKEN).
  5. Paste the personal access token into the value field.
  6. Click "Add secret".

4. Create the Workflow File

Create a new file in your repository under .github/workflows/, for example, activity-log.yml. Add the following content to this file:

# .github/workflows/update-activity.yml:

name: Update GitHub Activity

on:
  schedule:
    - cron: "*/30 * * * *" # Runs every 30 minutes
  workflow_dispatch: # Allows manual triggering

jobs:
  update-activity:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Update GitHub Activity
        uses: TheDanniCraft/activity-log@v1
        with:
          GITHUB_USERNAME: "thedannicraft"
          GITHUB_TOKEN: ${{ secrets.TOKEN }} # Ensure this matches the secret name in repository settings

Take a look at all possible Inputs for customization

The above job runs every half an hour, you can change it as you wish based on the cron syntax.

Please note that only those public events that belong to the following list show up:

  • CreateEvent
  • PushEvent
  • IssuesEvent
    • opened
    • edited
    • closed
    • reopened
    • assigned
    • unassigned
    • labeled
    • unlabeled
  • PullRequestEvent
    • opened
    • edited
    • closed
    • merged
    • reopened
    • assigned
    • unassigned
    • review_requested
    • review_request_removed
    • labeled
    • unlabeled
    • synchronize
  • ReleaseEvent
  • ForkEvent
  • CommitCommentEvent
  • IssueCommentEvent
  • PullRequestReviewEvent
  • PullRequestReviewCommentEvent
  • RepositoryEvent
  • WatchEvent
  • StarEvent
  • PublicEvent
  • GollumEvent

You can find an example here.

Inputs

Input Description Required Default Possible Options
GITHUB_USERNAME Your GitHub username. - A valid GitHub username
GITHUB_TOKEN Your GitHub token. - A valid GitHub access token (must belong to the specified GitHub username)
EVENT_LIMIT The maximum number of events to display. 10 Any positive integer (250 max.)
OUTPUT_STYLE Specifies the format in which your output should be rendered.
Must be one of:
- MARKDOWN: Output in Markdown format
- HTML: Output in HTML format
MARKDOWN MARKDOWN or HTML
IGNORE_EVENTS The events to ignore, specified as a JSON array. [] JSON array of event types (e.g., ["PushEvent", "PullRequestEvent"])
HIDE_DETAILS_ON_PRIVATE_REPOS Hide details (branch/tag name) on private repositories false true or false
README_PATH The path to your README file. README.md Any valid file path
COMMIT_MESSAGE Commit message used when updating the README file. Update README.md with latest activity Any valid commit message
EVENT_EMOJI_MAP Optional YAML object mapping event types to emojis. (See 🎨 Customizing Emojis) "" YAML object mapping event types to emojis
DRY_RUN Enable dry run mode (no changes will be committed) false true or false

🎨 Customizing Emojis

You can personalize the emojis shown for each event type using the EVENT_EMOJI_MAP input. This input accepts a YAML object mapping event types (and subtypes) to your preferred emojis.

Example usage in your workflow:

uses: TheDanniCraft/activity-log@v1
with:
  GITHUB_USERNAME: "thedannicraft"
  GITHUB_TOKEN: ${{ secrets.TOKEN }}
  EVENT_EMOJI_MAP: |
    PushEvent: "🚀"
    CreateEvent: "✨"
    DeleteEvent: "🔥"
    IssuesEvent: |
      opened: "🆕"
      closed: "✅"

Reference the EVENT_EMOJI_MAP input in the Inputs table above for more details.

📜License

MIT

✍️Authors

✨Contributors

Thanks goes to these wonderful people: Emoji key for contribution types.

Rounak Joshi
Rounak Joshi

📖 💻 ⚠️
Glched
Glched

🐛 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

About

A GitHub Action that automatically updates your README file with the latest activity from your GitHub account. Customize the displayed events, set a limit on the number of events, and ignore specific event types. Ideal for keeping your personal README file current with recent contributions and changes.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 6