Improved the Drupal GitHub Webhook Module

I improved the custom module “GitHub Webhook” that triggers GitHub Actions from the Drupal admin panel. https://github.com/nakamura196/Drupal-module-github_webhook Originally a basic module with multi-repository support, I added features including UI tab separation, permission granularity, workflow status display, and auto-triggering. Module Before Improvements The original module had the following structure: File count: 5 files (info.yml, routing.yml, links.menu.yml, permissions.yml, SettingsForm.php) Supported versions: Drupal 10 only Repositories: Multi-repository support (dynamic add/remove with AJAX) Screen: Settings and trigger on the same screen (2 accordions) Permissions: Only 1 permission access github webhook settings (same permission for both settings and trigger) Token management: #default_value set on password field (token output in plaintext in HTML source) HTTP client: Direct instantiation of new \GuzzleHttp\Client() Exception class: Written in catch block without use statement (incorrect namespace resolution) $ ] f ; o ' ' ' B r # # # e m t t d f [ y i e o ' p t f r s e l a e e ' e u : t ' l t = t T i > = _ o n > v k g ' a e s p $ l n ' a t u ] s h e w [ s i ' a ' w s s g o - = i r > > s t d t e h ' ( $ t u , ' c b G o i _ i n n t t f o H i # k u g d e b - e n > f ' T g a ] o e u k t l = e ( t n ' _ [ ' g v ) i a , t l h u u e b _ t o k e n ' ) , O u t p u t i n p l a i n t e x t i n H T M L $ c l B i e e f n o t r e = : n G e u w z z \ l G e u z c z l l i e e H n t t t p w \ a C s l i d e i n r t e ( c ) t ; l y i n s t a n t i a t e d w i t h n e w Overview of Changes Comparison of file structure before and after improvements. * indicates modified, + indicates newly added. ...

February 11, 2026 · 53 min · Nakamura

Docker + GitHub Actions Deployment Configuration

This document explains the setup procedure for automatically deploying Docker containers with GitHub Actions. Table of Contents Docker Configuration GitHub Actions Configuration Server-Side Configuration Troubleshooting Docker Configuration Dockerfile (Static Site + nginx) Generates static HTML and serves it with nginx. F W C R C R # F # # C C E C R O O U O U R O O X M O R P N P N n O F F P P P D M K Y Y g M o o Y Y O D n n i r r S [ n I p p . p n n n E " o R a m m x g N N - g n d c i u u f i 8 g e / k i r f n x x r n 0 i : a a n u o x t t o x n 2 p g s n r : m . x 2 p e t a 3 2 = c " - * a g s l : : b o , a . l e e p u n l j l n r i d i f " p s e v n o i l - i o r i e u s d / g n n a n t t e e " e t g p r t , e u c A s t / / " S t / a n d a p p g a b t u p i e u i b / n m i c l . x o l i o / n d f c u c e i t o o r l p n f e u f f s t . ; d " p / ] u d b e l f i a c u l / t u . s c r n s f h a r e / n g i n x / h t m l nginx.conf (SPA Configuration) For SPAs, dynamic routes (/item/:id, etc.) need to fall back to index.html. ...

November 28, 2025 · 20 min · Nakamura

Investigating the Vocabulary Hierarchy of Odeuropa Explorer

Introduction Odeuropa Explorer is a fascinating project that digitizes Europe’s olfactory heritage. Funded by the EU’s Horizon 2020 research program, it provides a platform for cross-searching and exploring historical smell experiences. This project classifies smell-related information into three main categories: Smell sources: Objects and substances that emit odors Fragrant Spaces: Places and spaces associated with smells Gestures and Allegories: Gestures and allegorical expressions related to smell This article reports the results of investigating the hierarchical structure of these vocabularies using SKOS (Simple Knowledge Organization System) format data published in the Odeuropa vocabularies repository. ...

October 13, 2025 · 39 min · Nakamura

Guide to Publishing TEI/XML Files on GitHub

Introduction This article explains the procedure for uploading TEI (Text Encoding Initiative) format XML files to GitHub and creating URLs that anyone can access. TEI/XML is an international standard format for structurally describing texts such as historical documents and literary works. By using GitHub, you can share your research data with researchers around the world. What You Need A computer (Windows, Mac, or Linux) Internet connection TEI/XML files (that you already have) Email address (for creating a GitHub account) About Sample Files If you don’t have TEI/XML files, you can use the following TEI/XML file from the Koui Genji Monogatari for practice: ...

September 6, 2025 · 7 min · Nakamura

Introducing GitHub File History Analyzer: A Tool for Analyzing File Edit History with AI

This article was created by AI. Introduction Have you ever wanted to analyze the edit history of files managed in a GitHub repository? There are cases where you want to understand change patterns of files that have been updated over a long period, or the evolution process of a project. GitHub File History Analyzer is a command-line tool developed to meet such needs. Tool Overview This tool provides the following features: ...

