{"id":23658557,"url":"https://github.com/thedannicraft/activity-log","last_synced_at":"2026-03-11T03:04:28.760Z","repository":{"id":250217281,"uuid":"833710441","full_name":"TheDanniCraft/activity-log","owner":"TheDanniCraft","description":"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.","archived":false,"fork":false,"pushed_at":"2026-03-04T20:42:45.000Z","size":1047,"stargazers_count":16,"open_issues_count":13,"forks_count":78,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-04T20:55:22.214Z","etag":null,"topics":["activity","bun","github-action-javascript","github-actions","github-workflow","hacktoberfest","javascript","profile-page","profile-readme","readme","readme-profile"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/github-activity-log","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheDanniCraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-25T15:30:27.000Z","updated_at":"2026-03-04T20:42:48.000Z","dependencies_parsed_at":"2024-08-29T16:46:40.438Z","dependency_job_id":"e840c705-a3d9-4be2-9c81-609b6549abf1","html_url":"https://github.com/TheDanniCraft/activity-log","commit_stats":null,"previous_names":["thedannicraft/activity-log"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/TheDanniCraft/activity-log","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDanniCraft%2Factivity-log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDanniCraft%2Factivity-log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDanniCraft%2Factivity-log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDanniCraft%2Factivity-log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheDanniCraft","download_url":"https://codeload.github.com/TheDanniCraft/activity-log/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheDanniCraft%2Factivity-log/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30368668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activity","bun","github-action-javascript","github-actions","github-workflow","hacktoberfest","javascript","profile-page","profile-readme","readme","readme-profile"],"created_at":"2024-12-29T00:17:39.177Z","updated_at":"2026-03-11T03:04:28.755Z","avatar_url":"https://github.com/TheDanniCraft.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"y\u003ch1 align=\"center\" id=\"title\"\u003eActivity Log\u003c/h1\u003e\n\n![activity log](https://socialify.git.ci/TheDanniCraft/activity-log/image?forks=1\u0026issues=1\u0026language=1\u0026logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F66677362\u0026name=1\u0026owner=1\u0026pattern=Solid\u0026pulls=1\u0026stargazers=1\u0026theme=Auto)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Made%20with%20Love%E2%9D%A4%EF%B8%8F-black?style=for-the-badge\" alt=\"made with love\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Node.JS-node?style=for-the-badge\u0026amp;logo=nodedotjs\u0026amp;logoColor=white\u0026amp;color=%235FA04E\" alt=\"nodejs\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/TheDanniCraft/endpoints/refs/heads/master/badge/activity-log.json\u0026style=for-the-badge\" alt=\"Count of Action Users\"\u003e\n    \u003cimg src=\"https://www.codefactor.io/repository/github/thedannicraft/activity-log/badge?style=for-the-badge\" alt=\"CodeFactor Grade\"\u003e\n    \u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n\u003ca href=\"#contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/all-contributors/TheDanniCraft/activity-log?style=for-the-badge\" alt=\"All Contributors\"\u003e\u003c/a\u003e\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\u003c/p\u003e\n\nA 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.\n\n## 📚 Project Docs\n\n- [Contributing Guidelines](./CONTRIBUTING.md)\n- [Security Policy](./SECURITY.md)\n- [Support Guide](./SUPPORT.md)\n- [Code of Conduct](./CODE_OF_CONDUCT.md)\n\n## 🛠️Features\n\n- Customizable Event Limits\n- Event Filtering\n- Flexibility with Inputs\n- Customizable\n- Dry Run Mode (preview changes without committing)\n- Custom Commit Messages\n- Markdown or HTML Output Styles\n- Hide Details on Private Repositories\n\n## ✍️ Example\n\n\u003c!--START_SECTION:activity--\u003e\n1. 🚀 Published release v0.0.16 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/releases/tag/v0.0.16) on Mar 11, 2026\n2. 🚀 Committed to master in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/commit/d3e1ec09f07f30cd4472c34c194f57de6ee0404d) on Mar 11, 2026\n3. 🔀 Merged PR #111 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/pull/111) on Mar 11, 2026\n4. 🚀 Committed to patch-v0.0.16 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/commit/973573cf9087425d7cee4df0c4e967e87f06b01d) on Mar 11, 2026\n5. 🚀 Committed to patch-v0.0.16 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/commit/5da54f7cd22e3084f7621e500985e55c33be0510) on Mar 11, 2026\n6. 🔀 Opened PR #111 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/pull/111) on Mar 11, 2026\n7. 🚀 Committed to patch-v0.0.16 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/commit/8a4b74d3e23febea5fe985b089431b11abcb8509) on Mar 11, 2026\n8. ✨ Created a new branch patch-v0.0.16 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/tree/patch-v0.0.16) on Mar 10, 2026\n9. 🚀 Published release v0.0.15 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/releases/tag/v0.0.15) on Mar 10, 2026\n10. 🗣 Commented on issue #40 in [TheDanniCraft/activity-log](https://github.com/TheDanniCraft/activity-log/issues/40#issuecomment-4035171044) on Mar 10, 2026\n\u003c!--END_SECTION:activity--\u003e\n\n## 📖Usage\n\n### 1. Add Sections to `README.md`\n\nInclude the following placeholders in your `README.md` where you want the activity log to appear:\n\n```markdown\n\u003c!--START_SECTION:activity--\u003e\n\u003c!--END_SECTION:activity--\u003e\n```\n\nFor a reference example, you can view this [sample `README.md`](https://github.com/TheDanniCraft/activity-log/blob/master/README.md?plain=1#L20-L31).\n\n### 2. Create a Personal Access Token\n\n\u003cdetails open\u003e\n  \u003csummary\u003e\u003cstrong\u003eQuick Setup\u003c/strong\u003e \u003ci\u003e(Recommended)\u003c/i\u003e\u003c/summary\u003e\n\n  1. To create a personal access token with the necessary permissions, click this [link to create a new token](https://github.com/settings/tokens/new?description=Github%20Activity%20Log%20(TheDanniCraft/activity-log)\u0026scopes=repo). This link pre-fills the token description and scopes for your convenience.\n  2. On the token creation page, review the pre-filled data and set the expiration date to \"Never\".\n  3. Click \"Generate token\" and copy the token (be sure to save it as you won’t be able to see it again).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eManual Setup\u003c/strong\u003e\u003c/summary\u003e\n\n  1. Go to your GitHub [Personal Access Tokens settings](https://github.com/settings/tokens).\n  2. Click on \"Generate new token\".\n  3. Provide a descriptive name for the token, such as `Github Activity Log (TheDanniCraft/activity-log)`.\n  4. Select the `repo` scope (recommended if you want private repo activity to show up).\n  5. Set the expiration date to \"Never\".\n  6. Click \"Generate token\" and copy the token (be sure to save it as you won’t be able to see it again).\n\n\u003c/details\u003e\n\n### 3. Add the Token as a Repository Secret\n\n1. Navigate to your GitHub repository.\n2. Go to \"Settings\" \u003e \"Secrets and variables\" \u003e \"Actions\".\n3. Click \"New repository secret\".\n4. Name the secret (e.g., `TOKEN`).\n5. Paste the personal access token into the value field.\n6. Click \"Add secret\".\n\n### 4. Create the Workflow File\n\nCreate a new file in your repository under `.github/workflows/`, for example, `activity-log.yml`. Add the following content to this file:\n\n```yml\n# .github/workflows/update-activity.yml:\n\nname: Update GitHub Activity\n\non:\n  schedule:\n    - cron: \"*/30 * * * *\" # Runs every 30 minutes\n  workflow_dispatch: # Allows manual triggering\n\njobs:\n  update-activity:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - name: Update GitHub Activity\n        uses: TheDanniCraft/activity-log@v1\n        with:\n          GITHUB_USERNAME: \"thedannicraft\"\n          GITHUB_TOKEN: ${{ secrets.TOKEN }} # Ensure this matches the secret name in repository settings\n```\n\nTake a look at all possible [Inputs](#inputs) for customization\n\nThe above job runs every half an hour, you can change it as you wish based on the [cron syntax](https://crontab.guru).\n\nPlease note that only those public events that belong to the following list show up:\n\n- `CreateEvent`\n- `PushEvent`\n- `IssuesEvent`\n  - `opened`\n  - `edited`\n  - `closed`\n  - `reopened`\n  - `assigned`\n  - `unassigned`\n  - `labeled`\n  - `unlabeled`\n- `PullRequestEvent`\n  - `opened`\n  - `edited`\n  - `closed`\n  - `merged`\n  - `reopened`\n  - `assigned`\n  - `unassigned`\n  - `review_requested`\n  - `review_request_removed`\n  - `labeled`\n  - `unlabeled`\n  - `synchronize`\n- `ReleaseEvent`\n- `ForkEvent`\n- `CommitCommentEvent`\n- `IssueCommentEvent`\n- `PullRequestReviewEvent`\n- `PullRequestReviewCommentEvent`\n- `RepositoryEvent`\n- `WatchEvent`\n- `StarEvent`\n- `PublicEvent`\n- `GollumEvent`\n\nYou can find an example [here](https://github.com/TheDanniCraft/activity-log/blob/master/.github/workflows/update-activity.yml).\n\n### Inputs\n\n| **Input**                       | **Description**                                                                                                                                                                 | **Required**     | **Default**                             | **Possible Options**                                                        |\n|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|-----------------------------------------|-----------------------------------------------------------------------------|\n| `GITHUB_USERNAME`               | Your GitHub username.                                                                                                                                                           | ✅               | `-`                                     | A valid GitHub username                                                     |\n| `GITHUB_TOKEN`                  | Your GitHub token.                                                                                                                                                              | ✅               | `-`                                     | A valid GitHub access token (must belong to the specified GitHub username)  |\n| `EVENT_LIMIT`                   | The maximum number of events to display.                                                                                                                                        | ❌               | `10`                                    | Any positive integer (250 max.)                                             |\n| `OUTPUT_STYLE`                  | Specifies the format in which your output should be rendered. \u003cbr\u003e \u003cins\u003eMust be one of:\u003c/ins\u003e \u003cbr\u003e - `MARKDOWN`: Output in Markdown format \u003cbr\u003e - `HTML`: Output in HTML format | ❌               | `MARKDOWN`                              | `MARKDOWN` or `HTML`                                                        |\n| `IGNORE_EVENTS`                 | The events to ignore, specified as a JSON array.                                                                                                                                | ❌               | `[]`                                    | JSON array of event types (e.g., `[\"PushEvent\", \"PullRequestEvent\"]`)       |\n| `HIDE_DETAILS_ON_PRIVATE_REPOS` | Hide details (branch/tag name) on private repositories                                                                                                                          | ❌               | `false`                                 | `true` or `false`                                                           |\n| `README_PATH`                   | The path to your README file.                                                                                                                                                   | ❌               | `README.md`                             | Any valid file path                                                         |\n| `COMMIT_MESSAGE`                | Commit message used when updating the README file.                                                                                                                              | ❌               | `Update README.md with latest activity`  | Any valid commit message                                                    |\n| `EVENT_EMOJI_MAP`               | Optional YAML object mapping event types to emojis. (See [🎨 Customizing Emojis](https://github.com/TheDanniCraft/activity-log#-customizing-emojis))                            | ❌               | `\"\"`                                    | YAML object mapping event types to emojis                                   |\n| `EVENT_TEMPLATE`                | Template used to render all events. Placeholders: `{emoji}`, `{event_type}`, `{action}`, `{subject}`, `{verb}`, `{repo}`, `{repo_url}`, `{date}`, `{number}`, `{url}`, `{ref}`, `{ref_type}`            | ❌              | `\"{emoji} {action} {subject} {ref} {number} {verb} [{repo}]({url})\"`                                    | Template string                                                             |\n| `DRY_RUN`                       | Enable dry run mode (no changes will be committed)                                                                                                                              | ❌               | `false`                                 | `true` or `false`                                                           |\n\n## 🎨 Customizing Emojis\n\nYou 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.\n\n**Example usage in your workflow:**\n\n```yaml\nuses: TheDanniCraft/activity-log@v1\nwith:\n  GITHUB_USERNAME: \"thedannicraft\"\n  GITHUB_TOKEN: ${{ secrets.TOKEN }}\n  EVENT_EMOJI_MAP: |\n    PushEvent: \"🚀\"\n    CreateEvent: \"✨\"\n    DeleteEvent: \"🔥\"\n    IssuesEvent: |\n      opened: \"🆕\"\n      closed: \"✅\"\n```\n\nReference the `EVENT_EMOJI_MAP` input in the [Inputs](#inputs) table above for more details.\n\n## 🎯 Custom Event Templates\n\nYou can customize event rendering with one global template using `EVENT_TEMPLATE`.\n\nSupported placeholders:\n\n- `{emoji}`: Event emoji from the default map or `EVENT_EMOJI_MAP` (example: `🚀`)\n- `{event_type}`: Raw GitHub event type (example: `PushEvent`)\n- `{action}`: Human-readable action text (example: `Committed`, `Opened`, `Merged`)\n- `{subject}`: Event object for readable phrasing (example: `PR`, `issue`, `commit`, `release`)\n- `{verb}`: Connector based on legacy phrasing (example: `to`, `in`, or empty)\n- `{repo}`: Repository name (or `a private repository` for private events)\n- `{repo_url}`: Repository URL (example: `https://github.com/TheDanniCraft/activity-log`)\n- `{date}`: Formatted event date in UTC (example: `Mar 10, 2026`)\n- `{number}`: Issue/PR number when available (example: `#110`)\n- `{url}`: Link to the related resource (commit/comment/review/PR/issue/release when available, otherwise the repository URL for public events)\n- `{ref}`: Branch/tag ref when available (example: `main`, `v1.2.0`)\n- `{ref_type}`: Ref type for create/delete events (example: `branch`, `tag`, `repository`)\n\nExample:\n\n```yaml\nEVENT_TEMPLATE: \"{emoji} {action} {subject} {ref} {number} {verb} [{repo}]({url})\"\n```\n\n## 📜License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n\n## ✍️Authors\n\n- [@thedannicraft](https://www.github.com/thedannicraft)\n\n## ✨Contributors \n\nThanks goes to these wonderful people: [Emoji key for contribution types](https://allcontributors.org/docs/en/emoji-key).\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://leetcode.com/u/_theRJ_/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/97701228?v=4?s=100\" width=\"100px;\" alt=\"Rounak Joshi\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRounak Joshi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/TheDanniCraft/activity-log/commits?author=RounakJoshi09\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/TheDanniCraft/activity-log/commits?author=RounakJoshi09\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/TheDanniCraft/activity-log/commits?author=RounakJoshi09\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/gltched-usr\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/126079750?v=4?s=100\" width=\"100px;\" alt=\"Glched\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGlched\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/TheDanniCraft/activity-log/issues?q=author%3Agltched-usr\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/TheDanniCraft/activity-log/commits?author=gltched-usr\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\n## 📝 Blog Posts\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://thedannicraft.blog/how-to-automate-your-github-readme/\"\u003e\n        \u003cimg width=\"140px\" src=\"https://n8n.thedannicraft.de/webhook/bb79c6e2-3bfb-44a3-a111-f983a4410487/grabPostImage/6878fdd7970ad800016c79c0\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://thedannicraft.blog/how-to-automate-your-github-readme/\"\u003eHow to automate your GitHub README\u003c/a\u003e\u003cbr/\u003eOct 23, 2025 • by TheDanniCraft\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nWrote a blog post about activity-log? [Open an issue](https://github.com/TheDanniCraft/activity-log/issues/new) and share the article link.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedannicraft%2Factivity-log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthedannicraft%2Factivity-log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedannicraft%2Factivity-log/lists"}