Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
a783f18
feat: implement programme, update port 4594
hnrobert Oct 5, 2025
9578ff8
fix: enhance ci, add words
hnrobert Oct 5, 2025
1880b8e
docs: update desc
hnrobert Oct 5, 2025
91286cd
docs: update test
hnrobert Oct 5, 2025
f7f3fa7
fix: replace template placeholder, formatting
hnrobert Oct 5, 2025
1494cfc
test: add some more
hnrobert Oct 5, 2025
b12a456
fix: push info display
hnrobert Oct 5, 2025
51bde6b
fix: package update info display
hnrobert Oct 5, 2025
90577db
feat: display commit message
hnrobert Oct 5, 2025
6a813f1
feat: insert link on author
hnrobert Oct 5, 2025
d0b4fd7
feat: insert more links
hnrobert Oct 5, 2025
42e5461
feat: update templates for package, show tags
hnrobert Oct 5, 2025
37ac0f4
chore: update words
hnrobert Oct 5, 2025
af92f18
fix: test hyperlinks
hnrobert Oct 5, 2025
92c5444
fix: formatting and lints
hnrobert Oct 5, 2025
0ebb034
fix: handle package display
hnrobert Oct 5, 2025
f01e97c
fix: update template
hnrobert Oct 5, 2025
5d4c6c1
fix: clear template message display
hnrobert Oct 5, 2025
af1415a
ci: add workflow dispatch for manual trigger
hnrobert Oct 5, 2025
9756223
fix: update package link handling in templates and improve markdown f…
hnrobert Oct 5, 2025
6c4b8b9
chore: update words
hnrobert Oct 5, 2025
37146e3
fix: update push format
hnrobert Oct 6, 2025
5af68f9
fix: update gitignore
hnrobert Oct 6, 2025
a7b4650
feat: support x-www-form-urlencoded
hnrobert Oct 6, 2025
7be67cd
fix: .gitignore logs 2 log
hnrobert Oct 6, 2025
46fa0e1
feat: add actor profile link
hnrobert Oct 6, 2025
1ef78a8
feat: add more handling for different issue types
hnrobert Oct 6, 2025
e468852
fix: sync templates
hnrobert Oct 6, 2025
d8e7331
fix: update gitignore
hnrobert Oct 6, 2025
ea32c50
feat: update tests and update package name
hnrobert Oct 6, 2025
40804db
fix: tests, fix package url
hnrobert Oct 6, 2025
d1719f7
fix: logger test
hnrobert Oct 6, 2025
1ee89ee
refactor: integrate handler tests
hnrobert Oct 6, 2025
0200e9c
feat: add handlers for various GitHub event payloads
hnrobert Oct 6, 2025
110085a
docs: add comprehensive handler data map documentation
hnrobert Oct 6, 2025
398e7d6
docs: update usage specific
hnrobert Oct 6, 2025
7fb28bd
docs: update readme and tag desc
hnrobert Oct 7, 2025
71f6a13
fix: try fix package url
hnrobert Oct 7, 2025
7d0d945
fix: workflow run
hnrobert Oct 7, 2025
2cc6922
fix: package url handler again, add tests
hnrobert Oct 7, 2025
7f81cd8
fix: add tag for workflow runs
hnrobert Oct 7, 2025
8eccf5b
docs: update workflow run doc
hnrobert Oct 7, 2025
d357a4b
fix: simplify tags
hnrobert Oct 7, 2025
f8635e3
fix: push message handler
hnrobert Oct 7, 2025
edf5a95
fix: enhance package handler url
hnrobert Oct 7, 2025
7b58d7e
fix: enhance issue labeling and display in templates
hnrobert Oct 7, 2025
afe8f2d
feat: enhance check run
hnrobert Oct 7, 2025
378468a
feat: use jsonc for templates
hnrobert Oct 7, 2025
44ee0a7
fix: package tags display
hnrobert Oct 7, 2025
4cd4228
fix: check suite add repo info
hnrobert Oct 7, 2025
80cde09
feat: implement events
hnrobert Oct 7, 2025
191674c
fix: sort events.yaml
hnrobert Oct 7, 2025
0a98f5e
feat: update common handler
hnrobert Oct 7, 2025
1163669
feat: implement templates
hnrobert Oct 7, 2025
7598a38
chore: do some sorting
hnrobert Oct 7, 2025
baf6339
fix: issue tags handling
hnrobert Oct 7, 2025
e46648a
feat: add more templates for discussion, etc.
hnrobert Oct 7, 2025
710aed6
feat: implement templates, add scripts
hnrobert Oct 7, 2025
eaf0c31
fix: ci error check
hnrobert Oct 8, 2025
ff0b7b1
fix: use repository_link_md
hnrobert Oct 8, 2025
0808584
feat: enable hot reload, path fix, update docs
hnrobert Oct 8, 2025
6c88d56
fix: add if handling, add docs
hnrobert Oct 8, 2025
89e5108
fix: add CA back XD
hnrobert Oct 8, 2025
0a1a4e3
docs: add guides
hnrobert Oct 8, 2025
9071a14
fix: ci
hnrobert Oct 8, 2025
ee4ff2c
fix: check run and reg pkg tag display
hnrobert Oct 8, 2025
f5b591b
fix: hope it fixes tag name
hnrobert Oct 8, 2025
7c1009a
ci: add enhancement
hnrobert Oct 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Git
.git
.gitignore
.gitattributes

