Hi everyone, my name is Tom Bereknyei, and I’m an engineer with the Defense Digital Service (DDS) at the Pentagon. We're an agency team of the U.S. Digital Service at the White House. Our mission is to bring private sector best practices, talent, and software into the Department of Defense (DoD).
It’s a tall order, but our small team of 25 engineers, product managers, designers and bureaucracy hackers have made significant strides in tech modernization across a variety of projects and initiatives in the year since we were created.
One such initiative is Code.mil.
Code.mil is a free and open source platform created to encourage collaboration between the developer community and DoD, and release DoD developed and procured projects to the world for improvement and reuse.
The first phase of Code.mil was to work with the developer community in crafting a licensing strategy that was accessible and made the most sense to users. Our team at DDS (composed of myself, fellow engineer Brandon Bouier and general counsel Sharon Woods) took the feedback from over 45 pull requests and hundreds of comments and decided upon using the Developer Certificate of Origin (DCO) as the mechanism for people to contribute while utilizing commonly accepted licenses selected for each project.
During this process, a colleague mentioned it would be nice to automate the DCO process for project maintainers. I volunteered.
My task: I wanted to simplify the DCO process for contributors while also maintaining the integrity of the contributions. Ideally, there would be an automated pass/fail check to make sure that all pull requests and commits had a DCO sign off tagged to it. GitHub doesn’t currently provide a method of doing this (hint hint), so I began exploring other ways to incorporate this function into the user experience.
I was interested in using Lambda - an Amazon Web Services (AWS) feature that runs on demand computing rather than running it on a server. However, I felt like I was reinventing the wheel by implementing this with terraform and deploying the Lambda.
This is when I came across Serverless, which was the perfect solution to leverage an AWS function minus all the boring work.
Combining this with some verification logic and the ability to update status and comments for a Pull Request made it pretty simple to put together. Debugging with
serverless logs -t was much easier than messing with the logs in AWS, which shows that this is a tool developed by and for the convenience of developers.
This was my first AWS Lambda project, first GitHub bot project, first Serverless project; overall it was an easy and pleasant experience. The bot was built in a few hours over a weekend while simultaneously learning a few interesting technologies and APIs.
This project was part of DDS’s effort to release its first open source project to positive reception, and we're excited to release more projects from the wider DoD community. The DCO bot is an uncomplicated way to ensure private contributors are correctly attributed as they’re working to improve the software that supports services for citizens worldwide.
Check out Code.mil to learn more about DoD’s open source initiative and contribute to DoD projects.