Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ca49cdbbf3 | |||
| 919a91d6aa | |||
| 3c9a947017 | |||
| cc90857cf5 |
@@ -24,25 +24,18 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set image tag
|
|
||||||
id: tag
|
|
||||||
run: |
|
|
||||||
TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
|
||||||
SHA=$(echo ${{ gitea.sha }} | cut -c1-7)
|
|
||||||
echo "tag=${TIMESTAMP}-${SHA}" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Build Docker image
|
|
||||||
run: |
|
|
||||||
docker build -t gitea.leeworks.dev/0xwheatyz/gitea-mobile:${{ steps.tag.outputs.tag }} .
|
|
||||||
docker tag gitea.leeworks.dev/0xwheatyz/gitea-mobile:${{ steps.tag.outputs.tag }} \
|
|
||||||
gitea.leeworks.dev/0xwheatyz/gitea-mobile:latest
|
|
||||||
|
|
||||||
- name: Login to Gitea registry
|
- name: Login to Gitea registry
|
||||||
run: |
|
run: |
|
||||||
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login gitea.leeworks.dev \
|
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login gitea.leeworks.dev \
|
||||||
-u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
|
-u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin
|
||||||
|
|
||||||
- name: Push image
|
- name: Build and push Docker image
|
||||||
run: |
|
run: |
|
||||||
docker push gitea.leeworks.dev/0xwheatyz/gitea-mobile:${{ steps.tag.outputs.tag }}
|
TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
||||||
|
SHA=$(echo ${{ gitea.sha }} | cut -c1-7)
|
||||||
|
TAG="${TIMESTAMP}-${SHA}"
|
||||||
|
docker build -t gitea.leeworks.dev/0xwheatyz/gitea-mobile:${TAG} .
|
||||||
|
docker tag gitea.leeworks.dev/0xwheatyz/gitea-mobile:${TAG} \
|
||||||
|
gitea.leeworks.dev/0xwheatyz/gitea-mobile:latest
|
||||||
|
docker push gitea.leeworks.dev/0xwheatyz/gitea-mobile:${TAG}
|
||||||
docker push gitea.leeworks.dev/0xwheatyz/gitea-mobile:latest
|
docker push gitea.leeworks.dev/0xwheatyz/gitea-mobile:latest
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ func (h *Handler) RegisterRoutes(mux *http.ServeMux) {
|
|||||||
|
|
||||||
// Issues.
|
// Issues.
|
||||||
mux.HandleFunc("GET /issues", h.ListIssues)
|
mux.HandleFunc("GET /issues", h.ListIssues)
|
||||||
|
mux.HandleFunc("GET /issues/new", h.NewIssue)
|
||||||
mux.HandleFunc("POST /issues", h.CreateIssue)
|
mux.HandleFunc("POST /issues", h.CreateIssue)
|
||||||
mux.HandleFunc("POST /issues/{owner}/{repo}/{index}/labels", h.ApplyLabels)
|
mux.HandleFunc("POST /issues/{owner}/{repo}/{index}/labels", h.ApplyLabels)
|
||||||
|
|
||||||
@@ -444,6 +445,41 @@ func (h *Handler) PullDetail(w http.ResponseWriter, r *http.Request) {
|
|||||||
renderPage(w, r, fmt.Sprintf("PR #%d", index), "pulls", buf.String())
|
renderPage(w, r, fmt.Sprintf("PR #%d", index), "pulls", buf.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewIssue handles GET /issues/new — renders the create-issue form.
|
||||||
|
func (h *Handler) NewIssue(w http.ResponseWriter, r *http.Request) {
|
||||||
|
token := getToken(r)
|
||||||
|
|
||||||
|
repos, err := h.Client.ListOrgsAndRepos(r.Context(), token)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("failed to list repos for new issue form", "error", err)
|
||||||
|
renderPage(w, r, "New Issue", "issues",
|
||||||
|
`<h1>New Issue</h1><p class="empty">Error loading repositories.</p>`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
tmpl, err := template.ParseFiles("internal/templates/create_issue.html")
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("failed to parse create_issue template", "error", err)
|
||||||
|
http.Error(w, "template error", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
type templateData struct {
|
||||||
|
Repos map[string][]giteaclient.Repo
|
||||||
|
}
|
||||||
|
|
||||||
|
data := templateData{Repos: repos}
|
||||||
|
|
||||||
|
var buf strings.Builder
|
||||||
|
if err := tmpl.ExecuteTemplate(&buf, "content", data); err != nil {
|
||||||
|
slog.Error("failed to execute create_issue template", "error", err)
|
||||||
|
http.Error(w, "template error", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
renderPage(w, r, "New Issue", "issues", buf.String())
|
||||||
|
}
|
||||||
|
|
||||||
// CreateIssue handles POST /issues.
|
// CreateIssue handles POST /issues.
|
||||||
func (h *Handler) CreateIssue(w http.ResponseWriter, r *http.Request) {
|
func (h *Handler) CreateIssue(w http.ResponseWriter, r *http.Request) {
|
||||||
token := getToken(r)
|
token := getToken(r)
|
||||||
|
|||||||
Reference in New Issue
Block a user