# Documentation
*.md
!README.md
DEPLOYMENT.md
CONFIGURATION.md

# CI/CD
.github

# IDE
.vscode
.idea
*.swp
*.swo
*~

# Build artifacts
dist/
bin/
dist/
feishu-github-tracker
webhook
*.exe

# Logs
logs/
*.log

# Test files
*_test.go

# OS
.DS_Store
Thumbs.db

# Local config overrides
*.local.yaml
62 changes: 62 additions & 0 deletions .github/actions/setup-go/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "Setup Go with Cache"
description: "Set up Go environment with module cache optimization"
inputs:
go-version:
description: "Go version to use"
required: false
default: "1.21"

runs:
using: "composite"
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ inputs.go-version }}

- name: Get GOMODCACHE
id: gomodcache
shell: bash
run: echo "path=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT

- name: Prepare temp cache directory
id: cacheprep
shell: bash
run: |
echo "cache_tmp=${RUNNER_TEMP}/gomodcache_cache" >> $GITHUB_OUTPUT
mkdir -p "${RUNNER_TEMP}/gomodcache_cache"

- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
${{ steps.cacheprep.outputs.cache_tmp }}
~/.cache/go-build
key: ${{ runner.os }}-go-v3-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-v3-

- name: Populate GOMODCACHE
shell: bash
run: |
set -euo pipefail
GOMODCACHE=${{ steps.gomodcache.outputs.path }}
CACHE_TMP=${{ steps.cacheprep.outputs.cache_tmp }}
echo "GOMODCACHE=${GOMODCACHE}"
echo "CACHE_TMP=${CACHE_TMP}"
if [ -d "${GOMODCACHE}" ] && [ "$(ls -A "${GOMODCACHE}" 2>/dev/null)" ]; then
echo "GOMODCACHE not empty — skipping populate"
else
echo "GOMODCACHE empty — populating from cache tmp"
mkdir -p "${GOMODCACHE}"
if command -v rsync >/dev/null 2>&1; then
rsync -a "${CACHE_TMP}/" "${GOMODCACHE}/" || true
else
cp -a "${CACHE_TMP}/." "${GOMODCACHE}/" || true
fi
echo "Populate complete"
fi

- name: Download dependencies
shell: bash
run: go mod download
100 changes: 100 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: CI/CD

on:
push:
branches: [main, develop]
paths:
- ".github/workflows/ci.yml"
- "Dockerfile"
- ".dockerignore"
- "**/*.go"
- "go.mod"
- "go.sum"
pull_request:
branches: [main, develop]
workflow_dispatch:

jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Go with cache
uses: ./.github/actions/setup-go
with:
go-version: "1.21"

- name: Run tests
run: go test -v ./...

- name: Run go vet
run: go vet ./...

build:
name: Build
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Go with cache
uses: ./.github/actions/setup-go
with:
go-version: "1.21"

- name: Build
run: go build -v -o bin/feishu-github-tracker ./cmd/feishu-github-tracker

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: feishu-github-tracker-binary
path: bin/feishu-github-tracker
retention-days: 7

docker:
name: Build and Push Docker Image
runs-on: ubuntu-latest
needs: test
if: (github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'))
permissions:
contents: read
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set image tag
id: tag
run: |
BRANCH=${GITHUB_REF#refs/heads/}
if [ "${BRANCH}" = "main" ]; then
echo "tag=latest" >> $GITHUB_OUTPUT
elif [ "${BRANCH}" = "develop" ]; then
echo "tag=develop" >> $GITHUB_OUTPUT
fi

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
provenance: false # Disable provenance to avoid unknown/unknown
sbom: false # Disable sbom to avoid unknown/unknown
context: .
push: true
tags: ghcr.io/${{ github.repository }}:${{ steps.tag.outputs.tag }}
cache-from: type=gha
cache-to: type=gha,mode=max
Loading