Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 4.43 KB

README.md

File metadata and controls

61 lines (43 loc) · 4.43 KB

GSoC 2024 Project Report | Unicode

Linux Command Line (sh/Perl/Python) Interface to Google Groups

Contributor: Sanju Raj
Mentor: Rick McGowan

Project Size: Small (~60 hours)
Project link: project-submission
Project Proposal: Proposal

Project Abstract

This project aims to develop a suite of command-line interface (CLI) modules tailored for Linux environments, enabling automation of common Google Groups operations. These modules, predominantly in sh, Perl, and Python, will leverage various Google APIs to facilitate tasks seamlessly. Primarily, the tool will serve as a bridge between Little Green Light (LGL), Unicode's central contact management system, and Google Groups. By integrating with LGL's daily reports, the tool will enable automatic updates to Google Groups based on constituent data changes, ensuring that Google Groups remain synchronized with the single source of truth provided by LGL.

Expected outcomes encompass a robust CLI toolset capable of:

  • Adding members to groups.
  • Removing members from groups.
  • Modifying member roles within groups.
  • Validating membership status based on email addresses.
  • Efficiently removing members from all groups.
  • Listing groups in the organization linked to specific individuals.

By automating these tasks, the project aims to save significant time and effort previously spent on manual group management processes. The tool's modular design will facilitate easy integration into existing workflows, enabling seamless execution via cron jobs and shell scripts.

Project Goals

This project simplifies the management of Google Groups by automating common tasks. It uses LGL reports as the primary data source to ensure accuracy. Through a user-friendly console interface, the tool efficiently synchronizes groups, reducing manual effort.

Project Results

  1. Adding members to groups.
  2. Removing members from groups.
  3. Modifying member roles within groups.
  4. Validating membership status based on email addresses.
  5. Efficiently removing members from all groups.
  6. Listing groups in the organization linked to specific individuals.

Contributions

Commit Description
5d4f1f7 Added script for managing group members using Google Admin SDK
3383f08 Added a .gitignore file
2abc7c0 Added scripts for adding members to group, Removing members from group,modifying member roles within groups,and validating membership status.
d4c9218 Added the set_no_mail.py script
6da428e Added the listgroups.py script
b4b4bc5 Added the group_info.py script
96dca4e added input as a command line argument
384fb00 Updated Readme to include all the requirements and setup process
7eddb48 Added a unittest script
70fd514 Updated the Readme

Concluding remarks

I have completed almost all the goals we decided on during the community bonding period. I thoroughly enjoyed the work and would be thrilled to keep contributing. I tried getting into open source a few times before and hit a dead end. Participating in GSoC gave me the right confidence and skill to make meaningful contributions. Now, instead of feeling overwhelmed by a big codebase, I have the skills to handle it.

Acknowledgments

Thanks to Google, Unicode, and my mentor for this opportunity. I will be forever indebted to my mentor and Unicode community for their constant support and guidance.