July 24, 2025 · 6 min · Nakamura

Omeka S: Finding Themes Compatible with the Advanced Search Module

Overview This article introduces one approach for finding themes compatible with the Advanced Search module in Omeka S. Background By using the Advanced Search module for Omeka S, you can customize the search interface as introduced in the following article: In particular, the ability to add facets is a notable advantage. However, if the theme you are using does not support the Advanced Search module, the display may break in some cases. One way to check whether a theme supports the Advanced Search module is to look for an “advanced-search” directory under the theme’s “view/common” folder, as shown below: ...

January 11, 2025 · 2 min · Nakamura

I Created a Drupal Module to Trigger GitHub Actions

Overview I created a Drupal module to trigger GitHub Actions. https://github.com/nakamura196/Drupal-module-github_webhook Below is an explanation of how to use it. Usage Configuration After installing the module, navigate to the following path. /admin/config/github_webhook You will see a screen like the following. It is divided into two main sections: Repositories and Trigger Webhook. First, enter the repository information for the GitHub Actions target in Repository 1 under Repositories. You can add and remove repositories using Add repository and Remove repository. ...

August 24, 2024 · 3 min · Nakamura

Triggering GitHub Actions from Drupal Events

Overview This is a memorandum on how to trigger GitHub Actions from Drupal events. The following site was helpful: https://qiita.com/hmaruyama/items/3d47efde4720d357a39e Pipedream Configuration Create a workflow that includes a trigger and a custom_request. For the trigger, please refer to the following: https://qiita.com/hmaruyama/items/3d47efde4720d357a39e#pipedream側の設定 In custom_request, configure the dispatch settings. https://docs.github.com/ja/rest/repos/repos?apiVersion=2022-11-28#create-a-repository-dispatch-event Configure the settings as follows: c u r - - - - h - l X H H H t d t - P " " " p ' L O A A X s { S c u - : " \ T c t G / e e h i / v \ p o t a e t r H p n : i u i t z b . _ a a - g t p t A i y p i p t p l o i h e i n - u " c : V b : a e . " t B r c w i e s o e o a i m b n r o / h / e n r o v r : e o n p k d < 2 o " . Y 0 s } g O 2 / ' i U 2 O t R - W h - 1 N u T 1 E b O - R + K 2 / j E 8 R s N " E o > P n " \ O " / \ d \ i s p a t c h e s \ ...

May 28, 2024 · 3 min · Nakamura

Copying Build Results to Sakura Rental Server Using GitHub Actions and SCP

Overview I had an opportunity to copy build results to a Sakura rental server using GitHub Actions and SCP, so this is a memorandum of the process. I used the following GitHub Action. https://github.com/appleboy/scp-action Issue Encountered When I tried using the following notation, it worked fine when using act in the local environment, but it did not work when running on GitHub Actions. n o j a n o m : b b e s u : [ : i n r s - - p l a u t s u d m n e u n u w c s : e s p s a s i p h : - s e m e t h u p p s t ] o : s e s h o s a o o a f B n : : : : s e s r u r i u : t r s t r g l i a c a : n w : c e e l u c o p a o e t s d b t p p $ m r $ : : u i y l { e d { n o e { : : { " y t n f b t o u s i o s $ $ s e u - / l y e { { e s r l c e / c { { c t _ a h s r r s s t e v c e s s e / e e c i p t e e t a r s k a - s c c s . v t o a . r r . t e u s c H e e P x r t s t O t t O t _ @ h i S s s R , t v o T . . T t a 4 p n U P e r a @ } S A } s g s m } E S } t e s a R S s t w s N W / _ o t A O b f r e M R . o d r E D t l x d } } t e } } " r _ p a t h Specifically, the following error occurred: ...

February 8, 2024 · 5 min · Nakamura

Sending Email Notifications for GitHub Actions Results: Using Gmail

Overview I had the opportunity to send email notifications for GitHub Actions processing results, so here are my notes. This time we’ll use Gmail. The following was helpful as a reference. https://stackoverflow.com/questions/69947109/sending-email-with-github-actions Gmail Configuration The details are described at the following link. Enable two-factor authentication and create an app password. https://github.com/dawidd6/action-send-mail?tab=readme-ov-file#gmail Here is an example of app password configuration. Local Testing Use act to run GitHub Actions in a local environment. ...

January 20, 2024 · 16 min · Nakamura

Linking a GitHub Repository with Zenodo

Overview I recently published a plugin for comparing annotations in Mirador 3: https://github.com/nakamura196/mirador-compare-plugin This time, I connected this repository with Zenodo. As a result, a DOI is now automatically assigned each time a release is created: https://zenodo.org/doi/10.5281/zenodo.10449856 Zenodo Configuration Access the following and select the GitHub repository to link: /account/settings/github/ GitHub The following is not required, but prepares the GitHub repository for integration with Zenodo. Creating CITATION.cff By creating this, the ORCID ID appears to be displayed under Creators: ...

