Skip to content

Conversation

dodok8
Copy link
Contributor

@dodok8 dodok8 commented Sep 1, 2025

Summary

Add a remote follow feature.

Related Issue

Closes #10

Changes

  • Add Follow button and modal
  • Add POST /follow route that redirects to the follow page.
    • Using webfinger, it finds http://ostatus.org/schema/1.0/subscribe rel first, and makes follow links
    • If it doesn't have http://ostatus.org/schema/1.0/subscribe, Use http://webfinger.net/rel/profile-page instead.

Benefits

Users can follow the bot directly on the botkit page.

Checklist

  • Did you add a changelog entry to the CHANGES.md?
  • Did you write some relevant docs about this change (if it's a new feature)?
  • Did you write a regression test to reproduce the bug (if it's a bug fix)?
  • Did you write some tests for this change (if it's a new feature)?
  • Did you run deno task test-all on your machine?

Additional Notes

I checked it on Misskey(https://yuri.garden), Hacker's Pub(which doesn't implement http://ostatus.org/schema/1.0/subscribe) and Activity Pub Academy.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @dodok8, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the bot's web presence by integrating a remote follow mechanism. It provides a user-friendly interface for initiating follows from the bot's page, leveraging Fediverse protocols to redirect users to their respective instance's follow pages, thereby improving cross-instance interaction and the bot's reach within the decentralized network.

Highlights

  • Remote Follow Feature: Introduces the ability for users to remotely follow the bot directly from its web interface.
  • Follow Button and Modal: Adds a 'Follow' button and an interactive modal dialog to the bot's main page, allowing users to input their Fediverse handle.
  • New POST /follow Route: Implements a backend endpoint that handles follow requests. This route uses Webfinger to find the appropriate follow URL, prioritizing 'http://ostatus.org/schema/1.0/subscribe' and falling back to 'http://webfinger.net/rel/profile-page'.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a remote follow feature, which is a valuable addition. My review focuses on improving the implementation for better maintainability, security, and robustness. I've provided suggestions to refactor the client-side scripting in the new FollowButton component, harden the new /follow API endpoint against security vulnerabilities like information leakage, and clean up the code. I also highlighted a potential issue with the fallback logic for constructing follow URLs, which might not be compatible with all Fediverse platforms.

Copy link
Member

@dahlia dahlia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you write a changelog entry too?

dodok8 and others added 2 commits September 1, 2025 19:44
Co-authored-by: Hong Minhee (洪 民憙) <hong@minhee.org>
Co-authored-by: Hong Minhee (洪 民憙) <hong@minhee.org>
@dodok8 dodok8 force-pushed the dodok8-remote-follow branch from 7c0ac28 to 82d8246 Compare September 1, 2025 10:47
@dodok8 dodok8 changed the title feat: add remtoe follow feat: add remote follow Sep 1, 2025
@dodok8 dodok8 force-pushed the dodok8-remote-follow branch from ccf974c to ced9a13 Compare September 1, 2025 11:36
@dodok8
Copy link
Contributor Author

dodok8 commented Sep 3, 2025

Fedify added template fields in Link in PR fedify-dev/fedify#404.

@dodok8 dodok8 force-pushed the dodok8-remote-follow branch from 26ec53a to b7496c3 Compare September 3, 2025 08:46
@dodok8 dodok8 force-pushed the dodok8-remote-follow branch from 591918f to defa2d7 Compare September 3, 2025 08:47
@dahlia dahlia merged commit 999d83c into fedify-dev:main Sep 3, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Proposal] "Remote Follow" button
2 participants