forked from patricoferris/get-activity
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reorganize the code and expose get-activity-lib (#4)
- Loading branch information
Showing
18 changed files
with
172 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,15 @@ | ||
## unreleased | ||
|
||
### Added | ||
|
||
Expose the library `get-activity-lib` as an opam package (#4, @gpetiot) | ||
- Expose `Get_ctivity.Period` | ||
- Expose `Get_ativity.Contributions.Datetime` | ||
- Expose `Get_activity.Contributions.Repo_map` | ||
- Expose `Get_activity.Contributions.item` | ||
- Add a `username` field to `Get_activity.Contributions.t` | ||
- Label the parameters of `Get_activity.Graphql.exec` | ||
|
||
## 0.1 | ||
|
||
(changes before Feb '24 not tracked) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
(executable | ||
(name main) | ||
(public_name get-activity) | ||
(package get-activity) | ||
(libraries cmdliner get-activity-lib)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,22 @@ | ||
(lang dune 2.3) | ||
(lang dune 2.8) | ||
(name get-activity) | ||
(formatting disabled) | ||
(generate_opam_files true) | ||
(source (github tarides/get-activity)) | ||
(authors "[email protected]") | ||
(maintainers "Guillaume Petiot <[email protected]>") | ||
|
||
(package | ||
(name get-activity) | ||
(synopsis "Collect activity as markdown") | ||
(depends | ||
(cmdliner (>= 1.1.1)) | ||
(get-activity (= :version)))) | ||
|
||
(package | ||
(name get-activity-lib) | ||
(synopsis "Collect activity as markdown") | ||
(depends | ||
cohttp | ||
cohttp-lwt | ||
cohttp-lwt-unix | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# This file is generated by dune, edit dune-project instead | ||
opam-version: "2.0" | ||
synopsis: "Collect activity as markdown" | ||
maintainer: ["Guillaume Petiot <[email protected]>"] | ||
authors: ["[email protected]"] | ||
homepage: "https://github.com/tarides/get-activity" | ||
bug-reports: "https://github.com/tarides/get-activity/issues" | ||
depends: [ | ||
"dune" {>= "2.8"} | ||
"cohttp" | ||
"cohttp-lwt" | ||
"cohttp-lwt-unix" | ||
"yojson" | ||
"ocaml" {>= "4.08"} | ||
"odoc" {with-doc} | ||
] | ||
build: [ | ||
["dune" "subst"] {dev} | ||
[ | ||
"dune" | ||
"build" | ||
"-p" | ||
name | ||
"-j" | ||
jobs | ||
"@install" | ||
"@runtest" {with-test} | ||
"@doc" {with-doc} | ||
] | ||
] | ||
dev-repo: "git+https://github.com/tarides/get-activity.git" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,16 +6,13 @@ authors: ["[email protected]"] | |
homepage: "https://github.com/tarides/get-activity" | ||
bug-reports: "https://github.com/tarides/get-activity/issues" | ||
depends: [ | ||
"dune" {>= "2.3"} | ||
"dune" {>= "2.8"} | ||
"cmdliner" {>= "1.1.1"} | ||
"cohttp" | ||
"cohttp-lwt" | ||
"cohttp-lwt-unix" | ||
"yojson" | ||
"ocaml" {>= "4.08"} | ||
"get-activity" {= version} | ||
"odoc" {with-doc} | ||
] | ||
build: [ | ||
["dune" "subst"] {pinned} | ||
["dune" "subst"] {dev} | ||
[ | ||
"dune" | ||
"build" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
module Datetime : sig | ||
type t = string | ||
end | ||
|
||
type item = { | ||
repo : string; | ||
kind : [`Issue | `PR | `Review of string | `New_repo ]; | ||
date: Datetime.t; | ||
url : string; | ||
title : string; | ||
body : string; | ||
} | ||
|
||
module Repo_map : Map.S with type key = string | ||
|
||
type t = { username : string; activity : item list Repo_map.t } | ||
|
||
val fetch : period:(string * string) -> token:Token.t -> Yojson.Safe.t | ||
|
||
val of_json : from:string -> Yojson.Safe.t -> t | ||
(** We pass [from] again here so we can filter out anything that GitHub included by accident. *) | ||
|
||
val is_empty : t -> bool | ||
|
||
val pp : t Fmt.t | ||
(** [pp] formats as markdown. *) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
(library | ||
(name get_activity) | ||
(public_name get-activity-lib) | ||
(libraries cohttp cohttp-lwt cohttp-lwt-unix yojson)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
val exec : ?variables:(string * Yojson.Safe.t) list -> token:string -> query:string -> unit -> Yojson.Safe.t Lwt.t |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
type t = | ||
[ `Last_week | ||
| `Range of string * string | ||
| `Since_last_fetch ] | ||
|
||
let one_week = 60. *. 60. *. 24. *. 7. | ||
|
||
let to_8601 t = | ||
let open Unix in | ||
let t = gmtime t in | ||
Printf.sprintf "%04d-%02d-%02dT%02d:%02d:%02dZ" | ||
(t.tm_year + 1900) | ||
(t.tm_mon + 1) | ||
(t.tm_mday) | ||
(t.tm_hour) | ||
(t.tm_min) | ||
(t.tm_sec) | ||
|
||
let mtime path = | ||
match Unix.stat path with | ||
| info -> Some info.Unix.st_mtime | ||
| exception Unix.Unix_error(Unix.ENOENT, _, _) -> None | ||
|
||
let set_mtime path time = | ||
if not (Sys.file_exists path) then | ||
close_out @@ open_out_gen [Open_append; Open_creat] 0o600 path; | ||
Unix.utimes path time time | ||
|
||
let with_period period ~last_fetch_file ~f = | ||
let now = Unix.time () in | ||
let last_week = now -. one_week in | ||
let range = | ||
match period with | ||
| `Since_last_fetch -> | ||
let last_fetch = Option.value ~default:last_week (mtime last_fetch_file) in | ||
(to_8601 last_fetch, to_8601 now) | ||
| `Last_week -> | ||
(to_8601 last_week, to_8601 now) | ||
| `Range r -> r | ||
in | ||
f range; | ||
match period with | ||
| `Since_last_fetch | `Last_week -> set_mtime last_fetch_file now | ||
| `Range _ -> () |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
type t = | ||
[ `Last_week | ||
| `Range of string * string | ||
| `Since_last_fetch ] | ||
|
||
val one_week : float | ||
|
||
val to_8601 : float -> string | ||
|
||
val with_period : t -> last_fetch_file:string -> f:(string * string -> unit) -> unit | ||
(** Run [f (start, finish)], where [(start, finish)] is the period specified by [period]. | ||
If [period] is [`Since_last_fetch] or [`Last_week] then update the last-fetch timestamp on success. *) |
File renamed without changes.
File renamed without changes.