January 2, 2024 · 6 min · Nakamura

Trying the Drupal Social Auth GitHub Module

Overview I will try the Drupal Social Auth GitHub module. https://www.drupal.org/project/social_auth_github/ This module is described as follows: Social Auth GitHub allows users to register and login to your Drupal site with their GitHub account. The goal is to enable login using a GitHub account as shown below. Installation c v o e m n p d o o s r e / r b . i p n h / a d r r u r s e h q u e i n r e s o ' c d i r a u l p _ a a l u / t s h o _ c g i i a t l h _ u a b u t h _ g i t h u b : ^ 4 . 0 ' The above installation also enables social_auth and social_api. ...

January 2, 2024 · 2 min · Nakamura

Setting Up GitHub 2FA Using a Browser Extension

Overview This is a memo on using the browser extension “Authenticator” to set up two-factor authentication (2FA) for GitHub. https://authenticator.cc/ Preparing the QR Code First, prepare the QR code on the GitHub side. I’ll skip the detailed steps, but the QR code will be displayed on a screen like the following. Adding the Browser Extension Access the following URL from Chrome, Firefox, or Edge. The example below uses Chrome. ...

August 15, 2023 · 2 min · Nakamura

Building a Django CI/CD Environment from GitHub to EC2 Using GitHub Actions (2023 Edition)

Overview I had the opportunity to build a Django CI/CD environment from GitHub to EC2 using GitHub Actions, and here are my notes. The following article was used as a reference. https://qiita.com/fffukken/items/27b0bfa712940914d3f6 I made some updates to the GitHub Actions configuration compared to the above article. GitHub Actions Configuration n o j a n o m : p p b b e u u s u : s b l b : i r s s - - - - - e h r l r l u t t n T : a _ a d n r m m e u n u w n r n r n r v S E E e n r n : s a a a p s a s i a u a u a u : E C C s c e c - t x t p s e m e t p m n p p m n p p p m n e c s & & & & & & C 2 2 t h q h o e - r y : s e s h y e : y i e : y y y e : c h s & & & & & & R _ _ e u e n g p i t : : : : t : t p : t t t : h m h E U H a s e s : y a x h h | h | h h h o c g p p d s T S O n : s : : r : o a S a o I o i R o o o d d d i y y e u _ E S d t u a n c e c n n n n u n n n e " o t t t a d K R T [ : [ b l - t t t - s s n p $ 6 S ~ h h c o E : : D u l v i i v t - t m m m l S 0 t / p o o t Y e d d n e e o u o e a m a T a a a o E 0 r < u n n i s : $ $ p e e t l r n p n r l l e n n n y C i プ l v y { { l v v u : s s s s l p l s a a a R s c ロ l m m a s $ { { o e e - i / P / i i t g g g E e t ジ a a t t { y l l l 4 o c y s o D p - s e e e T c H ェ o n n e e { s s o o a n h t e n e r . . . _ r o ク r a a m e e p p t : e h t : p i p p p K e s ト i g g \ c s c c , e c o u e n r y y y E t t 名 g e e t e r r ] s [ k n p $ n s e Y _ K > i . . l c e e m t 3 o - { d t q m m t " k e \ n p p r t t a . u $ p { e a u a i e e y y y r e s s i 9 t { y n l i k g s > y C m e t . . n , @ { t m c l r e r t h a m m s s E E v h a i e m a s e i a i t . C C ] " 3 m o t e m i t e c n k g a S 2 2 3 a n r s - e g e c k e r r E _ _ . t @ i u n r r i \ m a t C U H 1 r v x p t a e n i t R S O 0 i 4 . g s t t g g e g E E S " x p r . i _ = r u T R T ] . y a t o k n a \ n _ p t d x n e o t i K } } y h e t s y i c E } } t o $ o o Y h n p { n r o - i E s n } n v p C " } - e 2 \ v r _ e s U r i S s o E i n R o } n } @ } $ } { } E C 2 _ H O S T } - i s e c r e t _ k e y " s o u r c e < 仮 想 環 境 名 > / b i n / a c t i v a t e \ The changes made were updating the versions of actions/checkout and actions/setup-python. I also changed the pip install section to pip install -r requirements.txt. ...

July 9, 2023 · 5 min · Nakamura

How to Upload and Update Files Using the GitHub GUI

Overview I had the opportunity to share how to upload and update files on GitHub. Login For creating a new account and logging in, please refer to the following article: https://reffect.co.jp/html/create_github_account_first_time File Upload Access the repository. Click the “Add file” button, then click “Upload files.” Click “choose your files” to upload files from your local machine, then press “Commit changes.” The files will be uploaded. If a file with the same name already exists, it will be overwritten. ...

May 25, 2023 · 1 min · Nakamura